+++ /dev/null
-<!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="List of all items in this crate"><meta name="keywords" content="rust, rustlang, rust-lang"><title>List of all items in this crate</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location">Crate bdk</h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#macros">Macros</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="#functions">Functions</a></li><li><a href="#types">Type Definitions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><h1 class="fqn">List of all items</h1><h3 id="structs">Structs</h3><ul class="all-items"><li><a href="struct.LocalOutput.html">LocalOutput</a></li><li><a href="struct.WeightedUtxo.html">WeightedUtxo</a></li><li><a href="descriptor/struct.Miniscript.html">descriptor::Miniscript</a></li><li><a href="descriptor/policy/struct.Condition.html">descriptor::policy::Condition</a></li><li><a href="descriptor/policy/struct.Policy.html">descriptor::policy::Policy</a></li><li><a href="descriptor/template/struct.Bip44.html">descriptor::template::Bip44</a></li><li><a href="descriptor/template/struct.Bip44Public.html">descriptor::template::Bip44Public</a></li><li><a href="descriptor/template/struct.Bip49.html">descriptor::template::Bip49</a></li><li><a href="descriptor/template/struct.Bip49Public.html">descriptor::template::Bip49Public</a></li><li><a href="descriptor/template/struct.Bip84.html">descriptor::template::Bip84</a></li><li><a href="descriptor/template/struct.Bip84Public.html">descriptor::template::Bip84Public</a></li><li><a href="descriptor/template/struct.Bip86.html">descriptor::template::Bip86</a></li><li><a href="descriptor/template/struct.Bip86Public.html">descriptor::template::Bip86Public</a></li><li><a href="descriptor/template/struct.P2Pkh.html">descriptor::template::P2Pkh</a></li><li><a href="descriptor/template/struct.P2TR.html">descriptor::template::P2TR</a></li><li><a href="descriptor/template/struct.P2Wpkh.html">descriptor::template::P2Wpkh</a></li><li><a href="descriptor/template/struct.P2Wpkh_P2Sh.html">descriptor::template::P2Wpkh_P2Sh</a></li><li><a href="keys/struct.GeneratedKey.html">keys::GeneratedKey</a></li><li><a href="keys/struct.PrivateKeyGenerateOptions.html">keys::PrivateKeyGenerateOptions</a></li><li><a href="keys/struct.SinglePriv.html">keys::SinglePriv</a></li><li><a href="keys/struct.SinglePub.html">keys::SinglePub</a></li><li><a href="keys/struct.SortedMultiVec.html">keys::SortedMultiVec</a></li><li><a href="wallet/struct.AddressInfo.html">wallet::AddressInfo</a></li><li><a href="wallet/struct.Balance.html">wallet::Balance</a></li><li><a href="wallet/struct.ChangeSet.html">wallet::ChangeSet</a></li><li><a href="wallet/struct.Update.html">wallet::Update</a></li><li><a href="wallet/struct.Wallet.html">wallet::Wallet</a></li><li><a href="wallet/coin_selection/struct.BranchAndBoundCoinSelection.html">wallet::coin_selection::BranchAndBoundCoinSelection</a></li><li><a href="wallet/coin_selection/struct.CoinSelectionResult.html">wallet::coin_selection::CoinSelectionResult</a></li><li><a href="wallet/coin_selection/struct.LargestFirstCoinSelection.html">wallet::coin_selection::LargestFirstCoinSelection</a></li><li><a href="wallet/coin_selection/struct.OldestFirstCoinSelection.html">wallet::coin_selection::OldestFirstCoinSelection</a></li><li><a href="wallet/export/struct.FullyNodedExport.html">wallet::export::FullyNodedExport</a></li><li><a href="wallet/signer/struct.SignOptions.html">wallet::signer::SignOptions</a></li><li><a href="wallet/signer/struct.SignerOrdering.html">wallet::signer::SignerOrdering</a></li><li><a href="wallet/signer/struct.SignerWrapper.html">wallet::signer::SignerWrapper</a></li><li><a href="wallet/signer/struct.SignersContainer.html">wallet::signer::SignersContainer</a></li><li><a href="wallet/tx_builder/struct.BumpFee.html">wallet::tx_builder::BumpFee</a></li><li><a href="wallet/tx_builder/struct.CreateTx.html">wallet::tx_builder::CreateTx</a></li><li><a href="wallet/tx_builder/struct.TxBuilder.html">wallet::tx_builder::TxBuilder</a></li></ul><h3 id="enums">Enums</h3><ul class="all-items"><li><a href="enum.KeychainKind.html">KeychainKind</a></li><li><a href="enum.Utxo.html">Utxo</a></li><li><a href="descriptor/enum.Descriptor.html">descriptor::Descriptor</a></li><li><a href="descriptor/enum.DescriptorPublicKey.html">descriptor::DescriptorPublicKey</a></li><li><a href="descriptor/enum.Legacy.html">descriptor::Legacy</a></li><li><a href="descriptor/enum.Segwitv0.html">descriptor::Segwitv0</a></li><li><a href="descriptor/error/enum.Error.html">descriptor::error::Error</a></li><li><a href="descriptor/policy/enum.BuildSatisfaction.html">descriptor::policy::BuildSatisfaction</a></li><li><a href="descriptor/policy/enum.PkOrF.html">descriptor::policy::PkOrF</a></li><li><a href="descriptor/policy/enum.PolicyError.html">descriptor::policy::PolicyError</a></li><li><a href="descriptor/policy/enum.Satisfaction.html">descriptor::policy::Satisfaction</a></li><li><a href="descriptor/policy/enum.SatisfiableItem.html">descriptor::policy::SatisfiableItem</a></li><li><a href="keys/enum.DescriptorKey.html">keys::DescriptorKey</a></li><li><a href="keys/enum.DescriptorPublicKey.html">keys::DescriptorPublicKey</a></li><li><a href="keys/enum.DescriptorSecretKey.html">keys::DescriptorSecretKey</a></li><li><a href="keys/enum.ExtendedKey.html">keys::ExtendedKey</a></li><li><a href="keys/enum.KeyError.html">keys::KeyError</a></li><li><a href="keys/enum.ScriptContextEnum.html">keys::ScriptContextEnum</a></li><li><a href="keys/enum.SinglePubKey.html">keys::SinglePubKey</a></li><li><a href="wallet/enum.ApplyBlockError.html">wallet::ApplyBlockError</a></li><li><a href="wallet/enum.InsertTxError.html">wallet::InsertTxError</a></li><li><a href="wallet/enum.LoadError.html">wallet::LoadError</a></li><li><a href="wallet/enum.NewError.html">wallet::NewError</a></li><li><a href="wallet/enum.NewOrLoadError.html">wallet::NewOrLoadError</a></li><li><a href="wallet/coin_selection/enum.Error.html">wallet::coin_selection::Error</a></li><li><a href="wallet/coin_selection/enum.Excess.html">wallet::coin_selection::Excess</a></li><li><a href="wallet/error/enum.BuildFeeBumpError.html">wallet::error::BuildFeeBumpError</a></li><li><a href="wallet/error/enum.CreateTxError.html">wallet::error::CreateTxError</a></li><li><a href="wallet/error/enum.MiniscriptPsbtError.html">wallet::error::MiniscriptPsbtError</a></li><li><a href="wallet/signer/enum.SignerContext.html">wallet::signer::SignerContext</a></li><li><a href="wallet/signer/enum.SignerError.html">wallet::signer::SignerError</a></li><li><a href="wallet/signer/enum.SignerId.html">wallet::signer::SignerId</a></li><li><a href="wallet/signer/enum.TapLeavesOptions.html">wallet::signer::TapLeavesOptions</a></li><li><a href="wallet/tx_builder/enum.AddForeignUtxoError.html">wallet::tx_builder::AddForeignUtxoError</a></li><li><a href="wallet/tx_builder/enum.AddUtxoError.html">wallet::tx_builder::AddUtxoError</a></li><li><a href="wallet/tx_builder/enum.AllowShrinkingError.html">wallet::tx_builder::AllowShrinkingError</a></li><li><a href="wallet/tx_builder/enum.ChangeSpendPolicy.html">wallet::tx_builder::ChangeSpendPolicy</a></li><li><a href="wallet/tx_builder/enum.TxOrdering.html">wallet::tx_builder::TxOrdering</a></li></ul><h3 id="traits">Traits</h3><ul class="all-items"><li><a href="descriptor/trait.ExtractPolicy.html">descriptor::ExtractPolicy</a></li><li><a href="descriptor/trait.IntoWalletDescriptor.html">descriptor::IntoWalletDescriptor</a></li><li><a href="descriptor/trait.ScriptContext.html">descriptor::ScriptContext</a></li><li><a href="descriptor/template/trait.DescriptorTemplate.html">descriptor::template::DescriptorTemplate</a></li><li><a href="keys/trait.DerivableKey.html">keys::DerivableKey</a></li><li><a href="keys/trait.ExtScriptContext.html">keys::ExtScriptContext</a></li><li><a href="keys/trait.GeneratableDefaultOptions.html">keys::GeneratableDefaultOptions</a></li><li><a href="keys/trait.GeneratableKey.html">keys::GeneratableKey</a></li><li><a href="keys/trait.IntoDescriptorKey.html">keys::IntoDescriptorKey</a></li><li><a href="keys/trait.ScriptContext.html">keys::ScriptContext</a></li><li><a href="psbt/trait.PsbtUtils.html">psbt::PsbtUtils</a></li><li><a href="wallet/trait.IsDust.html">wallet::IsDust</a></li><li><a href="wallet/coin_selection/trait.CoinSelectionAlgorithm.html">wallet::coin_selection::CoinSelectionAlgorithm</a></li><li><a href="wallet/signer/trait.InputSigner.html">wallet::signer::InputSigner</a></li><li><a href="wallet/signer/trait.SignerCommon.html">wallet::signer::SignerCommon</a></li><li><a href="wallet/signer/trait.TransactionSigner.html">wallet::signer::TransactionSigner</a></li><li><a href="wallet/tx_builder/trait.TxBuilderContext.html">wallet::tx_builder::TxBuilderContext</a></li></ul><h3 id="macros">Macros</h3><ul class="all-items"><li><a href="macro.descriptor.html">descriptor</a></li><li><a href="macro.fragment.html">fragment</a></li></ul><h3 id="functions">Functions</h3><ul class="all-items"><li><a href="descriptor/checksum/fn.calc_checksum.html">descriptor::checksum::calc_checksum</a></li><li><a href="descriptor/checksum/fn.calc_checksum_bytes.html">descriptor::checksum::calc_checksum_bytes</a></li><li><a href="keys/fn.any_network.html">keys::any_network</a></li><li><a href="keys/fn.mainnet_network.html">keys::mainnet_network</a></li><li><a href="keys/fn.merge_networks.html">keys::merge_networks</a></li><li><a href="keys/fn.test_networks.html">keys::test_networks</a></li><li><a href="fn.version.html">version</a></li><li><a href="wallet/coin_selection/fn.decide_change.html">wallet::coin_selection::decide_change</a></li><li><a href="wallet/fn.wallet_name_from_descriptor.html">wallet::wallet_name_from_descriptor</a></li></ul><h3 id="types">Type Definitions</h3><ul class="all-items"><li><a href="descriptor/type.DerivedDescriptor.html">descriptor::DerivedDescriptor</a></li><li><a href="descriptor/type.ExtendedDescriptor.html">descriptor::ExtendedDescriptor</a></li><li><a href="descriptor/type.HdKeyPaths.html">descriptor::HdKeyPaths</a></li><li><a href="descriptor/type.TapKeyOrigins.html">descriptor::TapKeyOrigins</a></li><li><a href="descriptor/policy/type.ConditionMap.html">descriptor::policy::ConditionMap</a></li><li><a href="descriptor/policy/type.FoldedConditionMap.html">descriptor::policy::FoldedConditionMap</a></li><li><a href="descriptor/template/type.DescriptorTemplateOut.html">descriptor::template::DescriptorTemplateOut</a></li><li><a href="keys/type.KeyMap.html">keys::KeyMap</a></li><li><a href="keys/type.ValidNetworks.html">keys::ValidNetworks</a></li><li><a href="wallet/coin_selection/type.DefaultCoinSelectionAlgorithm.html">wallet::coin_selection::DefaultCoinSelectionAlgorithm</a></li><li><a href="wallet/export/type.WalletExport.html">wallet::export::WalletExport</a></li></ul></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Compute the checksum of a descriptor, excludes any existing checksum in the descriptor string from the calculation"><meta name="keywords" content="rust, rustlang, rust-lang, calc_checksum"><title>calc_checksum in bdk::descriptor::checksum - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In bdk::descriptor::checksum</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">checksum</a>::<wbr><a class="fn" href="#">calc_checksum</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/checksum.rs.html#93-96">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn calc_checksum(desc: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</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>Compute the checksum of a descriptor, excludes any existing checksum in the descriptor string from the calculation</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Compute the checksum bytes of a descriptor, excludes any existing checksum in the descriptor string from the calculation"><meta name="keywords" content="rust, rustlang, rust-lang, calc_checksum_bytes"><title>calc_checksum_bytes in bdk::descriptor::checksum - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In bdk::descriptor::checksum</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">checksum</a>::<wbr><a class="fn" href="#">calc_checksum_bytes</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/checksum.rs.html#46-90">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn calc_checksum_bytes(desc: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> <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.u8.html">u8</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">8</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>Compute the checksum bytes of a descriptor, excludes any existing checksum in the descriptor string from the calculation</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Descriptor checksum"><meta name="keywords" content="rust, rustlang, rust-lang, checksum"><title>bdk::descriptor::checksum - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module checksum</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#functions">Functions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a class="mod" href="#">checksum</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/checksum.rs.html#12-147">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Descriptor checksum</p>
-<p>This module contains a re-implementation of the function used by Bitcoin Core to calculate the
-checksum of a descriptor</p>
-</div></details><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.calc_checksum.html" title="bdk::descriptor::checksum::calc_checksum fn">calc_checksum</a></div><div class="item-right docblock-short">Compute the checksum of a descriptor, excludes any existing checksum in the descriptor string from the calculation</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.calc_checksum_bytes.html" title="bdk::descriptor::checksum::calc_checksum_bytes fn">calc_checksum_bytes</a></div><div class="item-right docblock-short">Compute the checksum bytes of a descriptor, excludes any existing checksum in the descriptor string from the calculation</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-window.SIDEBAR_ITEMS = {"fn":[["calc_checksum","Compute the checksum of a descriptor, excludes any existing checksum in the descriptor string from the calculation"],["calc_checksum_bytes","Compute the checksum bytes of a descriptor, excludes any existing checksum in the descriptor string from the calculation"]]};
\ No newline at end of file
+++ /dev/null
-<!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="Script descriptor"><meta name="keywords" content="rust, rustlang, rust-lang, Descriptor"><title>Descriptor in bdk::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Descriptor</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Bare">Bare</a></li><li><a href="#variant.Pkh">Pkh</a></li><li><a href="#variant.Sh">Sh</a></li><li><a href="#variant.Tr">Tr</a></li><li><a href="#variant.Wpkh">Wpkh</a></li><li><a href="#variant.Wsh">Wsh</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.address">address</a></li><li><a href="#method.at_derivation_index">at_derivation_index</a></li><li><a href="#method.derive">derive</a></li><li><a href="#method.derived_descriptor">derived_descriptor</a></li><li><a href="#method.derived_descriptor-1">derived_descriptor</a></li><li><a href="#method.desc_type">desc_type</a></li><li><a href="#method.explicit_script">explicit_script</a></li><li><a href="#method.find_derivation_index_for_spk">find_derivation_index_for_spk</a></li><li><a href="#method.get_satisfaction">get_satisfaction</a></li><li><a href="#method.get_satisfaction_mall">get_satisfaction_mall</a></li><li><a href="#method.has_wildcard">has_wildcard</a></li><li><a href="#method.into_single_descriptors">into_single_descriptors</a></li><li><a href="#method.is_deriveable">is_deriveable</a></li><li><a href="#method.is_multipath">is_multipath</a></li><li><a href="#method.max_satisfaction_weight">max_satisfaction_weight</a></li><li><a href="#method.max_weight_to_satisfy">max_weight_to_satisfy</a></li><li><a href="#method.new_bare">new_bare</a></li><li><a href="#method.new_pk">new_pk</a></li><li><a href="#method.new_pkh">new_pkh</a></li><li><a href="#method.new_sh">new_sh</a></li><li><a href="#method.new_sh_sortedmulti">new_sh_sortedmulti</a></li><li><a href="#method.new_sh_with_wpkh">new_sh_with_wpkh</a></li><li><a href="#method.new_sh_with_wsh">new_sh_with_wsh</a></li><li><a href="#method.new_sh_wpkh">new_sh_wpkh</a></li><li><a href="#method.new_sh_wsh">new_sh_wsh</a></li><li><a href="#method.new_sh_wsh_sortedmulti">new_sh_wsh_sortedmulti</a></li><li><a href="#method.new_tr">new_tr</a></li><li><a href="#method.new_wpkh">new_wpkh</a></li><li><a href="#method.new_wsh">new_wsh</a></li><li><a href="#method.new_wsh_sortedmulti">new_wsh_sortedmulti</a></li><li><a href="#method.parse_descriptor">parse_descriptor</a></li><li><a href="#method.plan">plan</a></li><li><a href="#method.plan_mall">plan_mall</a></li><li><a href="#method.sanity_check">sanity_check</a></li><li><a href="#method.satisfy">satisfy</a></li><li><a href="#method.script_code">script_code</a></li><li><a href="#method.script_pubkey">script_pubkey</a></li><li><a href="#method.to_string_with_secret">to_string_with_secret</a></li><li><a href="#method.unsigned_script_sig">unsigned_script_sig</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-Descriptor%3CPk%3E">Clone</a></li><li><a href="#impl-Debug-for-Descriptor%3CPk%3E">Debug</a></li><li><a href="#impl-DescriptorExt-for-Descriptor%3CDescriptorPublicKey%3E">DescriptorExt</a></li><li><a href="#impl-Deserialize%3C%27de%3E-for-Descriptor%3CPk%3E">Deserialize<'de></a></li><li><a href="#impl-Display-for-Descriptor%3CPk%3E">Display</a></li><li><a href="#impl-Eq-for-Descriptor%3CPk%3E">Eq</a></li><li><a href="#impl-ExtractPolicy-for-Descriptor%3CDescriptorPublicKey%3E">ExtractPolicy</a></li><li><a href="#impl-ForEachKey%3CPk%3E-for-Descriptor%3CPk%3E">ForEachKey<Pk></a></li><li><a href="#impl-From%3CBare%3CPk%3E%3E-for-Descriptor%3CPk%3E">From<Bare<Pk>></a></li><li><a href="#impl-From%3CPkh%3CPk%3E%3E-for-Descriptor%3CPk%3E">From<Pkh<Pk>></a></li><li><a href="#impl-From%3CSh%3CPk%3E%3E-for-Descriptor%3CPk%3E">From<Sh<Pk>></a></li><li><a href="#impl-From%3CTr%3CPk%3E%3E-for-Descriptor%3CPk%3E">From<Tr<Pk>></a></li><li><a href="#impl-From%3CWpkh%3CPk%3E%3E-for-Descriptor%3CPk%3E">From<Wpkh<Pk>></a></li><li><a href="#impl-From%3CWsh%3CPk%3E%3E-for-Descriptor%3CPk%3E">From<Wsh<Pk>></a></li><li><a href="#impl-FromStr-for-Descriptor%3CPk%3E">FromStr</a></li><li><a href="#impl-FromTree-for-Descriptor%3CPk%3E">FromTree</a></li><li><a href="#impl-Hash-for-Descriptor%3CPk%3E">Hash</a></li><li><a href="#impl-Liftable%3CPk%3E-for-Descriptor%3CPk%3E">Liftable<Pk></a></li><li><a href="#impl-Ord-for-Descriptor%3CPk%3E">Ord</a></li><li><a href="#impl-PartialEq%3CDescriptor%3CPk%3E%3E-for-Descriptor%3CPk%3E">PartialEq<Descriptor<Pk>></a></li><li><a href="#impl-PartialOrd%3CDescriptor%3CPk%3E%3E-for-Descriptor%3CPk%3E">PartialOrd<Descriptor<Pk>></a></li><li><a href="#impl-Serialize-for-Descriptor%3CPk%3E">Serialize</a></li><li><a href="#impl-StructuralEq-for-Descriptor%3CPk%3E">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-Descriptor%3CPk%3E">StructuralPartialEq</a></li><li><a href="#impl-TranslatePk%3CP%2C%20Q%3E-for-Descriptor%3CP%3E">TranslatePk<P, Q></a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Descriptor%3CPk%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Descriptor%3CPk%3E">Send</a></li><li><a href="#impl-Sync-for-Descriptor%3CPk%3E">Sync</a></li><li><a href="#impl-Unpin-for-Descriptor%3CPk%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Descriptor%3CPk%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Descriptor%3CPk%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Descriptor%3CPk%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Descriptor%3CPk%3E">BorrowMut<T></a></li><li><a href="#impl-DeserializeOwned-for-Descriptor%3CPk%3E">DeserializeOwned</a></li><li><a href="#impl-From%3CT%3E-for-Descriptor%3CPk%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Descriptor%3CPk%3E">Into<U></a></li><li><a href="#impl-ToOwned-for-Descriptor%3CPk%3E">ToOwned</a></li><li><a href="#impl-ToString-for-Descriptor%3CPk%3E">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Descriptor%3CPk%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Descriptor%3CPk%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Descriptor%3CPk%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="enum" href="#">Descriptor</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum Descriptor<Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span>{
- Bare(Bare<Pk>),
- Pkh(Pkh<Pk>),
- Wpkh(Wpkh<Pk>),
- Sh(Sh<Pk>),
- Wsh(Wsh<Pk>),
- Tr(Tr<Pk>),
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Script descriptor</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Bare" class="variant"><a href="#variant.Bare" class="anchor">§</a><h3 class="code-header">Bare(Bare<Pk>)</h3></section><div class="docblock"><p>A raw scriptpubkey (including pay-to-pubkey) under Legacy context</p>
-</div><section id="variant.Pkh" class="variant"><a href="#variant.Pkh" class="anchor">§</a><h3 class="code-header">Pkh(Pkh<Pk>)</h3></section><div class="docblock"><p>Pay-to-PubKey-Hash</p>
-</div><section id="variant.Wpkh" class="variant"><a href="#variant.Wpkh" class="anchor">§</a><h3 class="code-header">Wpkh(Wpkh<Pk>)</h3></section><div class="docblock"><p>Pay-to-Witness-PubKey-Hash</p>
-</div><section id="variant.Sh" class="variant"><a href="#variant.Sh" class="anchor">§</a><h3 class="code-header">Sh(Sh<Pk>)</h3></section><div class="docblock"><p>Pay-to-ScriptHash(includes nested wsh/wpkh/sorted multi)</p>
-</div><section id="variant.Wsh" class="variant"><a href="#variant.Wsh" class="anchor">§</a><h3 class="code-header">Wsh(Wsh<Pk>)</h3></section><div class="docblock"><p>Pay-to-Witness-ScriptHash with Segwitv0 context</p>
-</div><section id="variant.Tr" class="variant"><a href="#variant.Tr" class="anchor">§</a><h3 class="code-header">Tr(Tr<Pk>)</h3></section><div class="docblock"><p>Pay-to-Taproot</p>
-</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_pk" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_pk" class="fn">new_pk</a>(pk: Pk) -> <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk></h4></section></summary><div class="docblock"><p>Create a new pk descriptor</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_pkh" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_pkh" class="fn">new_pkh</a>(pk: Pk) -> <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="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Create a new PkH descriptor</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_wpkh" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_wpkh" class="fn">new_wpkh</a>(pk: Pk) -> <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="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Create a new Wpkh descriptor
-Will return Err if uncompressed key is used</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_sh_wpkh" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_sh_wpkh" class="fn">new_sh_wpkh</a>(pk: Pk) -> <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="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Create a new sh wrapped wpkh from <code>Pk</code>.
-Errors when uncompressed keys are supplied</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_sh" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_sh" class="fn">new_sh</a>(ms: <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a>>) -> <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="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Create a new sh for a given redeem script
-Errors when miniscript exceeds resource limits under p2sh context
-or does not type check at the top level</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_wsh" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_wsh" class="fn">new_wsh</a>(ms: <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>>) -> <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="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Create a new wsh descriptor from witness script
-Errors when miniscript exceeds resource limits under p2sh context
-or does not type check at the top level</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_sh_wsh" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_sh_wsh" class="fn">new_sh_wsh</a>(ms: <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>>) -> <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="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Create a new sh wrapped wsh descriptor with witness script
-Errors when miniscript exceeds resource limits under wsh context
-or does not type check at the top level</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_bare" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_bare" class="fn">new_bare</a>(ms: <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, BareCtx>) -> <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="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Create a new bare descriptor from witness script
-Errors when miniscript exceeds resource limits under bare context
-or does not type check at the top level</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_sh_with_wpkh" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_sh_with_wpkh" class="fn">new_sh_with_wpkh</a>(wpkh: Wpkh<Pk>) -> <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk></h4></section></summary><div class="docblock"><p>Create a new sh wrapper for the given wpkh descriptor</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_sh_with_wsh" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_sh_with_wsh" class="fn">new_sh_with_wsh</a>(wsh: Wsh<Pk>) -> <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk></h4></section></summary><div class="docblock"><p>Create a new sh wrapper for the given wsh descriptor</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_sh_sortedmulti" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_sh_sortedmulti" class="fn">new_sh_sortedmulti</a>(<br> k: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> pks: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><Pk, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</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="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Create a new sh sortedmulti descriptor with threshold <code>k</code>
-and Vec of <code>pks</code>.
-Errors when miniscript exceeds resource limits under p2sh context</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_sh_wsh_sortedmulti" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_sh_wsh_sortedmulti" class="fn">new_sh_wsh_sortedmulti</a>(<br> k: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> pks: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><Pk, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</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="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Create a new sh wrapped wsh sortedmulti descriptor from threshold
-<code>k</code> and Vec of <code>pks</code>
-Errors when miniscript exceeds resource limits under segwit context</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_wsh_sortedmulti" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_wsh_sortedmulti" class="fn">new_wsh_sortedmulti</a>(<br> k: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> pks: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><Pk, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</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="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Create a new wsh sorted multi descriptor
-Errors when miniscript exceeds resource limits under p2sh context</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_tr" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_tr" class="fn">new_tr</a>(<br> key: Pk,<br> script: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><TapTree<Pk>><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="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Create new tr descriptor
-Errors when miniscript exceeds resource limits under Tap context</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.desc_type" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.desc_type" class="fn">desc_type</a>(&self) -> DescriptorType</h4></section></summary><div class="docblock"><p>Get the [DescriptorType] of <a href="enum.Descriptor.html" title="Descriptor">Descriptor</a></p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sanity_check" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.sanity_check" class="fn">sanity_check</a>(&self) -> <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></h4></section></summary><div class="docblock"><p>Checks whether the descriptor is safe.</p>
-<p>Checks whether all the spend paths in the descriptor are possible on the
-bitcoin network under the current standardness and consensus rules. Also
-checks whether the descriptor requires signatures on all spend paths and
-whether the script is malleable.</p>
-<p>In general, all the guarantees of miniscript hold only for safe scripts.
-The signer may not be able to find satisfactions even if one exists.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_weight_to_satisfy" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.max_weight_to_satisfy" class="fn">max_weight_to_satisfy</a>(&self) -> <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.usize.html">usize</a>, Error></h4></section></summary><div class="docblock"><p>Computes an upper bound on the difference between a non-satisfied
-<code>TxIn</code>’s <code>segwit_weight</code> and a satisfied <code>TxIn</code>’s <code>segwit_weight</code></p>
-<p>Since this method uses <code>segwit_weight</code> instead of <code>legacy_weight</code>,
-if you want to include only legacy inputs in your transaction,
-you should remove 1WU from each input’s <code>max_weight_to_satisfy</code>
-for a more accurate estimate.</p>
-<p>In other words, for segwit inputs or legacy inputs included in
-segwit transactions, the following will hold for each input if
-that input was satisfied with the largest possible witness:</p>
-
-<div class="example-wrap ignore"><div class='tooltip'>ⓘ</div><pre class="rust rust-example-rendered"><code><span class="kw">for </span>i <span class="kw">in </span><span class="number">0</span>..transaction.input.len() {
- <span class="macro">assert_eq!</span>(
- descriptor_for_input[i].max_weight_to_satisfy(),
- transaction.input[i].segwit_weight() - TxIn::default().segwit_weight()
- );
-}</code></pre></div>
-<p>Instead, for legacy transactions, the following will hold for each input
-if that input was satisfied with the largest possible witness:</p>
-
-<div class="example-wrap ignore"><div class='tooltip'>ⓘ</div><pre class="rust rust-example-rendered"><code><span class="kw">for </span>i <span class="kw">in </span><span class="number">0</span>..transaction.input.len() {
- <span class="macro">assert_eq!</span>(
- descriptor_for_input[i].max_weight_to_satisfy(),
- transaction.input[i].legacy_weight() - TxIn::default().legacy_weight()
- );
-}</code></pre></div>
-<p>Assumes all ECDSA signatures are 73 bytes, including push opcode and
-sighash suffix.
-Assumes all Schnorr signatures are 66 bytes, including push opcode and
-sighash suffix.</p>
-<h5 id="errors"><a href="#errors">Errors</a></h5>
-<p>When the descriptor is impossible to safisfy (ex: sh(OP_FALSE)).</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_satisfaction_weight" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.max_satisfaction_weight" class="fn">max_satisfaction_weight</a>(&self) -> <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.usize.html">usize</a>, Error></h4></section><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: use max_weight_to_satisfy instead</span></div></span></summary><div class="docblock"><p>Computes an upper bound on the weight of a satisfying witness to the
-transaction.</p>
-<p>Assumes all ec-signatures are 73 bytes, including push opcode and
-sighash suffix. Includes the weight of the VarInts encoding the
-scriptSig and witness stack length.</p>
-<h5 id="errors-1"><a href="#errors-1">Errors</a></h5>
-<p>When the descriptor is impossible to safisfy (ex: sh(OP_FALSE)).</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Descriptor%3CPk%3E-1" class="impl has-srclink"><a href="#impl-Descriptor%3CPk%3E-1" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey + ToPublicKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.address" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.address" class="fn">address</a>(&self, network: Network) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Address<NetworkChecked>, Error></h4></section></summary><div class="docblock"><p>Computes the Bitcoin address of the descriptor, if one exists</p>
-<p>Some descriptors like pk() don’t have an address.</p>
-<h5 id="errors-2"><a href="#errors-2">Errors</a></h5>
-<p>For raw/bare descriptors that don’t have an address.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.script_pubkey" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.script_pubkey" class="fn">script_pubkey</a>(&self) -> ScriptBuf</h4></section></summary><div class="docblock"><p>Computes the scriptpubkey of the descriptor.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.unsigned_script_sig" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.unsigned_script_sig" class="fn">unsigned_script_sig</a>(&self) -> ScriptBuf</h4></section></summary><div class="docblock"><p>Computes the scriptSig that will be in place for an unsigned input
-spending an output with this descriptor. For pre-segwit descriptors,
-which use the scriptSig for signatures, this returns the empty script.</p>
-<p>This is used in Segwit transactions to produce an unsigned transaction
-whose txid will not change during signing (since only the witness data
-will change).</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.explicit_script" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.explicit_script" class="fn">explicit_script</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><ScriptBuf, Error></h4></section></summary><div class="docblock"><p>Computes the the underlying script before any hashing is done. For
-<code>Bare</code>, <code>Pkh</code> and <code>Wpkh</code> this is the scriptPubkey; for <code>ShWpkh</code> and <code>Sh</code>
-this is the redeemScript; for the others it is the witness script.</p>
-<h5 id="errors-3"><a href="#errors-3">Errors</a></h5>
-<p>If the descriptor is a taproot descriptor.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.script_code" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.script_code" class="fn">script_code</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><ScriptBuf, Error></h4></section></summary><div class="docblock"><p>Computes the <code>scriptCode</code> of a transaction output.</p>
-<p>The <code>scriptCode</code> is the Script of the previous transaction output being
-serialized in the sighash when evaluating a <code>CHECKSIG</code> & co. OP code.</p>
-<h5 id="errors-4"><a href="#errors-4">Errors</a></h5>
-<p>If the descriptor is a taproot descriptor.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_satisfaction" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.get_satisfaction" class="fn">get_satisfaction</a><S>(<br> &self,<br> satisfier: S<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="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</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="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>>, ScriptBuf), Error><span class="where fmt-newline">where<br> S: Satisfier<Pk>,</span></h4></section></summary><div class="docblock"><p>Returns satisfying non-malleable witness and scriptSig to spend an
-output controlled by the given descriptor if it possible to
-construct one using the satisfier S.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_satisfaction_mall" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.get_satisfaction_mall" class="fn">get_satisfaction_mall</a><S>(<br> &self,<br> satisfier: S<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="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</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="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>>, ScriptBuf), Error><span class="where fmt-newline">where<br> S: Satisfier<Pk>,</span></h4></section></summary><div class="docblock"><p>Returns a possilbly mallable satisfying non-malleable witness and scriptSig to spend an
-output controlled by the given descriptor if it possible to
-construct one using the satisfier S.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.satisfy" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.satisfy" class="fn">satisfy</a><S>(&self, txin: &mut TxIn, satisfier: S) -> <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> S: Satisfier<Pk>,</span></h4></section></summary><div class="docblock"><p>Attempts to produce a non-malleable satisfying witness and scriptSig to spend an
-output controlled by the given descriptor; add the data to a given
-<code>TxIn</code> output.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Descriptor%3CDefiniteDescriptorKey%3E" class="impl has-srclink"><a href="#impl-Descriptor%3CDefiniteDescriptorKey%3E" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><DefiniteDescriptorKey></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.plan" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.plan" class="fn">plan</a><P>(<br> self,<br> provider: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>P<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Plan, <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><DefiniteDescriptorKey>><span class="where fmt-newline">where<br> P: AssetProvider<DefiniteDescriptorKey>,</span></h4></section></summary><div class="docblock"><p>Returns a plan if the provided assets are sufficient to produce a non-malleable satisfaction</p>
-<p>If the assets aren’t sufficient for generating a Plan, the descriptor is returned</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.plan_mall" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.plan_mall" class="fn">plan_mall</a><P>(<br> self,<br> provider: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>P<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Plan, <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><DefiniteDescriptorKey>><span class="where fmt-newline">where<br> P: AssetProvider<DefiniteDescriptorKey>,</span></h4></section></summary><div class="docblock"><p>Returns a plan if the provided assets are sufficient to produce a malleable satisfaction</p>
-<p>If the assets aren’t sufficient for generating a Plan, the descriptor is returned</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Descriptor%3CDescriptorPublicKey%3E" class="impl has-srclink"><a href="#impl-Descriptor%3CDescriptorPublicKey%3E" class="anchor">§</a><h3 class="code-header">impl <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></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_deriveable" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_deriveable" class="fn">is_deriveable</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: use has_wildcards instead</span></div></span></summary><div class="docblock"><p>Whether or not the descriptor has any wildcards</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.has_wildcard" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.has_wildcard" class="fn">has_wildcard</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether or not the descriptor has any wildcards i.e. <code>/*</code>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.at_derivation_index" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.at_derivation_index" class="fn">at_derivation_index</a>(<br> &self,<br> index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</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="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><DefiniteDescriptorKey>, ConversionError></h4></section></summary><div class="docblock"><p>Replaces all wildcards (i.e. <code>/*</code>) in the descriptor with a particular derivation index,
-turning it into a <em>definite</em> descriptor.</p>
-<h5 id="errors-5"><a href="#errors-5">Errors</a></h5>
-<ul>
-<li>If index ≥ 2^31</li>
-</ul>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.derive" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.derive" class="fn">derive</a>(<br> &self,<br> index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</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="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><DefiniteDescriptorKey>, ConversionError></h4></section><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: use at_derivation_index instead</span></div></span></summary><div class="docblock"><p>Deprecated name for <a href="enum.Descriptor.html#method.at_derivation_index" title="Self::at_derivation_index"><code>Self::at_derivation_index</code></a>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.derived_descriptor" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.derived_descriptor" class="fn">derived_descriptor</a><C>(<br> &self,<br> secp: &Secp256k1<C>,<br> index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</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="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><PublicKey>, ConversionError><span class="where fmt-newline">where<br> C: Verification,</span></h4></section></summary><div class="docblock"><p>Convert all the public keys in the descriptor to [<code>bitcoin::PublicKey</code>] by deriving them or
-otherwise converting them. All [<code>bitcoin::secp256k1::XOnlyPublicKey</code>]s are converted to by adding a
-default(0x02) y-coordinate.</p>
-<p>This is a shorthand for:</p>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code> .expect(<span class="string">"Valid ranged descriptor"</span>);
-<span class="kw">let </span>derived_descriptor = descriptor.at_derivation_index(index).unwrap().derived_descriptor(<span class="kw-2">&</span>secp).unwrap();</code></pre></div>
-<p>and is only here really here for backwards compatbility.
-See <a href="enum.Descriptor.html#method.at_derivation_index"><code>at_derivation_index</code></a> and <code>[derived_descriptor</code>] for more documentation.</p>
-<h5 id="errors-6"><a href="#errors-6">Errors</a></h5>
-<p>This function will return an error if hardened derivation is attempted.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.parse_descriptor" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.parse_descriptor" class="fn">parse_descriptor</a><C>(<br> secp: &Secp256k1<C>,<br> s: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</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="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>>, <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><<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../keys/enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>>), Error><span class="where fmt-newline">where<br> C: Signing,</span></h4></section></summary><div class="docblock"><p>Parse a descriptor that may contain secret keys</p>
-<p>Internally turns every secret key found into the corresponding public key and then returns a
-a descriptor that only contains public keys and a map to lookup the secret key given a public key.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string_with_secret" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.to_string_with_secret" class="fn">to_string_with_secret</a>(<br> &self,<br> key_map: &<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><<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../keys/enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>><br>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class="docblock"><p>Serialize a descriptor to string with its secret keys</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.find_derivation_index_for_spk" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.find_derivation_index_for_spk" class="fn">find_derivation_index_for_spk</a><C>(<br> &self,<br> secp: &Secp256k1<C>,<br> script_pubkey: &Script,<br> range: <a class="struct" href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range">Range</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</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="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.u32.html">u32</a>, <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><PublicKey>)>, ConversionError><span class="where fmt-newline">where<br> C: Verification,</span></h4></section></summary><div class="docblock"><p>Utility method for deriving the descriptor at each index in a range to find one matching
-<code>script_pubkey</code>.</p>
-<p>If it finds a match then it returns the index it was derived at and the concrete
-descriptor at that index. If the descriptor is non-derivable then it will simply check the
-script pubkey against the descriptor and return it if it matches (in this case the index
-returned will be meaningless).</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_multipath" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_multipath" class="fn">is_multipath</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether this descriptor contains a key that has multiple derivation paths.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_single_descriptors" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.into_single_descriptors" class="fn">into_single_descriptors</a>(<br> self<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="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<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>>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>>, Error></h4></section></summary><div class="docblock"><p>Get as many descriptors as different paths in this descriptor.</p>
-<p>For multipath descriptors it will return as many descriptors as there is
-“parallel” paths. For regular descriptors it will just return itself.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Descriptor%3CDefiniteDescriptorKey%3E-1" class="impl has-srclink"><a href="#impl-Descriptor%3CDefiniteDescriptorKey%3E-1" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><DefiniteDescriptorKey></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.derived_descriptor-1" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.derived_descriptor-1" class="fn">derived_descriptor</a><C>(<br> &self,<br> secp: &Secp256k1<C><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="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><PublicKey>, ConversionError><span class="where fmt-newline">where<br> C: Verification,</span></h4></section></summary><div class="docblock"><p>Convert all the public keys in the descriptor to [<code>bitcoin::PublicKey</code>] by deriving them or
-otherwise converting them. All [<code>bitcoin::secp256k1::XOnlyPublicKey</code>]s are converted to by adding a
-default(0x02) y-coordinate.</p>
-<h5 id="examples"><a href="#examples">Examples</a></h5>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>miniscript::descriptor::{Descriptor, DescriptorPublicKey};
-<span class="kw">use </span>miniscript::bitcoin::secp256k1;
-<span class="kw">use </span>std::str::FromStr;
-
-<span class="comment">// test from bip 86
-</span><span class="kw">let </span>secp = secp256k1::Secp256k1::verification_only();
-<span class="kw">let </span>descriptor = Descriptor::<DescriptorPublicKey>::from_str(<span class="string">"tr(xpub6BgBgsespWvERF3LHQu6CnqdvfEvtMcQjYrcRzx53QJjSxarj2afYWcLteoGVky7D3UKDP9QyrLprQ3VCECoY49yfdDEHGCtMMj92pReUsQ/0/*)"</span>)
- .expect(<span class="string">"Valid ranged descriptor"</span>);
-<span class="kw">let </span>result = descriptor.at_derivation_index(<span class="number">0</span>).unwrap().derived_descriptor(<span class="kw-2">&</span>secp).expect(<span class="string">"Non-hardened derivation"</span>);
-<span class="macro">assert_eq!</span>(result.to_string(), <span class="string">"tr(03cc8a4bc64d897bddc5fbc2f670f7a8ba0b386779106cf1223c6fc5d7cd6fc115)#6qm9h8ym"</span>);</code></pre></div>
-<h5 id="errors-7"><a href="#errors-7">Errors</a></h5>
-<p>This function will return an error if hardened derivation is attempted.</p>
-</div></details></div></details></div><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><section id="impl-Clone-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Clone-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Debug-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-DescriptorExt-for-Descriptor%3CDescriptorPublicKey%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/descriptor_ext.rs.html#29">source</a><a href="#impl-DescriptorExt-for-Descriptor%3CDescriptorPublicKey%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../../bdk_chain/descriptor_ext/trait.DescriptorExt.html" title="trait bdk_chain::descriptor_ext::DescriptorExt">DescriptorExt</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></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.dust_value" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/descriptor_ext.rs.html#30">source</a><a href="#method.dust_value" class="anchor">§</a><h4 class="code-header">fn <a href="../../bdk_chain/descriptor_ext/trait.DescriptorExt.html#tymethod.dust_value" class="fn">dust_value</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></h4></section></summary><div class='docblock'>Returns the minimum value (in satoshis) at which an output is broadcastable.
-Panics if the descriptor wildcard is hardened. <a href="../../bdk_chain/descriptor_ext/trait.DescriptorExt.html#tymethod.dust_value">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.descriptor_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/descriptor_ext.rs.html#38">source</a><a href="#method.descriptor_id" class="anchor">§</a><h4 class="code-header">fn <a href="../../bdk_chain/descriptor_ext/trait.DescriptorExt.html#tymethod.descriptor_id" class="fn">descriptor_id</a>(&self) -> <a class="struct" href="../../bdk_chain/descriptor_ext/struct.DescriptorId.html" title="struct bdk_chain::descriptor_ext::DescriptorId">DescriptorId</a></h4></section></summary><div class='docblock'>Returns the descriptor id, calculated as the sha256 of the descriptor, checksum not
-included. <a href="../../bdk_chain/descriptor_ext/trait.DescriptorExt.html#tymethod.descriptor_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserialize%3C%27de%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Deserialize%3C%27de%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<'de, Pk> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey + <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,<br> <<Pk as MiniscriptKey>::Sha256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,<br> <<Pk as MiniscriptKey>::Hash256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,<br> <<Pk as MiniscriptKey>::Ripemd160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,<br> <<Pk as MiniscriptKey>::Hash160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl has-srclink"><a href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize" class="fn">deserialize</a><D>(<br> deserializer: D<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="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk>, <D as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>><span class="where fmt-newline">where<br> D: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Display-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ExtractPolicy-for-Descriptor%3CDescriptorPublicKey%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/descriptor/policy.rs.html#1077-1158">source</a><a href="#impl-ExtractPolicy-for-Descriptor%3CDescriptorPublicKey%3E" class="anchor">§</a><h3 class="code-header">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></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.extract_policy" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/descriptor/policy.rs.html#1078-1157">source</a><a href="#method.extract_policy" class="anchor">§</a><h4 class="code-header">fn <a href="trait.ExtractPolicy.html#tymethod.extract_policy" class="fn">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> build_sat: <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">Error</a>></h4></section></summary><div class='docblock'>Extract the spending <a href="policy/index.html" title="policy"><code>policy</code></a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ForEachKey%3CPk%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-ForEachKey%3CPk%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> ForEachKey<Pk> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.for_each_key" class="method trait-impl has-srclink"><a href="#method.for_each_key" class="anchor">§</a><h4 class="code-header">fn <a class="fn">for_each_key</a><'a, F>(&'a self, pred: F) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&'a </a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</span></h4></section></summary><div class='docblock'>Run a predicate on every key in the descriptor, returning whether
-the predicate returned true for every key <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.for_any_key" class="method trait-impl has-srclink"><a href="#method.for_any_key" class="anchor">§</a><h4 class="code-header">fn <a class="fn">for_any_key</a><'a, F>(&'a self, pred: F) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&'a </a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,<br> Pk: 'a,</span></h4></section></summary><div class='docblock'>Run a predicate on every key in the descriptor, returning whether
-the predicate returned true for any key <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CBare%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-From%3CBare%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Bare<Pk>> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-3" class="method trait-impl has-srclink"><a href="#method.from-3" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(inner: Bare<Pk>) -> <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CPkh%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-From%3CPkh%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Pkh<Pk>> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(inner: Pkh<Pk>) -> <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CSh%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-From%3CSh%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Sh<Pk>> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(inner: Sh<Pk>) -> <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CTr%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-From%3CTr%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Tr<Pk>> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-4" class="method trait-impl has-srclink"><a href="#method.from-4" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(inner: Tr<Pk>) -> <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CWpkh%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-From%3CWpkh%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Wpkh<Pk>> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-5" class="method trait-impl has-srclink"><a href="#method.from-5" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(inner: Wpkh<Pk>) -> <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CWsh%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-From%3CWsh%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Wsh<Pk>> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl has-srclink"><a href="#method.from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(inner: Wsh<Pk>) -> <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-FromStr-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-FromStr-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey + <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Sha256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Ripemd160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Err" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Err" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" class="associatedtype">Err</a> = Error</h4></section></summary><div class='docblock'>The associated error which can be returned from parsing.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_str" class="method trait-impl has-srclink"><a href="#method.from_str" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str" class="fn">from_str</a>(s: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> <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="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class='docblock'>Parses a string <code>s</code> to return a value of this type. <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-FromTree-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-FromTree-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> FromTree for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey + <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Sha256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Ripemd160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_tree" class="method trait-impl has-srclink"><a href="#method.from_tree" class="anchor">§</a><h4 class="code-header">fn <a class="fn">from_tree</a>(top: &Tree<'_>) -> <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="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Parse an expression tree into a descriptor.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Hash-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> + MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)<span class="where fmt-newline">where<br> __H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Liftable%3CPk%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Liftable%3CPk%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> Liftable<Pk> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lift" class="method trait-impl has-srclink"><a href="#method.lift" class="anchor">§</a><h4 class="code-header">fn <a class="fn">lift</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Policy<Pk>, Error></h4></section></summary><div class='docblock'>Converts this object into an abstract policy.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Ord-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CDescriptor%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-PartialEq%3CDescriptor%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk>> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><Pk> + MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CDescriptor%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-PartialOrd%3CDescriptor%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk>> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Pk> + MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Serialize-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<'de, Pk> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><S>(<br> &self,<br> serializer: S<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<S as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, <S as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-TranslatePk%3CP%2C%20Q%3E-for-Descriptor%3CP%3E" class="impl has-srclink"><a href="#impl-TranslatePk%3CP%2C%20Q%3E-for-Descriptor%3CP%3E" class="anchor">§</a><h3 class="code-header">impl<P, Q> TranslatePk<P, Q> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><P><span class="where fmt-newline">where<br> P: MiniscriptKey,<br> Q: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.translate_pk" class="method trait-impl has-srclink"><a href="#method.translate_pk" class="anchor">§</a><h4 class="code-header">fn <a class="fn">translate_pk</a><T, E>(<br> &self,<br> t: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T<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="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><P> as TranslatePk<P, Q>>::Output, TranslateErr<E>><span class="where fmt-newline">where<br> T: Translator<P, Q, E>,</span></h4></section></summary><div class="docblock"><p>Converts a descriptor using abstract keys to one using specific keys.</p>
-</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Output</a> = <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Q></h4></section></summary><div class='docblock'>The associated output type. This must be <code>Self<Q></code>.</div></details></div></details><section id="impl-Eq-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Eq-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + MiniscriptKey,</span></h3></section><section id="impl-StructuralEq-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-StructuralEq-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section><section id="impl-StructuralPartialEq-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-StructuralPartialEq-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Send-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Sync-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Sync-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Descriptor%3CPk%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-6" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-6" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Descriptor%3CPk%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-Descriptor%3CPk%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details><section id="impl-DeserializeOwned-for-Descriptor%3CPk%3E" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/serde/1.0.201/src/serde/de/mod.rs.html#608">source</a><a href="#impl-DeserializeOwned-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> for T<span class="where fmt-newline">where<br> T: for<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de>,</span></h3></section></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="The descriptor pubkey, either a single pubkey or an xpub."><meta name="keywords" content="rust, rustlang, rust-lang, DescriptorPublicKey"><title>DescriptorPublicKey in bdk::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">DescriptorPublicKey</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.MultiXPub">MultiXPub</a></li><li><a href="#variant.Single">Single</a></li><li><a href="#variant.XPub">XPub</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.at_derivation_index">at_derivation_index</a></li><li><a href="#method.derive">derive</a></li><li><a href="#method.full_derivation_path">full_derivation_path</a></li><li><a href="#method.full_derivation_paths">full_derivation_paths</a></li><li><a href="#method.has_wildcard">has_wildcard</a></li><li><a href="#method.into_single_keys">into_single_keys</a></li><li><a href="#method.is_deriveable">is_deriveable</a></li><li><a href="#method.is_multipath">is_multipath</a></li><li><a href="#method.master_fingerprint">master_fingerprint</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-DescriptorPublicKey">Clone</a></li><li><a href="#impl-Debug-for-DescriptorPublicKey">Debug</a></li><li><a href="#impl-Deserialize%3C%27de%3E-for-DescriptorPublicKey">Deserialize<'de></a></li><li><a href="#impl-Display-for-DescriptorPublicKey">Display</a></li><li><a href="#impl-Eq-for-DescriptorPublicKey">Eq</a></li><li><a href="#impl-From%3CDefiniteDescriptorKey%3E-for-DescriptorPublicKey">From<DefiniteDescriptorKey></a></li><li><a href="#impl-FromStr-for-DescriptorPublicKey">FromStr</a></li><li><a href="#impl-Hash-for-DescriptorPublicKey">Hash</a></li><li><a href="#impl-IntoAssets-for-DescriptorPublicKey">IntoAssets</a></li><li><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorPublicKey">IntoDescriptorKey<Ctx></a></li><li><a href="#impl-MiniscriptKey-for-DescriptorPublicKey">MiniscriptKey</a></li><li><a href="#impl-Ord-for-DescriptorPublicKey">Ord</a></li><li><a href="#impl-PartialEq%3CDescriptorPublicKey%3E-for-DescriptorPublicKey">PartialEq<DescriptorPublicKey></a></li><li><a href="#impl-PartialOrd%3CDescriptorPublicKey%3E-for-DescriptorPublicKey">PartialOrd<DescriptorPublicKey></a></li><li><a href="#impl-Serialize-for-DescriptorPublicKey">Serialize</a></li><li><a href="#impl-StructuralEq-for-DescriptorPublicKey">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-DescriptorPublicKey">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-DescriptorPublicKey">RefUnwindSafe</a></li><li><a href="#impl-Send-for-DescriptorPublicKey">Send</a></li><li><a href="#impl-Sync-for-DescriptorPublicKey">Sync</a></li><li><a href="#impl-Unpin-for-DescriptorPublicKey">Unpin</a></li><li><a href="#impl-UnwindSafe-for-DescriptorPublicKey">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-DescriptorPublicKey">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-DescriptorPublicKey">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-DescriptorPublicKey">BorrowMut<T></a></li><li><a href="#impl-DeserializeOwned-for-DescriptorPublicKey">DeserializeOwned</a></li><li><a href="#impl-From%3CT%3E-for-DescriptorPublicKey">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-DescriptorPublicKey">Into<U></a></li><li><a href="#impl-ToOwned-for-DescriptorPublicKey">ToOwned</a></li><li><a href="#impl-ToString-for-DescriptorPublicKey">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-DescriptorPublicKey">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-DescriptorPublicKey">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-DescriptorPublicKey">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="enum" href="#">DescriptorPublicKey</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum DescriptorPublicKey {
- Single(<a class="struct" href="../keys/struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</a>),
- XPub(DescriptorXKey<Xpub>),
- MultiXPub(DescriptorMultiXKey<Xpub>),
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The descriptor pubkey, either a single pubkey or an xpub.</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Single" class="variant"><a href="#variant.Single" class="anchor">§</a><h3 class="code-header">Single(<a class="struct" href="../keys/struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</a>)</h3></section><div class="docblock"><p>Single public key.</p>
-</div><section id="variant.XPub" class="variant"><a href="#variant.XPub" class="anchor">§</a><h3 class="code-header">XPub(DescriptorXKey<Xpub>)</h3></section><div class="docblock"><p>Extended public key (xpub).</p>
-</div><section id="variant.MultiXPub" class="variant"><a href="#variant.MultiXPub" class="anchor">§</a><h3 class="code-header">MultiXPub(DescriptorMultiXKey<Xpub>)</h3></section><div class="docblock"><p>Multiple extended public keys.</p>
-</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.master_fingerprint" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.master_fingerprint" class="fn">master_fingerprint</a>(&self) -> Fingerprint</h4></section></summary><div class="docblock"><p>The fingerprint of the master key associated with this key, <code>0x00000000</code> if none.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.full_derivation_path" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.full_derivation_path" class="fn">full_derivation_path</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><DerivationPath></h4></section></summary><div class="docblock"><p>Full path, from the master key</p>
-<p>For wildcard keys this will return the path up to the wildcard, so you
-can get full paths by appending one additional derivation step, according
-to the wildcard type (hardened or normal).</p>
-<p>For multipath extended keys, this returns <code>None</code>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.full_derivation_paths" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.full_derivation_paths" class="fn">full_derivation_paths</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><DerivationPath, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>></h4></section></summary><div class="docblock"><p>Returns a vector containing the full derivation paths from the master key.
-The vector will contain just one element for single keys, and multiple elements
-for multipath extended keys.</p>
-<p>For wildcard keys this will return the path up to the wildcard, so you
-can get full paths by appending one additional derivation step, according
-to the wildcard type (hardened or normal).</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_deriveable" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_deriveable" class="fn">is_deriveable</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: use has_wildcard instead</span></div></span></summary><div class="docblock"><p>Whether or not the key has a wildcard</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.has_wildcard" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.has_wildcard" class="fn">has_wildcard</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether or not the key has a wildcard</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.derive" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.derive" class="fn">derive</a>(self, index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><DefiniteDescriptorKey, ConversionError></h4></section><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: use at_derivation_index instead</span></div></span></summary><div class="docblock"><p>Deprecated name for <a href="../keys/enum.DescriptorPublicKey.html#method.at_derivation_index" title="Self::at_derivation_index"><code>Self::at_derivation_index</code></a>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.at_derivation_index" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.at_derivation_index" class="fn">at_derivation_index</a>(<br> self,<br> index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><DefiniteDescriptorKey, ConversionError></h4></section></summary><div class="docblock"><p>Replaces any wildcard (i.e. <code>/*</code>) in the key with a particular derivation index, turning it into a
-<em>definite</em> key (i.e. one where all the derivation paths are set).</p>
-<h5 id="returns"><a href="#returns">Returns</a></h5>
-<ul>
-<li>If this key is not an xpub, returns <code>self</code>.</li>
-<li>If this key is an xpub but does not have a wildcard, returns <code>self</code>.</li>
-<li>Otherwise, returns the xpub at derivation <code>index</code> (removing the wildcard).</li>
-</ul>
-<h5 id="errors"><a href="#errors">Errors</a></h5>
-<ul>
-<li>If <code>index</code> is hardened.</li>
-</ul>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_multipath" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_multipath" class="fn">is_multipath</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether or not this key has multiple derivation paths.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_single_keys" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.into_single_keys" class="fn">into_single_keys</a>(self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>></h4></section></summary><div class="docblock"><p>Get as many keys as derivation paths in this key.</p>
-<p>For raw public key and single-path extended keys it will return the key itself.
-For multipath extended keys it will return a single-path extended key per derivation
-path.</p>
-</div></details></div></details></div><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><section id="impl-Clone-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Clone-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Debug-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserialize%3C%27de%3E-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Deserialize%3C%27de%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl has-srclink"><a href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize" class="fn">deserialize</a><D>(<br> deserializer: D<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="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <D as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>><span class="where fmt-newline">where<br> D: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Display-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CDefiniteDescriptorKey%3E-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-From%3CDefiniteDescriptorKey%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><DefiniteDescriptorKey> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(d: DefiniteDescriptorKey) -> <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-FromStr-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-FromStr-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Err" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Err" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" class="associatedtype">Err</a> = DescriptorKeyParseError</h4></section></summary><div class='docblock'>The associated error which can be returned from parsing.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_str" class="method trait-impl has-srclink"><a href="#method.from_str" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str" class="fn">from_str</a>(<br> s: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</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="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a> as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>></h4></section></summary><div class='docblock'>Parses a string <code>s</code> to return a value of this type. <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Hash-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)<span class="where fmt-newline">where<br> __H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-IntoAssets-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-IntoAssets-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl IntoAssets for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_assets" class="method trait-impl has-srclink"><a href="#method.into_assets" class="anchor">§</a><h4 class="code-header">fn <a class="fn">into_assets</a>(self) -> Assets</h4></section></summary><div class='docblock'>Convert <code>self</code> into a <code>Assets</code> struct</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#844-858">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="../keys/trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_descriptor_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#845-857">source</a><a href="#method.into_descriptor_key" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.IntoDescriptorKey.html#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="../keys/enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="../keys/enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>></h4></section></summary><div class='docblock'>Turn the key into a <a href="../keys/enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a> within the requested <a href="../keys/trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-MiniscriptKey-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-MiniscriptKey-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl MiniscriptKey for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Sha256" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Sha256" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Sha256</a> = Hash</h4></section></summary><div class='docblock'>The associated [<code>bitcoin::hashes::sha256::Hash</code>] for this [<code>MiniscriptKey</code>], used in the
-sha256 fragment. <a>Read more</a></div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Hash256" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Hash256" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Hash256</a> = Hash</h4></section></summary><div class='docblock'>The associated [<code>miniscript::hash256::Hash</code>] for this [<code>MiniscriptKey</code>], used in the
-hash256 fragment. <a>Read more</a></div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Ripemd160" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Ripemd160" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Ripemd160</a> = Hash</h4></section></summary><div class='docblock'>The associated [<code>bitcoin::hashes::ripemd160::Hash</code>] for this [<code>MiniscriptKey</code>] type, used
-in the ripemd160 fragment. <a>Read more</a></div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Hash160" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Hash160" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Hash160</a> = Hash</h4></section></summary><div class='docblock'>The associated [<code>bitcoin::hashes::hash160::Hash</code>] for this [<code>MiniscriptKey</code>] type, used in
-the hash160 fragment. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_uncompressed" class="method trait-impl has-srclink"><a href="#method.is_uncompressed" class="anchor">§</a><h4 class="code-header">fn <a class="fn">is_uncompressed</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns true if the pubkey is uncompressed. Defaults to <code>false</code>.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_x_only_key" class="method trait-impl has-srclink"><a href="#method.is_x_only_key" class="anchor">§</a><h4 class="code-header">fn <a class="fn">is_x_only_key</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns true if the pubkey is an x-only pubkey. Defaults to <code>false</code>.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.num_der_paths" class="method trait-impl has-srclink"><a href="#method.num_der_paths" class="anchor">§</a><h4 class="code-header">fn <a class="fn">num_der_paths</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class='docblock'>Returns the number of different derivation paths in this key. Only >1 for keys
-in BIP389 multipath descriptors. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Ord-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CDescriptorPublicKey%3E-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-PartialEq%3CDescriptorPublicKey%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CDescriptorPublicKey%3E-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-PartialOrd%3CDescriptorPublicKey%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Serialize-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><S>(<br> &self,<br> serializer: S<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<S as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, <S as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Eq-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-StructuralEq-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-StructuralEq-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-StructuralPartialEq-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-StructuralPartialEq-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-Send-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Send-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-Sync-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Sync-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-Unpin-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Unpin-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-UnwindSafe-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-UnwindSafe-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details><section id="impl-DeserializeOwned-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/serde/1.0.201/src/serde/de/mod.rs.html#608">source</a><a href="#impl-DeserializeOwned-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> for T<span class="where fmt-newline">where<br> T: for<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de>,</span></h3></section></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Legacy ScriptContext To be used as P2SH scripts For creation of Bare scriptpubkeys, construct the Miniscript under `Bare` ScriptContext"><meta name="keywords" content="rust, rustlang, rust-lang, Legacy"><title>Legacy in bdk::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Legacy</a></h2><div class="sidebar-elems"><section><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-Legacy">Clone</a></li><li><a href="#impl-Debug-for-Legacy">Debug</a></li><li><a href="#impl-Eq-for-Legacy">Eq</a></li><li><a href="#impl-Hash-for-Legacy">Hash</a></li><li><a href="#impl-Ord-for-Legacy">Ord</a></li><li><a href="#impl-PartialEq%3CLegacy%3E-for-Legacy">PartialEq<Legacy></a></li><li><a href="#impl-PartialOrd%3CLegacy%3E-for-Legacy">PartialOrd<Legacy></a></li><li><a href="#impl-ScriptContext-for-Legacy">ScriptContext</a></li><li><a href="#impl-StructuralEq-for-Legacy">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-Legacy">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Legacy">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Legacy">Send</a></li><li><a href="#impl-Sync-for-Legacy">Sync</a></li><li><a href="#impl-Unpin-for-Legacy">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Legacy">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Legacy">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Legacy">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Legacy">BorrowMut<T></a></li><li><a href="#impl-ExtScriptContext-for-Legacy">ExtScriptContext</a></li><li><a href="#impl-From%3CT%3E-for-Legacy">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Legacy">Into<U></a></li><li><a href="#impl-ToOwned-for-Legacy">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Legacy">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Legacy">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Legacy">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="enum" href="#">Legacy</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum Legacy {}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Legacy ScriptContext
-To be used as P2SH scripts
-For creation of Bare scriptpubkeys, construct the Miniscript
-under <code>Bare</code> ScriptContext</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><section id="impl-Clone-for-Legacy" class="impl has-srclink"><a href="#impl-Clone-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Legacy" class="impl has-srclink"><a href="#impl-Debug-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-Legacy" class="impl has-srclink"><a href="#impl-Hash-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)<span class="where fmt-newline">where<br> __H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-Legacy" class="impl has-srclink"><a href="#impl-Ord-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CLegacy%3E-for-Legacy" class="impl has-srclink"><a href="#impl-PartialEq%3CLegacy%3E-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a>> for <a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CLegacy%3E-for-Legacy" class="impl has-srclink"><a href="#impl-PartialOrd%3CLegacy%3E-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a>> for <a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ScriptContext-for-Legacy" class="impl has-srclink"><a href="#impl-ScriptContext-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Key" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Key" class="anchor">§</a><h4 class="code-header">type <a href="../keys/trait.ScriptContext.html#associatedtype.Key" class="associatedtype">Key</a> = PublicKey</h4></section></summary><div class='docblock'>The consensus key associated with the type. Must be a parseable key</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_terminal_non_malleable" class="method trait-impl has-srclink"><a href="#method.check_terminal_non_malleable" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.check_terminal_non_malleable" class="fn">check_terminal_non_malleable</a><Pk>(<br> frag: &Terminal<Pk, <a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Depending on ScriptContext, fragments can be malleable. For Example,
-under Legacy context, PkH is malleable because it is possible to
-estimate the cost of satisfaction because of compressed keys
-This is currently only used in compiler code for removing malleable
-compilations.
-This does NOT recursively check if the children of the fragment are
-valid or not. Since the compilation proceeds in a leaf to root fashion,
-a recursive check is unnecessary. <a href="../keys/trait.ScriptContext.html#tymethod.check_terminal_non_malleable">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_pk" class="method trait-impl has-srclink"><a href="#method.check_pk" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.check_pk" class="fn">check_pk</a><Pk>(pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Each context has slightly different rules on what Pks are allowed in descriptors
-Legacy/Bare does not allow x_only keys
-Segwit does not allow uncompressed keys and x_only keys
-Tapscript does not allow uncompressed keys <a href="../keys/trait.ScriptContext.html#tymethod.check_pk">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_witness" class="method trait-impl has-srclink"><a href="#method.check_witness" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_witness" class="fn">check_witness</a><Pk>(<br> witness: &[<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>>]<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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Check whether the given satisfaction is valid under the ScriptContext
-For example, segwit satisfactions may fail if the witness len is more
-3600 or number of stack elements are more than 100. <a href="../keys/trait.ScriptContext.html#method.check_witness">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_consensus_validity" class="method trait-impl has-srclink"><a href="#method.check_global_consensus_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_global_consensus_validity" class="fn">check_global_consensus_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Depending on script Context, some of the Terminals might not
-be valid under the current consensus rules.
-Or some of the script resource limits may have been exceeded.
-These miniscripts would never be accepted by the Bitcoin network and hence
-it is safe to discard them
-For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey
-uncompressed public keys are non-standard and thus invalid.
-In LegacyP2SH context, scripts above 520 bytes are invalid.
-Post Tapscript upgrade, this would have to consider other nodes.
-This does <em>NOT</em> recursively check the miniscript fragments. <a href="../keys/trait.ScriptContext.html#method.check_global_consensus_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_consensus_validity" class="method trait-impl has-srclink"><a href="#method.check_local_consensus_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_local_consensus_validity" class="fn">check_local_consensus_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Consensus rules at the Miniscript satisfaction time.
-It is possible that some paths of miniscript may exceed resource limits
-and our current satisfier and lifting analysis would not work correctly.
-For example, satisfaction path(Legacy/Segwitv0) may require more than 201 opcodes. <a href="../keys/trait.ScriptContext.html#method.check_local_consensus_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_policy_validity" class="method trait-impl has-srclink"><a href="#method.check_local_policy_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_local_policy_validity" class="fn">check_local_policy_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Policy rules at the Miniscript satisfaction time.
-It is possible that some paths of miniscript may exceed resource limits
-and our current satisfier and lifting analysis would not work correctly.
-For example, satisfaction path in Legacy context scriptSig more
-than 1650 bytes <a href="../keys/trait.ScriptContext.html#method.check_local_policy_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_satisfaction_size" class="method trait-impl has-srclink"><a href="#method.max_satisfaction_size" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.max_satisfaction_size" class="fn">max_satisfaction_size</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Depending on script context, the size of a satifaction witness may slightly differ.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.pk_len" class="method trait-impl has-srclink"><a href="#method.pk_len" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.pk_len" class="fn">pk_len</a><Pk>(pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Get the len of public key when serialized based on context
-Note that this includes the serialization prefix. Returns
-34/66 for Bare/Legacy based on key compressedness
-34 for Segwitv0, 33 for Tap <a href="../keys/trait.ScriptContext.html#tymethod.pk_len">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.name_str" class="method trait-impl has-srclink"><a href="#method.name_str" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.name_str" class="fn">name_str</a>() -> &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><div class='docblock'>Local helper function to display error messages with context</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sig_type" class="method trait-impl has-srclink"><a href="#method.sig_type" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.sig_type" class="fn">sig_type</a>() -> SigType</h4></section></summary><div class='docblock'>The type of signature required for satisfaction</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_policy_validity" class="method trait-impl has-srclink"><a href="#method.check_global_policy_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_global_policy_validity" class="fn">check_global_policy_validity</a><Pk>(<br> _ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Depending on script Context, some of the script resource limits
-may have been exceeded under the current bitcoin core policy rules
-These miniscripts would never be accepted by the Bitcoin network and hence
-it is safe to discard them. (unless explicitly disabled by non-standard flag)
-For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey
-scripts over 3600 bytes are invalid.
-Post Tapscript upgrade, this would have to consider other nodes.
-This does <em>NOT</em> recursively check the miniscript fragments. <a href="../keys/trait.ScriptContext.html#method.check_global_policy_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_validity" class="method trait-impl has-srclink"><a href="#method.check_global_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_global_validity" class="fn">check_global_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Check the consensus + policy(if not disabled) rules that are not based
-satisfaction <a href="../keys/trait.ScriptContext.html#method.check_global_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_validity" class="method trait-impl has-srclink"><a href="#method.check_local_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_local_validity" class="fn">check_local_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Check the consensus + policy(if not disabled) rules including the
-ones for satisfaction <a href="../keys/trait.ScriptContext.html#method.check_local_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.top_level_type_check" class="method trait-impl has-srclink"><a href="#method.top_level_type_check" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.top_level_type_check" class="fn">top_level_type_check</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Check whether the top-level is type B</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.other_top_level_checks" class="method trait-impl has-srclink"><a href="#method.other_top_level_checks" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.other_top_level_checks" class="fn">other_top_level_checks</a><Pk>(_ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Other top level checks that are context specific</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.top_level_checks" class="method trait-impl has-srclink"><a href="#method.top_level_checks" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.top_level_checks" class="fn">top_level_checks</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Check top level consensus rules.</div></details></div></details><section id="impl-Eq-for-Legacy" class="impl has-srclink"><a href="#impl-Eq-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a></h3></section><section id="impl-StructuralEq-for-Legacy" class="impl has-srclink"><a href="#impl-StructuralEq-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a></h3></section><section id="impl-StructuralPartialEq-for-Legacy" class="impl has-srclink"><a href="#impl-StructuralPartialEq-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Legacy" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a></h3></section><section id="impl-Send-for-Legacy" class="impl has-srclink"><a href="#impl-Send-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a></h3></section><section id="impl-Sync-for-Legacy" class="impl has-srclink"><a href="#impl-Sync-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a></h3></section><section id="impl-Unpin-for-Legacy" class="impl has-srclink"><a href="#impl-Unpin-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a></h3></section><section id="impl-UnwindSafe-for-Legacy" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Legacy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Legacy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Legacy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Legacy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Legacy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Legacy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ExtScriptContext-for-Legacy" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#175-184">source</a><a href="#impl-ExtScriptContext-for-Legacy" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="../keys/trait.ExtScriptContext.html" title="trait bdk::keys::ExtScriptContext">ExtScriptContext</a> for Ctx<span class="where fmt-newline">where<br> Ctx: 'static + <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_enum" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#176-183">source</a><a href="#method.as_enum" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ExtScriptContext.html#tymethod.as_enum" class="fn">as_enum</a>() -> <a class="enum" href="../keys/enum.ScriptContextEnum.html" title="enum bdk::keys::ScriptContextEnum">ScriptContextEnum</a></h4></section></summary><div class='docblock'>Returns the <a href="../keys/trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a> as a <a href="../keys/enum.ScriptContextEnum.html" title="ScriptContextEnum"><code>ScriptContextEnum</code></a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_legacy" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#160-162">source</a><a href="#method.is_legacy" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ExtScriptContext.html#method.is_legacy" class="fn">is_legacy</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns whether the script context is <a href="enum.Legacy.html"><code>Legacy</code></a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_segwit_v0" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#165-167">source</a><a href="#method.is_segwit_v0" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ExtScriptContext.html#method.is_segwit_v0" class="fn">is_segwit_v0</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns whether the script context is <a href="enum.Segwitv0.html"><code>Segwitv0</code></a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_taproot" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#170-172">source</a><a href="#method.is_taproot" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ExtScriptContext.html#method.is_taproot" class="fn">is_taproot</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns whether the script context is <a href="miniscript::Tap"><code>Tap</code></a>, aka Taproot or Segwit V1</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Legacy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Legacy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Legacy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Legacy" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Legacy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-Legacy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Legacy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Legacy" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Legacy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Legacy" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Legacy" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Legacy" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Segwitv0 ScriptContext"><meta name="keywords" content="rust, rustlang, rust-lang, Segwitv0"><title>Segwitv0 in bdk::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Segwitv0</a></h2><div class="sidebar-elems"><section><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-Segwitv0">Clone</a></li><li><a href="#impl-Debug-for-Segwitv0">Debug</a></li><li><a href="#impl-Eq-for-Segwitv0">Eq</a></li><li><a href="#impl-Hash-for-Segwitv0">Hash</a></li><li><a href="#impl-Ord-for-Segwitv0">Ord</a></li><li><a href="#impl-PartialEq%3CSegwitv0%3E-for-Segwitv0">PartialEq<Segwitv0></a></li><li><a href="#impl-PartialOrd%3CSegwitv0%3E-for-Segwitv0">PartialOrd<Segwitv0></a></li><li><a href="#impl-ScriptContext-for-Segwitv0">ScriptContext</a></li><li><a href="#impl-StructuralEq-for-Segwitv0">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-Segwitv0">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Segwitv0">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Segwitv0">Send</a></li><li><a href="#impl-Sync-for-Segwitv0">Sync</a></li><li><a href="#impl-Unpin-for-Segwitv0">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Segwitv0">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Segwitv0">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Segwitv0">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Segwitv0">BorrowMut<T></a></li><li><a href="#impl-ExtScriptContext-for-Segwitv0">ExtScriptContext</a></li><li><a href="#impl-From%3CT%3E-for-Segwitv0">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Segwitv0">Into<U></a></li><li><a href="#impl-ToOwned-for-Segwitv0">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Segwitv0">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Segwitv0">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Segwitv0">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="enum" href="#">Segwitv0</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum Segwitv0 {}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Segwitv0 ScriptContext</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><section id="impl-Clone-for-Segwitv0" class="impl has-srclink"><a href="#impl-Clone-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Segwitv0" class="impl has-srclink"><a href="#impl-Debug-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-Segwitv0" class="impl has-srclink"><a href="#impl-Hash-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)<span class="where fmt-newline">where<br> __H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-Segwitv0" class="impl has-srclink"><a href="#impl-Ord-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CSegwitv0%3E-for-Segwitv0" class="impl has-srclink"><a href="#impl-PartialEq%3CSegwitv0%3E-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CSegwitv0%3E-for-Segwitv0" class="impl has-srclink"><a href="#impl-PartialOrd%3CSegwitv0%3E-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ScriptContext-for-Segwitv0" class="impl has-srclink"><a href="#impl-ScriptContext-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Key" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Key" class="anchor">§</a><h4 class="code-header">type <a href="../keys/trait.ScriptContext.html#associatedtype.Key" class="associatedtype">Key</a> = PublicKey</h4></section></summary><div class='docblock'>The consensus key associated with the type. Must be a parseable key</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_terminal_non_malleable" class="method trait-impl has-srclink"><a href="#method.check_terminal_non_malleable" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.check_terminal_non_malleable" class="fn">check_terminal_non_malleable</a><Pk>(<br> _frag: &Terminal<Pk, <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Depending on ScriptContext, fragments can be malleable. For Example,
-under Legacy context, PkH is malleable because it is possible to
-estimate the cost of satisfaction because of compressed keys
-This is currently only used in compiler code for removing malleable
-compilations.
-This does NOT recursively check if the children of the fragment are
-valid or not. Since the compilation proceeds in a leaf to root fashion,
-a recursive check is unnecessary. <a href="../keys/trait.ScriptContext.html#tymethod.check_terminal_non_malleable">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_pk" class="method trait-impl has-srclink"><a href="#method.check_pk" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.check_pk" class="fn">check_pk</a><Pk>(pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Each context has slightly different rules on what Pks are allowed in descriptors
-Legacy/Bare does not allow x_only keys
-Segwit does not allow uncompressed keys and x_only keys
-Tapscript does not allow uncompressed keys <a href="../keys/trait.ScriptContext.html#tymethod.check_pk">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_witness" class="method trait-impl has-srclink"><a href="#method.check_witness" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_witness" class="fn">check_witness</a><Pk>(<br> witness: &[<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>>]<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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Check whether the given satisfaction is valid under the ScriptContext
-For example, segwit satisfactions may fail if the witness len is more
-3600 or number of stack elements are more than 100. <a href="../keys/trait.ScriptContext.html#method.check_witness">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_consensus_validity" class="method trait-impl has-srclink"><a href="#method.check_global_consensus_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_global_consensus_validity" class="fn">check_global_consensus_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Depending on script Context, some of the Terminals might not
-be valid under the current consensus rules.
-Or some of the script resource limits may have been exceeded.
-These miniscripts would never be accepted by the Bitcoin network and hence
-it is safe to discard them
-For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey
-uncompressed public keys are non-standard and thus invalid.
-In LegacyP2SH context, scripts above 520 bytes are invalid.
-Post Tapscript upgrade, this would have to consider other nodes.
-This does <em>NOT</em> recursively check the miniscript fragments. <a href="../keys/trait.ScriptContext.html#method.check_global_consensus_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_consensus_validity" class="method trait-impl has-srclink"><a href="#method.check_local_consensus_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_local_consensus_validity" class="fn">check_local_consensus_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Consensus rules at the Miniscript satisfaction time.
-It is possible that some paths of miniscript may exceed resource limits
-and our current satisfier and lifting analysis would not work correctly.
-For example, satisfaction path(Legacy/Segwitv0) may require more than 201 opcodes. <a href="../keys/trait.ScriptContext.html#method.check_local_consensus_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_policy_validity" class="method trait-impl has-srclink"><a href="#method.check_global_policy_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_global_policy_validity" class="fn">check_global_policy_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Depending on script Context, some of the script resource limits
-may have been exceeded under the current bitcoin core policy rules
-These miniscripts would never be accepted by the Bitcoin network and hence
-it is safe to discard them. (unless explicitly disabled by non-standard flag)
-For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey
-scripts over 3600 bytes are invalid.
-Post Tapscript upgrade, this would have to consider other nodes.
-This does <em>NOT</em> recursively check the miniscript fragments. <a href="../keys/trait.ScriptContext.html#method.check_global_policy_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_policy_validity" class="method trait-impl has-srclink"><a href="#method.check_local_policy_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_local_policy_validity" class="fn">check_local_policy_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Policy rules at the Miniscript satisfaction time.
-It is possible that some paths of miniscript may exceed resource limits
-and our current satisfier and lifting analysis would not work correctly.
-For example, satisfaction path in Legacy context scriptSig more
-than 1650 bytes <a href="../keys/trait.ScriptContext.html#method.check_local_policy_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_satisfaction_size" class="method trait-impl has-srclink"><a href="#method.max_satisfaction_size" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.max_satisfaction_size" class="fn">max_satisfaction_size</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Depending on script context, the size of a satifaction witness may slightly differ.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.pk_len" class="method trait-impl has-srclink"><a href="#method.pk_len" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.pk_len" class="fn">pk_len</a><Pk>(_pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Get the len of public key when serialized based on context
-Note that this includes the serialization prefix. Returns
-34/66 for Bare/Legacy based on key compressedness
-34 for Segwitv0, 33 for Tap <a href="../keys/trait.ScriptContext.html#tymethod.pk_len">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.name_str" class="method trait-impl has-srclink"><a href="#method.name_str" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.name_str" class="fn">name_str</a>() -> &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><div class='docblock'>Local helper function to display error messages with context</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sig_type" class="method trait-impl has-srclink"><a href="#method.sig_type" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.sig_type" class="fn">sig_type</a>() -> SigType</h4></section></summary><div class='docblock'>The type of signature required for satisfaction</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_validity" class="method trait-impl has-srclink"><a href="#method.check_global_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_global_validity" class="fn">check_global_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Check the consensus + policy(if not disabled) rules that are not based
-satisfaction <a href="../keys/trait.ScriptContext.html#method.check_global_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_validity" class="method trait-impl has-srclink"><a href="#method.check_local_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_local_validity" class="fn">check_local_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Check the consensus + policy(if not disabled) rules including the
-ones for satisfaction <a href="../keys/trait.ScriptContext.html#method.check_local_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.top_level_type_check" class="method trait-impl has-srclink"><a href="#method.top_level_type_check" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.top_level_type_check" class="fn">top_level_type_check</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Check whether the top-level is type B</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.other_top_level_checks" class="method trait-impl has-srclink"><a href="#method.other_top_level_checks" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.other_top_level_checks" class="fn">other_top_level_checks</a><Pk>(_ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Other top level checks that are context specific</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.top_level_checks" class="method trait-impl has-srclink"><a href="#method.top_level_checks" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.top_level_checks" class="fn">top_level_checks</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Check top level consensus rules.</div></details></div></details><section id="impl-Eq-for-Segwitv0" class="impl has-srclink"><a href="#impl-Eq-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a></h3></section><section id="impl-StructuralEq-for-Segwitv0" class="impl has-srclink"><a href="#impl-StructuralEq-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a></h3></section><section id="impl-StructuralPartialEq-for-Segwitv0" class="impl has-srclink"><a href="#impl-StructuralPartialEq-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Segwitv0" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a></h3></section><section id="impl-Send-for-Segwitv0" class="impl has-srclink"><a href="#impl-Send-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a></h3></section><section id="impl-Sync-for-Segwitv0" class="impl has-srclink"><a href="#impl-Sync-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a></h3></section><section id="impl-Unpin-for-Segwitv0" class="impl has-srclink"><a href="#impl-Unpin-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a></h3></section><section id="impl-UnwindSafe-for-Segwitv0" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Segwitv0" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Segwitv0" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Segwitv0" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ExtScriptContext-for-Segwitv0" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#175-184">source</a><a href="#impl-ExtScriptContext-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="../keys/trait.ExtScriptContext.html" title="trait bdk::keys::ExtScriptContext">ExtScriptContext</a> for Ctx<span class="where fmt-newline">where<br> Ctx: 'static + <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_enum" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#176-183">source</a><a href="#method.as_enum" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ExtScriptContext.html#tymethod.as_enum" class="fn">as_enum</a>() -> <a class="enum" href="../keys/enum.ScriptContextEnum.html" title="enum bdk::keys::ScriptContextEnum">ScriptContextEnum</a></h4></section></summary><div class='docblock'>Returns the <a href="../keys/trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a> as a <a href="../keys/enum.ScriptContextEnum.html" title="ScriptContextEnum"><code>ScriptContextEnum</code></a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_legacy" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#160-162">source</a><a href="#method.is_legacy" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ExtScriptContext.html#method.is_legacy" class="fn">is_legacy</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns whether the script context is <a href="enum.Legacy.html"><code>Legacy</code></a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_segwit_v0" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#165-167">source</a><a href="#method.is_segwit_v0" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ExtScriptContext.html#method.is_segwit_v0" class="fn">is_segwit_v0</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns whether the script context is <a href="enum.Segwitv0.html"><code>Segwitv0</code></a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_taproot" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#170-172">source</a><a href="#method.is_taproot" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ExtScriptContext.html#method.is_taproot" class="fn">is_taproot</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns whether the script context is <a href="miniscript::Tap"><code>Tap</code></a>, aka Taproot or Segwit V1</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Segwitv0" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Segwitv0" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Segwitv0" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Segwitv0" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Segwitv0" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Segwitv0" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Errors related to the parsing and usage of descriptors"><meta name="keywords" content="rust, rustlang, rust-lang, Error"><title>Error in bdk::descriptor::error - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Error</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Base58">Base58</a></li><li><a href="#variant.Bip32">Bip32</a></li><li><a href="#variant.HardenedDerivationXpub">HardenedDerivationXpub</a></li><li><a href="#variant.Hex">Hex</a></li><li><a href="#variant.InvalidDescriptorCharacter">InvalidDescriptorCharacter</a></li><li><a href="#variant.InvalidDescriptorChecksum">InvalidDescriptorChecksum</a></li><li><a href="#variant.InvalidHdKeyPath">InvalidHdKeyPath</a></li><li><a href="#variant.Key">Key</a></li><li><a href="#variant.Miniscript">Miniscript</a></li><li><a href="#variant.MultiPath">MultiPath</a></li><li><a href="#variant.Pk">Pk</a></li><li><a href="#variant.Policy">Policy</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-Error">Debug</a></li><li><a href="#impl-Display-for-Error">Display</a></li><li><a href="#impl-Error-for-Error">Error</a></li><li><a href="#impl-From%3CError%3E-for-CreateTxError">From<Error></a></li><li><a href="#impl-From%3CError%3E-for-Error">From<Error></a></li><li><a href="#impl-From%3CError%3E-for-Error-1">From<Error></a></li><li><a href="#impl-From%3CError%3E-for-Error-2">From<Error></a></li><li><a href="#impl-From%3CError%3E-for-Error-3">From<Error></a></li><li><a href="#impl-From%3CHexToBytesError%3E-for-Error">From<HexToBytesError></a></li><li><a href="#impl-From%3CKeyError%3E-for-Error">From<KeyError></a></li><li><a href="#impl-From%3CPolicyError%3E-for-Error">From<PolicyError></a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Error">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Error">Send</a></li><li><a href="#impl-Sync-for-Error">Sync</a></li><li><a href="#impl-Unpin-for-Error">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Error">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Error">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Error">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Error">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Error">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Error">Into<U></a></li><li><a href="#impl-Provider-for-Error">Provider</a></li><li><a href="#impl-ToString-for-Error">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Error">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Error">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Error">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor::error</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">error</a>::<wbr><a class="enum" href="#">Error</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/error.rs.html#17-45">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum Error {
- InvalidHdKeyPath,
- InvalidDescriptorChecksum,
- HardenedDerivationXpub,
- MultiPath,
- Key(<a class="enum" href="../../keys/enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>),
- Policy(<a class="enum" href="../policy/enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a>),
- InvalidDescriptorCharacter(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>),
- Bip32(Error),
- Base58(Error),
- Pk(Error),
- Miniscript(Error),
- Hex(HexToBytesError),
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Errors related to the parsing and usage of descriptors</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.InvalidHdKeyPath" class="variant"><a href="#variant.InvalidHdKeyPath" class="anchor">§</a><h3 class="code-header">InvalidHdKeyPath</h3></section><div class="docblock"><p>Invalid HD Key path, such as having a wildcard but a length != 1</p>
-</div><section id="variant.InvalidDescriptorChecksum" class="variant"><a href="#variant.InvalidDescriptorChecksum" class="anchor">§</a><h3 class="code-header">InvalidDescriptorChecksum</h3></section><div class="docblock"><p>The provided descriptor doesn’t match its checksum</p>
-</div><section id="variant.HardenedDerivationXpub" class="variant"><a href="#variant.HardenedDerivationXpub" class="anchor">§</a><h3 class="code-header">HardenedDerivationXpub</h3></section><div class="docblock"><p>The descriptor contains hardened derivation steps on public extended keys</p>
-</div><section id="variant.MultiPath" class="variant"><a href="#variant.MultiPath" class="anchor">§</a><h3 class="code-header">MultiPath</h3></section><div class="docblock"><p>The descriptor contains multipath keys</p>
-</div><section id="variant.Key" class="variant"><a href="#variant.Key" class="anchor">§</a><h3 class="code-header">Key(<a class="enum" href="../../keys/enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>)</h3></section><div class="docblock"><p>Error thrown while working with <a href="../../keys/index.html"><code>keys</code></a></p>
-</div><section id="variant.Policy" class="variant"><a href="#variant.Policy" class="anchor">§</a><h3 class="code-header">Policy(<a class="enum" href="../policy/enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a>)</h3></section><div class="docblock"><p>Error while extracting and manipulating policies</p>
-</div><section id="variant.InvalidDescriptorCharacter" class="variant"><a href="#variant.InvalidDescriptorCharacter" class="anchor">§</a><h3 class="code-header">InvalidDescriptorCharacter(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>)</h3></section><div class="docblock"><p>Invalid byte found in the descriptor checksum</p>
-</div><section id="variant.Bip32" class="variant"><a href="#variant.Bip32" class="anchor">§</a><h3 class="code-header">Bip32(Error)</h3></section><div class="docblock"><p>BIP32 error</p>
-</div><section id="variant.Base58" class="variant"><a href="#variant.Base58" class="anchor">§</a><h3 class="code-header">Base58(Error)</h3></section><div class="docblock"><p>Error during base58 decoding</p>
-</div><section id="variant.Pk" class="variant"><a href="#variant.Pk" class="anchor">§</a><h3 class="code-header">Pk(Error)</h3></section><div class="docblock"><p>Key-related error</p>
-</div><section id="variant.Miniscript" class="variant"><a href="#variant.Miniscript" class="anchor">§</a><h3 class="code-header">Miniscript(Error)</h3></section><div class="docblock"><p>Miniscript error</p>
-</div><section id="variant.Hex" class="variant"><a href="#variant.Hex" class="anchor">§</a><h3 class="code-header">Hex(HexToBytesError)</h3></section><div class="docblock"><p>Hex decoding error</p>
-</div></div><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><section id="impl-Debug-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/error.rs.html#16">source</a><a href="#impl-Debug-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/error.rs.html#16">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/error.rs.html#57-84">source</a><a href="#impl-Display-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/error.rs.html#58-83">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/error.rs.html#87">source</a><a href="#impl-Error-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#214-218">source</a><a href="#impl-From%3CError%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a>> for <a class="enum" href="../../wallet/error/enum.CreateTxError.html" title="enum bdk::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-7" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#215-217">source</a><a href="#method.from-7" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="enum" href="enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/error.rs.html#89-93">source</a><a href="#impl-From%3CError%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Error> for <a class="enum" href="enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/error.rs.html#90-92">source</a><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: Error) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-Error-1" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/error.rs.html#95-99">source</a><a href="#impl-From%3CError%3E-for-Error-1" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Error> for <a class="enum" href="enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/error.rs.html#96-98">source</a><a href="#method.from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: Error) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-Error-2" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/error.rs.html#101-105">source</a><a href="#impl-From%3CError%3E-for-Error-2" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Error> for <a class="enum" href="enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-3" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/error.rs.html#102-104">source</a><a href="#method.from-3" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: Error) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-Error-3" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/error.rs.html#107-111">source</a><a href="#impl-From%3CError%3E-for-Error-3" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Error> for <a class="enum" href="enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-4" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/error.rs.html#108-110">source</a><a href="#method.from-4" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: Error) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CHexToBytesError%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/error.rs.html#113-117">source</a><a href="#impl-From%3CHexToBytesError%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><HexToBytesError> for <a class="enum" href="enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-5" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/error.rs.html#114-116">source</a><a href="#method.from-5" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: HexToBytesError) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CKeyError%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/error.rs.html#47-55">source</a><a href="#impl-From%3CKeyError%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="../../keys/enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>> for <a class="enum" href="enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/error.rs.html#48-54">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(key_error: <a class="enum" href="../../keys/enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>) -> <a class="enum" href="enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CPolicyError%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/error.rs.html#119-123">source</a><a href="#impl-From%3CPolicyError%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="../policy/enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a>> for <a class="enum" href="enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-6" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/error.rs.html#120-122">source</a><a href="#method.from-6" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="enum" href="../policy/enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Error" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a></h3></section><section id="impl-Send-for-Error" class="impl has-srclink"><a href="#impl-Send-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a></h3></section><section id="impl-Sync-for-Error" class="impl has-srclink"><a href="#impl-Sync-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a></h3></section><section id="impl-Unpin-for-Error" class="impl has-srclink"><a href="#impl-Unpin-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a></h3></section><section id="impl-UnwindSafe-for-Error" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Error" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-8" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-8" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-Error" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
-provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-Error" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Error" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Descriptor errors"><meta name="keywords" content="rust, rustlang, rust-lang, error"><title>bdk::descriptor::error - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module error</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#enums">Enums</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a class="mod" href="#">error</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/error.rs.html#12-123">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Descriptor errors</p>
-</div></details><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Error.html" title="bdk::descriptor::error::Error enum">Error</a></div><div class="item-right docblock-short">Errors related to the parsing and usage of descriptors</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-window.SIDEBAR_ITEMS = {"enum":[["Error","Errors related to the parsing and usage of descriptors"]]};
\ No newline at end of file
+++ /dev/null
-<!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="Descriptors"><meta name="keywords" content="rust, rustlang, rust-lang, descriptor"><title>bdk::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <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"><section><ul class="block"><li><a href="#reexports">Re-exports</a></li><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></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">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="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#12-900">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></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><div class="item-table"><div class="item-row"><div class="item-left import-item" id="reexport.calc_checksum"><code>pub use self::checksum::<a class="fn" href="checksum/fn.calc_checksum.html" title="fn bdk::descriptor::checksum::calc_checksum">calc_checksum</a>;</code></div></div><div class="item-row"><div class="item-left import-item" id="reexport.DescriptorError"><code>pub use self::error::<a class="enum" href="error/enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a> as DescriptorError;</code></div></div><div class="item-row"><div class="item-left import-item" id="reexport.Policy"><code>pub use self::policy::<a class="struct" href="policy/struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a>;</code></div></div></div><h2 id="modules" class="small-section-header"><a href="#modules">Modules</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="mod" href="checksum/index.html" title="bdk::descriptor::checksum mod">checksum</a></div><div class="item-right docblock-short">Descriptor checksum</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="error/index.html" title="bdk::descriptor::error mod">error</a></div><div class="item-right docblock-short">Descriptor errors</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="policy/index.html" title="bdk::descriptor::policy mod">policy</a></div><div class="item-right docblock-short">Descriptor policy</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="template/index.html" title="bdk::descriptor::template mod">template</a></div><div class="item-right docblock-short">Descriptor templates</div></div></div><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Miniscript.html" title="bdk::descriptor::Miniscript struct">Miniscript</a></div><div class="item-right docblock-short">The top-level miniscript abstract syntax tree (AST).</div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Descriptor.html" title="bdk::descriptor::Descriptor enum">Descriptor</a></div><div class="item-right docblock-short">Script descriptor</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.DescriptorPublicKey.html" title="bdk::descriptor::DescriptorPublicKey enum">DescriptorPublicKey</a></div><div class="item-right docblock-short">The descriptor pubkey, either a single pubkey or an xpub.</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Legacy.html" title="bdk::descriptor::Legacy enum">Legacy</a></div><div class="item-right docblock-short">Legacy ScriptContext
-To be used as P2SH scripts
-For creation of Bare scriptpubkeys, construct the Miniscript
-under <code>Bare</code> ScriptContext</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Segwitv0.html" title="bdk::descriptor::Segwitv0 enum">Segwitv0</a></div><div class="item-right docblock-short">Segwitv0 ScriptContext</div></div></div><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.ExtractPolicy.html" title="bdk::descriptor::ExtractPolicy trait">ExtractPolicy</a></div><div class="item-right docblock-short">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></div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.IntoWalletDescriptor.html" title="bdk::descriptor::IntoWalletDescriptor trait">IntoWalletDescriptor</a></div><div class="item-right docblock-short">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>]</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.ScriptContext.html" title="bdk::descriptor::ScriptContext trait">ScriptContext</a></div><div class="item-right docblock-short">The ScriptContext for Miniscript. Additional type information associated with
-miniscript that is used for carrying out checks that dependent on the
-context under which the script is used.
-For example, disallowing uncompressed keys in Segwit context</div></div></div><h2 id="types" class="small-section-header"><a href="#types">Type Definitions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="type" href="type.DerivedDescriptor.html" title="bdk::descriptor::DerivedDescriptor type">DerivedDescriptor</a></div><div class="item-right docblock-short">Alias for a <a href="enum.Descriptor.html" title="Descriptor"><code>Descriptor</code></a> that contains extended <strong>derived</strong> keys</div></div><div class="item-row"><div class="item-left module-item"><a class="type" href="type.ExtendedDescriptor.html" title="bdk::descriptor::ExtendedDescriptor type">ExtendedDescriptor</a></div><div class="item-right docblock-short">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></div></div><div class="item-row"><div class="item-left module-item"><a class="type" href="type.HdKeyPaths.html" title="bdk::descriptor::HdKeyPaths type">HdKeyPaths</a></div><div class="item-right docblock-short">Alias for the type of maps that represent derivation paths in a <a href="bitcoin::psbt::Input"><code>psbt::Input</code></a> or
-<a href="bitcoin::psbt::Output"><code>psbt::Output</code></a></div></div><div class="item-row"><div class="item-left module-item"><a class="type" href="type.TapKeyOrigins.html" title="bdk::descriptor::TapKeyOrigins type">TapKeyOrigins</a></div><div class="item-right docblock-short">Alias for the type of maps that represent taproot key origins in a <a href="bitcoin::psbt::Input"><code>psbt::Input</code></a> or
-<a href="bitcoin::psbt::Output"><code>psbt::Output</code></a></div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Options to build the satisfaction field in the policy"><meta name="keywords" content="rust, rustlang, rust-lang, BuildSatisfaction"><title>BuildSatisfaction in bdk::descriptor::policy - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">BuildSatisfaction</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.None">None</a></li><li><a href="#variant.Psbt">Psbt</a></li><li><a href="#variant.PsbtTimelocks">PsbtTimelocks</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-BuildSatisfaction%3C%27a%3E">Clone</a></li><li><a href="#impl-Copy-for-BuildSatisfaction%3C%27a%3E">Copy</a></li><li><a href="#impl-Debug-for-BuildSatisfaction%3C%27a%3E">Debug</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-BuildSatisfaction%3C%27a%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-BuildSatisfaction%3C%27a%3E">Send</a></li><li><a href="#impl-Sync-for-BuildSatisfaction%3C%27a%3E">Sync</a></li><li><a href="#impl-Unpin-for-BuildSatisfaction%3C%27a%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-BuildSatisfaction%3C%27a%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-BuildSatisfaction%3C%27a%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-BuildSatisfaction%3C%27a%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-BuildSatisfaction%3C%27a%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-BuildSatisfaction%3C%27a%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-BuildSatisfaction%3C%27a%3E">Into<U></a></li><li><a href="#impl-ToOwned-for-BuildSatisfaction%3C%27a%3E">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-BuildSatisfaction%3C%27a%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-BuildSatisfaction%3C%27a%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-BuildSatisfaction%3C%27a%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor::policy</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">policy</a>::<wbr><a class="enum" href="#">BuildSatisfaction</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/policy.rs.html#1051-1066">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum BuildSatisfaction<'a> {
- None,
- Psbt(&'a Psbt),
- PsbtTimelocks {
- psbt: &'a Psbt,
- current_height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
- input_max_height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
- },
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Options to build the satisfaction field in the policy</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.None" class="variant"><a href="#variant.None" class="anchor">§</a><h3 class="code-header">None</h3></section><div class="docblock"><p>Don’t generate <code>satisfaction</code> field</p>
-</div><section id="variant.Psbt" class="variant"><a href="#variant.Psbt" class="anchor">§</a><h3 class="code-header">Psbt(&'a Psbt)</h3></section><div class="docblock"><p>Analyze the given PSBT to check for existing signatures</p>
-</div><section id="variant.PsbtTimelocks" class="variant"><a href="#variant.PsbtTimelocks" class="anchor">§</a><h3 class="code-header">PsbtTimelocks</h3></section><div class="sub-variant" id="variant.PsbtTimelocks.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.PsbtTimelocks.field.psbt" class="small-section-header"><a href="#variant.PsbtTimelocks.field.psbt" class="anchor field">§</a><code>psbt: &'a Psbt</code></span><div class="docblock"><p>Given PSBT</p>
-</div></div><div class="sub-variant-field"><span id="variant.PsbtTimelocks.field.current_height" class="small-section-header"><a href="#variant.PsbtTimelocks.field.current_height" class="anchor field">§</a><code>current_height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Current blockchain height</p>
-</div></div><div class="sub-variant-field"><span id="variant.PsbtTimelocks.field.input_max_height" class="small-section-header"><a href="#variant.PsbtTimelocks.field.input_max_height" class="anchor field">§</a><code>input_max_height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>The highest confirmation height between the inputs
-CSV should consider different inputs, but we consider the worst condition for the tx as whole</p>
-</div></div></div><div class="docblock"><p>Like <code>Psbt</code> variant and also check for expired timelocks</p>
-</div></div><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><section id="impl-Clone-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#1050">source</a><a href="#impl-Clone-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<'a> <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.BuildSatisfaction.html" title="enum bdk::descriptor::policy::BuildSatisfaction">BuildSatisfaction</a><'a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#1050">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.BuildSatisfaction.html" title="enum bdk::descriptor::policy::BuildSatisfaction">BuildSatisfaction</a><'a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#1050">source</a><a href="#impl-Debug-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<'a> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.BuildSatisfaction.html" title="enum bdk::descriptor::policy::BuildSatisfaction">BuildSatisfaction</a><'a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#1050">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><section id="impl-Copy-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#1050">source</a><a href="#impl-Copy-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<'a> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum.BuildSatisfaction.html" title="enum bdk::descriptor::policy::BuildSatisfaction">BuildSatisfaction</a><'a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<'a> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.BuildSatisfaction.html" title="enum bdk::descriptor::policy::BuildSatisfaction">BuildSatisfaction</a><'a></h3></section><section id="impl-Send-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a href="#impl-Send-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<'a> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.BuildSatisfaction.html" title="enum bdk::descriptor::policy::BuildSatisfaction">BuildSatisfaction</a><'a></h3></section><section id="impl-Sync-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a href="#impl-Sync-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<'a> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.BuildSatisfaction.html" title="enum bdk::descriptor::policy::BuildSatisfaction">BuildSatisfaction</a><'a></h3></section><section id="impl-Unpin-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a href="#impl-Unpin-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<'a> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.BuildSatisfaction.html" title="enum bdk::descriptor::policy::BuildSatisfaction">BuildSatisfaction</a><'a></h3></section><section id="impl-UnwindSafe-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<'a> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.BuildSatisfaction.html" title="enum bdk::descriptor::policy::BuildSatisfaction">BuildSatisfaction</a><'a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="A unique identifier for a key"><meta name="keywords" content="rust, rustlang, rust-lang, PkOrF"><title>PkOrF in bdk::descriptor::policy - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">PkOrF</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Fingerprint">Fingerprint</a></li><li><a href="#variant.Pubkey">Pubkey</a></li><li><a href="#variant.XOnlyPubkey">XOnlyPubkey</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-PkOrF">Clone</a></li><li><a href="#impl-Debug-for-PkOrF">Debug</a></li><li><a href="#impl-Eq-for-PkOrF">Eq</a></li><li><a href="#impl-Hash-for-PkOrF">Hash</a></li><li><a href="#impl-PartialEq%3CPkOrF%3E-for-PkOrF">PartialEq<PkOrF></a></li><li><a href="#impl-Serialize-for-PkOrF">Serialize</a></li><li><a href="#impl-StructuralEq-for-PkOrF">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-PkOrF">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-PkOrF">RefUnwindSafe</a></li><li><a href="#impl-Send-for-PkOrF">Send</a></li><li><a href="#impl-Sync-for-PkOrF">Sync</a></li><li><a href="#impl-Unpin-for-PkOrF">Unpin</a></li><li><a href="#impl-UnwindSafe-for-PkOrF">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-PkOrF">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-PkOrF">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-PkOrF">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-PkOrF">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-PkOrF">Into<U></a></li><li><a href="#impl-ToOwned-for-PkOrF">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-PkOrF">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-PkOrF">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-PkOrF">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor::policy</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">policy</a>::<wbr><a class="enum" href="#">PkOrF</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/policy.rs.html#75-82">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum PkOrF {
- Pubkey(PublicKey),
- XOnlyPubkey(XOnlyPublicKey),
- Fingerprint(Fingerprint),
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A unique identifier for a key</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Pubkey" class="variant"><a href="#variant.Pubkey" class="anchor">§</a><h3 class="code-header">Pubkey(PublicKey)</h3></section><div class="docblock"><p>A legacy public key</p>
-</div><section id="variant.XOnlyPubkey" class="variant"><a href="#variant.XOnlyPubkey" class="anchor">§</a><h3 class="code-header">XOnlyPubkey(XOnlyPublicKey)</h3></section><div class="docblock"><p>A x-only public key</p>
-</div><section id="variant.Fingerprint" class="variant"><a href="#variant.Fingerprint" class="anchor">§</a><h3 class="code-header">Fingerprint(Fingerprint)</h3></section><div class="docblock"><p>An extended key fingerprint</p>
-</div></div><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><section id="impl-Clone-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#73">source</a><a href="#impl-Clone-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk::descriptor::policy::PkOrF">PkOrF</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#73">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.PkOrF.html" title="enum bdk::descriptor::policy::PkOrF">PkOrF</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#73">source</a><a href="#impl-Debug-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk::descriptor::policy::PkOrF">PkOrF</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#73">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#73">source</a><a href="#impl-Hash-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk::descriptor::policy::PkOrF">PkOrF</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#73">source</a><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)</h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CPkOrF%3E-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#73">source</a><a href="#impl-PartialEq%3CPkOrF%3E-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.PkOrF.html" title="enum bdk::descriptor::policy::PkOrF">PkOrF</a>> for <a class="enum" href="enum.PkOrF.html" title="enum bdk::descriptor::policy::PkOrF">PkOrF</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#73">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.PkOrF.html" title="enum bdk::descriptor::policy::PkOrF">PkOrF</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#73">source</a><a href="#impl-Serialize-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk::descriptor::policy::PkOrF">PkOrF</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#73">source</a><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><__S>(&self, __serializer: __S) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><__S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, __S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> __S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#73">source</a><a href="#impl-Eq-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk::descriptor::policy::PkOrF">PkOrF</a></h3></section><section id="impl-StructuralEq-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#73">source</a><a href="#impl-StructuralEq-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk::descriptor::policy::PkOrF">PkOrF</a></h3></section><section id="impl-StructuralPartialEq-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#73">source</a><a href="#impl-StructuralPartialEq-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk::descriptor::policy::PkOrF">PkOrF</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-PkOrF" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk::descriptor::policy::PkOrF">PkOrF</a></h3></section><section id="impl-Send-for-PkOrF" class="impl has-srclink"><a href="#impl-Send-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk::descriptor::policy::PkOrF">PkOrF</a></h3></section><section id="impl-Sync-for-PkOrF" class="impl has-srclink"><a href="#impl-Sync-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk::descriptor::policy::PkOrF">PkOrF</a></h3></section><section id="impl-Unpin-for-PkOrF" class="impl has-srclink"><a href="#impl-Unpin-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk::descriptor::policy::PkOrF">PkOrF</a></h3></section><section id="impl-UnwindSafe-for-PkOrF" class="impl has-srclink"><a href="#impl-UnwindSafe-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk::descriptor::policy::PkOrF">PkOrF</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-PkOrF" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Errors that can happen while extracting and manipulating policies"><meta name="keywords" content="rust, rustlang, rust-lang, PolicyError"><title>PolicyError in bdk::descriptor::policy - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">PolicyError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.AddOnLeaf">AddOnLeaf</a></li><li><a href="#variant.AddOnPartialComplete">AddOnPartialComplete</a></li><li><a href="#variant.IncompatibleConditions">IncompatibleConditions</a></li><li><a href="#variant.IndexOutOfRange">IndexOutOfRange</a></li><li><a href="#variant.MixedTimelockUnits">MixedTimelockUnits</a></li><li><a href="#variant.NotEnoughItemsSelected">NotEnoughItemsSelected</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-PolicyError">Debug</a></li><li><a href="#impl-Display-for-PolicyError">Display</a></li><li><a href="#impl-Eq-for-PolicyError">Eq</a></li><li><a href="#impl-Error-for-PolicyError">Error</a></li><li><a href="#impl-From%3CPolicyError%3E-for-CreateTxError">From<PolicyError></a></li><li><a href="#impl-From%3CPolicyError%3E-for-Error">From<PolicyError></a></li><li><a href="#impl-PartialEq%3CPolicyError%3E-for-PolicyError">PartialEq<PolicyError></a></li><li><a href="#impl-StructuralEq-for-PolicyError">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-PolicyError">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-PolicyError">RefUnwindSafe</a></li><li><a href="#impl-Send-for-PolicyError">Send</a></li><li><a href="#impl-Sync-for-PolicyError">Sync</a></li><li><a href="#impl-Unpin-for-PolicyError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-PolicyError">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-PolicyError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-PolicyError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-PolicyError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-PolicyError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-PolicyError">Into<U></a></li><li><a href="#impl-Provider-for-PolicyError">Provider</a></li><li><a href="#impl-ToString-for-PolicyError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-PolicyError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-PolicyError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-PolicyError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor::policy</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">policy</a>::<wbr><a class="enum" href="#">PolicyError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/policy.rs.html#504-517">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum PolicyError {
- NotEnoughItemsSelected(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>),
- IndexOutOfRange(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>),
- AddOnLeaf,
- AddOnPartialComplete,
- MixedTimelockUnits,
- IncompatibleConditions,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Errors that can happen while extracting and manipulating policies</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.NotEnoughItemsSelected" class="variant"><a href="#variant.NotEnoughItemsSelected" class="anchor">§</a><h3 class="code-header">NotEnoughItemsSelected(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>)</h3></section><div class="docblock"><p>Not enough items are selected to satisfy a <a href="enum.SatisfiableItem.html#variant.Thresh" title="SatisfiableItem::Thresh"><code>SatisfiableItem::Thresh</code></a> or a <a href="enum.SatisfiableItem.html#variant.Multisig" title="SatisfiableItem::Multisig"><code>SatisfiableItem::Multisig</code></a></p>
-</div><section id="variant.IndexOutOfRange" class="variant"><a href="#variant.IndexOutOfRange" class="anchor">§</a><h3 class="code-header">IndexOutOfRange(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h3></section><div class="docblock"><p>Index out of range for an item to satisfy a <a href="enum.SatisfiableItem.html#variant.Thresh" title="SatisfiableItem::Thresh"><code>SatisfiableItem::Thresh</code></a> or a <a href="enum.SatisfiableItem.html#variant.Multisig" title="SatisfiableItem::Multisig"><code>SatisfiableItem::Multisig</code></a></p>
-</div><section id="variant.AddOnLeaf" class="variant"><a href="#variant.AddOnLeaf" class="anchor">§</a><h3 class="code-header">AddOnLeaf</h3></section><div class="docblock"><p>Can not add to an item that is <a href="enum.Satisfaction.html#variant.None" title="Satisfaction::None"><code>Satisfaction::None</code></a> or <a href="enum.Satisfaction.html#variant.Complete" title="Satisfaction::Complete"><code>Satisfaction::Complete</code></a></p>
-</div><section id="variant.AddOnPartialComplete" class="variant"><a href="#variant.AddOnPartialComplete" class="anchor">§</a><h3 class="code-header">AddOnPartialComplete</h3></section><div class="docblock"><p>Can not add to an item that is <a href="enum.Satisfaction.html#variant.PartialComplete" title="Satisfaction::PartialComplete"><code>Satisfaction::PartialComplete</code></a></p>
-</div><section id="variant.MixedTimelockUnits" class="variant"><a href="#variant.MixedTimelockUnits" class="anchor">§</a><h3 class="code-header">MixedTimelockUnits</h3></section><div class="docblock"><p>Can not merge CSV or timelock values unless both are less than or both are equal or greater than 500_000_000</p>
-</div><section id="variant.IncompatibleConditions" class="variant"><a href="#variant.IncompatibleConditions" class="anchor">§</a><h3 class="code-header">IncompatibleConditions</h3></section><div class="docblock"><p>Incompatible conditions (not currently used)</p>
-</div></div><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><section id="impl-Debug-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#503">source</a><a href="#impl-Debug-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#503">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#519-530">source</a><a href="#impl-Display-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#520-529">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#533">source</a><a href="#impl-Error-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CPolicyError%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#220-224">source</a><a href="#impl-From%3CPolicyError%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a>> for <a class="enum" href="../../wallet/error/enum.CreateTxError.html" title="enum bdk::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#221-223">source</a><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="enum" href="enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CPolicyError%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/error.rs.html#119-123">source</a><a href="#impl-From%3CPolicyError%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a>> for <a class="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/error.rs.html#120-122">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="enum" href="enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CPolicyError%3E-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#503">source</a><a href="#impl-PartialEq%3CPolicyError%3E-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a>> for <a class="enum" href="enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#503">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><section id="impl-Eq-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#503">source</a><a href="#impl-Eq-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a></h3></section><section id="impl-StructuralEq-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#503">source</a><a href="#impl-StructuralEq-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a></h3></section><section id="impl-StructuralPartialEq-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#503">source</a><a href="#impl-StructuralPartialEq-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-PolicyError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a></h3></section><section id="impl-Send-for-PolicyError" class="impl has-srclink"><a href="#impl-Send-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a></h3></section><section id="impl-Sync-for-PolicyError" class="impl has-srclink"><a href="#impl-Sync-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a></h3></section><section id="impl-Unpin-for-PolicyError" class="impl has-srclink"><a href="#impl-Unpin-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a></h3></section><section id="impl-UnwindSafe-for-PolicyError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
-provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-PolicyError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Represent if and how much a policy item is satisfied by the wallet’s descriptor"><meta name="keywords" content="rust, rustlang, rust-lang, Satisfaction"><title>Satisfaction in bdk::descriptor::policy - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Satisfaction</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Complete">Complete</a></li><li><a href="#variant.None">None</a></li><li><a href="#variant.Partial">Partial</a></li><li><a href="#variant.PartialComplete">PartialComplete</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.is_leaf">is_leaf</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-Satisfaction">Clone</a></li><li><a href="#impl-Debug-for-Satisfaction">Debug</a></li><li><a href="#impl-Eq-for-Satisfaction">Eq</a></li><li><a href="#impl-From%3Cbool%3E-for-Satisfaction">From<bool></a></li><li><a href="#impl-PartialEq%3CSatisfaction%3E-for-Satisfaction">PartialEq<Satisfaction></a></li><li><a href="#impl-Serialize-for-Satisfaction">Serialize</a></li><li><a href="#impl-StructuralEq-for-Satisfaction">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-Satisfaction">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Satisfaction">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Satisfaction">Send</a></li><li><a href="#impl-Sync-for-Satisfaction">Sync</a></li><li><a href="#impl-Unpin-for-Satisfaction">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Satisfaction">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Satisfaction">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Satisfaction">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Satisfaction">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Satisfaction">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Satisfaction">Into<U></a></li><li><a href="#impl-ToOwned-for-Satisfaction">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Satisfaction">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Satisfaction">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Satisfaction">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor::policy</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">policy</a>::<wbr><a class="enum" href="#">Satisfaction</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/policy.rs.html#260-302">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum Satisfaction {
- Partial {
- n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
- m: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
- items: <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.usize.html">usize</a>>,
- sorted: <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.bool.html">bool</a>>,
- conditions: <a class="type" href="type.ConditionMap.html" title="type bdk::descriptor::policy::ConditionMap">ConditionMap</a>,
- },
- PartialComplete {
- n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
- m: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
- items: <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.usize.html">usize</a>>,
- sorted: <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.bool.html">bool</a>>,
- conditions: <a class="type" href="type.FoldedConditionMap.html" title="type bdk::descriptor::policy::FoldedConditionMap">FoldedConditionMap</a>,
- },
- Complete {
- condition: <a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a>,
- },
- None,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Represent if and how much a policy item is satisfied by the wallet’s descriptor</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Partial" class="variant"><a href="#variant.Partial" class="anchor">§</a><h3 class="code-header">Partial</h3></section><div class="sub-variant" id="variant.Partial.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Partial.field.n" class="small-section-header"><a href="#variant.Partial.field.n" class="anchor field">§</a><code>n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code></span><div class="docblock"><p>Total number of items</p>
-</div></div><div class="sub-variant-field"><span id="variant.Partial.field.m" class="small-section-header"><a href="#variant.Partial.field.m" class="anchor field">§</a><code>m: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code></span><div class="docblock"><p>Threshold</p>
-</div></div><div class="sub-variant-field"><span id="variant.Partial.field.items" class="small-section-header"><a href="#variant.Partial.field.items" class="anchor field">§</a><code>items: <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.usize.html">usize</a>></code></span><div class="docblock"><p>The items that can be satisfied by the descriptor or are satisfied in the PSBT</p>
-</div></div><div class="sub-variant-field"><span id="variant.Partial.field.sorted" class="small-section-header"><a href="#variant.Partial.field.sorted" class="anchor field">§</a><code>sorted: <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.bool.html">bool</a>></code></span><div class="docblock"><p>Whether the items are sorted in lexicographic order (used by <code>sortedmulti</code>)</p>
-</div></div><div class="sub-variant-field"><span id="variant.Partial.field.conditions" class="small-section-header"><a href="#variant.Partial.field.conditions" class="anchor field">§</a><code>conditions: <a class="type" href="type.ConditionMap.html" title="type bdk::descriptor::policy::ConditionMap">ConditionMap</a></code></span><div class="docblock"><p>Extra conditions that also need to be satisfied</p>
-</div></div></div><div class="docblock"><p>Only a partial satisfaction of some kind of threshold policy</p>
-</div><section id="variant.PartialComplete" class="variant"><a href="#variant.PartialComplete" class="anchor">§</a><h3 class="code-header">PartialComplete</h3></section><div class="sub-variant" id="variant.PartialComplete.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.PartialComplete.field.n" class="small-section-header"><a href="#variant.PartialComplete.field.n" class="anchor field">§</a><code>n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code></span><div class="docblock"><p>Total number of items</p>
-</div></div><div class="sub-variant-field"><span id="variant.PartialComplete.field.m" class="small-section-header"><a href="#variant.PartialComplete.field.m" class="anchor field">§</a><code>m: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code></span><div class="docblock"><p>Threshold</p>
-</div></div><div class="sub-variant-field"><span id="variant.PartialComplete.field.items" class="small-section-header"><a href="#variant.PartialComplete.field.items" class="anchor field">§</a><code>items: <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.usize.html">usize</a>></code></span><div class="docblock"><p>The items that can be satisfied by the descriptor</p>
-</div></div><div class="sub-variant-field"><span id="variant.PartialComplete.field.sorted" class="small-section-header"><a href="#variant.PartialComplete.field.sorted" class="anchor field">§</a><code>sorted: <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.bool.html">bool</a>></code></span><div class="docblock"><p>Whether the items are sorted in lexicographic order (used by <code>sortedmulti</code>)</p>
-</div></div><div class="sub-variant-field"><span id="variant.PartialComplete.field.conditions" class="small-section-header"><a href="#variant.PartialComplete.field.conditions" class="anchor field">§</a><code>conditions: <a class="type" href="type.FoldedConditionMap.html" title="type bdk::descriptor::policy::FoldedConditionMap">FoldedConditionMap</a></code></span><div class="docblock"><p>Extra conditions that also need to be satisfied</p>
-</div></div></div><div class="docblock"><p>Can reach the threshold of some kind of threshold policy</p>
-</div><section id="variant.Complete" class="variant"><a href="#variant.Complete" class="anchor">§</a><h3 class="code-header">Complete</h3></section><div class="sub-variant" id="variant.Complete.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Complete.field.condition" class="small-section-header"><a href="#variant.Complete.field.condition" class="anchor field">§</a><code>condition: <a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a></code></span><div class="docblock"><p>Extra conditions that also need to be satisfied</p>
-</div></div></div><div class="docblock"><p>Can satisfy the policy item</p>
-</div><section id="variant.None" class="variant"><a href="#variant.None" class="anchor">§</a><h3 class="code-header">None</h3></section><div class="docblock"><p>Cannot satisfy or contribute to the policy item</p>
-</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#304-417">source</a><a href="#impl-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.Satisfaction.html" title="enum bdk::descriptor::policy::Satisfaction">Satisfaction</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_leaf" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#306-311">source</a><h4 class="code-header">pub fn <a href="#method.is_leaf" class="fn">is_leaf</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns whether the <a href="enum.Satisfaction.html" title="Satisfaction"><code>Satisfaction</code></a> is a leaf item</p>
-</div></details></div></details></div><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><section id="impl-Clone-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#258">source</a><a href="#impl-Clone-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk::descriptor::policy::Satisfaction">Satisfaction</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#258">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.Satisfaction.html" title="enum bdk::descriptor::policy::Satisfaction">Satisfaction</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#258">source</a><a href="#impl-Debug-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk::descriptor::policy::Satisfaction">Satisfaction</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#258">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3Cbool%3E-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#419-429">source</a><a href="#impl-From%3Cbool%3E-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk::descriptor::policy::Satisfaction">Satisfaction</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#420-428">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CSatisfaction%3E-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#258">source</a><a href="#impl-PartialEq%3CSatisfaction%3E-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.Satisfaction.html" title="enum bdk::descriptor::policy::Satisfaction">Satisfaction</a>> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk::descriptor::policy::Satisfaction">Satisfaction</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#258">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.Satisfaction.html" title="enum bdk::descriptor::policy::Satisfaction">Satisfaction</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#258">source</a><a href="#impl-Serialize-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk::descriptor::policy::Satisfaction">Satisfaction</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#258">source</a><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><__S>(&self, __serializer: __S) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><__S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, __S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> __S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#258">source</a><a href="#impl-Eq-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk::descriptor::policy::Satisfaction">Satisfaction</a></h3></section><section id="impl-StructuralEq-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#258">source</a><a href="#impl-StructuralEq-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk::descriptor::policy::Satisfaction">Satisfaction</a></h3></section><section id="impl-StructuralPartialEq-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#258">source</a><a href="#impl-StructuralPartialEq-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk::descriptor::policy::Satisfaction">Satisfaction</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Satisfaction" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk::descriptor::policy::Satisfaction">Satisfaction</a></h3></section><section id="impl-Send-for-Satisfaction" class="impl has-srclink"><a href="#impl-Send-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk::descriptor::policy::Satisfaction">Satisfaction</a></h3></section><section id="impl-Sync-for-Satisfaction" class="impl has-srclink"><a href="#impl-Sync-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk::descriptor::policy::Satisfaction">Satisfaction</a></h3></section><section id="impl-Unpin-for-Satisfaction" class="impl has-srclink"><a href="#impl-Unpin-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk::descriptor::policy::Satisfaction">Satisfaction</a></h3></section><section id="impl-UnwindSafe-for-Satisfaction" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk::descriptor::policy::Satisfaction">Satisfaction</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Satisfaction" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="An item that needs to be satisfied"><meta name="keywords" content="rust, rustlang, rust-lang, SatisfiableItem"><title>SatisfiableItem in bdk::descriptor::policy - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SatisfiableItem</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.AbsoluteTimelock">AbsoluteTimelock</a></li><li><a href="#variant.EcdsaSignature">EcdsaSignature</a></li><li><a href="#variant.Hash160Preimage">Hash160Preimage</a></li><li><a href="#variant.Hash256Preimage">Hash256Preimage</a></li><li><a href="#variant.Multisig">Multisig</a></li><li><a href="#variant.RelativeTimelock">RelativeTimelock</a></li><li><a href="#variant.Ripemd160Preimage">Ripemd160Preimage</a></li><li><a href="#variant.SchnorrSignature">SchnorrSignature</a></li><li><a href="#variant.Sha256Preimage">Sha256Preimage</a></li><li><a href="#variant.Thresh">Thresh</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.id">id</a></li><li><a href="#method.is_leaf">is_leaf</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-SatisfiableItem">Clone</a></li><li><a href="#impl-Debug-for-SatisfiableItem">Debug</a></li><li><a href="#impl-Eq-for-SatisfiableItem">Eq</a></li><li><a href="#impl-From%3CSatisfiableItem%3E-for-Policy">From<SatisfiableItem></a></li><li><a href="#impl-PartialEq%3CSatisfiableItem%3E-for-SatisfiableItem">PartialEq<SatisfiableItem></a></li><li><a href="#impl-Serialize-for-SatisfiableItem">Serialize</a></li><li><a href="#impl-StructuralEq-for-SatisfiableItem">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-SatisfiableItem">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SatisfiableItem">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SatisfiableItem">Send</a></li><li><a href="#impl-Sync-for-SatisfiableItem">Sync</a></li><li><a href="#impl-Unpin-for-SatisfiableItem">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SatisfiableItem">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SatisfiableItem">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SatisfiableItem">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SatisfiableItem">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SatisfiableItem">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SatisfiableItem">Into<U></a></li><li><a href="#impl-ToOwned-for-SatisfiableItem">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SatisfiableItem">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SatisfiableItem">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SatisfiableItem">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor::policy</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">policy</a>::<wbr><a class="enum" href="#">SatisfiableItem</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/policy.rs.html#106-158">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum SatisfiableItem {
- EcdsaSignature(<a class="enum" href="enum.PkOrF.html" title="enum bdk::descriptor::policy::PkOrF">PkOrF</a>),
- SchnorrSignature(<a class="enum" href="enum.PkOrF.html" title="enum bdk::descriptor::policy::PkOrF">PkOrF</a>),
- Sha256Preimage {
- hash: Hash,
- },
- Hash256Preimage {
- hash: Hash,
- },
- Ripemd160Preimage {
- hash: Hash,
- },
- Hash160Preimage {
- hash: Hash,
- },
- AbsoluteTimelock {
- value: LockTime,
- },
- RelativeTimelock {
- value: Sequence,
- },
- Multisig {
- keys: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="enum.PkOrF.html" title="enum bdk::descriptor::policy::PkOrF">PkOrF</a>>,
- threshold: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
- },
- Thresh {
- items: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a>>,
- threshold: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
- },
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An item that needs to be satisfied</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.EcdsaSignature" class="variant"><a href="#variant.EcdsaSignature" class="anchor">§</a><h3 class="code-header">EcdsaSignature(<a class="enum" href="enum.PkOrF.html" title="enum bdk::descriptor::policy::PkOrF">PkOrF</a>)</h3></section><div class="docblock"><p>ECDSA Signature for a raw public key</p>
-</div><section id="variant.SchnorrSignature" class="variant"><a href="#variant.SchnorrSignature" class="anchor">§</a><h3 class="code-header">SchnorrSignature(<a class="enum" href="enum.PkOrF.html" title="enum bdk::descriptor::policy::PkOrF">PkOrF</a>)</h3></section><div class="docblock"><p>Schnorr Signature for a raw public key</p>
-</div><section id="variant.Sha256Preimage" class="variant"><a href="#variant.Sha256Preimage" class="anchor">§</a><h3 class="code-header">Sha256Preimage</h3></section><div class="sub-variant" id="variant.Sha256Preimage.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Sha256Preimage.field.hash" class="small-section-header"><a href="#variant.Sha256Preimage.field.hash" class="anchor field">§</a><code>hash: Hash</code></span><div class="docblock"><p>The digest value</p>
-</div></div></div><div class="docblock"><p>SHA256 preimage hash</p>
-</div><section id="variant.Hash256Preimage" class="variant"><a href="#variant.Hash256Preimage" class="anchor">§</a><h3 class="code-header">Hash256Preimage</h3></section><div class="sub-variant" id="variant.Hash256Preimage.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Hash256Preimage.field.hash" class="small-section-header"><a href="#variant.Hash256Preimage.field.hash" class="anchor field">§</a><code>hash: Hash</code></span><div class="docblock"><p>The digest value</p>
-</div></div></div><div class="docblock"><p>Double SHA256 preimage hash</p>
-</div><section id="variant.Ripemd160Preimage" class="variant"><a href="#variant.Ripemd160Preimage" class="anchor">§</a><h3 class="code-header">Ripemd160Preimage</h3></section><div class="sub-variant" id="variant.Ripemd160Preimage.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Ripemd160Preimage.field.hash" class="small-section-header"><a href="#variant.Ripemd160Preimage.field.hash" class="anchor field">§</a><code>hash: Hash</code></span><div class="docblock"><p>The digest value</p>
-</div></div></div><div class="docblock"><p>RIPEMD160 preimage hash</p>
-</div><section id="variant.Hash160Preimage" class="variant"><a href="#variant.Hash160Preimage" class="anchor">§</a><h3 class="code-header">Hash160Preimage</h3></section><div class="sub-variant" id="variant.Hash160Preimage.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Hash160Preimage.field.hash" class="small-section-header"><a href="#variant.Hash160Preimage.field.hash" class="anchor field">§</a><code>hash: Hash</code></span><div class="docblock"><p>The digest value</p>
-</div></div></div><div class="docblock"><p>SHA256 then RIPEMD160 preimage hash</p>
-</div><section id="variant.AbsoluteTimelock" class="variant"><a href="#variant.AbsoluteTimelock" class="anchor">§</a><h3 class="code-header">AbsoluteTimelock</h3></section><div class="sub-variant" id="variant.AbsoluteTimelock.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.AbsoluteTimelock.field.value" class="small-section-header"><a href="#variant.AbsoluteTimelock.field.value" class="anchor field">§</a><code>value: LockTime</code></span><div class="docblock"><p>The timelock value</p>
-</div></div></div><div class="docblock"><p>Absolute timeclock timestamp</p>
-</div><section id="variant.RelativeTimelock" class="variant"><a href="#variant.RelativeTimelock" class="anchor">§</a><h3 class="code-header">RelativeTimelock</h3></section><div class="sub-variant" id="variant.RelativeTimelock.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.RelativeTimelock.field.value" class="small-section-header"><a href="#variant.RelativeTimelock.field.value" class="anchor field">§</a><code>value: Sequence</code></span><div class="docblock"><p>The timelock value</p>
-</div></div></div><div class="docblock"><p>Relative timelock locktime</p>
-</div><section id="variant.Multisig" class="variant"><a href="#variant.Multisig" class="anchor">§</a><h3 class="code-header">Multisig</h3></section><div class="sub-variant" id="variant.Multisig.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Multisig.field.keys" class="small-section-header"><a href="#variant.Multisig.field.keys" class="anchor field">§</a><code>keys: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="enum.PkOrF.html" title="enum bdk::descriptor::policy::PkOrF">PkOrF</a>></code></span><div class="docblock"><p>The raw public key or extended key fingerprint</p>
-</div></div><div class="sub-variant-field"><span id="variant.Multisig.field.threshold" class="small-section-header"><a href="#variant.Multisig.field.threshold" class="anchor field">§</a><code>threshold: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code></span><div class="docblock"><p>The required threshold count</p>
-</div></div></div><div class="docblock"><p>Multi-signature public keys with threshold count</p>
-</div><section id="variant.Thresh" class="variant"><a href="#variant.Thresh" class="anchor">§</a><h3 class="code-header">Thresh</h3></section><div class="sub-variant" id="variant.Thresh.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Thresh.field.items" class="small-section-header"><a href="#variant.Thresh.field.items" class="anchor field">§</a><code>items: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a>></code></span><div class="docblock"><p>The policy items</p>
-</div></div><div class="sub-variant-field"><span id="variant.Thresh.field.threshold" class="small-section-header"><a href="#variant.Thresh.field.threshold" class="anchor field">§</a><code>threshold: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code></span><div class="docblock"><p>The required threshold count</p>
-</div></div></div><div class="docblock"><p>Threshold items with threshold count</p>
-</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#160-177">source</a><a href="#impl-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_leaf" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#162-170">source</a><h4 class="code-header">pub fn <a href="#method.is_leaf" class="fn">is_leaf</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns whether the <a href="enum.SatisfiableItem.html" title="SatisfiableItem"><code>SatisfiableItem</code></a> is a leaf item</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.id" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#173-176">source</a><h4 class="code-header">pub fn <a href="#method.id" class="fn">id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class="docblock"><p>Returns a unique id for the <a href="enum.SatisfiableItem.html" title="SatisfiableItem"><code>SatisfiableItem</code></a></p>
-</div></details></div></details></div><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><section id="impl-Clone-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#104">source</a><a href="#impl-Clone-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#104">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#104">source</a><a href="#impl-Debug-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#104">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CSatisfiableItem%3E-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#736-740">source</a><a href="#impl-From%3CSatisfiableItem%3E-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="enum.SatisfiableItem.html" title="enum bdk::descriptor::policy::SatisfiableItem">SatisfiableItem</a>> for <a class="struct" href="struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#737-739">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(other: <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk::descriptor::policy::SatisfiableItem">SatisfiableItem</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CSatisfiableItem%3E-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#104">source</a><a href="#impl-PartialEq%3CSatisfiableItem%3E-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.SatisfiableItem.html" title="enum bdk::descriptor::policy::SatisfiableItem">SatisfiableItem</a>> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#104">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.SatisfiableItem.html" title="enum bdk::descriptor::policy::SatisfiableItem">SatisfiableItem</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#104">source</a><a href="#impl-Serialize-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#104">source</a><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><__S>(&self, __serializer: __S) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><__S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, __S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> __S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#104">source</a><a href="#impl-Eq-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section><section id="impl-StructuralEq-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#104">source</a><a href="#impl-StructuralEq-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section><section id="impl-StructuralPartialEq-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#104">source</a><a href="#impl-StructuralPartialEq-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SatisfiableItem" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section><section id="impl-Send-for-SatisfiableItem" class="impl has-srclink"><a href="#impl-Send-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section><section id="impl-Sync-for-SatisfiableItem" class="impl has-srclink"><a href="#impl-Sync-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section><section id="impl-Unpin-for-SatisfiableItem" class="impl has-srclink"><a href="#impl-Unpin-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section><section id="impl-UnwindSafe-for-SatisfiableItem" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SatisfiableItem" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Descriptor policy"><meta name="keywords" content="rust, rustlang, rust-lang, policy"><title>bdk::descriptor::policy - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module policy</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#types">Type Definitions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a class="mod" href="#">policy</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/policy.rs.html#12-1905">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Descriptor policy</p>
-<p>This module implements the logic to extract and represent the spending policies of a descriptor
-in a more human-readable format.</p>
-<p>This is an <strong>EXPERIMENTAL</strong> feature, API and other major changes are expected.</p>
-<h3 id="example"><a href="#example">Example</a></h3>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk::descriptor::policy::BuildSatisfaction;
-<span class="kw">let </span>secp = Secp256k1::new();
-<span class="kw">let </span>desc = <span class="string">"wsh(and_v(v:pk(cV3oCth6zxZ1UVsHLnGothsWNsaoxRhC6aeNi5VbSdFpwUkgkEci),or_d(pk(cVMTy7uebJgvFaSBwcgvwk8qn8xSLc97dKow4MBetjrrahZoimm2),older(12960))))"</span>;
-
-<span class="kw">let </span>(extended_desc, key_map) = ExtendedDescriptor::parse_descriptor(<span class="kw-2">&</span>secp, desc)<span class="question-mark">?</span>;
-<span class="macro">println!</span>(<span class="string">"{:?}"</span>, extended_desc);
-
-<span class="kw">let </span>signers = Arc::new(SignersContainer::build(key_map, <span class="kw-2">&</span>extended_desc, <span class="kw-2">&</span>secp));
-<span class="kw">let </span>policy = extended_desc.extract_policy(<span class="kw-2">&</span>signers, BuildSatisfaction::None, <span class="kw-2">&</span>secp)<span class="question-mark">?</span>;
-<span class="macro">println!</span>(<span class="string">"policy: {}"</span>, serde_json::to_string(<span class="kw-2">&</span>policy).unwrap());</code></pre></div>
-</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Condition.html" title="bdk::descriptor::policy::Condition struct">Condition</a></div><div class="item-right docblock-short">An extra condition that must be satisfied but that is out of control of the user
-TODO: use <code>bitcoin::LockTime</code> and <code>bitcoin::Sequence</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Policy.html" title="bdk::descriptor::policy::Policy struct">Policy</a></div><div class="item-right docblock-short">Descriptor spending policy</div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.BuildSatisfaction.html" title="bdk::descriptor::policy::BuildSatisfaction enum">BuildSatisfaction</a></div><div class="item-right docblock-short">Options to build the satisfaction field in the policy</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.PkOrF.html" title="bdk::descriptor::policy::PkOrF enum">PkOrF</a></div><div class="item-right docblock-short">A unique identifier for a key</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.PolicyError.html" title="bdk::descriptor::policy::PolicyError enum">PolicyError</a></div><div class="item-right docblock-short">Errors that can happen while extracting and manipulating policies</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Satisfaction.html" title="bdk::descriptor::policy::Satisfaction enum">Satisfaction</a></div><div class="item-right docblock-short">Represent if and how much a policy item is satisfied by the wallet’s descriptor</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.SatisfiableItem.html" title="bdk::descriptor::policy::SatisfiableItem enum">SatisfiableItem</a></div><div class="item-right docblock-short">An item that needs to be satisfied</div></div></div><h2 id="types" class="small-section-header"><a href="#types">Type Definitions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="type" href="type.ConditionMap.html" title="bdk::descriptor::policy::ConditionMap type">ConditionMap</a></div><div class="item-right docblock-short">Type for a map of sets of <a href="struct.Condition.html" title="Condition"><code>Condition</code></a> items keyed by each set’s index</div></div><div class="item-row"><div class="item-left module-item"><a class="type" href="type.FoldedConditionMap.html" title="bdk::descriptor::policy::FoldedConditionMap type">FoldedConditionMap</a></div><div class="item-right docblock-short">Type for a map of folded sets of <a href="struct.Condition.html" title="Condition"><code>Condition</code></a> items keyed by a vector of the combined set’s indexes</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-window.SIDEBAR_ITEMS = {"enum":[["BuildSatisfaction","Options to build the satisfaction field in the policy"],["PkOrF","A unique identifier for a key"],["PolicyError","Errors that can happen while extracting and manipulating policies"],["Satisfaction","Represent if and how much a policy item is satisfied by the wallet’s descriptor"],["SatisfiableItem","An item that needs to be satisfied"]],"struct":[["Condition","An extra condition that must be satisfied but that is out of control of the user TODO: use `bitcoin::LockTime` and `bitcoin::Sequence`"],["Policy","Descriptor spending policy"]],"type":[["ConditionMap","Type for a map of sets of [`Condition`] items keyed by each set’s index"],["FoldedConditionMap","Type for a map of folded sets of [`Condition`] items keyed by a vector of the combined set’s indexes"]]};
\ No newline at end of file
+++ /dev/null
-<!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="An extra condition that must be satisfied but that is out of control of the user TODO: use `bitcoin::LockTime` and `bitcoin::Sequence`"><meta name="keywords" content="rust, rustlang, rust-lang, Condition"><title>Condition in bdk::descriptor::policy - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Condition</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.csv">csv</a></li><li><a href="#structfield.timelock">timelock</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.is_null">is_null</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-Condition">Clone</a></li><li><a href="#impl-Copy-for-Condition">Copy</a></li><li><a href="#impl-Debug-for-Condition">Debug</a></li><li><a href="#impl-Default-for-Condition">Default</a></li><li><a href="#impl-Eq-for-Condition">Eq</a></li><li><a href="#impl-Hash-for-Condition">Hash</a></li><li><a href="#impl-PartialEq%3CCondition%3E-for-Condition">PartialEq<Condition></a></li><li><a href="#impl-PartialOrd%3CCondition%3E-for-Condition">PartialOrd<Condition></a></li><li><a href="#impl-Serialize-for-Condition">Serialize</a></li><li><a href="#impl-StructuralEq-for-Condition">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-Condition">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Condition">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Condition">Send</a></li><li><a href="#impl-Sync-for-Condition">Sync</a></li><li><a href="#impl-Unpin-for-Condition">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Condition">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Condition">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Condition">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Condition">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Condition">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Condition">Into<U></a></li><li><a href="#impl-ToOwned-for-Condition">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Condition">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Condition">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Condition">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor::policy</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">policy</a>::<wbr><a class="struct" href="#">Condition</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/policy.rs.html#449-456">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Condition {
- pub csv: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Sequence>,
- pub timelock: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><LockTime>,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An extra condition that must be satisfied but that is out of control of the user
-TODO: use <code>bitcoin::LockTime</code> and <code>bitcoin::Sequence</code></p>
-</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.csv" class="structfield small-section-header"><a href="#structfield.csv" class="anchor field">§</a><code>csv: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Sequence></code></span><div class="docblock"><p>Optional CheckSequenceVerify condition</p>
-</div><span id="structfield.timelock" class="structfield small-section-header"><a href="#structfield.timelock" class="anchor field">§</a><code>timelock: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><LockTime></code></span><div class="docblock"><p>Optional timelock condition</p>
-</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#458-500">source</a><a href="#impl-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_null" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#497-499">source</a><h4 class="code-header">pub fn <a href="#method.is_null" class="fn">is_null</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns <code>true</code> if there are no extra conditions to verify</p>
-</div></details></div></details></div><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><section id="impl-Clone-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#448">source</a><a href="#impl-Clone-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#448">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#448">source</a><a href="#impl-Debug-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#448">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#448">source</a><a href="#impl-Default-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#448">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#448">source</a><a href="#impl-Hash-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#448">source</a><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)</h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CCondition%3E-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#448">source</a><a href="#impl-PartialEq%3CCondition%3E-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a>> for <a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#448">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CCondition%3E-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#448">source</a><a href="#impl-PartialOrd%3CCondition%3E-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a>> for <a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#448">source</a><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#448">source</a><a href="#impl-Serialize-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#448">source</a><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><__S>(&self, __serializer: __S) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><__S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, __S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> __S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Copy-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#448">source</a><a href="#impl-Copy-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a></h3></section><section id="impl-Eq-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#448">source</a><a href="#impl-Eq-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a></h3></section><section id="impl-StructuralEq-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#448">source</a><a href="#impl-StructuralEq-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a></h3></section><section id="impl-StructuralPartialEq-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#448">source</a><a href="#impl-StructuralPartialEq-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Condition" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a></h3></section><section id="impl-Send-for-Condition" class="impl has-srclink"><a href="#impl-Send-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a></h3></section><section id="impl-Sync-for-Condition" class="impl has-srclink"><a href="#impl-Sync-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a></h3></section><section id="impl-Unpin-for-Condition" class="impl has-srclink"><a href="#impl-Unpin-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a></h3></section><section id="impl-UnwindSafe-for-Condition" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Condition" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Condition" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Condition" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Condition" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Condition" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-Condition" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Condition" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Condition" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Condition" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Condition" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Descriptor spending policy"><meta name="keywords" content="rust, rustlang, rust-lang, Policy"><title>Policy in bdk::descriptor::policy - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Policy</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.contribution">contribution</a></li><li><a href="#structfield.id">id</a></li><li><a href="#structfield.item">item</a></li><li><a href="#structfield.satisfaction">satisfaction</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.get_condition">get_condition</a></li><li><a href="#method.requires_path">requires_path</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-Policy">Clone</a></li><li><a href="#impl-Debug-for-Policy">Debug</a></li><li><a href="#impl-Eq-for-Policy">Eq</a></li><li><a href="#impl-From%3CSatisfiableItem%3E-for-Policy">From<SatisfiableItem></a></li><li><a href="#impl-PartialEq%3CPolicy%3E-for-Policy">PartialEq<Policy></a></li><li><a href="#impl-Serialize-for-Policy">Serialize</a></li><li><a href="#impl-StructuralEq-for-Policy">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-Policy">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Policy">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Policy">Send</a></li><li><a href="#impl-Sync-for-Policy">Sync</a></li><li><a href="#impl-Unpin-for-Policy">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Policy">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Policy">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Policy">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Policy">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Policy">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Policy">Into<U></a></li><li><a href="#impl-ToOwned-for-Policy">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Policy">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Policy">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Policy">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor::policy</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">policy</a>::<wbr><a class="struct" href="#">Policy</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/policy.rs.html#433-444">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Policy {
- pub id: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
- pub item: <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk::descriptor::policy::SatisfiableItem">SatisfiableItem</a>,
- pub satisfaction: <a class="enum" href="enum.Satisfaction.html" title="enum bdk::descriptor::policy::Satisfaction">Satisfaction</a>,
- pub contribution: <a class="enum" href="enum.Satisfaction.html" title="enum bdk::descriptor::policy::Satisfaction">Satisfaction</a>,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Descriptor spending policy</p>
-</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.id" class="structfield small-section-header"><a href="#structfield.id" class="anchor field">§</a><code>id: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></code></span><div class="docblock"><p>Identifier for this policy node</p>
-</div><span id="structfield.item" class="structfield small-section-header"><a href="#structfield.item" class="anchor field">§</a><code>item: <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk::descriptor::policy::SatisfiableItem">SatisfiableItem</a></code></span><div class="docblock"><p>Type of this policy node</p>
-</div><span id="structfield.satisfaction" class="structfield small-section-header"><a href="#structfield.satisfaction" class="anchor field">§</a><code>satisfaction: <a class="enum" href="enum.Satisfaction.html" title="enum bdk::descriptor::policy::Satisfaction">Satisfaction</a></code></span><div class="docblock"><p>How much a given PSBT already satisfies this policy node in terms of signatures</p>
-</div><span id="structfield.contribution" class="structfield small-section-header"><a href="#structfield.contribution" class="anchor field">§</a><code>contribution: <a class="enum" href="enum.Satisfaction.html" title="enum bdk::descriptor::policy::Satisfaction">Satisfaction</a></code></span><div class="docblock"><p>How the wallet’s descriptor can satisfy this policy node</p>
-</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Policy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#535-734">source</a><a href="#impl-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.requires_path" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#653-655">source</a><h4 class="code-header">pub fn <a href="#method.requires_path" class="fn">requires_path</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Return whether or not a specific path in the policy tree is required to unambiguously
-create a transaction</p>
-<p>What this means is that for some spending policies the user should select which paths in
-the tree it intends to satisfy while signing, because the transaction must be created differently based
-on that.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_condition" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#659-733">source</a><h4 class="code-header">pub fn <a href="#method.get_condition" class="fn">get_condition</a>(<br> &self,<br> path: &<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><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</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.usize.html">usize</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="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a>, <a class="enum" href="enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a>></h4></section></summary><div class="docblock"><p>Return the conditions that are set by the spending policy for a given path in the
-policy tree</p>
-</div></details></div></details></div><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><section id="impl-Clone-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#432">source</a><a href="#impl-Clone-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#432">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#432">source</a><a href="#impl-Debug-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#432">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CSatisfiableItem%3E-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#736-740">source</a><a href="#impl-From%3CSatisfiableItem%3E-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="enum.SatisfiableItem.html" title="enum bdk::descriptor::policy::SatisfiableItem">SatisfiableItem</a>> for <a class="struct" href="struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#737-739">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(other: <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk::descriptor::policy::SatisfiableItem">SatisfiableItem</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CPolicy%3E-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#432">source</a><a href="#impl-PartialEq%3CPolicy%3E-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a>> for <a class="struct" href="struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#432">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#432">source</a><a href="#impl-Serialize-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="struct" href="struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#432">source</a><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><__S>(&self, __serializer: __S) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><__S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, __S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> __S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#432">source</a><a href="#impl-Eq-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a></h3></section><section id="impl-StructuralEq-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#432">source</a><a href="#impl-StructuralEq-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="struct" href="struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a></h3></section><section id="impl-StructuralPartialEq-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/policy.rs.html#432">source</a><a href="#impl-StructuralPartialEq-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Policy" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a></h3></section><section id="impl-Send-for-Policy" class="impl has-srclink"><a href="#impl-Send-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a></h3></section><section id="impl-Sync-for-Policy" class="impl has-srclink"><a href="#impl-Sync-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a></h3></section><section id="impl-Unpin-for-Policy" class="impl has-srclink"><a href="#impl-Unpin-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a></h3></section><section id="impl-UnwindSafe-for-Policy" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Policy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Policy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Policy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Policy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Policy" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-Policy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Policy" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Policy" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Policy" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Policy" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Type for a map of sets of [`Condition`] items keyed by each set’s index"><meta name="keywords" content="rust, rustlang, rust-lang, ConditionMap"><title>ConditionMap in bdk::descriptor::policy - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">ConditionMap</a></h2><div class="sidebar-elems"><h2><a href="index.html">In bdk::descriptor::policy</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">policy</a>::<wbr><a class="type" href="#">ConditionMap</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/policy.rs.html#238">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub type ConditionMap = <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><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/set/struct.HashSet.html" title="struct std::collections::hash::set::HashSet">HashSet</a><<a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a>>>;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Type for a map of sets of <a href="struct.Condition.html" title="Condition"><code>Condition</code></a> items keyed by each set’s index</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Type for a map of folded sets of [`Condition`] items keyed by a vector of the combined set’s indexes"><meta name="keywords" content="rust, rustlang, rust-lang, FoldedConditionMap"><title>FoldedConditionMap in bdk::descriptor::policy - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">FoldedConditionMap</a></h2><div class="sidebar-elems"><h2><a href="index.html">In bdk::descriptor::policy</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">policy</a>::<wbr><a class="type" href="#">FoldedConditionMap</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/policy.rs.html#240">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub type FoldedConditionMap = <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><<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.usize.html">usize</a>>, <a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/set/struct.HashSet.html" title="struct std::collections::hash::set::HashSet">HashSet</a><<a class="struct" href="struct.Condition.html" title="struct bdk::descriptor::policy::Condition">Condition</a>>>;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Type for a map of folded sets of <a href="struct.Condition.html" title="Condition"><code>Condition</code></a> items keyed by a vector of the combined set’s indexes</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-window.SIDEBAR_ITEMS = {"enum":[["Descriptor","Script descriptor"],["DescriptorPublicKey","The descriptor pubkey, either a single pubkey or an xpub."],["Legacy","Legacy ScriptContext To be used as P2SH scripts For creation of Bare scriptpubkeys, construct the Miniscript under `Bare` ScriptContext"],["Segwitv0","Segwitv0 ScriptContext"]],"mod":[["checksum","Descriptor checksum"],["error","Descriptor errors"],["policy","Descriptor policy"],["template","Descriptor templates"]],"struct":[["Miniscript","The top-level miniscript abstract syntax tree (AST)."]],"trait":[["ExtractPolicy","Trait implemented on [`Descriptor`]s to add a method to extract the spending [`policy`]"],["IntoWalletDescriptor","Trait for types which can be converted into an [`ExtendedDescriptor`] and a [`KeyMap`] usable by a wallet in a specific [`Network`]"],["ScriptContext","The ScriptContext for Miniscript. Additional type information associated with miniscript that is used for carrying out checks that dependent on the context under which the script is used. For example, disallowing uncompressed keys in Segwit context"]],"type":[["DerivedDescriptor","Alias for a [`Descriptor`] that contains extended derived keys"],["ExtendedDescriptor","Alias for a [`Descriptor`] that can contain extended keys using [`DescriptorPublicKey`]"],["HdKeyPaths","Alias for the type of maps that represent derivation paths in a `psbt::Input` or `psbt::Output`"],["TapKeyOrigins","Alias for the type of maps that represent taproot key origins in a `psbt::Input` or `psbt::Output`"]]};
\ No newline at end of file
+++ /dev/null
-<!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="The top-level miniscript abstract syntax tree (AST)."><meta name="keywords" content="rust, rustlang, rust-lang, Miniscript"><title>Miniscript in bdk::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Miniscript</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.ext">ext</a></li><li><a href="#structfield.node">node</a></li><li><a href="#structfield.ty">ty</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.as_inner">as_inner</a></li><li><a href="#method.branches">branches</a></li><li><a href="#method.build_template">build_template</a></li><li><a href="#method.build_template_mall">build_template_mall</a></li><li><a href="#method.contains_raw_pkh">contains_raw_pkh</a></li><li><a href="#method.encode">encode</a></li><li><a href="#method.ext_check">ext_check</a></li><li><a href="#method.from_ast">from_ast</a></li><li><a href="#method.from_components_unchecked">from_components_unchecked</a></li><li><a href="#method.from_str_ext">from_str_ext</a></li><li><a href="#method.from_str_insane">from_str_insane</a></li><li><a href="#method.get_nth_child">get_nth_child</a></li><li><a href="#method.get_nth_pk">get_nth_pk</a></li><li><a href="#method.has_mixed_timelocks">has_mixed_timelocks</a></li><li><a href="#method.has_repeated_keys">has_repeated_keys</a></li><li><a href="#method.into_inner">into_inner</a></li><li><a href="#method.is_non_malleable">is_non_malleable</a></li><li><a href="#method.iter">iter</a></li><li><a href="#method.iter_pk">iter_pk</a></li><li><a href="#method.lift_check">lift_check</a></li><li><a href="#method.max_satisfaction_size">max_satisfaction_size</a></li><li><a href="#method.max_satisfaction_witness_elements">max_satisfaction_witness_elements</a></li><li><a href="#method.parse">parse</a></li><li><a href="#method.parse_insane">parse_insane</a></li><li><a href="#method.parse_with_ext">parse_with_ext</a></li><li><a href="#method.requires_sig">requires_sig</a></li><li><a href="#method.sanity_check">sanity_check</a></li><li><a href="#method.satisfy">satisfy</a></li><li><a href="#method.satisfy_malleable">satisfy_malleable</a></li><li><a href="#method.script_size">script_size</a></li><li><a href="#method.substitute_raw_pkh">substitute_raw_pkh</a></li><li><a href="#method.within_resource_limits">within_resource_limits</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-Miniscript%3CPk%2C%20Ctx%3E">Clone</a></li><li><a href="#impl-Debug-for-Miniscript%3CPk%2C%20Ctx%3E">Debug</a></li><li><a href="#impl-Deserialize%3C%27de%3E-for-Miniscript%3CPk%2C%20Ctx%3E">Deserialize<'de></a></li><li><a href="#impl-Display-for-Miniscript%3CPk%2C%20Ctx%3E">Display</a></li><li><a href="#impl-Eq-for-Miniscript%3CPk%2C%20Ctx%3E">Eq</a></li><li><a href="#impl-ExtractPolicy-for-Miniscript%3CDescriptorPublicKey%2C%20Ctx%3E">ExtractPolicy</a></li><li><a href="#impl-ForEachKey%3CPk%3E-for-Miniscript%3CPk%2C%20Ctx%3E">ForEachKey<Pk></a></li><li><a href="#impl-FromStr-for-Miniscript%3CPk%2C%20Ctx%3E">FromStr</a></li><li><a href="#impl-FromTree-for-Miniscript%3CPk%2C%20Ctx%3E">FromTree</a></li><li><a href="#impl-Hash-for-Miniscript%3CPk%2C%20Ctx%3E">Hash</a></li><li><a href="#impl-Liftable%3CPk%3E-for-Miniscript%3CPk%2C%20Ctx%3E">Liftable<Pk></a></li><li><a href="#impl-Ord-for-Miniscript%3CPk%2C%20Ctx%3E">Ord</a></li><li><a href="#impl-PartialEq%3CMiniscript%3CPk%2C%20Ctx%3E%3E-for-Miniscript%3CPk%2C%20Ctx%3E">PartialEq<Miniscript<Pk, Ctx>></a></li><li><a href="#impl-PartialOrd%3CMiniscript%3CPk%2C%20Ctx%3E%3E-for-Miniscript%3CPk%2C%20Ctx%3E">PartialOrd<Miniscript<Pk, Ctx>></a></li><li><a href="#impl-Serialize-for-Miniscript%3CPk%2C%20Ctx%3E">Serialize</a></li><li><a href="#impl-TranslatePk%3CPk%2C%20Q%3E-for-Miniscript%3CPk%2C%20Ctx%3E">TranslatePk<Pk, Q></a></li><li><a href="#impl-TreeLike-for-%26%27a%20Miniscript%3CPk%2C%20Ctx%3E">TreeLike</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Miniscript%3CPk%2C%20Ctx%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Miniscript%3CPk%2C%20Ctx%3E">Send</a></li><li><a href="#impl-Sync-for-Miniscript%3CPk%2C%20Ctx%3E">Sync</a></li><li><a href="#impl-Unpin-for-Miniscript%3CPk%2C%20Ctx%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Miniscript%3CPk%2C%20Ctx%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Miniscript%3CPk%2C%20Ctx%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Miniscript%3CPk%2C%20Ctx%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Miniscript%3CPk%2C%20Ctx%3E">BorrowMut<T></a></li><li><a href="#impl-DeserializeOwned-for-Miniscript%3CPk%2C%20Ctx%3E">DeserializeOwned</a></li><li><a href="#impl-From%3CT%3E-for-Miniscript%3CPk%2C%20Ctx%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Miniscript%3CPk%2C%20Ctx%3E">Into<U></a></li><li><a href="#impl-ToOwned-for-Miniscript%3CPk%2C%20Ctx%3E">ToOwned</a></li><li><a href="#impl-ToString-for-Miniscript%3CPk%2C%20Ctx%3E">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Miniscript%3CPk%2C%20Ctx%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Miniscript%3CPk%2C%20Ctx%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Miniscript%3CPk%2C%20Ctx%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="struct" href="#">Miniscript</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Miniscript<Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span>{
- pub node: Terminal<Pk, Ctx>,
- pub ty: Type,
- pub ext: ExtData,
- /* private fields */
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The top-level miniscript abstract syntax tree (AST).</p>
-</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.node" class="structfield small-section-header"><a href="#structfield.node" class="anchor field">§</a><code>node: Terminal<Pk, Ctx></code></span><div class="docblock"><p>A node in the AST.</p>
-</div><span id="structfield.ty" class="structfield small-section-header"><a href="#structfield.ty" class="anchor field">§</a><code>ty: Type</code></span><div class="docblock"><p>The correctness and malleability type information for the AST node.</p>
-</div><span id="structfield.ext" class="structfield small-section-header"><a href="#structfield.ext" class="anchor field">§</a><code>ext: ExtData</code></span><div class="docblock"><p>Additional information helpful for extra analysis.</p>
-</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.requires_sig" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.requires_sig" class="fn">requires_sig</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether all spend paths of miniscript require a signature</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_non_malleable" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_non_malleable" class="fn">is_non_malleable</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether the miniscript is malleable</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.within_resource_limits" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.within_resource_limits" class="fn">within_resource_limits</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether the miniscript can exceed the resource limits(Opcodes, Stack limit etc)</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.has_mixed_timelocks" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.has_mixed_timelocks" class="fn">has_mixed_timelocks</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether the miniscript contains a combination of timelocks</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.has_repeated_keys" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.has_repeated_keys" class="fn">has_repeated_keys</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether the miniscript has repeated Pk or Pkh</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.contains_raw_pkh" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.contains_raw_pkh" class="fn">contains_raw_pkh</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether the given miniscript contains a raw pkh fragment</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sanity_check" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.sanity_check" class="fn">sanity_check</a>(&self) -> <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>, AnalysisError></h4></section></summary><div class="docblock"><p>Check whether the underlying Miniscript is safe under the current context
-Lifting these polices would create a semantic representation that does
-not represent the underlying semantics when miniscript is spent.
-Signing logic may not find satisfaction even if one exists.</p>
-<p>For most cases, users should be dealing with safe scripts.
-Use this function to check whether the guarantees of library hold.
-Most functions of the library like would still
-work, but results cannot be relied upon</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ext_check" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.ext_check" class="fn">ext_check</a>(&self, ext: &ExtParams) -> <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>, AnalysisError></h4></section></summary><div class="docblock"><p>Check whether the miniscript follows the given Extra policy [<code>ExtParams</code>]</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Miniscript%3CPk%2C%20Ctx%3E-1" class="impl has-srclink"><a href="#impl-Miniscript%3CPk%2C%20Ctx%3E-1" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="docblock"><p>Iterator-related extensions for <a href="struct.Miniscript.html" title="Miniscript">Miniscript</a></p>
-</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.iter" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.iter" class="fn">iter</a>(&self) -> Iter<'_, Pk, Ctx></h4></section></summary><div class="docblock"><p>Creates a new [Iter] iterator that will iterate over all <a href="struct.Miniscript.html" title="Miniscript">Miniscript</a> items within
-AST by traversing its branches. For the specific algorithm please see
-[Iter::next] function.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.iter_pk" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.iter_pk" class="fn">iter_pk</a>(&self) -> PkIter<'_, Pk, Ctx></h4></section></summary><div class="docblock"><p>Creates a new [PkIter] iterator that will iterate over all plain public keys (and not
-key hash values) present in <a href="struct.Miniscript.html" title="Miniscript">Miniscript</a> items within AST by traversing all its branches.
-For the specific algorithm please see [PkIter::next] function.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.branches" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.branches" class="fn">branches</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><&<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>></h4></section></summary><div class="docblock"><p>Enumerates all child nodes of the current AST node (<code>self</code>) and returns a <code>Vec</code> referencing
-them.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_nth_child" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.get_nth_child" class="fn">get_nth_child</a>(&self, n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</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="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx>></h4></section></summary><div class="docblock"><p>Returns child node with given index, if any</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_nth_pk" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.get_nth_pk" class="fn">get_nth_pk</a>(&self, n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Pk></h4></section></summary><div class="docblock"><p>Returns <code>Option::Some</code> with cloned n’th public key from the current miniscript item,
-if any. Otherwise returns <code>Option::None</code>.</p>
-<p>NB: The function analyzes only single miniscript item and not any of its descendants in AST.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Miniscript%3CPk%2C%20Ctx%3E-2" class="impl has-srclink"><a href="#impl-Miniscript%3CPk%2C%20Ctx%3E-2" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_ast" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.from_ast" class="fn">from_ast</a>(t: Terminal<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="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx>, Error></h4></section></summary><div class="docblock"><p>Add type information(Type and Extdata) to Miniscript based on
-<code>AstElem</code> fragment. Dependent on display and clone because of Error
-Display code of type_check.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_components_unchecked" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.from_components_unchecked" class="fn">from_components_unchecked</a>(<br> node: Terminal<Pk, Ctx>,<br> ty: Type,<br> ext: ExtData<br>) -> <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx></h4></section></summary><div class="docblock"><p>Create a new <code>Miniscript</code> from a <code>Terminal</code> node and a <code>Type</code> annotation
-This does not check the typing rules. The user is responsible for ensuring
-that the type provided is correct.</p>
-<p>You should almost always use <code>Miniscript::from_ast</code> instead of this function.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_inner" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.into_inner" class="fn">into_inner</a>(self) -> Terminal<Pk, Ctx></h4></section></summary><div class="docblock"><p>Extracts the <code>AstElem</code> representing the root of the miniscript</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_inner" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.as_inner" class="fn">as_inner</a>(&self) -> &Terminal<Pk, Ctx></h4></section></summary><div class="docblock"><p>Get a reference to the inner <code>AstElem</code> representing the root of miniscript</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.encode" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.encode" class="fn">encode</a>(&self) -> ScriptBuf<span class="where fmt-newline">where<br> Pk: ToPublicKey,</span></h4></section></summary><div class="docblock"><p>Encode as a Bitcoin script</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.script_size" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.script_size" class="fn">script_size</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Size, in bytes of the script-pubkey. If this Miniscript is used outside
-of segwit (e.g. in a bare or P2SH descriptor), this quantity should be
-multiplied by 4 to compute the weight.</p>
-<p>In general, it is not recommended to use this function directly, but
-to instead call the corresponding function on a <code>Descriptor</code>, which
-will handle the segwit/non-segwit technicalities for you.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_satisfaction_witness_elements" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.max_satisfaction_witness_elements" class="fn">max_satisfaction_witness_elements</a>(&self) -> <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.usize.html">usize</a>, Error></h4></section></summary><div class="docblock"><p>Maximum number of witness elements used to satisfy the Miniscript
-fragment, including the witness script itself. Used to estimate
-the weight of the <code>VarInt</code> that specifies this number in a serialized
-transaction.</p>
-<p>This function may returns Error when the Miniscript is
-impossible to satisfy</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_satisfaction_size" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.max_satisfaction_size" class="fn">max_satisfaction_size</a>(&self) -> <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.usize.html">usize</a>, Error></h4></section></summary><div class="docblock"><p>Maximum size, in bytes, of a satisfying witness. For Segwit outputs
-<code>one_cost</code> should be set to 2, since the number <code>1</code> requires two
-bytes to encode. For non-segwit outputs <code>one_cost</code> should be set to
-1, since <code>OP_1</code> is available in scriptSigs.</p>
-<p>In general, it is not recommended to use this function directly, but
-to instead call the corresponding function on a <code>Descriptor</code>, which
-will handle the segwit/non-segwit technicalities for you.</p>
-<p>All signatures are assumed to be 73 bytes in size, including the
-length prefix (segwit) or push opcode (pre-segwit) and sighash
-postfix.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.satisfy" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.satisfy" class="fn">satisfy</a><S>(<br> &self,<br> satisfier: S<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="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</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="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>>, Error><span class="where fmt-newline">where<br> S: Satisfier<Pk>,<br> Pk: ToPublicKey,</span></h4></section></summary><div class="docblock"><p>Attempt to produce non-malleable satisfying witness for the
-witness script represented by the parse tree</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.satisfy_malleable" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.satisfy_malleable" class="fn">satisfy_malleable</a><S>(<br> &self,<br> satisfier: S<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="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</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="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>>, Error><span class="where fmt-newline">where<br> S: Satisfier<Pk>,<br> Pk: ToPublicKey,</span></h4></section></summary><div class="docblock"><p>Attempt to produce a malleable satisfying witness for the
-witness script represented by the parse tree</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build_template" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.build_template" class="fn">build_template</a><P>(&self, provider: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>P) -> Satisfaction<Placeholder<Pk>><span class="where fmt-newline">where<br> P: AssetProvider<Pk>,<br> Pk: ToPublicKey,</span></h4></section></summary><div class="docblock"><p>Attempt to produce a non-malleable witness template given the assets available</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build_template_mall" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.build_template_mall" class="fn">build_template_mall</a><P>(<br> &self,<br> provider: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>P<br>) -> Satisfaction<Placeholder<Pk>><span class="where fmt-newline">where<br> P: AssetProvider<Pk>,<br> Pk: ToPublicKey,</span></h4></section></summary><div class="docblock"><p>Attempt to produce a malleable witness template given the assets available</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Miniscript%3C%3CCtx%20as%20ScriptContext%3E%3A%3AKey%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Miniscript%3C%3CCtx%20as%20ScriptContext%3E%3A%3AKey%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><<Ctx as <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>>::<a class="associatedtype" href="../keys/trait.ScriptContext.html#associatedtype.Key" title="type bdk::keys::ScriptContext::Key">Key</a>, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.parse_insane" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.parse_insane" class="fn">parse_insane</a>(<br> script: &Script<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="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><<Ctx as <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>>::<a class="associatedtype" href="../keys/trait.ScriptContext.html#associatedtype.Key" title="type bdk::keys::ScriptContext::Key">Key</a>, Ctx>, Error></h4></section></summary><div class="docblock"><p>Attempt to parse an insane(scripts don’t clear sanity checks)
-script into a Miniscript representation.
-Use this to parse scripts with repeated pubkeys, timelock mixing, malleable
-scripts without sig or scripts that can exceed resource limits.
-Some of the analysis guarantees of miniscript are lost when dealing with
-insane scripts. In general, in a multi-party setting users should only
-accept sane scripts.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.parse_with_ext" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.parse_with_ext" class="fn">parse_with_ext</a>(<br> script: &Script,<br> ext: &ExtParams<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="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><<Ctx as <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>>::<a class="associatedtype" href="../keys/trait.ScriptContext.html#associatedtype.Key" title="type bdk::keys::ScriptContext::Key">Key</a>, Ctx>, Error></h4></section></summary><div class="docblock"><p>Attempt to parse an miniscript with extra features that not yet specified in the spec.
-Users should not use this function unless they scripts can/will change in the future.
-Currently, this function supports the following features:
-- Parsing all insane scripts
-- Parsing miniscripts with raw pubkey hashes</p>
-<p>Allowed extra features can be specified by the ext [<code>ExtParams</code>] argument.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.parse" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.parse" class="fn">parse</a>(<br> script: &Script<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="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><<Ctx as <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>>::<a class="associatedtype" href="../keys/trait.ScriptContext.html#associatedtype.Key" title="type bdk::keys::ScriptContext::Key">Key</a>, Ctx>, Error></h4></section></summary><div class="docblock"><p>Attempt to parse a Script into Miniscript representation.</p>
-<p>This function will fail parsing for scripts that do not clear the
-<a href="struct.Miniscript.html#method.sanity_check" title="Miniscript::sanity_check"><code>Miniscript::sanity_check</code></a> checks. Use <a href="struct.Miniscript.html#method.parse_insane" title="Miniscript::parse_insane"><code>Miniscript::parse_insane</code></a> to
-parse such scripts.</p>
-<h6 id="decodeparse-a-miniscript-from-script-hex"><a href="#decodeparse-a-miniscript-from-script-hex">Decode/Parse a miniscript from script hex</a></h6>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>miniscript::{Miniscript, Segwitv0, Tap};
-<span class="kw">use </span>miniscript::bitcoin::secp256k1::XOnlyPublicKey;
-<span class="kw">use </span>miniscript::bitcoin::hashes::hex::FromHex;
-
-<span class="kw">type </span>Segwitv0Script = Miniscript<bitcoin::PublicKey, Segwitv0>;
-<span class="kw">type </span>TapScript = Miniscript<XOnlyPublicKey, Tap>;
-
-<span class="comment">// parse x-only miniscript in Taproot context
-</span><span class="kw">let </span>tapscript_ms = TapScript::parse(<span class="kw-2">&</span>bitcoin::ScriptBuf::from_hex(
- <span class="string">"202788ee41e76f4f3af603da5bc8fa22997bc0344bb0f95666ba6aaff0242baa99ac"</span>,
-).expect(<span class="string">"Even length hex"</span>))
- .expect(<span class="string">"Xonly keys are valid only in taproot context"</span>);
-<span class="comment">// tapscript fails decoding when we use them with compressed keys
-</span><span class="kw">let </span>err = TapScript::parse(<span class="kw-2">&</span>bitcoin::ScriptBuf::from_hex(
- <span class="string">"21022788ee41e76f4f3af603da5bc8fa22997bc0344bb0f95666ba6aaff0242baa99ac"</span>,
-).expect(<span class="string">"Even length hex"</span>))
- .expect_err(<span class="string">"Compressed keys cannot be used in Taproot context"</span>);
-<span class="comment">// Segwitv0 succeeds decoding with full keys.
-</span>Segwitv0Script::parse(<span class="kw-2">&</span>bitcoin::ScriptBuf::from_hex(
- <span class="string">"21022788ee41e76f4f3af603da5bc8fa22997bc0344bb0f95666ba6aaff0242baa99ac"</span>,
-).expect(<span class="string">"Even length hex"</span>))
- .expect(<span class="string">"Compressed keys are allowed in Segwit context"</span>);
-</code></pre></div>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Miniscript%3CPk%2C%20Ctx%3E-3" class="impl has-srclink"><a href="#impl-Miniscript%3CPk%2C%20Ctx%3E-3" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.substitute_raw_pkh" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.substitute_raw_pkh" class="fn">substitute_raw_pkh</a>(<br> &self,<br> pk_map: &<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><Hash, Pk, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>><br>) -> <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx></h4></section></summary><div class="docblock"><p>Substitutes raw public keys hashes with the public keys as provided by map.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Miniscript%3CPk%2C%20Ctx%3E-4" class="impl has-srclink"><a href="#impl-Miniscript%3CPk%2C%20Ctx%3E-4" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey + <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Sha256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Ripemd160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_str_insane" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.from_str_insane" class="fn">from_str_insane</a>(s: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx>, Error></h4></section></summary><div class="docblock"><p>Attempt to parse an insane(scripts don’t clear sanity checks)
-from string into a Miniscript representation.
-Use this to parse scripts with repeated pubkeys, timelock mixing, malleable
-scripts without sig or scripts that can exceed resource limits.
-Some of the analysis guarantees of miniscript are lost when dealing with
-insane scripts. In general, in a multi-party setting users should only
-accept sane scripts.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Miniscript%3CPk%2C%20Ctx%3E-5" class="impl has-srclink"><a href="#impl-Miniscript%3CPk%2C%20Ctx%3E-5" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey + <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Sha256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Ripemd160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_str_ext" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.from_str_ext" class="fn">from_str_ext</a>(<br> s: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,<br> ext: &ExtParams<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="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx>, Error></h4></section></summary><div class="docblock"><p>Attempt to parse an Miniscripts that don’t follow the spec.
-Use this to parse scripts with repeated pubkeys, timelock mixing, malleable
-scripts, raw pubkey hashes without sig or scripts that can exceed resource limits.</p>
-<p>Use [<code>ExtParams</code>] builder to specify the types of non-sane rules to allow while parsing.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Miniscript%3CPk%2C%20Ctx%3E-6" class="impl has-srclink"><a href="#impl-Miniscript%3CPk%2C%20Ctx%3E-6" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lift_check" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.lift_check" class="fn">lift_check</a>(&self) -> <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>, LiftError></h4></section></summary><div class="docblock"><p>Lifting corresponds to conversion of a miniscript into a [<code>Semantic</code>]
-policy for human readable or machine analysis. However, naively lifting
-miniscripts can result in incorrect interpretations that don’t
-correspond to the underlying semantics when we try to spend them on
-bitcoin network. This can occur if the miniscript contains:</p>
-<ol>
-<li>A combination of timelocks</li>
-<li>A spend that exceeds resource limits</li>
-</ol>
-</div></details></div></details></div><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><section id="impl-Clone-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Clone-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + MiniscriptKey,<br> Ctx: <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="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Debug-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserialize%3C%27de%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Deserialize%3C%27de%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<'de, Pk, Ctx> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> for <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey + <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,<br> <<Pk as MiniscriptKey>::Sha256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,<br> <<Pk as MiniscriptKey>::Hash256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,<br> <<Pk as MiniscriptKey>::Ripemd160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,<br> <<Pk as MiniscriptKey>::Hash160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl has-srclink"><a href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize" class="fn">deserialize</a><D>(<br> deserializer: D<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="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx>, <D as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>><span class="where fmt-newline">where<br> D: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Display-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ExtractPolicy-for-Miniscript%3CDescriptorPublicKey%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/descriptor/policy.rs.html#910-1043">source</a><a href="#impl-ExtractPolicy-for-Miniscript%3CDescriptorPublicKey%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">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></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.extract_policy" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/descriptor/policy.rs.html#911-1042">source</a><a href="#method.extract_policy" class="anchor">§</a><h4 class="code-header">fn <a href="trait.ExtractPolicy.html#tymethod.extract_policy" class="fn">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> build_sat: <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">Error</a>></h4></section></summary><div class='docblock'>Extract the spending <a href="policy/index.html" title="policy"><code>policy</code></a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ForEachKey%3CPk%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-ForEachKey%3CPk%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> ForEachKey<Pk> for <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.for_each_key" class="method trait-impl has-srclink"><a href="#method.for_each_key" class="anchor">§</a><h4 class="code-header">fn <a class="fn">for_each_key</a><'a, F>(&'a self, pred: F) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&'a </a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</span></h4></section></summary><div class='docblock'>Run a predicate on every key in the descriptor, returning whether
-the predicate returned true for every key <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.for_any_key" class="method trait-impl has-srclink"><a href="#method.for_any_key" class="anchor">§</a><h4 class="code-header">fn <a class="fn">for_any_key</a><'a, F>(&'a self, pred: F) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&'a </a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,<br> Pk: 'a,</span></h4></section></summary><div class='docblock'>Run a predicate on every key in the descriptor, returning whether
-the predicate returned true for any key <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-FromStr-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-FromStr-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey + <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Sha256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Ripemd160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_str" class="method trait-impl has-srclink"><a href="#method.from_str" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str" class="fn">from_str</a>(s: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx>, Error></h4></section></summary><div class="docblock"><p>Parse a Miniscript from string and perform sanity checks
-See <a href="struct.Miniscript.html#method.from_str_insane" title="Miniscript::from_str_insane">Miniscript::from_str_insane</a> to parse scripts from string that
-do not clear the <a href="struct.Miniscript.html#method.sanity_check" title="Miniscript::sanity_check">Miniscript::sanity_check</a> checks.</p>
-</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Err" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Err" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" class="associatedtype">Err</a> = Error</h4></section></summary><div class='docblock'>The associated error which can be returned from parsing.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-FromTree-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-FromTree-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> FromTree for <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey + <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Sha256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Ripemd160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_tree" class="method trait-impl has-srclink"><a href="#method.from_tree" class="anchor">§</a><h4 class="code-header">fn <a class="fn">from_tree</a>(top: &Tree<'_>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx>, Error></h4></section></summary><div class="docblock"><p>Parse an expression tree into a Miniscript. As a general rule, this
-should not be called directly; rather go through the descriptor API.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Hash-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="docblock"><p><code>Hash</code> of <code>Miniscript</code> must depend only on node and not the type information.</p>
-<p>The type information and extra properties are implied by the AST.</p>
-</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><H>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Liftable%3CPk%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Liftable%3CPk%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> Liftable<Pk> for <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lift" class="method trait-impl has-srclink"><a href="#method.lift" class="anchor">§</a><h4 class="code-header">fn <a class="fn">lift</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Policy<Pk>, Error></h4></section></summary><div class='docblock'>Converts this object into an abstract policy.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Ord-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="docblock"><p><code>Ord</code> of <code>Miniscript</code> must depend only on node and not the type information.</p>
-<p>The type information and extra properties are implied by the AST.</p>
-</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CMiniscript%3CPk%2C%20Ctx%3E%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-PartialEq%3CMiniscript%3CPk%2C%20Ctx%3E%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx>> for <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="docblock"><p><code>PartialEq</code> of <code>Miniscript</code> must depend only on node and not the type information.</p>
-<p>The type information and extra properties are implied by the AST.</p>
-</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CMiniscript%3CPk%2C%20Ctx%3E%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-PartialOrd%3CMiniscript%3CPk%2C%20Ctx%3E%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx>> for <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="docblock"><p><code>PartialOrd</code> of <code>Miniscript</code> must depend only on node and not the type information.</p>
-<p>The type information and extra properties are implied by the AST.</p>
-</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="struct" href="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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Serialize-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<'de, Pk, Ctx> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><S>(<br> &self,<br> serializer: S<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<S as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, <S as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-TranslatePk%3CPk%2C%20Q%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-TranslatePk%3CPk%2C%20Q%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Q, Ctx> TranslatePk<Pk, Q> for <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Q: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.translate_pk" class="method trait-impl has-srclink"><a href="#method.translate_pk" class="anchor">§</a><h4 class="code-header">fn <a class="fn">translate_pk</a><T, E>(<br> &self,<br> t: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T<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="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx> as TranslatePk<Pk, Q>>::Output, TranslateErr<E>><span class="where fmt-newline">where<br> T: Translator<Pk, Q, E>,</span></h4></section></summary><div class="docblock"><p>Translates a struct from one generic to another where the translation
-for Pk is provided by [<code>Translator</code>]</p>
-</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Output</a> = <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Q, Ctx></h4></section></summary><div class='docblock'>The associated output type. This must be <code>Self<Q></code>.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-TreeLike-for-%26%27a%20Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-TreeLike-for-%26%27a%20Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<'a, Pk, Ctx> TreeLike for &'a <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_node" class="method trait-impl has-srclink"><a href="#method.as_node" class="anchor">§</a><h4 class="code-header">fn <a class="fn">as_node</a>(&self) -> Tree<&'a <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx>></h4></section></summary><div class='docblock'>Interpret the node as an abstract node.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.n_children" class="method trait-impl has-srclink"><a href="#method.n_children" class="anchor">§</a><h4 class="code-header">fn <a class="fn">n_children</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class='docblock'>Accessor for the number of children this node has.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.nth_child" class="method trait-impl has-srclink"><a href="#method.nth_child" class="anchor">§</a><h4 class="code-header">fn <a class="fn">nth_child</a>(&self, n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self></h4></section></summary><div class='docblock'>Accessor for the nth child of the node, if a child with that index exists.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.pre_order_iter" class="method trait-impl has-srclink"><a href="#method.pre_order_iter" class="anchor">§</a><h4 class="code-header">fn <a class="fn">pre_order_iter</a>(self) -> PreOrderIter<Self></h4></section></summary><div class='docblock'>Obtains an iterator of all the nodes rooted at the node, in pre-order.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.verbose_pre_order_iter" class="method trait-impl has-srclink"><a href="#method.verbose_pre_order_iter" class="anchor">§</a><h4 class="code-header">fn <a class="fn">verbose_pre_order_iter</a>(self) -> VerbosePreOrderIter<Self></h4></section></summary><div class='docblock'>Obtains a verbose iterator of all the nodes rooted at the DAG, in pre-order. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.post_order_iter" class="method trait-impl has-srclink"><a href="#method.post_order_iter" class="anchor">§</a><h4 class="code-header">fn <a class="fn">post_order_iter</a>(self) -> PostOrderIter<Self></h4></section></summary><div class='docblock'>Obtains an iterator of all the nodes rooted at the DAG, in post order. <a>Read more</a></div></details></div></details><section id="impl-Eq-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Eq-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section><div class="docblock"><p><code>Eq</code> of <code>Miniscript</code> must depend only on node and not the type information.</p>
-<p>The type information and extra properties are implied by the AST.</p>
-</div></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Send-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Sync-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Sync-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details><section id="impl-DeserializeOwned-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/serde/1.0.201/src/serde/de/mod.rs.html#608">source</a><a href="#impl-DeserializeOwned-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> for T<span class="where fmt-newline">where<br> T: for<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de>,</span></h3></section></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Descriptor templates"><meta name="keywords" content="rust, rustlang, rust-lang, template"><title>bdk::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module template</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#traits">Traits</a></li><li><a href="#types">Type Definitions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a class="mod" href="#">template</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/template.rs.html#12-985">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Descriptor templates</p>
-<p>This module contains the definition of various common script templates that are ready to be
-used. See the documentation of each template for an example.</p>
-</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Bip44.html" title="bdk::descriptor::template::Bip44 struct">Bip44</a></div><div class="item-right docblock-short">BIP44 template. Expands to <code>pkh(key/44'/{0,1}'/0'/{0,1}/*)</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Bip44Public.html" title="bdk::descriptor::template::Bip44Public struct">Bip44Public</a></div><div class="item-right docblock-short">BIP44 public template. Expands to <code>pkh(key/{0,1}/*)</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Bip49.html" title="bdk::descriptor::template::Bip49 struct">Bip49</a></div><div class="item-right docblock-short">BIP49 template. Expands to <code>sh(wpkh(key/49'/{0,1}'/0'/{0,1}/*))</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Bip49Public.html" title="bdk::descriptor::template::Bip49Public struct">Bip49Public</a></div><div class="item-right docblock-short">BIP49 public template. Expands to <code>sh(wpkh(key/{0,1}/*))</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Bip84.html" title="bdk::descriptor::template::Bip84 struct">Bip84</a></div><div class="item-right docblock-short">BIP84 template. Expands to <code>wpkh(key/84'/{0,1}'/0'/{0,1}/*)</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Bip84Public.html" title="bdk::descriptor::template::Bip84Public struct">Bip84Public</a></div><div class="item-right docblock-short">BIP84 public template. Expands to <code>wpkh(key/{0,1}/*)</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Bip86.html" title="bdk::descriptor::template::Bip86 struct">Bip86</a></div><div class="item-right docblock-short">BIP86 template. Expands to <code>tr(key/86'/{0,1}'/0'/{0,1}/*)</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Bip86Public.html" title="bdk::descriptor::template::Bip86Public struct">Bip86Public</a></div><div class="item-right docblock-short">BIP86 public template. Expands to <code>tr(key/{0,1}/*)</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.P2Pkh.html" title="bdk::descriptor::template::P2Pkh struct">P2Pkh</a></div><div class="item-right docblock-short">P2PKH template. Expands to a descriptor <code>pkh(key)</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.P2TR.html" title="bdk::descriptor::template::P2TR struct">P2TR</a></div><div class="item-right docblock-short">P2TR template. Expands to a descriptor <code>tr(key)</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.P2Wpkh.html" title="bdk::descriptor::template::P2Wpkh struct">P2Wpkh</a></div><div class="item-right docblock-short">P2WPKH template. Expands to a descriptor <code>wpkh(key)</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.P2Wpkh_P2Sh.html" title="bdk::descriptor::template::P2Wpkh_P2Sh struct">P2Wpkh_P2Sh</a></div><div class="item-right docblock-short">P2WPKH-P2SH template. Expands to a descriptor <code>sh(wpkh(key))</code></div></div></div><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.DescriptorTemplate.html" title="bdk::descriptor::template::DescriptorTemplate trait">DescriptorTemplate</a></div><div class="item-right docblock-short">Trait for descriptor templates that can be built into a full descriptor</div></div></div><h2 id="types" class="small-section-header"><a href="#types">Type Definitions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="type" href="type.DescriptorTemplateOut.html" title="bdk::descriptor::template::DescriptorTemplateOut type">DescriptorTemplateOut</a></div><div class="item-right docblock-short">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</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-window.SIDEBAR_ITEMS = {"struct":[["Bip44","BIP44 template. Expands to `pkh(key/44'/{0,1}'/0'/{0,1}/*)`"],["Bip44Public","BIP44 public template. Expands to `pkh(key/{0,1}/*)`"],["Bip49","BIP49 template. Expands to `sh(wpkh(key/49'/{0,1}'/0'/{0,1}/*))`"],["Bip49Public","BIP49 public template. Expands to `sh(wpkh(key/{0,1}/*))`"],["Bip84","BIP84 template. Expands to `wpkh(key/84'/{0,1}'/0'/{0,1}/*)`"],["Bip84Public","BIP84 public template. Expands to `wpkh(key/{0,1}/*)`"],["Bip86","BIP86 template. Expands to `tr(key/86'/{0,1}'/0'/{0,1}/*)`"],["Bip86Public","BIP86 public template. Expands to `tr(key/{0,1}/*)`"],["P2Pkh","P2PKH template. Expands to a descriptor `pkh(key)`"],["P2TR","P2TR template. Expands to a descriptor `tr(key)`"],["P2Wpkh","P2WPKH template. Expands to a descriptor `wpkh(key)`"],["P2Wpkh_P2Sh","P2WPKH-P2SH template. Expands to a descriptor `sh(wpkh(key))`"]],"trait":[["DescriptorTemplate","Trait for descriptor templates that can be built into a full descriptor"]],"type":[["DescriptorTemplateOut","Type alias for the return type of [`DescriptorTemplate`], `descriptor!` and others"]]};
\ No newline at end of file
+++ /dev/null
-<!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="BIP44 template. Expands to `pkh(key/44'/{0,1}'/0'/{0,1}/*)`"><meta name="keywords" content="rust, rustlang, rust-lang, Bip44"><title>Bip44 in bdk::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Bip44</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-Bip44%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Bip44%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Bip44%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-Bip44%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-Bip44%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Bip44%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Bip44%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Bip44%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Bip44%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Bip44%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Bip44%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-Bip44%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Bip44%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Bip44%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Bip44%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">Bip44</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/template.rs.html#216">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Bip44<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a>>>(pub K, pub <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>BIP44 template. Expands to <code>pkh(key/44'/{0,1}'/0'/{0,1}/*)</code></p>
-<p>Since there are hardened derivation steps, this template requires a private derivable key (generally a <code>xprv</code>/<code>tprv</code>).</p>
-<p>See <a href="struct.Bip44Public.html" title="Bip44Public"><code>Bip44Public</code></a> for a template that can work with a <code>xpub</code>/<code>tpub</code>.</p>
-<h3 id="example"><a href="#example">Example</a></h3>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk::template::Bip44;
-
-<span class="kw">let </span>key = bitcoin::bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m"</span>)<span class="question-mark">?</span>;
-<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(
- Bip44(key.clone(), KeychainKind::External),
- <span class="prelude-val">Some</span>(Bip44(key, KeychainKind::Internal)),
- Network::Testnet,
-)<span class="question-mark">?</span>;
-
-<span class="macro">assert_eq!</span>(wallet.next_unused_address(KeychainKind::External)<span class="question-mark">?</span>.to_string(), <span class="string">"mmogjc7HJEZkrLqyQYqJmxUqFaC7i4uf89"</span>);
-<span class="macro">assert_eq!</span>(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), <span class="string">"pkh([c55b303f/44'/1'/0']tpubDCuorCpzvYS2LCD75BR46KHE8GdDeg1wsAgNZeNr6DaB5gQK1o14uErKwKLuFmeemkQ6N2m3rNgvctdJLyr7nwu2yia7413Hhg8WWE44cgT/0/*)#5wrnv0xt"</span>);</code></pre></div>
-</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><span id="structfield.1" class="structfield small-section-header"><a href="#structfield.1" class="anchor field">§</a><code>1: <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></code></span><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><section id="impl-DescriptorTemplate-for-Bip44%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#218-222">source</a><a href="#impl-DescriptorTemplate-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip44.html" title="struct bdk::descriptor::template::Bip44">Bip44</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#219-221">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Bip44%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Bip44.html" title="struct bdk::descriptor::template::Bip44">Bip44</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-Bip44%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Bip44.html" title="struct bdk::descriptor::template::Bip44">Bip44</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-Bip44%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Bip44.html" title="struct bdk::descriptor::template::Bip44">Bip44</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-Bip44%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Bip44.html" title="struct bdk::descriptor::template::Bip44">Bip44</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-Bip44%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Bip44.html" title="struct bdk::descriptor::template::Bip44">Bip44</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Bip44%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Bip44%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Bip44%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Bip44%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Bip44%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-Bip44%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="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>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Bip44%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Bip44%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Bip44%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="BIP44 public template. Expands to `pkh(key/{0,1}/*)`"><meta name="keywords" content="rust, rustlang, rust-lang, Bip44Public"><title>Bip44Public in bdk::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Bip44Public</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-Bip44Public%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Bip44Public%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Bip44Public%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-Bip44Public%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-Bip44Public%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Bip44Public%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Bip44Public%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Bip44Public%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Bip44Public%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Bip44Public%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Bip44Public%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-Bip44Public%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Bip44Public%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Bip44Public%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Bip44Public%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">Bip44Public</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/template.rs.html#253">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Bip44Public<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a>>>(pub K, pub Fingerprint, pub <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>BIP44 public template. Expands to <code>pkh(key/{0,1}/*)</code></p>
-<p>This assumes that the key used has already been derived with <code>m/44'/0'/0'</code> for Mainnet or <code>m/44'/1'/0'</code> for Testnet.</p>
-<p>This template requires the parent fingerprint to populate correctly the metadata of PSBTs.</p>
-<p>See <a href="struct.Bip44.html" title="Bip44"><code>Bip44</code></a> for a template that does the full derivation, but requires private data
-for the key.</p>
-<h3 id="example"><a href="#example">Example</a></h3>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk::template::Bip44Public;
-
-<span class="kw">let </span>key = bitcoin::bip32::Xpub::from_str(<span class="string">"tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU"</span>)<span class="question-mark">?</span>;
-<span class="kw">let </span>fingerprint = bitcoin::bip32::Fingerprint::from_str(<span class="string">"c55b303f"</span>)<span class="question-mark">?</span>;
-<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(
- Bip44Public(key.clone(), fingerprint, KeychainKind::External),
- <span class="prelude-val">Some</span>(Bip44Public(key, fingerprint, KeychainKind::Internal)),
- Network::Testnet,
-)<span class="question-mark">?</span>;
-
-<span class="macro">assert_eq!</span>(wallet.next_unused_address(KeychainKind::External)<span class="question-mark">?</span>.to_string(), <span class="string">"miNG7dJTzJqNbFS19svRdTCisC65dsubtR"</span>);
-<span class="macro">assert_eq!</span>(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), <span class="string">"pkh([c55b303f/44'/1'/0']tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU/0/*)#cfhumdqz"</span>);</code></pre></div>
-</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><span id="structfield.1" class="structfield small-section-header"><a href="#structfield.1" class="anchor field">§</a><code>1: Fingerprint</code></span><span id="structfield.2" class="structfield small-section-header"><a href="#structfield.2" class="anchor field">§</a><code>2: <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></code></span><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><section id="impl-DescriptorTemplate-for-Bip44Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#255-262">source</a><a href="#impl-DescriptorTemplate-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip44Public.html" title="struct bdk::descriptor::template::Bip44Public">Bip44Public</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#256-261">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Bip44Public%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Bip44Public.html" title="struct bdk::descriptor::template::Bip44Public">Bip44Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-Bip44Public%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Bip44Public.html" title="struct bdk::descriptor::template::Bip44Public">Bip44Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-Bip44Public%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Bip44Public.html" title="struct bdk::descriptor::template::Bip44Public">Bip44Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-Bip44Public%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Bip44Public.html" title="struct bdk::descriptor::template::Bip44Public">Bip44Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-Bip44Public%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Bip44Public.html" title="struct bdk::descriptor::template::Bip44Public">Bip44Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Bip44Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Bip44Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Bip44Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Bip44Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Bip44Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-Bip44Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="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>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Bip44Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Bip44Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Bip44Public%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="BIP49 template. Expands to `sh(wpkh(key/49'/{0,1}'/0'/{0,1}/*))`"><meta name="keywords" content="rust, rustlang, rust-lang, Bip49"><title>Bip49 in bdk::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Bip49</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-Bip49%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Bip49%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Bip49%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-Bip49%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-Bip49%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Bip49%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Bip49%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Bip49%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Bip49%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Bip49%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Bip49%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-Bip49%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Bip49%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Bip49%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Bip49%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">Bip49</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/template.rs.html#289">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Bip49<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>>>(pub K, pub <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>BIP49 template. Expands to <code>sh(wpkh(key/49'/{0,1}'/0'/{0,1}/*))</code></p>
-<p>Since there are hardened derivation steps, this template requires a private derivable key (generally a <code>xprv</code>/<code>tprv</code>).</p>
-<p>See <a href="struct.Bip49Public.html" title="Bip49Public"><code>Bip49Public</code></a> for a template that can work with a <code>xpub</code>/<code>tpub</code>.</p>
-<h3 id="example"><a href="#example">Example</a></h3>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk::template::Bip49;
-
-<span class="kw">let </span>key = bitcoin::bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m"</span>)<span class="question-mark">?</span>;
-<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(
- Bip49(key.clone(), KeychainKind::External),
- <span class="prelude-val">Some</span>(Bip49(key, KeychainKind::Internal)),
- Network::Testnet,
-)<span class="question-mark">?</span>;
-
-<span class="macro">assert_eq!</span>(wallet.next_unused_address(KeychainKind::External)<span class="question-mark">?</span>.to_string(), <span class="string">"2N4zkWAoGdUv4NXhSsU8DvS5MB36T8nKHEB"</span>);
-<span class="macro">assert_eq!</span>(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), <span class="string">"sh(wpkh([c55b303f/49'/1'/0']tpubDDYr4kdnZgjjShzYNjZUZXUUtpXaofdkMaipyS8ThEh45qFmhT4hKYways7UXmg6V7het1QiFo9kf4kYUXyDvV4rHEyvSpys9pjCB3pukxi/0/*))#s9vxlc8e"</span>);</code></pre></div>
-</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><span id="structfield.1" class="structfield small-section-header"><a href="#structfield.1" class="anchor field">§</a><code>1: <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></code></span><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><section id="impl-DescriptorTemplate-for-Bip49%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#291-295">source</a><a href="#impl-DescriptorTemplate-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip49.html" title="struct bdk::descriptor::template::Bip49">Bip49</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#292-294">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Bip49%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Bip49.html" title="struct bdk::descriptor::template::Bip49">Bip49</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-Bip49%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Bip49.html" title="struct bdk::descriptor::template::Bip49">Bip49</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-Bip49%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Bip49.html" title="struct bdk::descriptor::template::Bip49">Bip49</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-Bip49%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Bip49.html" title="struct bdk::descriptor::template::Bip49">Bip49</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-Bip49%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Bip49.html" title="struct bdk::descriptor::template::Bip49">Bip49</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Bip49%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Bip49%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Bip49%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Bip49%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Bip49%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-Bip49%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="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>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Bip49%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Bip49%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Bip49%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="BIP49 public template. Expands to `sh(wpkh(key/{0,1}/*))`"><meta name="keywords" content="rust, rustlang, rust-lang, Bip49Public"><title>Bip49Public in bdk::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Bip49Public</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-Bip49Public%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Bip49Public%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Bip49Public%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-Bip49Public%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-Bip49Public%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Bip49Public%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Bip49Public%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Bip49Public%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Bip49Public%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Bip49Public%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Bip49Public%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-Bip49Public%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Bip49Public%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Bip49Public%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Bip49Public%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">Bip49Public</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/template.rs.html#326">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Bip49Public<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>>>(pub K, pub Fingerprint, pub <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>BIP49 public template. Expands to <code>sh(wpkh(key/{0,1}/*))</code></p>
-<p>This assumes that the key used has already been derived with <code>m/49'/0'/0'</code> for Mainnet or <code>m/49'/1'/0'</code> for Testnet.</p>
-<p>This template requires the parent fingerprint to populate correctly the metadata of PSBTs.</p>
-<p>See <a href="struct.Bip49.html" title="Bip49"><code>Bip49</code></a> for a template that does the full derivation, but requires private data
-for the key.</p>
-<h3 id="example"><a href="#example">Example</a></h3>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk::template::Bip49Public;
-
-<span class="kw">let </span>key = bitcoin::bip32::Xpub::from_str(<span class="string">"tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L"</span>)<span class="question-mark">?</span>;
-<span class="kw">let </span>fingerprint = bitcoin::bip32::Fingerprint::from_str(<span class="string">"c55b303f"</span>)<span class="question-mark">?</span>;
-<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(
- Bip49Public(key.clone(), fingerprint, KeychainKind::External),
- <span class="prelude-val">Some</span>(Bip49Public(key, fingerprint, KeychainKind::Internal)),
- Network::Testnet,
-)<span class="question-mark">?</span>;
-
-<span class="macro">assert_eq!</span>(wallet.next_unused_address(KeychainKind::External)<span class="question-mark">?</span>.to_string(), <span class="string">"2N3K4xbVAHoiTQSwxkZjWDfKoNC27pLkYnt"</span>);
-<span class="macro">assert_eq!</span>(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), <span class="string">"sh(wpkh([c55b303f/49'/1'/0']tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L/0/*))#3tka9g0q"</span>);</code></pre></div>
-</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><span id="structfield.1" class="structfield small-section-header"><a href="#structfield.1" class="anchor field">§</a><code>1: Fingerprint</code></span><span id="structfield.2" class="structfield small-section-header"><a href="#structfield.2" class="anchor field">§</a><code>2: <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></code></span><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><section id="impl-DescriptorTemplate-for-Bip49Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#328-335">source</a><a href="#impl-DescriptorTemplate-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip49Public.html" title="struct bdk::descriptor::template::Bip49Public">Bip49Public</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#329-334">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Bip49Public%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Bip49Public.html" title="struct bdk::descriptor::template::Bip49Public">Bip49Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-Bip49Public%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Bip49Public.html" title="struct bdk::descriptor::template::Bip49Public">Bip49Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-Bip49Public%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Bip49Public.html" title="struct bdk::descriptor::template::Bip49Public">Bip49Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-Bip49Public%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Bip49Public.html" title="struct bdk::descriptor::template::Bip49Public">Bip49Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-Bip49Public%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Bip49Public.html" title="struct bdk::descriptor::template::Bip49Public">Bip49Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Bip49Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Bip49Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Bip49Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Bip49Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Bip49Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-Bip49Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="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>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Bip49Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Bip49Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Bip49Public%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="BIP84 template. Expands to `wpkh(key/84'/{0,1}'/0'/{0,1}/*)`"><meta name="keywords" content="rust, rustlang, rust-lang, Bip84"><title>Bip84 in bdk::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Bip84</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-Bip84%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Bip84%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Bip84%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-Bip84%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-Bip84%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Bip84%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Bip84%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Bip84%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Bip84%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Bip84%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Bip84%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-Bip84%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Bip84%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Bip84%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Bip84%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">Bip84</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/template.rs.html#362">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Bip84<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>>>(pub K, pub <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>BIP84 template. Expands to <code>wpkh(key/84'/{0,1}'/0'/{0,1}/*)</code></p>
-<p>Since there are hardened derivation steps, this template requires a private derivable key (generally a <code>xprv</code>/<code>tprv</code>).</p>
-<p>See <a href="struct.Bip84Public.html" title="Bip84Public"><code>Bip84Public</code></a> for a template that can work with a <code>xpub</code>/<code>tpub</code>.</p>
-<h3 id="example"><a href="#example">Example</a></h3>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk::template::Bip84;
-
-<span class="kw">let </span>key = bitcoin::bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m"</span>)<span class="question-mark">?</span>;
-<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(
- Bip84(key.clone(), KeychainKind::External),
- <span class="prelude-val">Some</span>(Bip84(key, KeychainKind::Internal)),
- Network::Testnet,
-)<span class="question-mark">?</span>;
-
-<span class="macro">assert_eq!</span>(wallet.next_unused_address(KeychainKind::External)<span class="question-mark">?</span>.to_string(), <span class="string">"tb1qhl85z42h7r4su5u37rvvw0gk8j2t3n9y7zsg4n"</span>);
-<span class="macro">assert_eq!</span>(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), <span class="string">"wpkh([c55b303f/84'/1'/0']tpubDDc5mum24DekpNw92t6fHGp8Gr2JjF9J7i4TZBtN6Vp8xpAULG5CFaKsfugWa5imhrQQUZKXe261asP5koDHo5bs3qNTmf3U3o4v9SaB8gg/0/*)#6kfecsmr"</span>);</code></pre></div>
-</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><span id="structfield.1" class="structfield small-section-header"><a href="#structfield.1" class="anchor field">§</a><code>1: <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></code></span><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><section id="impl-DescriptorTemplate-for-Bip84%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#364-368">source</a><a href="#impl-DescriptorTemplate-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip84.html" title="struct bdk::descriptor::template::Bip84">Bip84</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#365-367">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Bip84%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Bip84.html" title="struct bdk::descriptor::template::Bip84">Bip84</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-Bip84%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Bip84.html" title="struct bdk::descriptor::template::Bip84">Bip84</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-Bip84%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Bip84.html" title="struct bdk::descriptor::template::Bip84">Bip84</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-Bip84%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Bip84.html" title="struct bdk::descriptor::template::Bip84">Bip84</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-Bip84%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Bip84.html" title="struct bdk::descriptor::template::Bip84">Bip84</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Bip84%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Bip84%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Bip84%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Bip84%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Bip84%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-Bip84%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="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>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Bip84%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Bip84%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Bip84%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="BIP84 public template. Expands to `wpkh(key/{0,1}/*)`"><meta name="keywords" content="rust, rustlang, rust-lang, Bip84Public"><title>Bip84Public in bdk::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Bip84Public</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-Bip84Public%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Bip84Public%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Bip84Public%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-Bip84Public%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-Bip84Public%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Bip84Public%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Bip84Public%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Bip84Public%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Bip84Public%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Bip84Public%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Bip84Public%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-Bip84Public%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Bip84Public%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Bip84Public%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Bip84Public%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">Bip84Public</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/template.rs.html#399">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Bip84Public<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>>>(pub K, pub Fingerprint, pub <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>BIP84 public template. Expands to <code>wpkh(key/{0,1}/*)</code></p>
-<p>This assumes that the key used has already been derived with <code>m/84'/0'/0'</code> for Mainnet or <code>m/84'/1'/0'</code> for Testnet.</p>
-<p>This template requires the parent fingerprint to populate correctly the metadata of PSBTs.</p>
-<p>See <a href="struct.Bip84.html" title="Bip84"><code>Bip84</code></a> for a template that does the full derivation, but requires private data
-for the key.</p>
-<h3 id="example"><a href="#example">Example</a></h3>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk::template::Bip84Public;
-
-<span class="kw">let </span>key = bitcoin::bip32::Xpub::from_str(<span class="string">"tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q"</span>)<span class="question-mark">?</span>;
-<span class="kw">let </span>fingerprint = bitcoin::bip32::Fingerprint::from_str(<span class="string">"c55b303f"</span>)<span class="question-mark">?</span>;
-<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(
- Bip84Public(key.clone(), fingerprint, KeychainKind::External),
- <span class="prelude-val">Some</span>(Bip84Public(key, fingerprint, KeychainKind::Internal)),
- Network::Testnet,
-)<span class="question-mark">?</span>;
-
-<span class="macro">assert_eq!</span>(wallet.next_unused_address(KeychainKind::External)<span class="question-mark">?</span>.to_string(), <span class="string">"tb1qedg9fdlf8cnnqfd5mks6uz5w4kgpk2pr6y4qc7"</span>);
-<span class="macro">assert_eq!</span>(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), <span class="string">"wpkh([c55b303f/84'/1'/0']tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q/0/*)#dhu402yv"</span>);</code></pre></div>
-</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><span id="structfield.1" class="structfield small-section-header"><a href="#structfield.1" class="anchor field">§</a><code>1: Fingerprint</code></span><span id="structfield.2" class="structfield small-section-header"><a href="#structfield.2" class="anchor field">§</a><code>2: <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></code></span><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><section id="impl-DescriptorTemplate-for-Bip84Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#401-408">source</a><a href="#impl-DescriptorTemplate-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip84Public.html" title="struct bdk::descriptor::template::Bip84Public">Bip84Public</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#402-407">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Bip84Public%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Bip84Public.html" title="struct bdk::descriptor::template::Bip84Public">Bip84Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-Bip84Public%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Bip84Public.html" title="struct bdk::descriptor::template::Bip84Public">Bip84Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-Bip84Public%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Bip84Public.html" title="struct bdk::descriptor::template::Bip84Public">Bip84Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-Bip84Public%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Bip84Public.html" title="struct bdk::descriptor::template::Bip84Public">Bip84Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-Bip84Public%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Bip84Public.html" title="struct bdk::descriptor::template::Bip84Public">Bip84Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Bip84Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Bip84Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Bip84Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Bip84Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Bip84Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-Bip84Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="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>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Bip84Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Bip84Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Bip84Public%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="BIP86 template. Expands to `tr(key/86'/{0,1}'/0'/{0,1}/*)`"><meta name="keywords" content="rust, rustlang, rust-lang, Bip86"><title>Bip86 in bdk::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Bip86</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-Bip86%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Bip86%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Bip86%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-Bip86%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-Bip86%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Bip86%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Bip86%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Bip86%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Bip86%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Bip86%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Bip86%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-Bip86%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Bip86%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Bip86%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Bip86%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">Bip86</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/template.rs.html#435">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Bip86<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><Tap>>(pub K, pub <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>BIP86 template. Expands to <code>tr(key/86'/{0,1}'/0'/{0,1}/*)</code></p>
-<p>Since there are hardened derivation steps, this template requires a private derivable key (generally a <code>xprv</code>/<code>tprv</code>).</p>
-<p>See <a href="struct.Bip86Public.html" title="Bip86Public"><code>Bip86Public</code></a> for a template that can work with a <code>xpub</code>/<code>tpub</code>.</p>
-<h3 id="example"><a href="#example">Example</a></h3>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk::template::Bip86;
-
-<span class="kw">let </span>key = bitcoin::bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m"</span>)<span class="question-mark">?</span>;
-<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(
- Bip86(key.clone(), KeychainKind::External),
- <span class="prelude-val">Some</span>(Bip86(key, KeychainKind::Internal)),
- Network::Testnet,
-)<span class="question-mark">?</span>;
-
-<span class="macro">assert_eq!</span>(wallet.next_unused_address(KeychainKind::External)<span class="question-mark">?</span>.to_string(), <span class="string">"tb1p5unlj09djx8xsjwe97269kqtxqpwpu2epeskgqjfk4lnf69v4tnqpp35qu"</span>);
-<span class="macro">assert_eq!</span>(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), <span class="string">"tr([c55b303f/86'/1'/0']tpubDCiHofpEs47kx358bPdJmTZHmCDqQ8qw32upCSxHrSEdeeBs2T5Mq6QMB2ukeMqhNBiyhosBvJErteVhfURPGXPv3qLJPw5MVpHUewsbP2m/0/*)#dkgvr5hm"</span>);</code></pre></div>
-</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><span id="structfield.1" class="structfield small-section-header"><a href="#structfield.1" class="anchor field">§</a><code>1: <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></code></span><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><section id="impl-DescriptorTemplate-for-Bip86%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#437-441">source</a><a href="#impl-DescriptorTemplate-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><Tap>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip86.html" title="struct bdk::descriptor::template::Bip86">Bip86</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#438-440">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Bip86%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Bip86.html" title="struct bdk::descriptor::template::Bip86">Bip86</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-Bip86%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Bip86.html" title="struct bdk::descriptor::template::Bip86">Bip86</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-Bip86%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Bip86.html" title="struct bdk::descriptor::template::Bip86">Bip86</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-Bip86%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Bip86.html" title="struct bdk::descriptor::template::Bip86">Bip86</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-Bip86%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Bip86.html" title="struct bdk::descriptor::template::Bip86">Bip86</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Bip86%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Bip86%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Bip86%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Bip86%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Bip86%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-Bip86%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="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>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Bip86%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Bip86%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Bip86%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="BIP86 public template. Expands to `tr(key/{0,1}/*)`"><meta name="keywords" content="rust, rustlang, rust-lang, Bip86Public"><title>Bip86Public in bdk::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Bip86Public</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-Bip86Public%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Bip86Public%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Bip86Public%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-Bip86Public%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-Bip86Public%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Bip86Public%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Bip86Public%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Bip86Public%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Bip86Public%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Bip86Public%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Bip86Public%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-Bip86Public%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Bip86Public%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Bip86Public%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Bip86Public%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">Bip86Public</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/template.rs.html#472">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Bip86Public<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><Tap>>(pub K, pub Fingerprint, pub <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>BIP86 public template. Expands to <code>tr(key/{0,1}/*)</code></p>
-<p>This assumes that the key used has already been derived with <code>m/86'/0'/0'</code> for Mainnet or <code>m/86'/1'/0'</code> for Testnet.</p>
-<p>This template requires the parent fingerprint to populate correctly the metadata of PSBTs.</p>
-<p>See <a href="struct.Bip86.html" title="Bip86"><code>Bip86</code></a> for a template that does the full derivation, but requires private data
-for the key.</p>
-<h3 id="example"><a href="#example">Example</a></h3>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk::template::Bip86Public;
-
-<span class="kw">let </span>key = bitcoin::bip32::Xpub::from_str(<span class="string">"tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q"</span>)<span class="question-mark">?</span>;
-<span class="kw">let </span>fingerprint = bitcoin::bip32::Fingerprint::from_str(<span class="string">"c55b303f"</span>)<span class="question-mark">?</span>;
-<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(
- Bip86Public(key.clone(), fingerprint, KeychainKind::External),
- <span class="prelude-val">Some</span>(Bip86Public(key, fingerprint, KeychainKind::Internal)),
- Network::Testnet,
-)<span class="question-mark">?</span>;
-
-<span class="macro">assert_eq!</span>(wallet.next_unused_address(KeychainKind::External)<span class="question-mark">?</span>.to_string(), <span class="string">"tb1pwjp9f2k5n0xq73ecuu0c5njvgqr3vkh7yaylmpqvsuuaafymh0msvcmh37"</span>);
-<span class="macro">assert_eq!</span>(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), <span class="string">"tr([c55b303f/86'/1'/0']tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q/0/*)#2p65srku"</span>);</code></pre></div>
-</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><span id="structfield.1" class="structfield small-section-header"><a href="#structfield.1" class="anchor field">§</a><code>1: Fingerprint</code></span><span id="structfield.2" class="structfield small-section-header"><a href="#structfield.2" class="anchor field">§</a><code>2: <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></code></span><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><section id="impl-DescriptorTemplate-for-Bip86Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#474-481">source</a><a href="#impl-DescriptorTemplate-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><Tap>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip86Public.html" title="struct bdk::descriptor::template::Bip86Public">Bip86Public</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#475-480">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Bip86Public%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Bip86Public.html" title="struct bdk::descriptor::template::Bip86Public">Bip86Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-Bip86Public%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Bip86Public.html" title="struct bdk::descriptor::template::Bip86Public">Bip86Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-Bip86Public%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Bip86Public.html" title="struct bdk::descriptor::template::Bip86Public">Bip86Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-Bip86Public%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Bip86Public.html" title="struct bdk::descriptor::template::Bip86Public">Bip86Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-Bip86Public%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Bip86Public.html" title="struct bdk::descriptor::template::Bip86Public">Bip86Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Bip86Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Bip86Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Bip86Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Bip86Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Bip86Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-Bip86Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="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>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Bip86Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Bip86Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Bip86Public%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="P2PKH template. Expands to a descriptor `pkh(key)`"><meta name="keywords" content="rust, rustlang, rust-lang, P2Pkh"><title>P2Pkh in bdk::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">P2Pkh</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-P2Pkh%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-P2Pkh%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-P2Pkh%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-P2Pkh%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-P2Pkh%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-P2Pkh%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-P2Pkh%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-P2Pkh%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-P2Pkh%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-P2Pkh%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-P2Pkh%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-P2Pkh%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-P2Pkh%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-P2Pkh%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-P2Pkh%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">P2Pkh</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/template.rs.html#92">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct P2Pkh<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><<a class="enum" href="../enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a>>>(pub K);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>P2PKH template. Expands to a descriptor <code>pkh(key)</code></p>
-<h3 id="example"><a href="#example">Example</a></h3>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk::template::P2Pkh;
-
-<span class="kw">let </span>key =
- bitcoin::PrivateKey::from_wif(<span class="string">"cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um"</span>)<span class="question-mark">?</span>;
-<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(P2Pkh(key), <span class="prelude-val">None</span>, Network::Testnet)<span class="question-mark">?</span>;
-
-<span class="macro">assert_eq!</span>(
- wallet
- .next_unused_address(KeychainKind::External)<span class="question-mark">?
- </span>.to_string(),
- <span class="string">"mwJ8hxFYW19JLuc65RCTaP4v1rzVU8cVMT"
-</span>);</code></pre></div>
-</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><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><section id="impl-DescriptorTemplate-for-P2Pkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#94-98">source</a><a href="#impl-DescriptorTemplate-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><<a class="enum" href="../enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.P2Pkh.html" title="struct bdk::descriptor::template::P2Pkh">P2Pkh</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#95-97">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-P2Pkh%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.P2Pkh.html" title="struct bdk::descriptor::template::P2Pkh">P2Pkh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-P2Pkh%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.P2Pkh.html" title="struct bdk::descriptor::template::P2Pkh">P2Pkh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-P2Pkh%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.P2Pkh.html" title="struct bdk::descriptor::template::P2Pkh">P2Pkh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-P2Pkh%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.P2Pkh.html" title="struct bdk::descriptor::template::P2Pkh">P2Pkh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-P2Pkh%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.P2Pkh.html" title="struct bdk::descriptor::template::P2Pkh">P2Pkh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-P2Pkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-P2Pkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-P2Pkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-P2Pkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-P2Pkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-P2Pkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="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>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-P2Pkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-P2Pkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-P2Pkh%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="P2TR template. Expands to a descriptor `tr(key)`"><meta name="keywords" content="rust, rustlang, rust-lang, P2TR"><title>P2TR in bdk::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">P2TR</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-P2TR%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-P2TR%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-P2TR%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-P2TR%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-P2TR%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-P2TR%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-P2TR%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-P2TR%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-P2TR%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-P2TR%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-P2TR%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-P2TR%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-P2TR%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-P2TR%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-P2TR%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">P2TR</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/template.rs.html#183">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct P2TR<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><Tap>>(pub K);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>P2TR template. Expands to a descriptor <code>tr(key)</code></p>
-<h3 id="example"><a href="#example">Example</a></h3>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk::template::P2TR;
-
-<span class="kw">let </span>key =
- bitcoin::PrivateKey::from_wif(<span class="string">"cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um"</span>)<span class="question-mark">?</span>;
-<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(P2TR(key), <span class="prelude-val">None</span>, Network::Testnet)<span class="question-mark">?</span>;
-
-<span class="macro">assert_eq!</span>(
- wallet
- .next_unused_address(KeychainKind::External)<span class="question-mark">?
- </span>.to_string(),
- <span class="string">"tb1pvjf9t34fznr53u5tqhejz4nr69luzkhlvsdsdfq9pglutrpve2xq7hps46"
-</span>);</code></pre></div>
-</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><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><section id="impl-DescriptorTemplate-for-P2TR%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#185-189">source</a><a href="#impl-DescriptorTemplate-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><Tap>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.P2TR.html" title="struct bdk::descriptor::template::P2TR">P2TR</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#186-188">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-P2TR%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.P2TR.html" title="struct bdk::descriptor::template::P2TR">P2TR</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-P2TR%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.P2TR.html" title="struct bdk::descriptor::template::P2TR">P2TR</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-P2TR%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.P2TR.html" title="struct bdk::descriptor::template::P2TR">P2TR</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-P2TR%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.P2TR.html" title="struct bdk::descriptor::template::P2TR">P2TR</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-P2TR%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.P2TR.html" title="struct bdk::descriptor::template::P2TR">P2TR</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-P2TR%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-P2TR%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-P2TR%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-P2TR%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-P2TR%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-P2TR%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="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>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-P2TR%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-P2TR%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-P2TR%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="P2WPKH template. Expands to a descriptor `wpkh(key)`"><meta name="keywords" content="rust, rustlang, rust-lang, P2Wpkh"><title>P2Wpkh in bdk::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">P2Wpkh</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-P2Wpkh%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-P2Wpkh%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-P2Wpkh%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-P2Wpkh%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-P2Wpkh%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-P2Wpkh%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-P2Wpkh%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-P2Wpkh%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-P2Wpkh%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-P2Wpkh%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-P2Wpkh%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-P2Wpkh%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-P2Wpkh%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-P2Wpkh%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-P2Wpkh%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">P2Wpkh</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/template.rs.html#153">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct P2Wpkh<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>>>(pub K);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>P2WPKH template. Expands to a descriptor <code>wpkh(key)</code></p>
-<h3 id="example"><a href="#example">Example</a></h3>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk::template::P2Wpkh;
-
-<span class="kw">let </span>key =
- bitcoin::PrivateKey::from_wif(<span class="string">"cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um"</span>)<span class="question-mark">?</span>;
-<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(P2Wpkh(key), <span class="prelude-val">None</span>, Network::Testnet)<span class="question-mark">?</span>;
-
-<span class="macro">assert_eq!</span>(
- wallet
- .next_unused_address(KeychainKind::External)<span class="question-mark">?
- </span>.to_string(),
- <span class="string">"tb1q4525hmgw265tl3drrl8jjta7ayffu6jf68ltjd"
-</span>);</code></pre></div>
-</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><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><section id="impl-DescriptorTemplate-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#155-159">source</a><a href="#impl-DescriptorTemplate-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.P2Wpkh.html" title="struct bdk::descriptor::template::P2Wpkh">P2Wpkh</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#156-158">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.P2Wpkh.html" title="struct bdk::descriptor::template::P2Wpkh">P2Wpkh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.P2Wpkh.html" title="struct bdk::descriptor::template::P2Wpkh">P2Wpkh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.P2Wpkh.html" title="struct bdk::descriptor::template::P2Wpkh">P2Wpkh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.P2Wpkh.html" title="struct bdk::descriptor::template::P2Wpkh">P2Wpkh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.P2Wpkh.html" title="struct bdk::descriptor::template::P2Wpkh">P2Wpkh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="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>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="P2WPKH-P2SH template. Expands to a descriptor `sh(wpkh(key))`"><meta name="keywords" content="rust, rustlang, rust-lang, P2Wpkh_P2Sh"><title>P2Wpkh_P2Sh in bdk::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">P2Wpkh_P2Sh</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-P2Wpkh_P2Sh%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-P2Wpkh_P2Sh%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-P2Wpkh_P2Sh%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-P2Wpkh_P2Sh%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-P2Wpkh_P2Sh%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-P2Wpkh_P2Sh%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-P2Wpkh_P2Sh%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-P2Wpkh_P2Sh%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-P2Wpkh_P2Sh%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-P2Wpkh_P2Sh%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-P2Wpkh_P2Sh%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-P2Wpkh_P2Sh%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-P2Wpkh_P2Sh%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-P2Wpkh_P2Sh%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-P2Wpkh_P2Sh%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">P2Wpkh_P2Sh</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/template.rs.html#123">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct P2Wpkh_P2Sh<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>>>(pub K);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>P2WPKH-P2SH template. Expands to a descriptor <code>sh(wpkh(key))</code></p>
-<h3 id="example"><a href="#example">Example</a></h3>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk::template::P2Wpkh_P2Sh;
-
-<span class="kw">let </span>key =
- bitcoin::PrivateKey::from_wif(<span class="string">"cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um"</span>)<span class="question-mark">?</span>;
-<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(P2Wpkh_P2Sh(key), <span class="prelude-val">None</span>, Network::Testnet)<span class="question-mark">?</span>;
-
-<span class="macro">assert_eq!</span>(
- wallet
- .next_unused_address(KeychainKind::External)<span class="question-mark">?
- </span>.to_string(),
- <span class="string">"2NB4ox5VDRw1ecUv6SnT3VQHPXveYztRqk5"
-</span>);</code></pre></div>
-</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><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><section id="impl-DescriptorTemplate-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#125-129">source</a><a href="#impl-DescriptorTemplate-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.P2Wpkh_P2Sh.html" title="struct bdk::descriptor::template::P2Wpkh_P2Sh">P2Wpkh_P2Sh</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#126-128">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.P2Wpkh_P2Sh.html" title="struct bdk::descriptor::template::P2Wpkh_P2Sh">P2Wpkh_P2Sh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.P2Wpkh_P2Sh.html" title="struct bdk::descriptor::template::P2Wpkh_P2Sh">P2Wpkh_P2Sh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.P2Wpkh_P2Sh.html" title="struct bdk::descriptor::template::P2Wpkh_P2Sh">P2Wpkh_P2Sh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.P2Wpkh_P2Sh.html" title="struct bdk::descriptor::template::P2Wpkh_P2Sh">P2Wpkh_P2Sh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.P2Wpkh_P2Sh.html" title="struct bdk::descriptor::template::P2Wpkh_P2Sh">P2Wpkh_P2Sh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="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>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Trait for descriptor templates that can be built into a full descriptor"><meta name="keywords" content="rust, rustlang, rust-lang, DescriptorTemplate"><title>DescriptorTemplate in bdk::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">DescriptorTemplate</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.build">build</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="trait" href="#">DescriptorTemplate</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/template.rs.html#53-56">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait DescriptorTemplate {
- fn <a href="#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</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 descriptor templates that can be built into a full descriptor</p>
-<p>Since <a href="../trait.IntoWalletDescriptor.html" title="IntoWalletDescriptor"><code>IntoWalletDescriptor</code></a> is implemented for any <a href="trait.DescriptorTemplate.html" title="DescriptorTemplate"><code>DescriptorTemplate</code></a>, they can also be
-passed directly to the <a href="../../wallet/struct.Wallet.html"><code>Wallet</code></a> constructor.</p>
-<h3 id="example"><a href="#example">Example</a></h3>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk::descriptor::error::Error <span class="kw">as </span>DescriptorError;
-<span class="kw">use </span>bdk::keys::{IntoDescriptorKey, KeyError};
-<span class="kw">use </span>bdk::miniscript::Legacy;
-<span class="kw">use </span>bdk::template::{DescriptorTemplate, DescriptorTemplateOut};
-<span class="kw">use </span>bitcoin::Network;
-
-<span class="kw">struct </span>MyP2PKH<K: IntoDescriptorKey<Legacy>>(K);
-
-<span class="kw">impl</span><K: IntoDescriptorKey<Legacy>> DescriptorTemplate <span class="kw">for </span>MyP2PKH<K> {
- <span class="kw">fn </span>build(<span class="self">self</span>, network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
- <span class="prelude-val">Ok</span>(<span class="macro">bdk::descriptor!</span>(pkh(<span class="self">self</span>.<span class="number">0</span>))<span class="question-mark">?</span>)
- }
-}</code></pre></div>
-</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 method-toggle" open><summary><section id="tymethod.build" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#55">source</a><h4 class="code-header">fn <a href="#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class="docblock"><p>Build the complete descriptor</p>
-</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-DescriptorTemplate-for-Bip44%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#218-222">source</a><a href="#impl-DescriptorTemplate-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip44.html" title="struct bdk::descriptor::template::Bip44">Bip44</a><K></h3></section><section id="impl-DescriptorTemplate-for-Bip44Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#255-262">source</a><a href="#impl-DescriptorTemplate-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip44Public.html" title="struct bdk::descriptor::template::Bip44Public">Bip44Public</a><K></h3></section><section id="impl-DescriptorTemplate-for-Bip49%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#291-295">source</a><a href="#impl-DescriptorTemplate-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip49.html" title="struct bdk::descriptor::template::Bip49">Bip49</a><K></h3></section><section id="impl-DescriptorTemplate-for-Bip49Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#328-335">source</a><a href="#impl-DescriptorTemplate-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip49Public.html" title="struct bdk::descriptor::template::Bip49Public">Bip49Public</a><K></h3></section><section id="impl-DescriptorTemplate-for-Bip84%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#364-368">source</a><a href="#impl-DescriptorTemplate-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip84.html" title="struct bdk::descriptor::template::Bip84">Bip84</a><K></h3></section><section id="impl-DescriptorTemplate-for-Bip84Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#401-408">source</a><a href="#impl-DescriptorTemplate-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip84Public.html" title="struct bdk::descriptor::template::Bip84Public">Bip84Public</a><K></h3></section><section id="impl-DescriptorTemplate-for-Bip86%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#437-441">source</a><a href="#impl-DescriptorTemplate-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><Tap>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip86.html" title="struct bdk::descriptor::template::Bip86">Bip86</a><K></h3></section><section id="impl-DescriptorTemplate-for-Bip86Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#474-481">source</a><a href="#impl-DescriptorTemplate-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><Tap>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip86Public.html" title="struct bdk::descriptor::template::Bip86Public">Bip86Public</a><K></h3></section><section id="impl-DescriptorTemplate-for-P2Pkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#94-98">source</a><a href="#impl-DescriptorTemplate-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><<a class="enum" href="../enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.P2Pkh.html" title="struct bdk::descriptor::template::P2Pkh">P2Pkh</a><K></h3></section><section id="impl-DescriptorTemplate-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#155-159">source</a><a href="#impl-DescriptorTemplate-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.P2Wpkh.html" title="struct bdk::descriptor::template::P2Wpkh">P2Wpkh</a><K></h3></section><section id="impl-DescriptorTemplate-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#125-129">source</a><a href="#impl-DescriptorTemplate-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.P2Wpkh_P2Sh.html" title="struct bdk::descriptor::template::P2Wpkh_P2Sh">P2Wpkh_P2Sh</a><K></h3></section><section id="impl-DescriptorTemplate-for-P2TR%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/template.rs.html#185-189">source</a><a href="#impl-DescriptorTemplate-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><Tap>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.P2TR.html" title="struct bdk::descriptor::template::P2TR">P2TR</a><K></h3></section></div><script src="../../../implementors/bdk/descriptor/template/trait.DescriptorTemplate.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Type alias for the return type of [`DescriptorTemplate`], `descriptor!` and others"><meta name="keywords" content="rust, rustlang, rust-lang, DescriptorTemplateOut"><title>DescriptorTemplateOut in bdk::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">DescriptorTemplateOut</a></h2><div class="sidebar-elems"><section><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-IntoWalletDescriptor-for-DescriptorTemplateOut">IntoWalletDescriptor</a></li></ul></section><h2><a href="index.html">In bdk::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">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="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/template.rs.html#29">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub type DescriptorTemplateOut = (<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>);</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><section id="impl-IntoWalletDescriptor-for-DescriptorTemplateOut" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/mod.rs.html#207-282">source</a><a href="#impl-IntoWalletDescriptor-for-DescriptorTemplateOut" class="anchor">§</a><h3 class="code-header">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></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/descriptor/mod.rs.html#208-281">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="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="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Trait implemented on [`Descriptor`]s to add a method to extract the spending [`policy`]"><meta name="keywords" content="rust, rustlang, rust-lang, ExtractPolicy"><title>ExtractPolicy in bdk::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <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"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.extract_policy">extract_policy</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">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="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#339-347">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait ExtractPolicy {
- fn <a href="#tymethod.extract_policy" class="fn">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 method-toggle" open><summary><section id="tymethod.extract_policy" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/descriptor/mod.rs.html#341-346">source</a><h4 class="code-header">fn <a href="#tymethod.extract_policy" class="fn">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></section></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 id="implementors-list"><section id="impl-ExtractPolicy-for-Descriptor%3CDescriptorPublicKey%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/descriptor/policy.rs.html#1077-1158">source</a><a href="#impl-ExtractPolicy-for-Descriptor%3CDescriptorPublicKey%3E" class="anchor">§</a><h3 class="code-header">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></section><section id="impl-ExtractPolicy-for-Miniscript%3CDescriptorPublicKey%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/descriptor/policy.rs.html#910-1043">source</a><a href="#impl-ExtractPolicy-for-Miniscript%3CDescriptorPublicKey%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">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></section></div><script src="../../implementors/bdk/descriptor/trait.ExtractPolicy.js" data-ignore-extern-crates="miniscript" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Trait for types which can be converted into an [`ExtendedDescriptor`] and a [`KeyMap`] usable by a wallet in a specific [`Network`]"><meta name="keywords" content="rust, rustlang, rust-lang, IntoWalletDescriptor"><title>IntoWalletDescriptor in bdk::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <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"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.into_wallet_descriptor">into_wallet_descriptor</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-IntoWalletDescriptor-for-%26String">&String</a></li><li><a href="#impl-IntoWalletDescriptor-for-%26str">&str</a></li><li><a href="#impl-IntoWalletDescriptor-for-(ExtendedDescriptor%2C%20KeyMap)">(ExtendedDescriptor, KeyMap)</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">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="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#74-81">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait IntoWalletDescriptor {
- fn <a href="#tymethod.into_wallet_descriptor" class="fn">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="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="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 method-toggle" open><summary><section id="tymethod.into_wallet_descriptor" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/descriptor/mod.rs.html#76-80">source</a><h4 class="code-header">fn <a href="#tymethod.into_wallet_descriptor" class="fn">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="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="enum" href="error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></section></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><section id="impl-IntoWalletDescriptor-for-%26str" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/descriptor/mod.rs.html#83-103">source</a><a href="#impl-IntoWalletDescriptor-for-%26str" class="anchor">§</a><h3 class="code-header">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></section></summary><div class="impl-items"><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/descriptor/mod.rs.html#84-102">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.into_wallet_descriptor" class="fn">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="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="enum" href="error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-%26String" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/descriptor/mod.rs.html#105-113">source</a><a href="#impl-IntoWalletDescriptor-for-%26String" class="anchor">§</a><h3 class="code-header">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></section></summary><div class="impl-items"><section id="method.into_wallet_descriptor-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/descriptor/mod.rs.html#106-112">source</a><a href="#method.into_wallet_descriptor-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.into_wallet_descriptor" class="fn">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="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="enum" href="error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-(ExtendedDescriptor%2C%20KeyMap)" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/descriptor/mod.rs.html#125-205">source</a><a href="#impl-IntoWalletDescriptor-for-(ExtendedDescriptor%2C%20KeyMap)" class="anchor">§</a><h3 class="code-header">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>, <a class="type" href="../keys/type.KeyMap.html" title="type bdk::keys::KeyMap">KeyMap</a>)</h3></section></summary><div class="impl-items"><section id="method.into_wallet_descriptor-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/descriptor/mod.rs.html#126-204">source</a><a href="#method.into_wallet_descriptor-2" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.into_wallet_descriptor" class="fn">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="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="enum" href="error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></section></div></details><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-IntoWalletDescriptor-for-DescriptorTemplateOut" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/descriptor/mod.rs.html#207-282">source</a><a href="#impl-IntoWalletDescriptor-for-DescriptorTemplateOut" class="anchor">§</a><h3 class="code-header">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></section><section id="impl-IntoWalletDescriptor-for-ExtendedDescriptor" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/descriptor/mod.rs.html#115-123">source</a><a href="#impl-IntoWalletDescriptor-for-ExtendedDescriptor" class="anchor">§</a><h3 class="code-header">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></section><section id="impl-IntoWalletDescriptor-for-T" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-T" class="anchor">§</a><h3 class="code-header">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></section><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 src="../../implementors/bdk/descriptor/trait.IntoWalletDescriptor.js" data-ignore-extern-crates="std,alloc" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="The ScriptContext for Miniscript. Additional type information associated with miniscript that is used for carrying out checks that dependent on the context under which the script is used. For example, disallowing uncompressed keys in Segwit context"><meta name="keywords" content="rust, rustlang, rust-lang, ScriptContext"><title>ScriptContext in bdk::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">ScriptContext</a></h2><div class="sidebar-elems"><section><h3><a href="#required-associated-types">Required Associated Types</a></h3><ul class="block"><li><a href="#associatedtype.Key">Key</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.check_pk">check_pk</a></li><li><a href="#tymethod.check_terminal_non_malleable">check_terminal_non_malleable</a></li><li><a href="#tymethod.max_satisfaction_size">max_satisfaction_size</a></li><li><a href="#tymethod.name_str">name_str</a></li><li><a href="#tymethod.pk_len">pk_len</a></li><li><a href="#tymethod.sig_type">sig_type</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.check_global_consensus_validity">check_global_consensus_validity</a></li><li><a href="#method.check_global_policy_validity">check_global_policy_validity</a></li><li><a href="#method.check_global_validity">check_global_validity</a></li><li><a href="#method.check_local_consensus_validity">check_local_consensus_validity</a></li><li><a href="#method.check_local_policy_validity">check_local_policy_validity</a></li><li><a href="#method.check_local_validity">check_local_validity</a></li><li><a href="#method.check_witness">check_witness</a></li><li><a href="#method.other_top_level_checks">other_top_level_checks</a></li><li><a href="#method.top_level_checks">top_level_checks</a></li><li><a href="#method.top_level_type_check">top_level_type_check</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="trait" href="#">ScriptContext</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait ScriptContext: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <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.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/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</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/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> + Sealed {
- type <a href="#associatedtype.Key" class="associatedtype">Key</a>: ParseableKey<Sha256 = Hash, Hash256 = Hash, Ripemd160 = Hash, Hash160 = Hash> + MiniscriptKey;
-
-<details class="rustdoc-toggle type-contents-toggle"><summary class="hideme"><span>Show 16 methods</span></summary> fn <a href="#tymethod.check_terminal_non_malleable" class="fn">check_terminal_non_malleable</a><Pk>(<br> _frag: &Terminal<Pk, Self><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> Pk: MiniscriptKey</span>;
-<span class="item-spacer"></span> fn <a href="#tymethod.check_pk" class="fn">check_pk</a><Pk>(pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <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> Pk: MiniscriptKey</span>;
-<span class="item-spacer"></span> fn <a href="#tymethod.max_satisfaction_size" class="fn">max_satisfaction_size</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey</span>;
-<span class="item-spacer"></span> fn <a href="#tymethod.sig_type" class="fn">sig_type</a>() -> SigType;
-<span class="item-spacer"></span> fn <a href="#tymethod.pk_len" class="fn">pk_len</a><Pk>(pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br> <span class="where">where<br> Pk: MiniscriptKey</span>;
-<span class="item-spacer"></span> fn <a href="#tymethod.name_str" class="fn">name_str</a>() -> &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>;
-
- fn <a href="#method.check_witness" class="fn">check_witness</a><Pk>(<br> _witness: &[<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>>]<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> Pk: MiniscriptKey</span>,
- { ... }
-<span class="item-spacer"></span> fn <a href="#method.check_global_consensus_validity" class="fn">check_global_consensus_validity</a><Pk>(<br> _ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
- { ... }
-<span class="item-spacer"></span> fn <a href="#method.check_global_policy_validity" class="fn">check_global_policy_validity</a><Pk>(<br> _ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
- { ... }
-<span class="item-spacer"></span> fn <a href="#method.check_local_consensus_validity" class="fn">check_local_consensus_validity</a><Pk>(<br> _ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
- { ... }
-<span class="item-spacer"></span> fn <a href="#method.check_local_policy_validity" class="fn">check_local_policy_validity</a><Pk>(<br> _ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
- { ... }
-<span class="item-spacer"></span> fn <a href="#method.check_global_validity" class="fn">check_global_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
- { ... }
-<span class="item-spacer"></span> fn <a href="#method.check_local_validity" class="fn">check_local_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
- { ... }
-<span class="item-spacer"></span> fn <a href="#method.top_level_type_check" class="fn">top_level_type_check</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey</span>,
- { ... }
-<span class="item-spacer"></span> fn <a href="#method.other_top_level_checks" class="fn">other_top_level_checks</a><Pk>(<br> _ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
- { ... }
-<span class="item-spacer"></span> fn <a href="#method.top_level_checks" class="fn">top_level_checks</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey</span>,
- { ... }
-</details>}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The ScriptContext for Miniscript. Additional type information associated with
-miniscript that is used for carrying out checks that dependent on the
-context under which the script is used.
-For example, disallowing uncompressed keys in Segwit context</p>
-</div></details><h2 id="required-associated-types" class="small-section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Key" class="method has-srclink"><h4 class="code-header">type <a href="#associatedtype.Key" class="associatedtype">Key</a>: ParseableKey<Sha256 = Hash, Hash256 = Hash, Ripemd160 = Hash, Hash160 = Hash> + MiniscriptKey</h4></section></summary><div class="docblock"><p>The consensus key associated with the type. Must be a parseable key</p>
-</div></details></div><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 method-toggle" open><summary><section id="tymethod.check_terminal_non_malleable" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.check_terminal_non_malleable" class="fn">check_terminal_non_malleable</a><Pk>(<br> _frag: &Terminal<Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Depending on ScriptContext, fragments can be malleable. For Example,
-under Legacy context, PkH is malleable because it is possible to
-estimate the cost of satisfaction because of compressed keys
-This is currently only used in compiler code for removing malleable
-compilations.
-This does NOT recursively check if the children of the fragment are
-valid or not. Since the compilation proceeds in a leaf to root fashion,
-a recursive check is unnecessary.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.check_pk" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.check_pk" class="fn">check_pk</a><Pk>(pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Each context has slightly different rules on what Pks are allowed in descriptors
-Legacy/Bare does not allow x_only keys
-Segwit does not allow uncompressed keys and x_only keys
-Tapscript does not allow uncompressed keys</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.max_satisfaction_size" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.max_satisfaction_size" class="fn">max_satisfaction_size</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Depending on script context, the size of a satifaction witness may slightly differ.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.sig_type" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.sig_type" class="fn">sig_type</a>() -> SigType</h4></section></summary><div class="docblock"><p>The type of signature required for satisfaction</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.pk_len" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.pk_len" class="fn">pk_len</a><Pk>(pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Get the len of public key when serialized based on context
-Note that this includes the serialization prefix. Returns
-34/66 for Bare/Legacy based on key compressedness
-34 for Segwitv0, 33 for Tap</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.name_str" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.name_str" class="fn">name_str</a>() -> &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Local helper function to display error messages with context</p>
-</div></details></div><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_witness" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_witness" class="fn">check_witness</a><Pk>(<br> _witness: &[<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>>]<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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Check whether the given satisfaction is valid under the ScriptContext
-For example, segwit satisfactions may fail if the witness len is more
-3600 or number of stack elements are more than 100.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_consensus_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_global_consensus_validity" class="fn">check_global_consensus_validity</a><Pk>(<br> _ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Depending on script Context, some of the Terminals might not
-be valid under the current consensus rules.
-Or some of the script resource limits may have been exceeded.
-These miniscripts would never be accepted by the Bitcoin network and hence
-it is safe to discard them
-For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey
-uncompressed public keys are non-standard and thus invalid.
-In LegacyP2SH context, scripts above 520 bytes are invalid.
-Post Tapscript upgrade, this would have to consider other nodes.
-This does <em>NOT</em> recursively check the miniscript fragments.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_policy_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_global_policy_validity" class="fn">check_global_policy_validity</a><Pk>(<br> _ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Depending on script Context, some of the script resource limits
-may have been exceeded under the current bitcoin core policy rules
-These miniscripts would never be accepted by the Bitcoin network and hence
-it is safe to discard them. (unless explicitly disabled by non-standard flag)
-For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey
-scripts over 3600 bytes are invalid.
-Post Tapscript upgrade, this would have to consider other nodes.
-This does <em>NOT</em> recursively check the miniscript fragments.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_consensus_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_local_consensus_validity" class="fn">check_local_consensus_validity</a><Pk>(<br> _ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Consensus rules at the Miniscript satisfaction time.
-It is possible that some paths of miniscript may exceed resource limits
-and our current satisfier and lifting analysis would not work correctly.
-For example, satisfaction path(Legacy/Segwitv0) may require more than 201 opcodes.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_policy_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_local_policy_validity" class="fn">check_local_policy_validity</a><Pk>(<br> _ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Policy rules at the Miniscript satisfaction time.
-It is possible that some paths of miniscript may exceed resource limits
-and our current satisfier and lifting analysis would not work correctly.
-For example, satisfaction path in Legacy context scriptSig more
-than 1650 bytes</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_global_validity" class="fn">check_global_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Check the consensus + policy(if not disabled) rules that are not based
-satisfaction</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_local_validity" class="fn">check_local_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Check the consensus + policy(if not disabled) rules including the
-ones for satisfaction</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.top_level_type_check" class="method has-srclink"><h4 class="code-header">fn <a href="#method.top_level_type_check" class="fn">top_level_type_check</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Check whether the top-level is type B</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.other_top_level_checks" class="method has-srclink"><h4 class="code-header">fn <a href="#method.other_top_level_checks" class="fn">other_top_level_checks</a><Pk>(_ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Other top level checks that are context specific</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.top_level_checks" class="method has-srclink"><h4 class="code-header">fn <a href="#method.top_level_checks" class="fn">top_level_checks</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Check top level consensus rules.</p>
-</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ScriptContext-for-Legacy" class="impl has-srclink"><a href="#impl-ScriptContext-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Key-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Key-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Key" class="associatedtype">Key</a> = PublicKey</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ScriptContext-for-Segwitv0" class="impl has-srclink"><a href="#impl-ScriptContext-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Key-2" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Key-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Key" class="associatedtype">Key</a> = PublicKey</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ScriptContext-for-BareCtx" class="impl has-srclink"><a href="#impl-ScriptContext-for-BareCtx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a> for BareCtx</h3></section></summary><div class="impl-items"><section id="associatedtype.Key-3" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Key-3" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Key" class="associatedtype">Key</a> = PublicKey</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ScriptContext-for-Tap" class="impl has-srclink"><a href="#impl-ScriptContext-for-Tap" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a> for Tap</h3></section></summary><div class="impl-items"><section id="associatedtype.Key-4" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Key-4" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Key" class="associatedtype">Key</a> = XOnlyPublicKey</h4></section></div></details></div><script src="../../implementors/miniscript/miniscript/context/trait.ScriptContext.js" data-ignore-extern-crates="miniscript" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Alias for a [`Descriptor`] that contains extended derived keys"><meta name="keywords" content="rust, rustlang, rust-lang, DerivedDescriptor"><title>DerivedDescriptor in bdk::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <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><a href="index.html">In bdk::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">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="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#57">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="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></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Alias for a [`Descriptor`] that can contain extended keys using [`DescriptorPublicKey`]"><meta name="keywords" content="rust, rustlang, rust-lang, ExtendedDescriptor"><title>ExtendedDescriptor in bdk::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <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"><section><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-IntoWalletDescriptor-for-ExtendedDescriptor">IntoWalletDescriptor</a></li></ul></section><h2><a href="index.html">In bdk::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">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="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#54">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="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><section id="impl-IntoWalletDescriptor-for-ExtendedDescriptor" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/descriptor/mod.rs.html#115-123">source</a><a href="#impl-IntoWalletDescriptor-for-ExtendedDescriptor" class="anchor">§</a><h3 class="code-header">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></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/descriptor/mod.rs.html#116-122">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="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="enum" href="error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Alias for the type of maps that represent derivation paths in a `psbt::Input` or `psbt::Output`"><meta name="keywords" content="rust, rustlang, rust-lang, HdKeyPaths"><title>HdKeyPaths in bdk::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <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><a href="index.html">In bdk::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">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="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#64">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="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::psbt::Input"><code>psbt::Input</code></a> or
-<a href="bitcoin::psbt::Output"><code>psbt::Output</code></a></p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Alias for the type of maps that represent taproot key origins in a `psbt::Input` or `psbt::Output`"><meta name="keywords" content="rust, rustlang, rust-lang, TapKeyOrigins"><title>TapKeyOrigins in bdk::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <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><a href="index.html">In bdk::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">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="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#71">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="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="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><TapLeafHash>, 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 taproot key origins in a <a href="bitcoin::psbt::Input"><code>psbt::Input</code></a> or
-<a href="bitcoin::psbt::Output"><code>psbt::Output</code></a></p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Types of keychains"><meta name="keywords" content="rust, rustlang, rust-lang, KeychainKind"><title>KeychainKind in bdk - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">KeychainKind</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.External">External</a></li><li><a href="#variant.Internal">Internal</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.as_byte">as_byte</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-AsRef%3C%5Bu8%5D%3E-for-KeychainKind">AsRef<[u8]></a></li><li><a href="#impl-Clone-for-KeychainKind">Clone</a></li><li><a href="#impl-Copy-for-KeychainKind">Copy</a></li><li><a href="#impl-Debug-for-KeychainKind">Debug</a></li><li><a href="#impl-Deserialize%3C%27de%3E-for-KeychainKind">Deserialize<'de></a></li><li><a href="#impl-Eq-for-KeychainKind">Eq</a></li><li><a href="#impl-Hash-for-KeychainKind">Hash</a></li><li><a href="#impl-Ord-for-KeychainKind">Ord</a></li><li><a href="#impl-PartialEq%3CKeychainKind%3E-for-KeychainKind">PartialEq<KeychainKind></a></li><li><a href="#impl-PartialOrd%3CKeychainKind%3E-for-KeychainKind">PartialOrd<KeychainKind></a></li><li><a href="#impl-Serialize-for-KeychainKind">Serialize</a></li><li><a href="#impl-StructuralEq-for-KeychainKind">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-KeychainKind">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-KeychainKind">RefUnwindSafe</a></li><li><a href="#impl-Send-for-KeychainKind">Send</a></li><li><a href="#impl-Sync-for-KeychainKind">Sync</a></li><li><a href="#impl-Unpin-for-KeychainKind">Unpin</a></li><li><a href="#impl-UnwindSafe-for-KeychainKind">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-KeychainKind">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-KeychainKind">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-KeychainKind">BorrowMut<T></a></li><li><a href="#impl-DeserializeOwned-for-KeychainKind">DeserializeOwned</a></li><li><a href="#impl-From%3CT%3E-for-KeychainKind">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-KeychainKind">Into<U></a></li><li><a href="#impl-ToOwned-for-KeychainKind">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-KeychainKind">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-KeychainKind">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-KeychainKind">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="index.html">bdk</a>::<wbr><a class="enum" href="#">KeychainKind</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk/types.rs.html#23-28">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum KeychainKind {
- External,
- Internal,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Types of keychains</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.External" class="variant"><a href="#variant.External" class="anchor">§</a><h3 class="code-header">External</h3></section><div class="docblock"><p>External keychain, used for deriving recipient addresses.</p>
-</div><section id="variant.Internal" class="variant"><a href="#variant.Internal" class="anchor">§</a><h3 class="code-header">Internal</h3></section><div class="docblock"><p>Internal keychain, used for deriving change addresses.</p>
-</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#30-38">source</a><a href="#impl-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_byte" class="method has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#32-37">source</a><h4 class="code-header">pub fn <a href="#method.as_byte" class="fn">as_byte</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a></h4></section></summary><div class="docblock"><p>Return <a href="enum.KeychainKind.html" title="KeychainKind"><code>KeychainKind</code></a> as a byte</p>
-</div></details></div></details></div><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><section id="impl-AsRef%3C%5Bu8%5D%3E-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#40-47">source</a><a href="#impl-AsRef%3C%5Bu8%5D%3E-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a><[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_ref" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#41-46">source</a><a href="#method.as_ref" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html#tymethod.as_ref" class="fn">as_ref</a>(&self) -> &[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>] <a href="#" class="notable-traits" data-ty="&[u8]">ⓘ</a></h4></section></summary><div class='docblock'>Converts this type into a shared reference of the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Clone-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#22">source</a><a href="#impl-Clone-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#22">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#22">source</a><a href="#impl-Debug-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#22">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserialize%3C%27de%3E-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#22">source</a><a href="#impl-Deserialize%3C%27de%3E-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#22">source</a><a href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize" class="fn">deserialize</a><__D>(__deserializer: __D) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, __D::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>><span class="where fmt-newline">where<br> __D: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#22">source</a><a href="#impl-Hash-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#22">source</a><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)</h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#22">source</a><a href="#impl-Ord-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#22">source</a><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CKeychainKind%3E-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#22">source</a><a href="#impl-PartialEq%3CKeychainKind%3E-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#22">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CKeychainKind%3E-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#22">source</a><a href="#impl-PartialOrd%3CKeychainKind%3E-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#22">source</a><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#22">source</a><a href="#impl-Serialize-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#22">source</a><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><__S>(&self, __serializer: __S) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><__S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, __S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> __S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Copy-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#22">source</a><a href="#impl-Copy-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></h3></section><section id="impl-Eq-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#22">source</a><a href="#impl-Eq-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></h3></section><section id="impl-StructuralEq-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#22">source</a><a href="#impl-StructuralEq-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></h3></section><section id="impl-StructuralPartialEq-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#22">source</a><a href="#impl-StructuralPartialEq-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-KeychainKind" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></h3></section><section id="impl-Send-for-KeychainKind" class="impl has-srclink"><a href="#impl-Send-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></h3></section><section id="impl-Sync-for-KeychainKind" class="impl has-srclink"><a href="#impl-Sync-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></h3></section><section id="impl-Unpin-for-KeychainKind" class="impl has-srclink"><a href="#impl-Unpin-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></h3></section><section id="impl-UnwindSafe-for-KeychainKind" class="impl has-srclink"><a href="#impl-UnwindSafe-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-KeychainKind" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details><section id="impl-DeserializeOwned-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/serde/1.0.201/src/serde/de/mod.rs.html#608">source</a><a href="#impl-DeserializeOwned-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> for T<span class="where fmt-newline">where<br> T: for<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de>,</span></h3></section></div><script type="text/json" id="notable-traits-data">{"&[u8]":"<h3>Notable traits for <code>&mut [<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>]</code></h3><pre class=\"content\"><code><span class=\"where fmt-newline\">impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/std/io/trait.Write.html\" title=\"trait std::io::Write\">Write</a> for &mut [<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>]</span><span class=\"where fmt-newline\">impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/std/io/trait.Read.html\" title=\"trait std::io::Read\">Read</a> for &[<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>]</span>"}</script></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="An unspent transaction output (UTXO)."><meta name="keywords" content="rust, rustlang, rust-lang, Utxo"><title>Utxo in bdk - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Utxo</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Foreign">Foreign</a></li><li><a href="#variant.Local">Local</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.outpoint">outpoint</a></li><li><a href="#method.sequence">sequence</a></li><li><a href="#method.txout">txout</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-Utxo">Clone</a></li><li><a href="#impl-Debug-for-Utxo">Debug</a></li><li><a href="#impl-Eq-for-Utxo">Eq</a></li><li><a href="#impl-PartialEq%3CUtxo%3E-for-Utxo">PartialEq<Utxo></a></li><li><a href="#impl-StructuralEq-for-Utxo">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-Utxo">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Utxo">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Utxo">Send</a></li><li><a href="#impl-Sync-for-Utxo">Sync</a></li><li><a href="#impl-Unpin-for-Utxo">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Utxo">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Utxo">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Utxo">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Utxo">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Utxo">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Utxo">Into<U></a></li><li><a href="#impl-ToOwned-for-Utxo">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Utxo">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Utxo">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Utxo">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="index.html">bdk</a>::<wbr><a class="enum" href="#">Utxo</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk/types.rs.html#82-95">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum Utxo {
- Local(<a class="struct" href="struct.LocalOutput.html" title="struct bdk::LocalOutput">LocalOutput</a>),
- Foreign {
- outpoint: OutPoint,
- sequence: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Sequence>,
- psbt_input: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><Input>,
- },
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An unspent transaction output (UTXO).</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Local" class="variant"><a href="#variant.Local" class="anchor">§</a><h3 class="code-header">Local(<a class="struct" href="struct.LocalOutput.html" title="struct bdk::LocalOutput">LocalOutput</a>)</h3></section><div class="docblock"><p>A UTXO owned by the local wallet.</p>
-</div><section id="variant.Foreign" class="variant"><a href="#variant.Foreign" class="anchor">§</a><h3 class="code-header">Foreign</h3></section><div class="sub-variant" id="variant.Foreign.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Foreign.field.outpoint" class="small-section-header"><a href="#variant.Foreign.field.outpoint" class="anchor field">§</a><code>outpoint: OutPoint</code></span><div class="docblock"><p>The location of the output.</p>
-</div></div><div class="sub-variant-field"><span id="variant.Foreign.field.sequence" class="small-section-header"><a href="#variant.Foreign.field.sequence" class="anchor field">§</a><code>sequence: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Sequence></code></span><div class="docblock"><p>The nSequence value to set for this input.</p>
-</div></div><div class="sub-variant-field"><span id="variant.Foreign.field.psbt_input" class="small-section-header"><a href="#variant.Foreign.field.psbt_input" class="anchor field">§</a><code>psbt_input: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><Input></code></span><div class="docblock"><p>The information about the input we require to add it to a PSBT.</p>
-</div></div></div><div class="docblock"><p>A UTXO owned by another wallet.</p>
-</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Utxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#97-135">source</a><a href="#impl-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.Utxo.html" title="enum bdk::Utxo">Utxo</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.outpoint" class="method has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#99-104">source</a><h4 class="code-header">pub fn <a href="#method.outpoint" class="fn">outpoint</a>(&self) -> OutPoint</h4></section></summary><div class="docblock"><p>Get the location of the UTXO</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.txout" class="method has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#107-126">source</a><h4 class="code-header">pub fn <a href="#method.txout" class="fn">txout</a>(&self) -> &TxOut</h4></section></summary><div class="docblock"><p>Get the <code>TxOut</code> of the UTXO</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sequence" class="method has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#129-134">source</a><h4 class="code-header">pub fn <a href="#method.sequence" class="fn">sequence</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Sequence></h4></section></summary><div class="docblock"><p>Get the sequence number if an explicit sequence number has to be set for this input.</p>
-</div></details></div></details></div><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><section id="impl-Clone-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#80">source</a><a href="#impl-Clone-for-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.Utxo.html" title="enum bdk::Utxo">Utxo</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#80">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.Utxo.html" title="enum bdk::Utxo">Utxo</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#80">source</a><a href="#impl-Debug-for-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.Utxo.html" title="enum bdk::Utxo">Utxo</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#80">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CUtxo%3E-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#80">source</a><a href="#impl-PartialEq%3CUtxo%3E-for-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.Utxo.html" title="enum bdk::Utxo">Utxo</a>> for <a class="enum" href="enum.Utxo.html" title="enum bdk::Utxo">Utxo</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#80">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.Utxo.html" title="enum bdk::Utxo">Utxo</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><section id="impl-Eq-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#80">source</a><a href="#impl-Eq-for-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.Utxo.html" title="enum bdk::Utxo">Utxo</a></h3></section><section id="impl-StructuralEq-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#80">source</a><a href="#impl-StructuralEq-for-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.Utxo.html" title="enum bdk::Utxo">Utxo</a></h3></section><section id="impl-StructuralPartialEq-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#80">source</a><a href="#impl-StructuralPartialEq-for-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.Utxo.html" title="enum bdk::Utxo">Utxo</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Utxo" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.Utxo.html" title="enum bdk::Utxo">Utxo</a></h3></section><section id="impl-Send-for-Utxo" class="impl has-srclink"><a href="#impl-Send-for-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.Utxo.html" title="enum bdk::Utxo">Utxo</a></h3></section><section id="impl-Sync-for-Utxo" class="impl has-srclink"><a href="#impl-Sync-for-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.Utxo.html" title="enum bdk::Utxo">Utxo</a></h3></section><section id="impl-Unpin-for-Utxo" class="impl has-srclink"><a href="#impl-Unpin-for-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.Utxo.html" title="enum bdk::Utxo">Utxo</a></h3></section><section id="impl-UnwindSafe-for-Utxo" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.Utxo.html" title="enum bdk::Utxo">Utxo</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Utxo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Utxo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Utxo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Utxo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Utxo" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-Utxo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Utxo" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Utxo" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Utxo" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Utxo" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Get the version of BDK at runtime"><meta name="keywords" content="rust, rustlang, rust-lang, version"><title>version in bdk - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In bdk</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="index.html">bdk</a>::<wbr><a class="fn" href="#">version</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk/lib.rs.html#42-44">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn version() -> &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Get the version of BDK at runtime</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="`bdk`"><meta name="keywords" content="rust, rustlang, rust-lang, bdk"><title>bdk - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Crate bdk</a></h2><div class="sidebar-elems"><ul class="block"><li class="version">Version 1.0.0-alpha.11</li><li><a id="all-types" href="all.html">All Items</a></li></ul><section><ul class="block"><li><a href="#reexports">Re-exports</a></li><li><a href="#modules">Modules</a></li><li><a href="#macros">Macros</a></li><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#functions">Functions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Crate <a class="mod" href="#">bdk</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk/lib.rs.html#1-47">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><div align="center">
- <h1>BDK</h1>
-<img src="https://raw.githubusercontent.com/bitcoindevkit/bdk/master/static/bdk.png" width="220" />
-<p>
- <strong>A modern, lightweight, descriptor-based wallet library written in Rust!</strong>
- </p>
-<p>
- <a href="https://crates.io/crates/bdk"><img alt="Crate Info" src="https://img.shields.io/crates/v/bdk.svg"/></a>
- <a href="https://github.com/bitcoindevkit/bdk/blob/master/LICENSE"><img alt="MIT or Apache-2.0 Licensed" src="https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg"/></a>
- <a href="https://github.com/bitcoindevkit/bdk/actions?query=workflow%3ACI"><img alt="CI Status" src="https://github.com/bitcoindevkit/bdk/workflows/CI/badge.svg"></a>
- <a href="https://coveralls.io/github/bitcoindevkit/bdk?branch=master"><img src="https://coveralls.io/repos/github/bitcoindevkit/bdk/badge.svg?branch=master"/></a>
- <a href="https://docs.rs/bdk"><img alt="API Docs" src="https://img.shields.io/badge/docs.rs-bdk-green"/></a>
- <a href="https://blog.rust-lang.org/2022/08/11/Rust-1.63.0.html"><img alt="Rustc Version 1.63.0+" src="https://img.shields.io/badge/rustc-1.63.0%2B-lightgrey.svg"/></a>
- <a href="https://discord.gg/d7NkDKm"><img alt="Chat on Discord" src="https://img.shields.io/discord/753336465005608961?logo=discord"></a>
- </p>
-<h4>
- <a href="https://bitcoindevkit.org">Project Homepage</a>
- <span> | </span>
- <a href="https://docs.rs/bdk">Documentation</a>
- </h4>
-</div>
-<h3 id="bdk"><a href="#bdk"><code>bdk</code></a></h3>
-<p>The <code>bdk</code> crate provides the <a href="https://docs.rs/bdk/1.0.0-alpha.7/bdk/wallet/struct.Wallet.html"><code>Wallet</code></a> type which is a simple, high-level
-interface built from the low-level components of <a href="https://docs.rs/bdk_chain/latest"><code>bdk_chain</code></a>. <code>Wallet</code> is a good starting point
-for many simple applications as well as a good demonstration of how to use the other mechanisms to
-construct a wallet. It has two keychains (external and internal) which are defined by
-<a href="https://docs.rs/miniscript/latest/miniscript/index.html">miniscript descriptors</a> and uses them to generate addresses. When you give it
-chain data it also uses the descriptors to find transaction outputs owned by them. From there, you
-can create and sign transactions.</p>
-<p>For details about the API of <code>Wallet</code> see the <a href="https://docs.rs/bdk/1.0.0-alpha.7/bdk/wallet/struct.Wallet.html">module-level documentation</a>.</p>
-<h4 id="blockchain-data"><a href="#blockchain-data">Blockchain data</a></h4>
-<p>In order to get blockchain data for <code>Wallet</code> to consume, you should configure a client from
-an available chain source. Typically you make a request to the chain source and get a response
-that the <code>Wallet</code> can use to update its view of the chain.</p>
-<p><strong>Blockchain Data Sources</strong></p>
-<ul>
-<li><a href="https://docs.rs/bdk_esplora/latest"><code>bdk_esplora</code></a>: Grabs blockchain data from Esplora for updating BDK structures.</li>
-<li><a href="https://docs.rs/bdk_electrum/latest"><code>bdk_electrum</code></a>: Grabs blockchain data from Electrum for updating BDK structures.</li>
-<li><a href="https://docs.rs/bdk_bitcoind_rpc/latest"><code>bdk_bitcoind_rpc</code></a>: Grabs blockchain data from Bitcoin Core for updating BDK structures.</li>
-</ul>
-<p><strong>Examples</strong></p>
-<ul>
-<li><a href="https://github.com/bitcoindevkit/bdk/tree/master/example-crates/wallet_esplora_async"><code>example-crates/wallet_esplora_async</code></a></li>
-<li><a href="https://github.com/bitcoindevkit/bdk/tree/master/example-crates/wallet_esplora_blocking"><code>example-crates/wallet_esplora_blocking</code></a></li>
-<li><a href="https://github.com/bitcoindevkit/bdk/tree/master/example-crates/wallet_electrum"><code>example-crates/wallet_electrum</code></a></li>
-<li><a href="https://github.com/bitcoindevkit/bdk/tree/master/example-crates/wallet_rpc"><code>example-crates/wallet_rpc</code></a></li>
-</ul>
-<h4 id="persistence"><a href="#persistence">Persistence</a></h4>
-<p>To persist the <code>Wallet</code> on disk, it must be constructed with a <a href="https://docs.rs/bdk_persist/latest/bdk_persist/trait.PersistBackend.html"><code>PersistBackend</code></a> implementation.</p>
-<p><strong>Implementations</strong></p>
-<ul>
-<li><a href="https://docs.rs/bdk_file_store/latest"><code>bdk_file_store</code></a>: A simple flat-file implementation of <a href="https://docs.rs/bdk_persist/latest/bdk_persist/trait.PersistBackend.html"><code>PersistBackend</code></a>.</li>
-</ul>
-<p><strong>Example</strong></p>
-<!-- compile_fail because outpoint and txout are fake variables -->
-
-<div class="example-wrap compile_fail"><div class='tooltip'>ⓘ</div><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk::{bitcoin::Network, wallet::{ChangeSet, Wallet}};
-
-<span class="kw">fn </span>main() {
- <span class="comment">// Create a new file `Store`.
- </span><span class="kw">let </span>db = bdk_file_store::Store::<ChangeSet>::open_or_create_new(<span class="string">b"magic_bytes"</span>, <span class="string">"path/to/my_wallet.db"</span>).expect(<span class="string">"create store"</span>);
-
- <span class="kw">let </span>descriptor = <span class="string">"wpkh(tprv8ZgxMBicQKsPdcAqYBpzAFwU5yxBUo88ggoBqu1qPcHUfSbKK1sKMLmC7EAk438btHQrSdu3jGGQa6PA71nvH5nkDexhLteJqkM4dQmWF9g/84'/1'/0'/0/*)"</span>;
- <span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_or_load(descriptor, <span class="prelude-val">None</span>, db, Network::Testnet).expect(<span class="string">"create or load wallet"</span>);
-
- <span class="comment">// Insert a single `TxOut` at `OutPoint` into the wallet.
- </span><span class="kw">let _ </span>= wallet.insert_txout(outpoint, txout);
- wallet.commit().expect(<span class="string">"must write to database"</span>);
-}</code></pre></div>
-<!-- ### Sync the balance of a descriptor -->
-<!-- ```rust,no_run -->
-<!-- use bdk::Wallet; -->
-<!-- use bdk::blockchain::ElectrumBlockchain; -->
-<!-- use bdk::SyncOptions; -->
-<!-- use bdk::electrum_client::Client; -->
-<!-- use bdk::bitcoin::Network; -->
-<!-- fn main() -> Result<(), bdk::Error> { -->
-<!-- let blockchain = ElectrumBlockchain::from(Client::new("ssl://electrum.blockstream.info:60002")?); -->
-<!-- let wallet = Wallet::new( -->
-<!-- "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)", -->
-<!-- Some("wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/1/*)"), -->
-<!-- Network::Testnet, -->
-<!-- )?; -->
-<!-- wallet.sync(&blockchain, SyncOptions::default())?; -->
-<!-- println!("Descriptor balance: {} SAT", wallet.get_balance()?); -->
-<!-- Ok(()) -->
-<!-- } -->
-<!-- ``` -->
-<!-- ### Generate a few addresses -->
-<!-- ```rust -->
-<!-- use bdk::Wallet; -->
-<!-- use bdk::wallet::AddressIndex::New; -->
-<!-- use bdk::bitcoin::Network; -->
-<!-- fn main() -> Result<(), bdk::Error> { -->
-<!-- let wallet = Wallet::new_no_persist( -->
-<!-- "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)", -->
-<!-- Some("wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/1/*)"), -->
-<!-- Network::Testnet, -->
-<!-- )?; -->
-<!-- println!("Address #0: {}", wallet.get_address(New)); -->
-<!-- println!("Address #1: {}", wallet.get_address(New)); -->
-<!-- println!("Address #2: {}", wallet.get_address(New)); -->
-<!-- Ok(()) -->
-<!-- } -->
-<!-- ``` -->
-<!-- ### Create a transaction -->
-<!-- ```rust,no_run -->
-<!-- use bdk::{FeeRate, Wallet, SyncOptions}; -->
-<!-- use bdk::blockchain::ElectrumBlockchain; -->
-<!-- use bdk::electrum_client::Client; -->
-<!-- use bdk::wallet::AddressIndex::New; -->
-<!-- use bitcoin::base64; -->
-<!-- use bdk::bitcoin::consensus::serialize; -->
-<!-- use bdk::bitcoin::Network; -->
-<!-- fn main() -> Result<(), bdk::Error> { -->
-<!-- let blockchain = ElectrumBlockchain::from(Client::new("ssl://electrum.blockstream.info:60002")?); -->
-<!-- let wallet = Wallet::new_no_persist( -->
-<!-- "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)", -->
-<!-- Some("wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/1/*)"), -->
-<!-- Network::Testnet, -->
-<!-- )?; -->
-<!-- wallet.sync(&blockchain, SyncOptions::default())?; -->
-<!-- let send_to = wallet.get_address(New); -->
-<!-- let (psbt, details) = { -->
-<!-- let mut builder = wallet.build_tx(); -->
-<!-- builder -->
-<!-- .add_recipient(send_to.script_pubkey(), 50_000) -->
-<!-- .enable_rbf() -->
-<!-- .do_not_spend_change() -->
-<!-- .fee_rate(FeeRate::from_sat_per_vb(5.0)); -->
-<!-- builder.finish()? -->
-<!-- }; -->
-<!-- println!("Transaction details: {:#?}", details); -->
-<!-- println!("Unsigned PSBT: {}", base64::encode(&serialize(&psbt))); -->
-<!-- Ok(()) -->
-<!-- } -->
-<!-- ``` -->
-<!-- ### Sign a transaction -->
-<!-- ```rust,no_run -->
-<!-- use bdk::{Wallet, SignOptions}; -->
-<!-- use bitcoin::base64; -->
-<!-- use bdk::bitcoin::consensus::deserialize; -->
-<!-- use bdk::bitcoin::Network; -->
-<!-- fn main() -> Result<(), bdk::Error> { -->
-<!-- let wallet = Wallet::new_no_persist( -->
-<!-- "wpkh([c258d2e4/84h/1h/0h]tprv8griRPhA7342zfRyB6CqeKF8CJDXYu5pgnj1cjL1u2ngKcJha5jjTRimG82ABzJQ4MQe71CV54xfn25BbhCNfEGGJZnxvCDQCd6JkbvxW6h/0/*)", -->
-<!-- Some("wpkh([c258d2e4/84h/1h/0h]tprv8griRPhA7342zfRyB6CqeKF8CJDXYu5pgnj1cjL1u2ngKcJha5jjTRimG82ABzJQ4MQe71CV54xfn25BbhCNfEGGJZnxvCDQCd6JkbvxW6h/1/*)"), -->
-<!-- Network::Testnet, -->
-<!-- )?; -->
-<!-- let psbt = "..."; -->
-<!-- let mut psbt = deserialize(&base64::decode(psbt).unwrap())?; -->
-<!-- let _finalized = wallet.sign(&mut psbt, SignOptions::default())?; -->
-<!-- Ok(()) -->
-<!-- } -->
-<!-- ``` -->
-<h3 id="testing"><a href="#testing">Testing</a></h3><h4 id="unit-testing"><a href="#unit-testing">Unit testing</a></h4><div class="example-wrap"><pre class="language-bash"><code>cargo test
-</code></pre></div><h3 id="license"><a href="#license">License</a></h3>
-<p>Licensed under either of</p>
-<ul>
-<li>Apache License, Version 2.0, (<a href="../../LICENSE-APACHE">LICENSE-APACHE</a> or <a href="https://www.apache.org/licenses/LICENSE-2.0">https://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-<li>MIT license (<a href="../../LICENSE-MIT">LICENSE-MIT</a> or <a href="https://opensource.org/licenses/MIT">https://opensource.org/licenses/MIT</a>)</li>
-</ul>
-<p>at your option.</p>
-<h4 id="contribution"><a href="#contribution">Contribution</a></h4>
-<p>Unless you explicitly state otherwise, any contribution intentionally
-submitted for inclusion in the work by you, as defined in the Apache-2.0
-license, shall be dual licensed as above, without any additional terms or
-conditions.</p>
-</div></details><h2 id="reexports" class="small-section-header"><a href="#reexports">Re-exports</a></h2><div class="item-table"><div class="item-row"><div class="item-left"><code>pub extern crate bitcoin;</code></div></div><div class="item-row"><div class="item-left"><code>pub extern crate miniscript;</code></div></div><div class="item-row"><div class="item-left import-item" id="reexport.template"><code>pub use descriptor::<a class="mod" href="descriptor/template/index.html" title="mod bdk::descriptor::template">template</a>;</code></div></div><div class="item-row"><div class="item-left import-item" id="reexport.HdKeyPaths"><code>pub use descriptor::<a class="type" href="descriptor/type.HdKeyPaths.html" title="type bdk::descriptor::HdKeyPaths">HdKeyPaths</a>;</code></div></div><div class="item-row"><div class="item-left import-item" id="reexport.signer"><code>pub use wallet::<a class="mod" href="wallet/signer/index.html" title="mod bdk::wallet::signer">signer</a>;</code></div></div><div class="item-row"><div class="item-left import-item" id="reexport.SignOptions"><code>pub use wallet::signer::<a class="struct" href="wallet/signer/struct.SignOptions.html" title="struct bdk::wallet::signer::SignOptions">SignOptions</a>;</code></div></div><div class="item-row"><div class="item-left import-item" id="reexport.TxBuilder"><code>pub use wallet::tx_builder::<a class="struct" href="wallet/tx_builder/struct.TxBuilder.html" title="struct bdk::wallet::tx_builder::TxBuilder">TxBuilder</a>;</code></div></div><div class="item-row"><div class="item-left import-item" id="reexport.Wallet"><code>pub use wallet::<a class="struct" href="wallet/struct.Wallet.html" title="struct bdk::wallet::Wallet">Wallet</a>;</code></div></div><div class="item-row"><div class="item-left import-item" id="reexport.chain"><code>pub use <a class="mod" href="../bdk_chain/index.html" title="mod bdk_chain">bdk_chain</a> as chain;</code></div></div></div><h2 id="modules" class="small-section-header"><a href="#modules">Modules</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="mod" href="descriptor/index.html" title="bdk::descriptor mod">descriptor</a></div><div class="item-right docblock-short">Descriptors</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="keys/index.html" title="bdk::keys mod">keys</a></div><div class="item-right docblock-short">Key formats</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="psbt/index.html" title="bdk::psbt mod">psbt</a></div><div class="item-right docblock-short">Additional functions on the <code>rust-bitcoin</code> <code>Psbt</code> structure.</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="wallet/index.html" title="bdk::wallet mod">wallet</a></div><div class="item-right docblock-short">Wallet</div></div></div><h2 id="macros" class="small-section-header"><a href="#macros">Macros</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="macro" href="macro.descriptor.html" title="bdk::descriptor macro">descriptor</a></div><div class="item-right docblock-short">Macro to write full descriptors with code</div></div><div class="item-row"><div class="item-left module-item"><a class="macro" href="macro.fragment.html" title="bdk::fragment macro">fragment</a></div><div class="item-right docblock-short">Macro to write descriptor fragments with code</div></div></div><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.LocalOutput.html" title="bdk::LocalOutput struct">LocalOutput</a></div><div class="item-right docblock-short">An unspent output owned by a <a href="wallet/struct.Wallet.html"><code>Wallet</code></a>.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.WeightedUtxo.html" title="bdk::WeightedUtxo struct">WeightedUtxo</a></div><div class="item-right docblock-short">A <a href="enum.Utxo.html" title="Utxo"><code>Utxo</code></a> with its <code>satisfaction_weight</code>.</div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.KeychainKind.html" title="bdk::KeychainKind enum">KeychainKind</a></div><div class="item-right docblock-short">Types of keychains</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Utxo.html" title="bdk::Utxo enum">Utxo</a></div><div class="item-right docblock-short">An unspent transaction output (UTXO).</div></div></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.version.html" title="bdk::version fn">version</a></div><div class="item-right docblock-short">Get the version of BDK at runtime</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Container for public or secret keys"><meta name="keywords" content="rust, rustlang, rust-lang, DescriptorKey"><title>DescriptorKey in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">DescriptorKey</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.from_public">from_public</a></li><li><a href="#method.from_secret">from_secret</a></li><li><a href="#method.override_valid_networks">override_valid_networks</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-DescriptorKey%3CCtx%3E">Debug</a></li><li><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorKey%3CCtx%3E">IntoDescriptorKey<Ctx></a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-DescriptorKey%3CCtx%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-DescriptorKey%3CCtx%3E">Send</a></li><li><a href="#impl-Sync-for-DescriptorKey%3CCtx%3E">Sync</a></li><li><a href="#impl-Unpin-for-DescriptorKey%3CCtx%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-DescriptorKey%3CCtx%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-DescriptorKey%3CCtx%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-DescriptorKey%3CCtx%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-DescriptorKey%3CCtx%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-DescriptorKey%3CCtx%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-DescriptorKey%3CCtx%3E">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-DescriptorKey%3CCtx%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-DescriptorKey%3CCtx%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-DescriptorKey%3CCtx%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="enum" href="#">DescriptorKey</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/keys/mod.rs.html#74-79">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum DescriptorKey<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> {
- // some variants omitted
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Container for public or secret keys</p>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#81-124">source</a><a href="#impl-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="enum" href="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_public" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#83-85">source</a><h4 class="code-header">pub fn <a href="#method.from_public" class="fn">from_public</a>(public: <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, networks: <a class="type" href="type.ValidNetworks.html" title="type bdk::keys::ValidNetworks">ValidNetworks</a>) -> Self</h4></section></summary><div class="docblock"><p>Create an instance given a public key and a set of valid networks</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_secret" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#88-90">source</a><h4 class="code-header">pub fn <a href="#method.from_secret" class="fn">from_secret</a>(secret: <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a>, networks: <a class="type" href="type.ValidNetworks.html" title="type bdk::keys::ValidNetworks">ValidNetworks</a>) -> Self</h4></section></summary><div class="docblock"><p>Create an instance given a secret key and a set of valid networks</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.override_valid_networks" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#93-98">source</a><h4 class="code-header">pub fn <a href="#method.override_valid_networks" class="fn">override_valid_networks</a>(self, networks: <a class="type" href="type.ValidNetworks.html" title="type bdk::keys::ValidNetworks">ValidNetworks</a>) -> Self</h4></section></summary><div class="docblock"><p>Override the computed set of valid networks</p>
-</div></details></div></details></div><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><section id="impl-Debug-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#73">source</a><a href="#impl-Debug-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#73">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#838-842">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for <a class="enum" href="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx></h3></section></summary><div class="docblock"><p>The “identity” conversion is used internally by some <code>bdk::fragment</code>s</p>
-</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_descriptor_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#839-841">source</a><a href="#method.into_descriptor_key" class="anchor">§</a><h4 class="code-header">fn <a href="trait.IntoDescriptorKey.html#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>></h4></section></summary><div class='docblock'>Turn the key into a <a href="enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a> within the requested <a href="trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-Send-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-Sync-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-Unpin-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="The descriptor pubkey, either a single pubkey or an xpub."><meta name="keywords" content="rust, rustlang, rust-lang, DescriptorPublicKey"><title>DescriptorPublicKey in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">DescriptorPublicKey</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.MultiXPub">MultiXPub</a></li><li><a href="#variant.Single">Single</a></li><li><a href="#variant.XPub">XPub</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.at_derivation_index">at_derivation_index</a></li><li><a href="#method.derive">derive</a></li><li><a href="#method.full_derivation_path">full_derivation_path</a></li><li><a href="#method.full_derivation_paths">full_derivation_paths</a></li><li><a href="#method.has_wildcard">has_wildcard</a></li><li><a href="#method.into_single_keys">into_single_keys</a></li><li><a href="#method.is_deriveable">is_deriveable</a></li><li><a href="#method.is_multipath">is_multipath</a></li><li><a href="#method.master_fingerprint">master_fingerprint</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-DescriptorPublicKey">Clone</a></li><li><a href="#impl-Debug-for-DescriptorPublicKey">Debug</a></li><li><a href="#impl-Deserialize%3C%27de%3E-for-DescriptorPublicKey">Deserialize<'de></a></li><li><a href="#impl-Display-for-DescriptorPublicKey">Display</a></li><li><a href="#impl-Eq-for-DescriptorPublicKey">Eq</a></li><li><a href="#impl-From%3CDefiniteDescriptorKey%3E-for-DescriptorPublicKey">From<DefiniteDescriptorKey></a></li><li><a href="#impl-FromStr-for-DescriptorPublicKey">FromStr</a></li><li><a href="#impl-Hash-for-DescriptorPublicKey">Hash</a></li><li><a href="#impl-IntoAssets-for-DescriptorPublicKey">IntoAssets</a></li><li><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorPublicKey">IntoDescriptorKey<Ctx></a></li><li><a href="#impl-MiniscriptKey-for-DescriptorPublicKey">MiniscriptKey</a></li><li><a href="#impl-Ord-for-DescriptorPublicKey">Ord</a></li><li><a href="#impl-PartialEq%3CDescriptorPublicKey%3E-for-DescriptorPublicKey">PartialEq<DescriptorPublicKey></a></li><li><a href="#impl-PartialOrd%3CDescriptorPublicKey%3E-for-DescriptorPublicKey">PartialOrd<DescriptorPublicKey></a></li><li><a href="#impl-Serialize-for-DescriptorPublicKey">Serialize</a></li><li><a href="#impl-StructuralEq-for-DescriptorPublicKey">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-DescriptorPublicKey">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-DescriptorPublicKey">RefUnwindSafe</a></li><li><a href="#impl-Send-for-DescriptorPublicKey">Send</a></li><li><a href="#impl-Sync-for-DescriptorPublicKey">Sync</a></li><li><a href="#impl-Unpin-for-DescriptorPublicKey">Unpin</a></li><li><a href="#impl-UnwindSafe-for-DescriptorPublicKey">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-DescriptorPublicKey">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-DescriptorPublicKey">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-DescriptorPublicKey">BorrowMut<T></a></li><li><a href="#impl-DeserializeOwned-for-DescriptorPublicKey">DeserializeOwned</a></li><li><a href="#impl-From%3CT%3E-for-DescriptorPublicKey">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-DescriptorPublicKey">Into<U></a></li><li><a href="#impl-ToOwned-for-DescriptorPublicKey">ToOwned</a></li><li><a href="#impl-ToString-for-DescriptorPublicKey">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-DescriptorPublicKey">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-DescriptorPublicKey">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-DescriptorPublicKey">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="enum" href="#">DescriptorPublicKey</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum DescriptorPublicKey {
- Single(<a class="struct" href="struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</a>),
- XPub(DescriptorXKey<Xpub>),
- MultiXPub(DescriptorMultiXKey<Xpub>),
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The descriptor pubkey, either a single pubkey or an xpub.</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Single" class="variant"><a href="#variant.Single" class="anchor">§</a><h3 class="code-header">Single(<a class="struct" href="struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</a>)</h3></section><div class="docblock"><p>Single public key.</p>
-</div><section id="variant.XPub" class="variant"><a href="#variant.XPub" class="anchor">§</a><h3 class="code-header">XPub(DescriptorXKey<Xpub>)</h3></section><div class="docblock"><p>Extended public key (xpub).</p>
-</div><section id="variant.MultiXPub" class="variant"><a href="#variant.MultiXPub" class="anchor">§</a><h3 class="code-header">MultiXPub(DescriptorMultiXKey<Xpub>)</h3></section><div class="docblock"><p>Multiple extended public keys.</p>
-</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.master_fingerprint" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.master_fingerprint" class="fn">master_fingerprint</a>(&self) -> Fingerprint</h4></section></summary><div class="docblock"><p>The fingerprint of the master key associated with this key, <code>0x00000000</code> if none.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.full_derivation_path" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.full_derivation_path" class="fn">full_derivation_path</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><DerivationPath></h4></section></summary><div class="docblock"><p>Full path, from the master key</p>
-<p>For wildcard keys this will return the path up to the wildcard, so you
-can get full paths by appending one additional derivation step, according
-to the wildcard type (hardened or normal).</p>
-<p>For multipath extended keys, this returns <code>None</code>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.full_derivation_paths" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.full_derivation_paths" class="fn">full_derivation_paths</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><DerivationPath, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>></h4></section></summary><div class="docblock"><p>Returns a vector containing the full derivation paths from the master key.
-The vector will contain just one element for single keys, and multiple elements
-for multipath extended keys.</p>
-<p>For wildcard keys this will return the path up to the wildcard, so you
-can get full paths by appending one additional derivation step, according
-to the wildcard type (hardened or normal).</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_deriveable" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_deriveable" class="fn">is_deriveable</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: use has_wildcard instead</span></div></span></summary><div class="docblock"><p>Whether or not the key has a wildcard</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.has_wildcard" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.has_wildcard" class="fn">has_wildcard</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether or not the key has a wildcard</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.derive" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.derive" class="fn">derive</a>(self, index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><DefiniteDescriptorKey, ConversionError></h4></section><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: use at_derivation_index instead</span></div></span></summary><div class="docblock"><p>Deprecated name for <a href="enum.DescriptorPublicKey.html#method.at_derivation_index" title="Self::at_derivation_index"><code>Self::at_derivation_index</code></a>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.at_derivation_index" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.at_derivation_index" class="fn">at_derivation_index</a>(<br> self,<br> index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><DefiniteDescriptorKey, ConversionError></h4></section></summary><div class="docblock"><p>Replaces any wildcard (i.e. <code>/*</code>) in the key with a particular derivation index, turning it into a
-<em>definite</em> key (i.e. one where all the derivation paths are set).</p>
-<h5 id="returns"><a href="#returns">Returns</a></h5>
-<ul>
-<li>If this key is not an xpub, returns <code>self</code>.</li>
-<li>If this key is an xpub but does not have a wildcard, returns <code>self</code>.</li>
-<li>Otherwise, returns the xpub at derivation <code>index</code> (removing the wildcard).</li>
-</ul>
-<h5 id="errors"><a href="#errors">Errors</a></h5>
-<ul>
-<li>If <code>index</code> is hardened.</li>
-</ul>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_multipath" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_multipath" class="fn">is_multipath</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether or not this key has multiple derivation paths.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_single_keys" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.into_single_keys" class="fn">into_single_keys</a>(self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>></h4></section></summary><div class="docblock"><p>Get as many keys as derivation paths in this key.</p>
-<p>For raw public key and single-path extended keys it will return the key itself.
-For multipath extended keys it will return a single-path extended key per derivation
-path.</p>
-</div></details></div></details></div><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><section id="impl-Clone-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Clone-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Debug-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserialize%3C%27de%3E-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Deserialize%3C%27de%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl has-srclink"><a href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize" class="fn">deserialize</a><D>(<br> deserializer: D<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="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <D as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>><span class="where fmt-newline">where<br> D: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Display-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CDefiniteDescriptorKey%3E-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-From%3CDefiniteDescriptorKey%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><DefiniteDescriptorKey> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(d: DefiniteDescriptorKey) -> <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-FromStr-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-FromStr-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Err" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Err" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" class="associatedtype">Err</a> = DescriptorKeyParseError</h4></section></summary><div class='docblock'>The associated error which can be returned from parsing.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_str" class="method trait-impl has-srclink"><a href="#method.from_str" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str" class="fn">from_str</a>(<br> s: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</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="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <<a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a> as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>></h4></section></summary><div class='docblock'>Parses a string <code>s</code> to return a value of this type. <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Hash-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)<span class="where fmt-newline">where<br> __H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-IntoAssets-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-IntoAssets-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl IntoAssets for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_assets" class="method trait-impl has-srclink"><a href="#method.into_assets" class="anchor">§</a><h4 class="code-header">fn <a class="fn">into_assets</a>(self) -> Assets</h4></section></summary><div class='docblock'>Convert <code>self</code> into a <code>Assets</code> struct</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#844-858">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_descriptor_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#845-857">source</a><a href="#method.into_descriptor_key" class="anchor">§</a><h4 class="code-header">fn <a href="trait.IntoDescriptorKey.html#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>></h4></section></summary><div class='docblock'>Turn the key into a <a href="enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a> within the requested <a href="trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-MiniscriptKey-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-MiniscriptKey-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl MiniscriptKey for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Sha256" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Sha256" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Sha256</a> = Hash</h4></section></summary><div class='docblock'>The associated [<code>bitcoin::hashes::sha256::Hash</code>] for this [<code>MiniscriptKey</code>], used in the
-sha256 fragment. <a>Read more</a></div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Hash256" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Hash256" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Hash256</a> = Hash</h4></section></summary><div class='docblock'>The associated [<code>miniscript::hash256::Hash</code>] for this [<code>MiniscriptKey</code>], used in the
-hash256 fragment. <a>Read more</a></div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Ripemd160" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Ripemd160" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Ripemd160</a> = Hash</h4></section></summary><div class='docblock'>The associated [<code>bitcoin::hashes::ripemd160::Hash</code>] for this [<code>MiniscriptKey</code>] type, used
-in the ripemd160 fragment. <a>Read more</a></div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Hash160" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Hash160" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Hash160</a> = Hash</h4></section></summary><div class='docblock'>The associated [<code>bitcoin::hashes::hash160::Hash</code>] for this [<code>MiniscriptKey</code>] type, used in
-the hash160 fragment. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_uncompressed" class="method trait-impl has-srclink"><a href="#method.is_uncompressed" class="anchor">§</a><h4 class="code-header">fn <a class="fn">is_uncompressed</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns true if the pubkey is uncompressed. Defaults to <code>false</code>.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_x_only_key" class="method trait-impl has-srclink"><a href="#method.is_x_only_key" class="anchor">§</a><h4 class="code-header">fn <a class="fn">is_x_only_key</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns true if the pubkey is an x-only pubkey. Defaults to <code>false</code>.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.num_der_paths" class="method trait-impl has-srclink"><a href="#method.num_der_paths" class="anchor">§</a><h4 class="code-header">fn <a class="fn">num_der_paths</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class='docblock'>Returns the number of different derivation paths in this key. Only >1 for keys
-in BIP389 multipath descriptors. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Ord-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CDescriptorPublicKey%3E-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-PartialEq%3CDescriptorPublicKey%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CDescriptorPublicKey%3E-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-PartialOrd%3CDescriptorPublicKey%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Serialize-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><S>(<br> &self,<br> serializer: S<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<S as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, <S as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Eq-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-StructuralEq-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-StructuralEq-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-StructuralPartialEq-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-StructuralPartialEq-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-Send-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Send-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-Sync-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Sync-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-Unpin-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Unpin-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-UnwindSafe-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-UnwindSafe-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details><section id="impl-DeserializeOwned-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/serde/1.0.201/src/serde/de/mod.rs.html#608">source</a><a href="#impl-DeserializeOwned-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> for T<span class="where fmt-newline">where<br> T: for<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de>,</span></h3></section></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="The descriptor secret key, either a single private key or an xprv."><meta name="keywords" content="rust, rustlang, rust-lang, DescriptorSecretKey"><title>DescriptorSecretKey in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">DescriptorSecretKey</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.MultiXPrv">MultiXPrv</a></li><li><a href="#variant.Single">Single</a></li><li><a href="#variant.XPrv">XPrv</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.into_single_keys">into_single_keys</a></li><li><a href="#method.is_multipath">is_multipath</a></li><li><a href="#method.to_public">to_public</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-DescriptorSecretKey">Clone</a></li><li><a href="#impl-Debug-for-DescriptorSecretKey">Debug</a></li><li><a href="#impl-Display-for-DescriptorSecretKey">Display</a></li><li><a href="#impl-Eq-for-DescriptorSecretKey">Eq</a></li><li><a href="#impl-FromStr-for-DescriptorSecretKey">FromStr</a></li><li><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorSecretKey">IntoDescriptorKey<Ctx></a></li><li><a href="#impl-PartialEq%3CDescriptorSecretKey%3E-for-DescriptorSecretKey">PartialEq<DescriptorSecretKey></a></li><li><a href="#impl-StructuralEq-for-DescriptorSecretKey">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-DescriptorSecretKey">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-DescriptorSecretKey">RefUnwindSafe</a></li><li><a href="#impl-Send-for-DescriptorSecretKey">Send</a></li><li><a href="#impl-Sync-for-DescriptorSecretKey">Sync</a></li><li><a href="#impl-Unpin-for-DescriptorSecretKey">Unpin</a></li><li><a href="#impl-UnwindSafe-for-DescriptorSecretKey">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-DescriptorSecretKey">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-DescriptorSecretKey">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-DescriptorSecretKey">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-DescriptorSecretKey">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-DescriptorSecretKey">Into<U></a></li><li><a href="#impl-ToOwned-for-DescriptorSecretKey">ToOwned</a></li><li><a href="#impl-ToString-for-DescriptorSecretKey">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-DescriptorSecretKey">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-DescriptorSecretKey">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-DescriptorSecretKey">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="enum" href="#">DescriptorSecretKey</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum DescriptorSecretKey {
- Single(<a class="struct" href="struct.SinglePriv.html" title="struct bdk::keys::SinglePriv">SinglePriv</a>),
- XPrv(DescriptorXKey<Xpriv>),
- MultiXPrv(DescriptorMultiXKey<Xpriv>),
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The descriptor secret key, either a single private key or an xprv.</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Single" class="variant"><a href="#variant.Single" class="anchor">§</a><h3 class="code-header">Single(<a class="struct" href="struct.SinglePriv.html" title="struct bdk::keys::SinglePriv">SinglePriv</a>)</h3></section><div class="docblock"><p>Single private key.</p>
-</div><section id="variant.XPrv" class="variant"><a href="#variant.XPrv" class="anchor">§</a><h3 class="code-header">XPrv(DescriptorXKey<Xpriv>)</h3></section><div class="docblock"><p>Extended private key (xpriv).</p>
-</div><section id="variant.MultiXPrv" class="variant"><a href="#variant.MultiXPrv" class="anchor">§</a><h3 class="code-header">MultiXPrv(DescriptorMultiXKey<Xpriv>)</h3></section><div class="docblock"><p>Multiple extended private keys.</p>
-</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_public" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.to_public" class="fn">to_public</a><C>(<br> &self,<br> secp: &Secp256k1<C><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="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, DescriptorKeyParseError><span class="where fmt-newline">where<br> C: Signing,</span></h4></section></summary><div class="docblock"><p>Returns the public version of this key.</p>
-<p>If the key is an “XPrv”, the hardened derivation steps will be applied
-before converting it to a public key.</p>
-<p>It will return an error if the key is a “multi-xpriv”, as we wouldn’t
-always be able to apply hardened derivation steps if there are multiple
-paths.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_multipath" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_multipath" class="fn">is_multipath</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether or not this key has multiple derivation paths.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_single_keys" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.into_single_keys" class="fn">into_single_keys</a>(self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>></h4></section></summary><div class="docblock"><p>Get as many keys as derivation paths in this key.</p>
-<p>For raw keys and single-path extended keys it will return the key itself.
-For multipath extended keys it will return a single-path extended key per derivation
-path.</p>
-</div></details></div></details></div><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><section id="impl-Clone-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-Clone-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-Debug-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-Display-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-FromStr-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-FromStr-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Err" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Err" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" class="associatedtype">Err</a> = DescriptorKeyParseError</h4></section></summary><div class='docblock'>The associated error which can be returned from parsing.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_str" class="method trait-impl has-srclink"><a href="#method.from_str" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str" class="fn">from_str</a>(<br> s: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</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="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a>, <<a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a> as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>></h4></section></summary><div class='docblock'>Parses a string <code>s</code> to return a value of this type. <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorSecretKey" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#880-896">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_descriptor_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#881-895">source</a><a href="#method.into_descriptor_key" class="anchor">§</a><h4 class="code-header">fn <a href="trait.IntoDescriptorKey.html#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>></h4></section></summary><div class='docblock'>Turn the key into a <a href="enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a> within the requested <a href="trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CDescriptorSecretKey%3E-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-PartialEq%3CDescriptorSecretKey%3E-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a>> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><section id="impl-Eq-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-Eq-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section><section id="impl-StructuralEq-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-StructuralEq-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section><section id="impl-StructuralPartialEq-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-StructuralPartialEq-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section><section id="impl-Send-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-Send-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section><section id="impl-Sync-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-Sync-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section><section id="impl-Unpin-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-Unpin-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section><section id="impl-UnwindSafe-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-UnwindSafe-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-DescriptorSecretKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-DescriptorSecretKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-DescriptorSecretKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-DescriptorSecretKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-DescriptorSecretKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-DescriptorSecretKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-DescriptorSecretKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-DescriptorSecretKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-DescriptorSecretKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Enum for extended keys that can be either `xprv` or `xpub`"><meta name="keywords" content="rust, rustlang, rust-lang, ExtendedKey"><title>ExtendedKey in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">ExtendedKey</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Private">Private</a></li><li><a href="#variant.Public">Public</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.has_secret">has_secret</a></li><li><a href="#method.into_xprv">into_xprv</a></li><li><a href="#method.into_xpub">into_xpub</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DerivableKey%3CCtx%3E-for-ExtendedKey%3CCtx%3E">DerivableKey<Ctx></a></li><li><a href="#impl-From%3CXpriv%3E-for-ExtendedKey%3CCtx%3E">From<Xpriv></a></li><li><a href="#impl-From%3CXpub%3E-for-ExtendedKey%3CCtx%3E">From<Xpub></a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-ExtendedKey%3CCtx%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-ExtendedKey%3CCtx%3E">Send</a></li><li><a href="#impl-Sync-for-ExtendedKey%3CCtx%3E">Sync</a></li><li><a href="#impl-Unpin-for-ExtendedKey%3CCtx%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-ExtendedKey%3CCtx%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-ExtendedKey%3CCtx%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-ExtendedKey%3CCtx%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-ExtendedKey%3CCtx%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-ExtendedKey%3CCtx%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-ExtendedKey%3CCtx%3E">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-ExtendedKey%3CCtx%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-ExtendedKey%3CCtx%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-ExtendedKey%3CCtx%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="enum" href="#">ExtendedKey</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/keys/mod.rs.html#316-321">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum ExtendedKey<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a> = <a class="enum" href="../descriptor/enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a>> {
- Private((Xpriv, <a class="struct" href="https://doc.rust-lang.org/nightly/core/marker/struct.PhantomData.html" title="struct core::marker::PhantomData">PhantomData</a><Ctx>)),
- Public((Xpub, <a class="struct" href="https://doc.rust-lang.org/nightly/core/marker/struct.PhantomData.html" title="struct core::marker::PhantomData">PhantomData</a><Ctx>)),
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Enum for extended keys that can be either <code>xprv</code> or <code>xpub</code></p>
-<p>An instance of <a href="enum.ExtendedKey.html" title="ExtendedKey"><code>ExtendedKey</code></a> can be constructed from an <a href="bip32::Xpriv"><code>Xpriv</code></a>
-or an <a href="bip32::Xpub"><code>Xpub</code></a> by using the <code>From</code> trait.</p>
-<p>Defaults to the <a href="../descriptor/enum.Legacy.html"><code>Legacy</code></a> context.</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Private" class="variant"><a href="#variant.Private" class="anchor">§</a><h3 class="code-header">Private((Xpriv, <a class="struct" href="https://doc.rust-lang.org/nightly/core/marker/struct.PhantomData.html" title="struct core::marker::PhantomData">PhantomData</a><Ctx>))</h3></section><div class="docblock"><p>A private extended key, aka an <code>xprv</code></p>
-</div><section id="variant.Public" class="variant"><a href="#variant.Public" class="anchor">§</a><h3 class="code-header">Public((Xpub, <a class="struct" href="https://doc.rust-lang.org/nightly/core/marker/struct.PhantomData.html" title="struct core::marker::PhantomData">PhantomData</a><Ctx>))</h3></section><div class="docblock"><p>A public extended key, aka an <code>xpub</code></p>
-</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#323-359">source</a><a href="#impl-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="enum" href="enum.ExtendedKey.html" title="enum bdk::keys::ExtendedKey">ExtendedKey</a><Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.has_secret" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#325-330">source</a><h4 class="code-header">pub fn <a href="#method.has_secret" class="fn">has_secret</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Return whether or not the key contains the private data</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_xprv" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#334-342">source</a><h4 class="code-header">pub fn <a href="#method.into_xprv" class="fn">into_xprv</a>(self, network: Network) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Xpriv></h4></section></summary><div class="docblock"><p>Transform the <a href="enum.ExtendedKey.html" title="ExtendedKey"><code>ExtendedKey</code></a> into an <a href="bip32::Xpriv"><code>Xpriv</code></a> for the
-given [<code>Network</code>], if the key contains the private data</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_xpub" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#346-358">source</a><h4 class="code-header">pub fn <a href="#method.into_xpub" class="fn">into_xpub</a><C: Signing>(self, network: Network, secp: &Secp256k1<C>) -> Xpub</h4></section></summary><div class="docblock"><p>Transform the <a href="enum.ExtendedKey.html" title="ExtendedKey"><code>ExtendedKey</code></a> into an <a href="bip32::Xpub"><code>Xpub</code></a> for the
-given [<code>Network</code>]</p>
-</div></details></div></details></div><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><section id="impl-DerivableKey%3CCtx%3E-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#517-521">source</a><a href="#impl-DerivableKey%3CCtx%3E-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><Ctx> for <a class="enum" href="enum.ExtendedKey.html" title="enum bdk::keys::ExtendedKey">ExtendedKey</a><Ctx></h3></section></summary><div class="docblock"><p>Identity conversion</p>
-</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_extended_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#518-520">source</a><a href="#method.into_extended_key" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DerivableKey.html#tymethod.into_extended_key" class="fn">into_extended_key</a>(self) -> <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="enum.ExtendedKey.html" title="enum bdk::keys::ExtendedKey">ExtendedKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>></h4></section></summary><div class='docblock'>Consume <code>self</code> and turn it into an <a href="enum.ExtendedKey.html" title="ExtendedKey"><code>ExtendedKey</code></a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_descriptor_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#492-513">source</a><a href="#method.into_descriptor_key" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DerivableKey.html#method.into_descriptor_key" class="fn">into_descriptor_key</a>(<br> self,<br> origin: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><KeySource>,<br> derivation_path: DerivationPath<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="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>></h4></section></summary><div class='docblock'>Consume <code>self</code> and turn it into a <a href="enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a> by adding the extra metadata, such as
-key origin and derivation path <a href="trait.DerivableKey.html#method.into_descriptor_key">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CXpriv%3E-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#367-371">source</a><a href="#impl-From%3CXpriv%3E-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Xpriv> for <a class="enum" href="enum.ExtendedKey.html" title="enum bdk::keys::ExtendedKey">ExtendedKey</a><Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#368-370">source</a><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(xprv: Xpriv) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CXpub%3E-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#361-365">source</a><a href="#impl-From%3CXpub%3E-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Xpub> for <a class="enum" href="enum.ExtendedKey.html" title="enum bdk::keys::ExtendedKey">ExtendedKey</a><Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#362-364">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(xpub: Xpub) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.ExtendedKey.html" title="enum bdk::keys::ExtendedKey">ExtendedKey</a><Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-Send-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.ExtendedKey.html" title="enum bdk::keys::ExtendedKey">ExtendedKey</a><Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-Sync-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.ExtendedKey.html" title="enum bdk::keys::ExtendedKey">ExtendedKey</a><Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-Unpin-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.ExtendedKey.html" title="enum bdk::keys::ExtendedKey">ExtendedKey</a><Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.ExtendedKey.html" title="enum bdk::keys::ExtendedKey">ExtendedKey</a><Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Errors thrown while working with `keys`"><meta name="keywords" content="rust, rustlang, rust-lang, KeyError"><title>KeyError in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">KeyError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Bip32">Bip32</a></li><li><a href="#variant.InvalidChecksum">InvalidChecksum</a></li><li><a href="#variant.InvalidNetwork">InvalidNetwork</a></li><li><a href="#variant.InvalidScriptContext">InvalidScriptContext</a></li><li><a href="#variant.Message">Message</a></li><li><a href="#variant.Miniscript">Miniscript</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-KeyError">Debug</a></li><li><a href="#impl-Display-for-KeyError">Display</a></li><li><a href="#impl-Error-for-KeyError">Error</a></li><li><a href="#impl-From%3CError%3E-for-KeyError">From<Error></a></li><li><a href="#impl-From%3CError%3E-for-KeyError-1">From<Error></a></li><li><a href="#impl-From%3CKeyError%3E-for-Error">From<KeyError></a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-KeyError">RefUnwindSafe</a></li><li><a href="#impl-Send-for-KeyError">Send</a></li><li><a href="#impl-Sync-for-KeyError">Sync</a></li><li><a href="#impl-Unpin-for-KeyError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-KeyError">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-KeyError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-KeyError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-KeyError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-KeyError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-KeyError">Into<U></a></li><li><a href="#impl-Provider-for-KeyError">Provider</a></li><li><a href="#impl-ToString-for-KeyError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-KeyError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-KeyError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-KeyError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="enum" href="#">KeyError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/keys/mod.rs.html#918-933">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum KeyError {
- InvalidScriptContext,
- InvalidNetwork,
- InvalidChecksum,
- Message(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>),
- Bip32(Error),
- Miniscript(Error),
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Errors thrown while working with <a href="index.html"><code>keys</code></a></p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.InvalidScriptContext" class="variant"><a href="#variant.InvalidScriptContext" class="anchor">§</a><h3 class="code-header">InvalidScriptContext</h3></section><div class="docblock"><p>The key cannot exist in the given script context</p>
-</div><section id="variant.InvalidNetwork" class="variant"><a href="#variant.InvalidNetwork" class="anchor">§</a><h3 class="code-header">InvalidNetwork</h3></section><div class="docblock"><p>The key is not valid for the given network</p>
-</div><section id="variant.InvalidChecksum" class="variant"><a href="#variant.InvalidChecksum" class="anchor">§</a><h3 class="code-header">InvalidChecksum</h3></section><div class="docblock"><p>The key has an invalid checksum</p>
-</div><section id="variant.Message" class="variant"><a href="#variant.Message" class="anchor">§</a><h3 class="code-header">Message(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>)</h3></section><div class="docblock"><p>Custom error message</p>
-</div><section id="variant.Bip32" class="variant"><a href="#variant.Bip32" class="anchor">§</a><h3 class="code-header">Bip32(Error)</h3></section><div class="docblock"><p>BIP32 error</p>
-</div><section id="variant.Miniscript" class="variant"><a href="#variant.Miniscript" class="anchor">§</a><h3 class="code-header">Miniscript(Error)</h3></section><div class="docblock"><p>Miniscript error</p>
-</div></div><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><section id="impl-Debug-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#917">source</a><a href="#impl-Debug-for-KeyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#917">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#947-958">source</a><a href="#impl-Display-for-KeyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#948-957">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#961">source</a><a href="#impl-Error-for-KeyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#935-939">source</a><a href="#impl-From%3CError%3E-for-KeyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Error> for <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#936-938">source</a><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: Error) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-KeyError-1" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#941-945">source</a><a href="#impl-From%3CError%3E-for-KeyError-1" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Error> for <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#942-944">source</a><a href="#method.from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: Error) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CKeyError%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/descriptor/error.rs.html#47-55">source</a><a href="#impl-From%3CKeyError%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>> for <a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/descriptor/error.rs.html#48-54">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(key_error: <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>) -> <a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-KeyError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-KeyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a></h3></section><section id="impl-Send-for-KeyError" class="impl has-srclink"><a href="#impl-Send-for-KeyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a></h3></section><section id="impl-Sync-for-KeyError" class="impl has-srclink"><a href="#impl-Sync-for-KeyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a></h3></section><section id="impl-Unpin-for-KeyError" class="impl has-srclink"><a href="#impl-Unpin-for-KeyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a></h3></section><section id="impl-UnwindSafe-for-KeyError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-KeyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-KeyError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-KeyError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-KeyError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-KeyError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-3" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-3" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-KeyError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-KeyError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
-provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-KeyError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-KeyError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-KeyError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-KeyError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-KeyError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Enum representation of the known valid [`ScriptContext`]s"><meta name="keywords" content="rust, rustlang, rust-lang, ScriptContextEnum"><title>ScriptContextEnum in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">ScriptContextEnum</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Legacy">Legacy</a></li><li><a href="#variant.Segwitv0">Segwitv0</a></li><li><a href="#variant.Tap">Tap</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.is_legacy">is_legacy</a></li><li><a href="#method.is_segwit_v0">is_segwit_v0</a></li><li><a href="#method.is_taproot">is_taproot</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-ScriptContextEnum">Clone</a></li><li><a href="#impl-Copy-for-ScriptContextEnum">Copy</a></li><li><a href="#impl-Debug-for-ScriptContextEnum">Debug</a></li><li><a href="#impl-Eq-for-ScriptContextEnum">Eq</a></li><li><a href="#impl-PartialEq%3CScriptContextEnum%3E-for-ScriptContextEnum">PartialEq<ScriptContextEnum></a></li><li><a href="#impl-StructuralEq-for-ScriptContextEnum">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-ScriptContextEnum">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-ScriptContextEnum">RefUnwindSafe</a></li><li><a href="#impl-Send-for-ScriptContextEnum">Send</a></li><li><a href="#impl-Sync-for-ScriptContextEnum">Sync</a></li><li><a href="#impl-Unpin-for-ScriptContextEnum">Unpin</a></li><li><a href="#impl-UnwindSafe-for-ScriptContextEnum">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-ScriptContextEnum">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-ScriptContextEnum">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-ScriptContextEnum">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-ScriptContextEnum">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-ScriptContextEnum">Into<U></a></li><li><a href="#impl-ToOwned-for-ScriptContextEnum">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-ScriptContextEnum">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-ScriptContextEnum">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-ScriptContextEnum">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="enum" href="#">ScriptContextEnum</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/keys/mod.rs.html#128-135">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum ScriptContextEnum {
- Legacy,
- Segwitv0,
- Tap,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Enum representation of the known valid <a href="trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a>s</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Legacy" class="variant"><a href="#variant.Legacy" class="anchor">§</a><h3 class="code-header">Legacy</h3></section><div class="docblock"><p>Legacy scripts</p>
-</div><section id="variant.Segwitv0" class="variant"><a href="#variant.Segwitv0" class="anchor">§</a><h3 class="code-header">Segwitv0</h3></section><div class="docblock"><p>Segwitv0 scripts</p>
-</div><section id="variant.Tap" class="variant"><a href="#variant.Tap" class="anchor">§</a><h3 class="code-header">Tap</h3></section><div class="docblock"><p>Taproot scripts</p>
-</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#137-152">source</a><a href="#impl-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_legacy" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#139-141">source</a><h4 class="code-header">pub fn <a href="#method.is_legacy" class="fn">is_legacy</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns whether the script context is <a href="enum.ScriptContextEnum.html#variant.Legacy" title="ScriptContextEnum::Legacy"><code>ScriptContextEnum::Legacy</code></a></p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_segwit_v0" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#144-146">source</a><h4 class="code-header">pub fn <a href="#method.is_segwit_v0" class="fn">is_segwit_v0</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns whether the script context is <a href="enum.ScriptContextEnum.html#variant.Segwitv0" title="ScriptContextEnum::Segwitv0"><code>ScriptContextEnum::Segwitv0</code></a></p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_taproot" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#149-151">source</a><h4 class="code-header">pub fn <a href="#method.is_taproot" class="fn">is_taproot</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns whether the script context is <a href="enum.ScriptContextEnum.html#variant.Tap" title="ScriptContextEnum::Tap"><code>ScriptContextEnum::Tap</code></a></p>
-</div></details></div></details></div><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><section id="impl-Clone-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#127">source</a><a href="#impl-Clone-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#127">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk::keys::ScriptContextEnum">ScriptContextEnum</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#127">source</a><a href="#impl-Debug-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#127">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CScriptContextEnum%3E-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#127">source</a><a href="#impl-PartialEq%3CScriptContextEnum%3E-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk::keys::ScriptContextEnum">ScriptContextEnum</a>> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#127">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk::keys::ScriptContextEnum">ScriptContextEnum</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><section id="impl-Copy-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#127">source</a><a href="#impl-Copy-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section><section id="impl-Eq-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#127">source</a><a href="#impl-Eq-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section><section id="impl-StructuralEq-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#127">source</a><a href="#impl-StructuralEq-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section><section id="impl-StructuralPartialEq-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#127">source</a><a href="#impl-StructuralPartialEq-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-ScriptContextEnum" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section><section id="impl-Send-for-ScriptContextEnum" class="impl has-srclink"><a href="#impl-Send-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section><section id="impl-Sync-for-ScriptContextEnum" class="impl has-srclink"><a href="#impl-Sync-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section><section id="impl-Unpin-for-ScriptContextEnum" class="impl has-srclink"><a href="#impl-Unpin-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section><section id="impl-UnwindSafe-for-ScriptContextEnum" class="impl has-srclink"><a href="#impl-UnwindSafe-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-ScriptContextEnum" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Single public key without any origin or range information."><meta name="keywords" content="rust, rustlang, rust-lang, SinglePubKey"><title>SinglePubKey in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SinglePubKey</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.FullKey">FullKey</a></li><li><a href="#variant.XOnly">XOnly</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-SinglePubKey">Clone</a></li><li><a href="#impl-Debug-for-SinglePubKey">Debug</a></li><li><a href="#impl-Eq-for-SinglePubKey">Eq</a></li><li><a href="#impl-Hash-for-SinglePubKey">Hash</a></li><li><a href="#impl-Ord-for-SinglePubKey">Ord</a></li><li><a href="#impl-PartialEq%3CSinglePubKey%3E-for-SinglePubKey">PartialEq<SinglePubKey></a></li><li><a href="#impl-PartialOrd%3CSinglePubKey%3E-for-SinglePubKey">PartialOrd<SinglePubKey></a></li><li><a href="#impl-StructuralEq-for-SinglePubKey">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-SinglePubKey">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SinglePubKey">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SinglePubKey">Send</a></li><li><a href="#impl-Sync-for-SinglePubKey">Sync</a></li><li><a href="#impl-Unpin-for-SinglePubKey">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SinglePubKey">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SinglePubKey">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SinglePubKey">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SinglePubKey">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SinglePubKey">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SinglePubKey">Into<U></a></li><li><a href="#impl-ToOwned-for-SinglePubKey">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SinglePubKey">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SinglePubKey">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SinglePubKey">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="enum" href="#">SinglePubKey</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum SinglePubKey {
- FullKey(PublicKey),
- XOnly(XOnlyPublicKey),
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Single public key without any origin or range information.</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.FullKey" class="variant"><a href="#variant.FullKey" class="anchor">§</a><h3 class="code-header">FullKey(PublicKey)</h3></section><div class="docblock"><p>A bitcoin public key (compressed or uncompressed).</p>
-</div><section id="variant.XOnly" class="variant"><a href="#variant.XOnly" class="anchor">§</a><h3 class="code-header">XOnly(XOnlyPublicKey)</h3></section><div class="docblock"><p>An xonly public key.</p>
-</div></div><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><section id="impl-Clone-for-SinglePubKey" class="impl has-srclink"><a href="#impl-Clone-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk::keys::SinglePubKey">SinglePubKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.SinglePubKey.html" title="enum bdk::keys::SinglePubKey">SinglePubKey</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-SinglePubKey" class="impl has-srclink"><a href="#impl-Debug-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk::keys::SinglePubKey">SinglePubKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-SinglePubKey" class="impl has-srclink"><a href="#impl-Hash-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk::keys::SinglePubKey">SinglePubKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)<span class="where fmt-newline">where<br> __H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-SinglePubKey" class="impl has-srclink"><a href="#impl-Ord-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk::keys::SinglePubKey">SinglePubKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="enum" href="enum.SinglePubKey.html" title="enum bdk::keys::SinglePubKey">SinglePubKey</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CSinglePubKey%3E-for-SinglePubKey" class="impl has-srclink"><a href="#impl-PartialEq%3CSinglePubKey%3E-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.SinglePubKey.html" title="enum bdk::keys::SinglePubKey">SinglePubKey</a>> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk::keys::SinglePubKey">SinglePubKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.SinglePubKey.html" title="enum bdk::keys::SinglePubKey">SinglePubKey</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CSinglePubKey%3E-for-SinglePubKey" class="impl has-srclink"><a href="#impl-PartialOrd%3CSinglePubKey%3E-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="enum" href="enum.SinglePubKey.html" title="enum bdk::keys::SinglePubKey">SinglePubKey</a>> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk::keys::SinglePubKey">SinglePubKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="enum" href="enum.SinglePubKey.html" title="enum bdk::keys::SinglePubKey">SinglePubKey</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><section id="impl-Eq-for-SinglePubKey" class="impl has-srclink"><a href="#impl-Eq-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk::keys::SinglePubKey">SinglePubKey</a></h3></section><section id="impl-StructuralEq-for-SinglePubKey" class="impl has-srclink"><a href="#impl-StructuralEq-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk::keys::SinglePubKey">SinglePubKey</a></h3></section><section id="impl-StructuralPartialEq-for-SinglePubKey" class="impl has-srclink"><a href="#impl-StructuralPartialEq-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk::keys::SinglePubKey">SinglePubKey</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SinglePubKey" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk::keys::SinglePubKey">SinglePubKey</a></h3></section><section id="impl-Send-for-SinglePubKey" class="impl has-srclink"><a href="#impl-Send-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk::keys::SinglePubKey">SinglePubKey</a></h3></section><section id="impl-Sync-for-SinglePubKey" class="impl has-srclink"><a href="#impl-Sync-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk::keys::SinglePubKey">SinglePubKey</a></h3></section><section id="impl-Unpin-for-SinglePubKey" class="impl has-srclink"><a href="#impl-Unpin-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk::keys::SinglePubKey">SinglePubKey</a></h3></section><section id="impl-UnwindSafe-for-SinglePubKey" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk::keys::SinglePubKey">SinglePubKey</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SinglePubKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SinglePubKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SinglePubKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SinglePubKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SinglePubKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-SinglePubKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SinglePubKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SinglePubKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SinglePubKey" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Create a set containing mainnet, testnet, signet, and regtest"><meta name="keywords" content="rust, rustlang, rust-lang, any_network"><title>any_network in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="fn" href="#">any_network</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/keys/mod.rs.html#47-56">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn any_network() -> <a class="type" href="type.ValidNetworks.html" title="type bdk::keys::ValidNetworks">ValidNetworks</a></code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Create a set containing mainnet, testnet, signet, and regtest</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Create a set only containing mainnet"><meta name="keywords" content="rust, rustlang, rust-lang, mainnet_network"><title>mainnet_network in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="fn" href="#">mainnet_network</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/keys/mod.rs.html#58-60">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn mainnet_network() -> <a class="type" href="type.ValidNetworks.html" title="type bdk::keys::ValidNetworks">ValidNetworks</a></code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Create a set only containing mainnet</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Compute the intersection of two sets"><meta name="keywords" content="rust, rustlang, rust-lang, merge_networks"><title>merge_networks in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="fn" href="#">merge_networks</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/keys/mod.rs.html#68-70">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn merge_networks(a: &<a class="type" href="type.ValidNetworks.html" title="type bdk::keys::ValidNetworks">ValidNetworks</a>, b: &<a class="type" href="type.ValidNetworks.html" title="type bdk::keys::ValidNetworks">ValidNetworks</a>) -> <a class="type" href="type.ValidNetworks.html" title="type bdk::keys::ValidNetworks">ValidNetworks</a></code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Compute the intersection of two sets</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Create a set containing testnet and regtest"><meta name="keywords" content="rust, rustlang, rust-lang, test_networks"><title>test_networks in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="fn" href="#">test_networks</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/keys/mod.rs.html#62-66">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn test_networks() -> <a class="type" href="type.ValidNetworks.html" title="type bdk::keys::ValidNetworks">ValidNetworks</a></code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Create a set containing testnet and regtest</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Key formats"><meta name="keywords" content="rust, rustlang, rust-lang, keys"><title>bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module keys</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#traits">Traits</a></li><li><a href="#functions">Functions</a></li><li><a href="#types">Type Definitions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../index.html">bdk</a>::<wbr><a class="mod" href="#">keys</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/keys/mod.rs.html#12-1006">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Key formats</p>
-</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.GeneratedKey.html" title="bdk::keys::GeneratedKey struct">GeneratedKey</a></div><div class="item-right docblock-short">Output of a <a href="trait.GeneratableKey.html" title="GeneratableKey"><code>GeneratableKey</code></a> key generation</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="bdk::keys::PrivateKeyGenerateOptions struct">PrivateKeyGenerateOptions</a></div><div class="item-right docblock-short">Options for generating a [<code>PrivateKey</code>]</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.SinglePriv.html" title="bdk::keys::SinglePriv struct">SinglePriv</a></div><div class="item-right docblock-short">A descriptor [<code>bitcoin::PrivateKey</code>] with optional origin information.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.SinglePub.html" title="bdk::keys::SinglePub struct">SinglePub</a></div><div class="item-right docblock-short">A descriptor <a href="enum.SinglePubKey.html" title="SinglePubKey"><code>SinglePubKey</code></a> with optional origin information.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.SortedMultiVec.html" title="bdk::keys::SortedMultiVec struct">SortedMultiVec</a></div><div class="item-right docblock-short">Contents of a “sortedmulti” descriptor</div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.DescriptorKey.html" title="bdk::keys::DescriptorKey enum">DescriptorKey</a></div><div class="item-right docblock-short">Container for public or secret keys</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.DescriptorPublicKey.html" title="bdk::keys::DescriptorPublicKey enum">DescriptorPublicKey</a></div><div class="item-right docblock-short">The descriptor pubkey, either a single pubkey or an xpub.</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.DescriptorSecretKey.html" title="bdk::keys::DescriptorSecretKey enum">DescriptorSecretKey</a></div><div class="item-right docblock-short">The descriptor secret key, either a single private key or an xprv.</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.ExtendedKey.html" title="bdk::keys::ExtendedKey enum">ExtendedKey</a></div><div class="item-right docblock-short">Enum for extended keys that can be either <code>xprv</code> or <code>xpub</code></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.KeyError.html" title="bdk::keys::KeyError enum">KeyError</a></div><div class="item-right docblock-short">Errors thrown while working with <a href="index.html"><code>keys</code></a></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.ScriptContextEnum.html" title="bdk::keys::ScriptContextEnum enum">ScriptContextEnum</a></div><div class="item-right docblock-short">Enum representation of the known valid <a href="trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a>s</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.SinglePubKey.html" title="bdk::keys::SinglePubKey enum">SinglePubKey</a></div><div class="item-right docblock-short">Single public key without any origin or range information.</div></div></div><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.DerivableKey.html" title="bdk::keys::DerivableKey trait">DerivableKey</a></div><div class="item-right docblock-short">Trait for keys that can be derived.</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.ExtScriptContext.html" title="bdk::keys::ExtScriptContext trait">ExtScriptContext</a></div><div class="item-right docblock-short">Trait that adds extra useful methods to <a href="trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a>s</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.GeneratableDefaultOptions.html" title="bdk::keys::GeneratableDefaultOptions trait">GeneratableDefaultOptions</a></div><div class="item-right docblock-short">Trait that allows generating a key with the default options</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.GeneratableKey.html" title="bdk::keys::GeneratableKey trait">GeneratableKey</a></div><div class="item-right docblock-short">Trait for keys that can be generated</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.IntoDescriptorKey.html" title="bdk::keys::IntoDescriptorKey trait">IntoDescriptorKey</a></div><div class="item-right docblock-short">Trait for objects that can be turned into a public or secret <a href="enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a></div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.ScriptContext.html" title="bdk::keys::ScriptContext trait">ScriptContext</a></div><div class="item-right docblock-short">The ScriptContext for Miniscript. Additional type information associated with
-miniscript that is used for carrying out checks that dependent on the
-context under which the script is used.
-For example, disallowing uncompressed keys in Segwit context</div></div></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.any_network.html" title="bdk::keys::any_network fn">any_network</a></div><div class="item-right docblock-short">Create a set containing mainnet, testnet, signet, and regtest</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.mainnet_network.html" title="bdk::keys::mainnet_network fn">mainnet_network</a></div><div class="item-right docblock-short">Create a set only containing mainnet</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.merge_networks.html" title="bdk::keys::merge_networks fn">merge_networks</a></div><div class="item-right docblock-short">Compute the intersection of two sets</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.test_networks.html" title="bdk::keys::test_networks fn">test_networks</a></div><div class="item-right docblock-short">Create a set containing testnet and regtest</div></div></div><h2 id="types" class="small-section-header"><a href="#types">Type Definitions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="type" href="type.KeyMap.html" title="bdk::keys::KeyMap type">KeyMap</a></div><div class="item-right docblock-short">Alias type for a map of public key to secret key</div></div><div class="item-row"><div class="item-left module-item"><a class="type" href="type.ValidNetworks.html" title="bdk::keys::ValidNetworks type">ValidNetworks</a></div><div class="item-right docblock-short">Set of valid networks for a key</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-window.SIDEBAR_ITEMS = {"enum":[["DescriptorKey","Container for public or secret keys"],["DescriptorPublicKey","The descriptor pubkey, either a single pubkey or an xpub."],["DescriptorSecretKey","The descriptor secret key, either a single private key or an xprv."],["ExtendedKey","Enum for extended keys that can be either `xprv` or `xpub`"],["KeyError","Errors thrown while working with `keys`"],["ScriptContextEnum","Enum representation of the known valid [`ScriptContext`]s"],["SinglePubKey","Single public key without any origin or range information."]],"fn":[["any_network","Create a set containing mainnet, testnet, signet, and regtest"],["mainnet_network","Create a set only containing mainnet"],["merge_networks","Compute the intersection of two sets"],["test_networks","Create a set containing testnet and regtest"]],"struct":[["GeneratedKey","Output of a [`GeneratableKey`] key generation"],["PrivateKeyGenerateOptions","Options for generating a [`PrivateKey`]"],["SinglePriv","A descriptor [`bitcoin::PrivateKey`] with optional origin information."],["SinglePub","A descriptor [`SinglePubKey`] with optional origin information."],["SortedMultiVec","Contents of a “sortedmulti” descriptor"]],"trait":[["DerivableKey","Trait for keys that can be derived."],["ExtScriptContext","Trait that adds extra useful methods to [`ScriptContext`]s"],["GeneratableDefaultOptions","Trait that allows generating a key with the default options"],["GeneratableKey","Trait for keys that can be generated"],["IntoDescriptorKey","Trait for objects that can be turned into a public or secret [`DescriptorKey`]"],["ScriptContext","The ScriptContext for Miniscript. Additional type information associated with miniscript that is used for carrying out checks that dependent on the context under which the script is used. For example, disallowing uncompressed keys in Segwit context"]],"type":[["KeyMap","Alias type for a map of public key to secret key"],["ValidNetworks","Set of valid networks for a key"]]};
\ No newline at end of file
+++ /dev/null
-<!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="Output of a [`GeneratableKey`] key generation"><meta name="keywords" content="rust, rustlang, rust-lang, GeneratedKey"><title>GeneratedKey in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">GeneratedKey</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.into_key">into_key</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-GeneratedKey%3CK%2C%20Ctx%3E">Clone</a></li><li><a href="#impl-Deref-for-GeneratedKey%3CK%2C%20Ctx%3E">Deref</a></li><li><a href="#impl-DerivableKey%3CCtx%3E-for-GeneratedKey%3CK%2C%20Ctx%3E">DerivableKey<Ctx></a></li><li><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-GeneratedKey%3CK%2C%20Ctx%3E">IntoDescriptorKey<Ctx></a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-GeneratedKey%3CK%2C%20Ctx%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-GeneratedKey%3CK%2C%20Ctx%3E">Send</a></li><li><a href="#impl-Sync-for-GeneratedKey%3CK%2C%20Ctx%3E">Sync</a></li><li><a href="#impl-Unpin-for-GeneratedKey%3CK%2C%20Ctx%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-GeneratedKey%3CK%2C%20Ctx%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-GeneratedKey%3CK%2C%20Ctx%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-GeneratedKey%3CK%2C%20Ctx%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-GeneratedKey%3CK%2C%20Ctx%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-GeneratedKey%3CK%2C%20Ctx%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-GeneratedKey%3CK%2C%20Ctx%3E">Into<U></a></li><li><a href="#impl-ToOwned-for-GeneratedKey%3CK%2C%20Ctx%3E">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-GeneratedKey%3CK%2C%20Ctx%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-GeneratedKey%3CK%2C%20Ctx%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-GeneratedKey%3CK%2C%20Ctx%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="struct" href="#">GeneratedKey</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/keys/mod.rs.html#536-540">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct GeneratedKey<K, Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Output of a <a href="trait.GeneratableKey.html" title="GeneratableKey"><code>GeneratableKey</code></a> key generation</p>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#542-555">source</a><a href="#impl-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<K, Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="struct" href="struct.GeneratedKey.html" title="struct bdk::keys::GeneratedKey">GeneratedKey</a><K, Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_key" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#552-554">source</a><h4 class="code-header">pub fn <a href="#method.into_key" class="fn">into_key</a>(self) -> K</h4></section></summary><div class="docblock"><p>Consumes <code>self</code> and returns the key</p>
-</div></details></div></details></div><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><section id="impl-Clone-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#565-573">source</a><a href="#impl-Clone-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.GeneratedKey.html" title="struct bdk::keys::GeneratedKey">GeneratedKey</a><K, Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#566-572">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.GeneratedKey.html" title="struct bdk::keys::GeneratedKey">GeneratedKey</a><K, Ctx></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deref-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#557-563">source</a><a href="#impl-Deref-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<K, Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a> for <a class="struct" href="struct.GeneratedKey.html" title="struct bdk::keys::GeneratedKey">GeneratedKey</a><K, Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Target" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Target" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#associatedtype.Target" class="associatedtype">Target</a> = K</h4></section></summary><div class='docblock'>The resulting type after dereferencing.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deref" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#560-562">source</a><a href="#method.deref" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#tymethod.deref" class="fn">deref</a>(&self) -> &Self::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#associatedtype.Target" title="type core::ops::deref::Deref::Target">Target</a></h4></section></summary><div class='docblock'>Dereferences the value.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-DerivableKey%3CCtx%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#577-594">source</a><a href="#impl-DerivableKey%3CCtx%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx, K> <a class="trait" href="trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><Ctx> for <a class="struct" href="struct.GeneratedKey.html" title="struct bdk::keys::GeneratedKey">GeneratedKey</a><K, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> K: <a class="trait" href="trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><Ctx>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_extended_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#582-584">source</a><a href="#method.into_extended_key" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DerivableKey.html#tymethod.into_extended_key" class="fn">into_extended_key</a>(self) -> <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="enum.ExtendedKey.html" title="enum bdk::keys::ExtendedKey">ExtendedKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>></h4></section></summary><div class='docblock'>Consume <code>self</code> and turn it into an <a href="enum.ExtendedKey.html" title="ExtendedKey"><code>ExtendedKey</code></a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_descriptor_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#586-593">source</a><a href="#method.into_descriptor_key" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DerivableKey.html#method.into_descriptor_key" class="fn">into_descriptor_key</a>(<br> self,<br> origin: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><KeySource>,<br> derivation_path: DerivationPath<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="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>></h4></section></summary><div class='docblock'>Consume <code>self</code> and turn it into a <a href="enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a> by adding the extra metadata, such as
-key origin and derivation path <a href="trait.DerivableKey.html#method.into_descriptor_key">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-IntoDescriptorKey%3CCtx%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#598-607">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx, K> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for <a class="struct" href="struct.GeneratedKey.html" title="struct bdk::keys::GeneratedKey">GeneratedKey</a><K, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> K: <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_descriptor_key-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#603-606">source</a><a href="#method.into_descriptor_key-1" class="anchor">§</a><h4 class="code-header">fn <a href="trait.IntoDescriptorKey.html#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>></h4></section></summary><div class='docblock'>Turn the key into a <a href="enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a> within the requested <a href="trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<K, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.GeneratedKey.html" title="struct bdk::keys::GeneratedKey">GeneratedKey</a><K, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Send-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<K, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.GeneratedKey.html" title="struct bdk::keys::GeneratedKey">GeneratedKey</a><K, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Sync-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<K, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.GeneratedKey.html" title="struct bdk::keys::GeneratedKey">GeneratedKey</a><K, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Unpin-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<K, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.GeneratedKey.html" title="struct bdk::keys::GeneratedKey">GeneratedKey</a><K, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<K, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.GeneratedKey.html" title="struct bdk::keys::GeneratedKey">GeneratedKey</a><K, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Options for generating a [`PrivateKey`]"><meta name="keywords" content="rust, rustlang, rust-lang, PrivateKeyGenerateOptions"><title>PrivateKeyGenerateOptions in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">PrivateKeyGenerateOptions</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.compressed">compressed</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-PrivateKeyGenerateOptions">Clone</a></li><li><a href="#impl-Copy-for-PrivateKeyGenerateOptions">Copy</a></li><li><a href="#impl-Debug-for-PrivateKeyGenerateOptions">Debug</a></li><li><a href="#impl-Default-for-PrivateKeyGenerateOptions">Default</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-PrivateKeyGenerateOptions">RefUnwindSafe</a></li><li><a href="#impl-Send-for-PrivateKeyGenerateOptions">Send</a></li><li><a href="#impl-Sync-for-PrivateKeyGenerateOptions">Sync</a></li><li><a href="#impl-Unpin-for-PrivateKeyGenerateOptions">Unpin</a></li><li><a href="#impl-UnwindSafe-for-PrivateKeyGenerateOptions">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-PrivateKeyGenerateOptions">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-PrivateKeyGenerateOptions">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-PrivateKeyGenerateOptions">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-PrivateKeyGenerateOptions">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-PrivateKeyGenerateOptions">Into<U></a></li><li><a href="#impl-ToOwned-for-PrivateKeyGenerateOptions">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-PrivateKeyGenerateOptions">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-PrivateKeyGenerateOptions">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-PrivateKeyGenerateOptions">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="struct" href="#">PrivateKeyGenerateOptions</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/keys/mod.rs.html#693-696">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct PrivateKeyGenerateOptions {
- pub compressed: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Options for generating a [<code>PrivateKey</code>]</p>
-<p>Defaults to creating compressed keys, which save on-chain bytes and fees</p>
-</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.compressed" class="structfield small-section-header"><a href="#structfield.compressed" class="anchor field">§</a><code>compressed: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether the generated key should be “compressed” or not</p>
-</div><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><section id="impl-Clone-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#692">source</a><a href="#impl-Clone-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="struct bdk::keys::PrivateKeyGenerateOptions">PrivateKeyGenerateOptions</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#692">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="struct bdk::keys::PrivateKeyGenerateOptions">PrivateKeyGenerateOptions</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#692">source</a><a href="#impl-Debug-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="struct bdk::keys::PrivateKeyGenerateOptions">PrivateKeyGenerateOptions</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#692">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#698-702">source</a><a href="#impl-Default-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="struct bdk::keys::PrivateKeyGenerateOptions">PrivateKeyGenerateOptions</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#699-701">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> Self</h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><section id="impl-Copy-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#692">source</a><a href="#impl-Copy-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="struct bdk::keys::PrivateKeyGenerateOptions">PrivateKeyGenerateOptions</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="struct bdk::keys::PrivateKeyGenerateOptions">PrivateKeyGenerateOptions</a></h3></section><section id="impl-Send-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a href="#impl-Send-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="struct bdk::keys::PrivateKeyGenerateOptions">PrivateKeyGenerateOptions</a></h3></section><section id="impl-Sync-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a href="#impl-Sync-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="struct bdk::keys::PrivateKeyGenerateOptions">PrivateKeyGenerateOptions</a></h3></section><section id="impl-Unpin-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a href="#impl-Unpin-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="struct bdk::keys::PrivateKeyGenerateOptions">PrivateKeyGenerateOptions</a></h3></section><section id="impl-UnwindSafe-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a href="#impl-UnwindSafe-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="struct bdk::keys::PrivateKeyGenerateOptions">PrivateKeyGenerateOptions</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="A descriptor [`bitcoin::PrivateKey`] with optional origin information."><meta name="keywords" content="rust, rustlang, rust-lang, SinglePriv"><title>SinglePriv in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SinglePriv</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.key">key</a></li><li><a href="#structfield.origin">origin</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-SinglePriv">Clone</a></li><li><a href="#impl-Debug-for-SinglePriv">Debug</a></li><li><a href="#impl-Eq-for-SinglePriv">Eq</a></li><li><a href="#impl-PartialEq%3CSinglePriv%3E-for-SinglePriv">PartialEq<SinglePriv></a></li><li><a href="#impl-StructuralEq-for-SinglePriv">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-SinglePriv">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SinglePriv">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SinglePriv">Send</a></li><li><a href="#impl-Sync-for-SinglePriv">Sync</a></li><li><a href="#impl-Unpin-for-SinglePriv">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SinglePriv">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SinglePriv">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SinglePriv">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SinglePriv">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SinglePriv">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SinglePriv">Into<U></a></li><li><a href="#impl-ToOwned-for-SinglePriv">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SinglePriv">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SinglePriv">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SinglePriv">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="struct" href="#">SinglePriv</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct SinglePriv {
- pub origin: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(Fingerprint, DerivationPath)>,
- pub key: PrivateKey,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A descriptor [<code>bitcoin::PrivateKey</code>] with optional origin information.</p>
-</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.origin" class="structfield small-section-header"><a href="#structfield.origin" class="anchor field">§</a><code>origin: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(Fingerprint, DerivationPath)></code></span><div class="docblock"><p>Origin information (fingerprint and derivation path).</p>
-</div><span id="structfield.key" class="structfield small-section-header"><a href="#structfield.key" class="anchor field">§</a><code>key: PrivateKey</code></span><div class="docblock"><p>The private key.</p>
-</div><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><section id="impl-Clone-for-SinglePriv" class="impl has-srclink"><a href="#impl-Clone-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.SinglePriv.html" title="struct bdk::keys::SinglePriv">SinglePriv</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.SinglePriv.html" title="struct bdk::keys::SinglePriv">SinglePriv</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-SinglePriv" class="impl has-srclink"><a href="#impl-Debug-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.SinglePriv.html" title="struct bdk::keys::SinglePriv">SinglePriv</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CSinglePriv%3E-for-SinglePriv" class="impl has-srclink"><a href="#impl-PartialEq%3CSinglePriv%3E-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.SinglePriv.html" title="struct bdk::keys::SinglePriv">SinglePriv</a>> for <a class="struct" href="struct.SinglePriv.html" title="struct bdk::keys::SinglePriv">SinglePriv</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.SinglePriv.html" title="struct bdk::keys::SinglePriv">SinglePriv</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><section id="impl-Eq-for-SinglePriv" class="impl has-srclink"><a href="#impl-Eq-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.SinglePriv.html" title="struct bdk::keys::SinglePriv">SinglePriv</a></h3></section><section id="impl-StructuralEq-for-SinglePriv" class="impl has-srclink"><a href="#impl-StructuralEq-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="struct" href="struct.SinglePriv.html" title="struct bdk::keys::SinglePriv">SinglePriv</a></h3></section><section id="impl-StructuralPartialEq-for-SinglePriv" class="impl has-srclink"><a href="#impl-StructuralPartialEq-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.SinglePriv.html" title="struct bdk::keys::SinglePriv">SinglePriv</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SinglePriv" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.SinglePriv.html" title="struct bdk::keys::SinglePriv">SinglePriv</a></h3></section><section id="impl-Send-for-SinglePriv" class="impl has-srclink"><a href="#impl-Send-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.SinglePriv.html" title="struct bdk::keys::SinglePriv">SinglePriv</a></h3></section><section id="impl-Sync-for-SinglePriv" class="impl has-srclink"><a href="#impl-Sync-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.SinglePriv.html" title="struct bdk::keys::SinglePriv">SinglePriv</a></h3></section><section id="impl-Unpin-for-SinglePriv" class="impl has-srclink"><a href="#impl-Unpin-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.SinglePriv.html" title="struct bdk::keys::SinglePriv">SinglePriv</a></h3></section><section id="impl-UnwindSafe-for-SinglePriv" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.SinglePriv.html" title="struct bdk::keys::SinglePriv">SinglePriv</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SinglePriv" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SinglePriv" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SinglePriv" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SinglePriv" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SinglePriv" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-SinglePriv" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SinglePriv" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SinglePriv" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SinglePriv" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="A descriptor [`SinglePubKey`] with optional origin information."><meta name="keywords" content="rust, rustlang, rust-lang, SinglePub"><title>SinglePub in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SinglePub</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.key">key</a></li><li><a href="#structfield.origin">origin</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-SinglePub">Clone</a></li><li><a href="#impl-Debug-for-SinglePub">Debug</a></li><li><a href="#impl-Eq-for-SinglePub">Eq</a></li><li><a href="#impl-Hash-for-SinglePub">Hash</a></li><li><a href="#impl-Ord-for-SinglePub">Ord</a></li><li><a href="#impl-PartialEq%3CSinglePub%3E-for-SinglePub">PartialEq<SinglePub></a></li><li><a href="#impl-PartialOrd%3CSinglePub%3E-for-SinglePub">PartialOrd<SinglePub></a></li><li><a href="#impl-StructuralEq-for-SinglePub">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-SinglePub">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SinglePub">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SinglePub">Send</a></li><li><a href="#impl-Sync-for-SinglePub">Sync</a></li><li><a href="#impl-Unpin-for-SinglePub">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SinglePub">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SinglePub">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SinglePub">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SinglePub">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SinglePub">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SinglePub">Into<U></a></li><li><a href="#impl-ToOwned-for-SinglePub">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SinglePub">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SinglePub">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SinglePub">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="struct" href="#">SinglePub</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct SinglePub {
- pub origin: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(Fingerprint, DerivationPath)>,
- pub key: <a class="enum" href="enum.SinglePubKey.html" title="enum bdk::keys::SinglePubKey">SinglePubKey</a>,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A descriptor <a href="enum.SinglePubKey.html" title="SinglePubKey"><code>SinglePubKey</code></a> with optional origin information.</p>
-</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.origin" class="structfield small-section-header"><a href="#structfield.origin" class="anchor field">§</a><code>origin: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(Fingerprint, DerivationPath)></code></span><div class="docblock"><p>Origin information (fingerprint and derivation path).</p>
-</div><span id="structfield.key" class="structfield small-section-header"><a href="#structfield.key" class="anchor field">§</a><code>key: <a class="enum" href="enum.SinglePubKey.html" title="enum bdk::keys::SinglePubKey">SinglePubKey</a></code></span><div class="docblock"><p>The public key.</p>
-</div><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><section id="impl-Clone-for-SinglePub" class="impl has-srclink"><a href="#impl-Clone-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-SinglePub" class="impl has-srclink"><a href="#impl-Debug-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-SinglePub" class="impl has-srclink"><a href="#impl-Hash-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)<span class="where fmt-newline">where<br> __H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-SinglePub" class="impl has-srclink"><a href="#impl-Ord-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="struct" href="struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CSinglePub%3E-for-SinglePub" class="impl has-srclink"><a href="#impl-PartialEq%3CSinglePub%3E-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</a>> for <a class="struct" href="struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CSinglePub%3E-for-SinglePub" class="impl has-srclink"><a href="#impl-PartialOrd%3CSinglePub%3E-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="struct" href="struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</a>> for <a class="struct" href="struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="struct" href="struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><section id="impl-Eq-for-SinglePub" class="impl has-srclink"><a href="#impl-Eq-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</a></h3></section><section id="impl-StructuralEq-for-SinglePub" class="impl has-srclink"><a href="#impl-StructuralEq-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</a></h3></section><section id="impl-StructuralPartialEq-for-SinglePub" class="impl has-srclink"><a href="#impl-StructuralPartialEq-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SinglePub" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</a></h3></section><section id="impl-Send-for-SinglePub" class="impl has-srclink"><a href="#impl-Send-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</a></h3></section><section id="impl-Sync-for-SinglePub" class="impl has-srclink"><a href="#impl-Sync-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</a></h3></section><section id="impl-Unpin-for-SinglePub" class="impl has-srclink"><a href="#impl-Unpin-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</a></h3></section><section id="impl-UnwindSafe-for-SinglePub" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk::keys::SinglePub">SinglePub</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SinglePub" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SinglePub" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SinglePub" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SinglePub" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SinglePub" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-SinglePub" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SinglePub" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SinglePub" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SinglePub" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Contents of a “sortedmulti” descriptor"><meta name="keywords" content="rust, rustlang, rust-lang, SortedMultiVec"><title>SortedMultiVec in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SortedMultiVec</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.k">k</a></li><li><a href="#structfield.pks">pks</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.build_template">build_template</a></li><li><a href="#method.encode">encode</a></li><li><a href="#method.from_tree">from_tree</a></li><li><a href="#method.max_satisfaction_size">max_satisfaction_size</a></li><li><a href="#method.max_satisfaction_witness_elements">max_satisfaction_witness_elements</a></li><li><a href="#method.new">new</a></li><li><a href="#method.sanity_check">sanity_check</a></li><li><a href="#method.satisfy">satisfy</a></li><li><a href="#method.script_size">script_size</a></li><li><a href="#method.sorted_node">sorted_node</a></li><li><a href="#method.translate_pk">translate_pk</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Clone</a></li><li><a href="#impl-Debug-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Debug</a></li><li><a href="#impl-Display-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Display</a></li><li><a href="#impl-Eq-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Eq</a></li><li><a href="#impl-ForEachKey%3CPk%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E">ForEachKey<Pk></a></li><li><a href="#impl-Hash-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Hash</a></li><li><a href="#impl-Liftable%3CPk%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Liftable<Pk></a></li><li><a href="#impl-Ord-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Ord</a></li><li><a href="#impl-PartialEq%3CSortedMultiVec%3CPk%2C%20Ctx%3E%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E">PartialEq<SortedMultiVec<Pk, Ctx>></a></li><li><a href="#impl-PartialOrd%3CSortedMultiVec%3CPk%2C%20Ctx%3E%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E">PartialOrd<SortedMultiVec<Pk, Ctx>></a></li><li><a href="#impl-StructuralEq-for-SortedMultiVec%3CPk%2C%20Ctx%3E">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-SortedMultiVec%3CPk%2C%20Ctx%3E">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SortedMultiVec%3CPk%2C%20Ctx%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Send</a></li><li><a href="#impl-Sync-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Sync</a></li><li><a href="#impl-Unpin-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SortedMultiVec%3CPk%2C%20Ctx%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Into<U></a></li><li><a href="#impl-ToOwned-for-SortedMultiVec%3CPk%2C%20Ctx%3E">ToOwned</a></li><li><a href="#impl-ToString-for-SortedMultiVec%3CPk%2C%20Ctx%3E">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="struct" href="#">SortedMultiVec</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct SortedMultiVec<Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span>{
- pub k: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
- pub pks: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><Pk, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>>,
- /* private fields */
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Contents of a “sortedmulti” descriptor</p>
-</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.k" class="structfield small-section-header"><a href="#structfield.k" class="anchor field">§</a><code>k: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code></span><div class="docblock"><p>signatures required</p>
-</div><span id="structfield.pks" class="structfield small-section-header"><a href="#structfield.pks" class="anchor field">§</a><code>pks: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><Pk, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>></code></span><div class="docblock"><p>public keys inside sorted Multi</p>
-</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(<br> k: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> pks: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><Pk, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</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="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx>, Error></h4></section></summary><div class="docblock"><p>Create a new instance of <code>SortedMultiVec</code> given a list of keys and the threshold</p>
-<p>Internally checks all the applicable size limits and pubkey types limitations according to the current <code>Ctx</code>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_tree" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.from_tree" class="fn">from_tree</a>(tree: &Tree<'_>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx>, Error><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,</span></h4></section></summary><div class="docblock"><p>Parse an expression tree into a SortedMultiVec</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.translate_pk" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.translate_pk" class="fn">translate_pk</a><T, Q, FuncError>(<br> &self,<br> t: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T<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="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Q, Ctx>, TranslateErr<FuncError>><span class="where fmt-newline">where<br> T: Translator<Pk, Q, FuncError>,<br> Q: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>This will panic if fpk returns an uncompressed key when
-converting to a Segwit descriptor. To prevent this panic, ensure
-fpk returns an error in this case instead.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-SortedMultiVec%3CPk%2C%20Ctx%3E-1" class="impl has-srclink"><a href="#impl-SortedMultiVec%3CPk%2C%20Ctx%3E-1" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sanity_check" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.sanity_check" class="fn">sanity_check</a>(&self) -> <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></h4></section></summary><div class="docblock"><p>utility function to sanity a sorted multi vec</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-SortedMultiVec%3CPk%2C%20Ctx%3E-2" class="impl has-srclink"><a href="#impl-SortedMultiVec%3CPk%2C%20Ctx%3E-2" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sorted_node" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.sorted_node" class="fn">sorted_node</a>(&self) -> Terminal<Pk, Ctx><span class="where fmt-newline">where<br> Pk: ToPublicKey,</span></h4></section></summary><div class="docblock"><p>Create Terminal::Multi containing sorted pubkeys</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.encode" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.encode" class="fn">encode</a>(&self) -> ScriptBuf<span class="where fmt-newline">where<br> Pk: ToPublicKey,</span></h4></section></summary><div class="docblock"><p>Encode as a Bitcoin script</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.satisfy" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.satisfy" class="fn">satisfy</a><S>(<br> &self,<br> satisfier: S<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="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</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="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>>, Error><span class="where fmt-newline">where<br> Pk: ToPublicKey,<br> S: Satisfier<Pk>,</span></h4></section></summary><div class="docblock"><p>Attempt to produce a satisfying witness for the
-witness script represented by the parse tree</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build_template" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.build_template" class="fn">build_template</a><P>(&self, provider: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>P) -> Satisfaction<Placeholder<Pk>><span class="where fmt-newline">where<br> Pk: ToPublicKey,<br> P: AssetProvider<Pk>,</span></h4></section></summary><div class="docblock"><p>Attempt to produce a witness template given the assets available</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.script_size" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.script_size" class="fn">script_size</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Size, in bytes of the script-pubkey. If this Miniscript is used outside
-of segwit (e.g. in a bare or P2SH descriptor), this quantity should be
-multiplied by 4 to compute the weight.</p>
-<p>In general, it is not recommended to use this function directly, but
-to instead call the corresponding function on a <code>Descriptor</code>, which
-will handle the segwit/non-segwit technicalities for you.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_satisfaction_witness_elements" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.max_satisfaction_witness_elements" class="fn">max_satisfaction_witness_elements</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Maximum number of witness elements used to satisfy the Miniscript
-fragment, including the witness script itself. Used to estimate
-the weight of the <code>VarInt</code> that specifies this number in a serialized
-transaction.</p>
-<p>This function may panic on malformed <code>Miniscript</code> objects which do
-not correspond to semantically sane Scripts. (Such scripts should be
-rejected at parse time. Any exceptions are bugs.)</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_satisfaction_size" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.max_satisfaction_size" class="fn">max_satisfaction_size</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Maximum size, in bytes, of a satisfying witness.
-In general, it is not recommended to use this function directly, but
-to instead call the corresponding function on a <code>Descriptor</code>, which
-will handle the segwit/non-segwit technicalities for you.</p>
-<p>All signatures are assumed to be 73 bytes in size, including the
-length prefix (segwit) or push opcode (pre-segwit) and sighash
-postfix.</p>
-</div></details></div></details></div><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><section id="impl-Clone-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Clone-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + MiniscriptKey,<br> Ctx: <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="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Debug-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Display-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ForEachKey%3CPk%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-ForEachKey%3CPk%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> ForEachKey<Pk> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.for_each_key" class="method trait-impl has-srclink"><a href="#method.for_each_key" class="anchor">§</a><h4 class="code-header">fn <a class="fn">for_each_key</a><'a, F>(&'a self, pred: F) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&'a </a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</span></h4></section></summary><div class='docblock'>Run a predicate on every key in the descriptor, returning whether
-the predicate returned true for every key <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.for_any_key" class="method trait-impl has-srclink"><a href="#method.for_any_key" class="anchor">§</a><h4 class="code-header">fn <a class="fn">for_any_key</a><'a, F>(&'a self, pred: F) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&'a </a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,<br> Pk: 'a,</span></h4></section></summary><div class='docblock'>Run a predicate on every key in the descriptor, returning whether
-the predicate returned true for any key <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Hash-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> + MiniscriptKey,<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> + <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)<span class="where fmt-newline">where<br> __H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Liftable%3CPk%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Liftable%3CPk%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> Liftable<Pk> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lift" class="method trait-impl has-srclink"><a href="#method.lift" class="anchor">§</a><h4 class="code-header">fn <a class="fn">lift</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Policy<Pk>, Error></h4></section></summary><div class='docblock'>Converts this object into an abstract policy.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Ord-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + MiniscriptKey,<br> Ctx: <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="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CSortedMultiVec%3CPk%2C%20Ctx%3E%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-PartialEq%3CSortedMultiVec%3CPk%2C%20Ctx%3E%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx>> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><Pk> + MiniscriptKey,<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><Ctx> + <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CSortedMultiVec%3CPk%2C%20Ctx%3E%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-PartialOrd%3CSortedMultiVec%3CPk%2C%20Ctx%3E%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx>> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Pk> + MiniscriptKey,<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Ctx> + <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><section id="impl-Eq-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Eq-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + MiniscriptKey,<br> Ctx: <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="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section><section id="impl-StructuralEq-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-StructuralEq-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section><section id="impl-StructuralPartialEq-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-StructuralPartialEq-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,</span></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Send-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Sync-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Unpin-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Trait for keys that can be derived."><meta name="keywords" content="rust, rustlang, rust-lang, DerivableKey"><title>DerivableKey in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">DerivableKey</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.into_extended_key">into_extended_key</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.into_descriptor_key">into_descriptor_key</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-DerivableKey%3CCtx%3E-for-Xpriv">Xpriv</a></li><li><a href="#impl-DerivableKey%3CCtx%3E-for-Xpub">Xpub</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="trait" href="#">DerivableKey</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/keys/mod.rs.html#464-514">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait DerivableKey<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a> = <a class="enum" href="../descriptor/enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a>>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> {
- fn <a href="#tymethod.into_extended_key" class="fn">into_extended_key</a>(self) -> <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="enum.ExtendedKey.html" title="enum bdk::keys::ExtendedKey">ExtendedKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>>;
-
- fn <a href="#method.into_descriptor_key" class="fn">into_descriptor_key</a>(<br> self,<br> origin: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><KeySource>,<br> derivation_path: DerivationPath<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="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</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 keys that can be derived.</p>
-<p>When extra metadata are provided, a <a href="trait.DerivableKey.html" title="DerivableKey"><code>DerivableKey</code></a> can be transformed into a
-<a href="enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a>: the trait <a href="trait.IntoDescriptorKey.html" title="IntoDescriptorKey"><code>IntoDescriptorKey</code></a> is automatically implemented
-for <code>(DerivableKey, DerivationPath)</code> and
-<code>(DerivableKey, KeySource, DerivationPath)</code> tuples.</p>
-<p>For key types that don’t encode any indication about the path to use (like bip39), it’s
-generally recommended to implement this trait instead of <a href="trait.IntoDescriptorKey.html" title="IntoDescriptorKey"><code>IntoDescriptorKey</code></a>. The same
-rules regarding script context and valid networks apply.</p>
-<h3 id="examples"><a href="#examples">Examples</a></h3>
-<p>Key types that can be directly converted into an <a href="(bip32::Xpriv)"><code>Xpriv</code></a> or
-an <a href="(bip32::Xpub)"><code>Xpub</code></a> can implement only the required <code>into_extended_key()</code> method.</p>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk::bitcoin;
-<span class="kw">use </span>bdk::bitcoin::bip32;
-<span class="kw">use </span>bdk::keys::{DerivableKey, ExtendedKey, KeyError, ScriptContext};
-
-<span class="kw">struct </span>MyCustomKeyType {
- key_data: bitcoin::PrivateKey,
- chain_code: [u8; <span class="number">32</span>],
- network: bitcoin::Network,
-}
-
-<span class="kw">impl</span><Ctx: ScriptContext> DerivableKey<Ctx> <span class="kw">for </span>MyCustomKeyType {
- <span class="kw">fn </span>into_extended_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><ExtendedKey<Ctx>, KeyError> {
- <span class="kw">let </span>xprv = bip32::Xpriv {
- network: <span class="self">self</span>.network,
- depth: <span class="number">0</span>,
- parent_fingerprint: bip32::Fingerprint::default(),
- private_key: <span class="self">self</span>.key_data.inner,
- chain_code: bip32::ChainCode::from(<span class="kw-2">&</span><span class="self">self</span>.chain_code),
- child_number: bip32::ChildNumber::Normal { index: <span class="number">0 </span>},
- };
-
- xprv.into_extended_key()
- }
-}</code></pre></div>
-<p>Types that don’t internally encode the [<code>Network</code>] in which they are valid need some extra
-steps to override the set of valid networks, otherwise only the network specified in the
-<a href="(bip32::Xpriv)"><code>Xpriv</code></a> or <a href="(bip32::Xpub)"><code>Xpub</code></a> will be considered valid.</p>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk::bitcoin;
-<span class="kw">use </span>bdk::bitcoin::bip32;
-<span class="kw">use </span>bdk::keys::{
- any_network, DerivableKey, DescriptorKey, ExtendedKey, KeyError, ScriptContext,
-};
-
-<span class="kw">struct </span>MyCustomKeyType {
- key_data: bitcoin::PrivateKey,
- chain_code: [u8; <span class="number">32</span>],
-}
-
-<span class="kw">impl</span><Ctx: ScriptContext> DerivableKey<Ctx> <span class="kw">for </span>MyCustomKeyType {
- <span class="kw">fn </span>into_extended_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><ExtendedKey<Ctx>, KeyError> {
- <span class="kw">let </span>xprv = bip32::Xpriv {
- network: bitcoin::Network::Bitcoin, <span class="comment">// pick an arbitrary network here
- </span>depth: <span class="number">0</span>,
- parent_fingerprint: bip32::Fingerprint::default(),
- private_key: <span class="self">self</span>.key_data.inner,
- chain_code: bip32::ChainCode::from(<span class="kw-2">&</span><span class="self">self</span>.chain_code),
- child_number: bip32::ChildNumber::Normal { index: <span class="number">0 </span>},
- };
-
- xprv.into_extended_key()
- }
-
- <span class="kw">fn </span>into_descriptor_key(
- <span class="self">self</span>,
- source: <span class="prelude-ty">Option</span><bip32::KeySource>,
- derivation_path: bip32::DerivationPath,
- ) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
- <span class="kw">let </span>descriptor_key = <span class="self">self
- </span>.into_extended_key()<span class="question-mark">?
- </span>.into_descriptor_key(source, derivation_path)<span class="question-mark">?</span>;
-
- <span class="comment">// Override the set of valid networks here
- </span><span class="prelude-val">Ok</span>(descriptor_key.override_valid_networks(any_network()))
- }
-}</code></pre></div>
-</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 method-toggle" open><summary><section id="tymethod.into_extended_key" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#488">source</a><h4 class="code-header">fn <a href="#tymethod.into_extended_key" class="fn">into_extended_key</a>(self) -> <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="enum.ExtendedKey.html" title="enum bdk::keys::ExtendedKey">ExtendedKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>></h4></section></summary><div class="docblock"><p>Consume <code>self</code> and turn it into an <a href="enum.ExtendedKey.html" title="ExtendedKey"><code>ExtendedKey</code></a></p>
-</div></details></div><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_descriptor_key" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#492-513">source</a><h4 class="code-header">fn <a href="#method.into_descriptor_key" class="fn">into_descriptor_key</a>(<br> self,<br> origin: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><KeySource>,<br> derivation_path: DerivationPath<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="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>></h4></section></summary><div class="docblock"><p>Consume <code>self</code> and turn it into a <a href="enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a> by adding the extra metadata, such as
-key origin and derivation path</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><section id="impl-DerivableKey%3CCtx%3E-for-Xpub" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#523-527">source</a><a href="#impl-DerivableKey%3CCtx%3E-for-Xpub" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><Ctx> for Xpub</h3></section></summary><div class="impl-items"><section id="method.into_extended_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#524-526">source</a><a href="#method.into_extended_key" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.into_extended_key" class="fn">into_extended_key</a>(self) -> <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="enum.ExtendedKey.html" title="enum bdk::keys::ExtendedKey">ExtendedKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>></h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-DerivableKey%3CCtx%3E-for-Xpriv" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#529-533">source</a><a href="#impl-DerivableKey%3CCtx%3E-for-Xpriv" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><Ctx> for Xpriv</h3></section></summary><div class="impl-items"><section id="method.into_extended_key-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#530-532">source</a><a href="#method.into_extended_key-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.into_extended_key" class="fn">into_extended_key</a>(self) -> <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="enum.ExtendedKey.html" title="enum bdk::keys::ExtendedKey">ExtendedKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>></h4></section></div></details><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-DerivableKey%3CCtx%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#577-594">source</a><a href="#impl-DerivableKey%3CCtx%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx, K> <a class="trait" href="trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><Ctx> for <a class="struct" href="struct.GeneratedKey.html" title="struct bdk::keys::GeneratedKey">GeneratedKey</a><K, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> K: <a class="trait" href="trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><Ctx>,</span></h3></section><section id="impl-DerivableKey%3CCtx%3E-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#517-521">source</a><a href="#impl-DerivableKey%3CCtx%3E-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><Ctx> for <a class="enum" href="enum.ExtendedKey.html" title="enum bdk::keys::ExtendedKey">ExtendedKey</a><Ctx></h3></section><div class="docblock"><p>Identity conversion</p>
-</div></div><script src="../../implementors/bdk/keys/trait.DerivableKey.js" data-ignore-extern-crates="bitcoin" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Trait that adds extra useful methods to [`ScriptContext`]s"><meta name="keywords" content="rust, rustlang, rust-lang, ExtScriptContext"><title>ExtScriptContext in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">ExtScriptContext</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.as_enum">as_enum</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.is_legacy">is_legacy</a></li><li><a href="#method.is_segwit_v0">is_segwit_v0</a></li><li><a href="#method.is_taproot">is_taproot</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="trait" href="#">ExtScriptContext</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/keys/mod.rs.html#155-173">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait ExtScriptContext: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a> {
- fn <a href="#tymethod.as_enum" class="fn">as_enum</a>() -> <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk::keys::ScriptContextEnum">ScriptContextEnum</a>;
-
- fn <a href="#method.is_legacy" class="fn">is_legacy</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a> { ... }
-<span class="item-spacer"></span> fn <a href="#method.is_segwit_v0" class="fn">is_segwit_v0</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a> { ... }
-<span class="item-spacer"></span> fn <a href="#method.is_taproot" class="fn">is_taproot</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a> { ... }
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Trait that adds extra useful methods to <a href="trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a>s</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 method-toggle" open><summary><section id="tymethod.as_enum" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#157">source</a><h4 class="code-header">fn <a href="#tymethod.as_enum" class="fn">as_enum</a>() -> <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk::keys::ScriptContextEnum">ScriptContextEnum</a></h4></section></summary><div class="docblock"><p>Returns the <a href="trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a> as a <a href="enum.ScriptContextEnum.html" title="ScriptContextEnum"><code>ScriptContextEnum</code></a></p>
-</div></details></div><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_legacy" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#160-162">source</a><h4 class="code-header">fn <a href="#method.is_legacy" class="fn">is_legacy</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns whether the script context is <a href="../descriptor/enum.Legacy.html"><code>Legacy</code></a></p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_segwit_v0" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#165-167">source</a><h4 class="code-header">fn <a href="#method.is_segwit_v0" class="fn">is_segwit_v0</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns whether the script context is <a href="../descriptor/enum.Segwitv0.html"><code>Segwitv0</code></a></p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_taproot" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#170-172">source</a><h4 class="code-header">fn <a href="#method.is_taproot" class="fn">is_taproot</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns whether the script context is <a href="miniscript::Tap"><code>Tap</code></a>, aka Taproot or Segwit V1</p>
-</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-ExtScriptContext-for-Ctx" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#175-184">source</a><a href="#impl-ExtScriptContext-for-Ctx" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a> + 'static> <a class="trait" href="trait.ExtScriptContext.html" title="trait bdk::keys::ExtScriptContext">ExtScriptContext</a> for Ctx</h3></section></div><script src="../../implementors/bdk/keys/trait.ExtScriptContext.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Trait that allows generating a key with the default options"><meta name="keywords" content="rust, rustlang, rust-lang, GeneratableDefaultOptions"><title>GeneratableDefaultOptions in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">GeneratableDefaultOptions</a></h2><div class="sidebar-elems"><section><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.generate_default">generate_default</a></li><li><a href="#method.generate_with_entropy_default">generate_with_entropy_default</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="trait" href="#">GeneratableDefaultOptions</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/keys/mod.rs.html#645-661">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait GeneratableDefaultOptions<Ctx>: <a class="trait" href="trait.GeneratableKey.html" title="trait bdk::keys::GeneratableKey">GeneratableKey</a><Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> <Self as <a class="trait" href="trait.GeneratableKey.html" title="trait bdk::keys::GeneratableKey">GeneratableKey</a><Ctx>>::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Options" title="type bdk::keys::GeneratableKey::Options">Options</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a>,</span>{
- fn <a href="#method.generate_with_entropy_default" class="fn">generate_with_entropy_default</a>(<br> entropy: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Entropy" title="type bdk::keys::GeneratableKey::Entropy">Entropy</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="struct" href="struct.GeneratedKey.html" title="struct bdk::keys::GeneratedKey">GeneratedKey</a><Self, Ctx>, Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Error" title="type bdk::keys::GeneratableKey::Error">Error</a>> { ... }
-<span class="item-spacer"></span> fn <a href="#method.generate_default" class="fn">generate_default</a>() -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.GeneratedKey.html" title="struct bdk::keys::GeneratedKey">GeneratedKey</a><Self, Ctx>, Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Error" title="type bdk::keys::GeneratableKey::Error">Error</a>> { ... }
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Trait that allows generating a key with the default options</p>
-<p>This trait is automatically implemented if the <a href="trait.GeneratableKey.html#associatedtype.Options" title="GeneratableKey::Options"><code>GeneratableKey::Options</code></a> implements <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="Default"><code>Default</code></a>.</p>
-</div></details><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.generate_with_entropy_default" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#651-655">source</a><h4 class="code-header">fn <a href="#method.generate_with_entropy_default" class="fn">generate_with_entropy_default</a>(<br> entropy: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Entropy" title="type bdk::keys::GeneratableKey::Entropy">Entropy</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="struct" href="struct.GeneratedKey.html" title="struct bdk::keys::GeneratedKey">GeneratedKey</a><Self, Ctx>, Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Error" title="type bdk::keys::GeneratableKey::Error">Error</a>></h4></section></summary><div class="docblock"><p>Generate a key with the default options and a given entropy</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.generate_default" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#658-660">source</a><h4 class="code-header">fn <a href="#method.generate_default" class="fn">generate_default</a>() -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.GeneratedKey.html" title="struct bdk::keys::GeneratedKey">GeneratedKey</a><Self, Ctx>, Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Error" title="type bdk::keys::GeneratableKey::Error">Error</a>></h4></section></summary><div class="docblock"><p>Generate a key with the default options and a random entropy</p>
-</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-GeneratableDefaultOptions%3CCtx%3E-for-K" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#665-671">source</a><a href="#impl-GeneratableDefaultOptions%3CCtx%3E-for-K" class="anchor">§</a><h3 class="code-header">impl<Ctx, K> <a class="trait" href="trait.GeneratableDefaultOptions.html" title="trait bdk::keys::GeneratableDefaultOptions">GeneratableDefaultOptions</a><Ctx> for K<span class="where fmt-newline">where<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> K: <a class="trait" href="trait.GeneratableKey.html" title="trait bdk::keys::GeneratableKey">GeneratableKey</a><Ctx>,<br> <K as <a class="trait" href="trait.GeneratableKey.html" title="trait bdk::keys::GeneratableKey">GeneratableKey</a><Ctx>>::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Options" title="type bdk::keys::GeneratableKey::Options">Options</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a>,</span></h3></section><div class="docblock"><p>Automatic implementation of <a href="trait.GeneratableDefaultOptions.html" title="GeneratableDefaultOptions"><code>GeneratableDefaultOptions</code></a> for <a href="trait.GeneratableKey.html" title="GeneratableKey"><code>GeneratableKey</code></a>s where
-<code>Options</code> implements <code>Default</code></p>
-</div></div><script src="../../implementors/bdk/keys/trait.GeneratableDefaultOptions.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Trait for keys that can be generated"><meta name="keywords" content="rust, rustlang, rust-lang, GeneratableKey"><title>GeneratableKey in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">GeneratableKey</a></h2><div class="sidebar-elems"><section><h3><a href="#required-associated-types">Required Associated Types</a></h3><ul class="block"><li><a href="#associatedtype.Entropy">Entropy</a></li><li><a href="#associatedtype.Error">Error</a></li><li><a href="#associatedtype.Options">Options</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.generate_with_entropy">generate_with_entropy</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.generate">generate</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-GeneratableKey%3CCtx%3E-for-PrivateKey">PrivateKey</a></li><li><a href="#impl-GeneratableKey%3CCtx%3E-for-Xpriv">Xpriv</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="trait" href="#">GeneratableKey</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/keys/mod.rs.html#617-640">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait GeneratableKey<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> {
- type <a href="#associatedtype.Entropy" class="associatedtype">Entropy</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a><[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a>;
- type <a href="#associatedtype.Options" class="associatedtype">Options</a>;
- type <a href="#associatedtype.Error" class="associatedtype">Error</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>;
-
- fn <a href="#tymethod.generate_with_entropy" class="fn">generate_with_entropy</a>(<br> options: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Options" title="type bdk::keys::GeneratableKey::Options">Options</a>,<br> entropy: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Entropy" title="type bdk::keys::GeneratableKey::Entropy">Entropy</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="struct" href="struct.GeneratedKey.html" title="struct bdk::keys::GeneratedKey">GeneratedKey</a><Self, Ctx>, Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Error" title="type bdk::keys::GeneratableKey::Error">Error</a>>;
-
- fn <a href="#method.generate" class="fn">generate</a>(<br> options: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Options" title="type bdk::keys::GeneratableKey::Options">Options</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="struct" href="struct.GeneratedKey.html" title="struct bdk::keys::GeneratedKey">GeneratedKey</a><Self, Ctx>, Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Error" title="type bdk::keys::GeneratableKey::Error">Error</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 keys that can be generated</p>
-<p>The same rules about <a href="trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a> and <a href="type.ValidNetworks.html" title="ValidNetworks"><code>ValidNetworks</code></a> from <a href="trait.IntoDescriptorKey.html" title="IntoDescriptorKey"><code>IntoDescriptorKey</code></a> apply.</p>
-<p>This trait is particularly useful when combined with <a href="trait.DerivableKey.html" title="DerivableKey"><code>DerivableKey</code></a>: if <code>Self</code>
-implements it, the returned <a href="struct.GeneratedKey.html" title="GeneratedKey"><code>GeneratedKey</code></a> will also implement it. The same is true for
-<a href="trait.IntoDescriptorKey.html" title="IntoDescriptorKey"><code>IntoDescriptorKey</code></a>: the generated keys can be directly used in descriptors if <code>Self</code> is also
-<a href="trait.IntoDescriptorKey.html" title="IntoDescriptorKey"><code>IntoDescriptorKey</code></a>.</p>
-</div></details><h2 id="required-associated-types" class="small-section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Entropy" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#619">source</a><h4 class="code-header">type <a href="#associatedtype.Entropy" class="associatedtype">Entropy</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a><[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a></h4></section></summary><div class="docblock"><p>Type specifying the amount of entropy required e.g. <code>[u8;32]</code></p>
-</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Options" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#622">source</a><h4 class="code-header">type <a href="#associatedtype.Options" class="associatedtype">Options</a></h4></section></summary><div class="docblock"><p>Extra options required by the <code>generate_with_entropy</code></p>
-</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#624">source</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a></h4></section></summary><div class="docblock"><p>Returned error in case of failure</p>
-</div></details></div><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 method-toggle" open><summary><section id="tymethod.generate_with_entropy" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#627-630">source</a><h4 class="code-header">fn <a href="#tymethod.generate_with_entropy" class="fn">generate_with_entropy</a>(<br> options: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Options" title="type bdk::keys::GeneratableKey::Options">Options</a>,<br> entropy: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Entropy" title="type bdk::keys::GeneratableKey::Entropy">Entropy</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="struct" href="struct.GeneratedKey.html" title="struct bdk::keys::GeneratedKey">GeneratedKey</a><Self, Ctx>, Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Error" title="type bdk::keys::GeneratableKey::Error">Error</a>></h4></section></summary><div class="docblock"><p>Generate a key given the extra options and the entropy</p>
-</div></details></div><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.generate" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#633-639">source</a><h4 class="code-header">fn <a href="#method.generate" class="fn">generate</a>(<br> options: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Options" title="type bdk::keys::GeneratableKey::Options">Options</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="struct" href="struct.GeneratedKey.html" title="struct bdk::keys::GeneratedKey">GeneratedKey</a><Self, Ctx>, Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Error" title="type bdk::keys::GeneratableKey::Error">Error</a>></h4></section></summary><div class="docblock"><p>Generate a key given the options with a random entropy</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><section id="impl-GeneratableKey%3CCtx%3E-for-Xpriv" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#673-687">source</a><a href="#impl-GeneratableKey%3CCtx%3E-for-Xpriv" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.GeneratableKey.html" title="trait bdk::keys::GeneratableKey">GeneratableKey</a><Ctx> for Xpriv</h3></section></summary><div class="impl-items"><section id="associatedtype.Entropy-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Entropy-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Entropy" class="associatedtype">Entropy</a> = [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">32</a>]</h4></section><section id="associatedtype.Options-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Options-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Options" class="associatedtype">Options</a> = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></h4></section><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = Error</h4></section><section id="method.generate_with_entropy" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#679-686">source</a><a href="#method.generate_with_entropy" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.generate_with_entropy" class="fn">generate_with_entropy</a>(<br> _: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Options" title="type bdk::keys::GeneratableKey::Options">Options</a>,<br> entropy: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Entropy" title="type bdk::keys::GeneratableKey::Entropy">Entropy</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="struct" href="struct.GeneratedKey.html" title="struct bdk::keys::GeneratedKey">GeneratedKey</a><Self, Ctx>, Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Error" title="type bdk::keys::GeneratableKey::Error">Error</a>></h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-GeneratableKey%3CCtx%3E-for-PrivateKey" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#704-724">source</a><a href="#impl-GeneratableKey%3CCtx%3E-for-PrivateKey" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.GeneratableKey.html" title="trait bdk::keys::GeneratableKey">GeneratableKey</a><Ctx> for PrivateKey</h3></section></summary><div class="impl-items"><section id="associatedtype.Entropy-2" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Entropy-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Entropy" class="associatedtype">Entropy</a> = [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">32</a>]</h4></section><section id="associatedtype.Options-2" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Options-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Options" class="associatedtype">Options</a> = <a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="struct bdk::keys::PrivateKeyGenerateOptions">PrivateKeyGenerateOptions</a></h4></section><section id="associatedtype.Error-2" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = Error</h4></section><section id="method.generate_with_entropy-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#710-723">source</a><a href="#method.generate_with_entropy-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.generate_with_entropy" class="fn">generate_with_entropy</a>(<br> options: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Options" title="type bdk::keys::GeneratableKey::Options">Options</a>,<br> entropy: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Entropy" title="type bdk::keys::GeneratableKey::Entropy">Entropy</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="struct" href="struct.GeneratedKey.html" title="struct bdk::keys::GeneratedKey">GeneratedKey</a><Self, Ctx>, Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Error" title="type bdk::keys::GeneratableKey::Error">Error</a>></h4></section></div></details><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../implementors/bdk/keys/trait.GeneratableKey.js" data-ignore-extern-crates="bitcoin" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Trait for objects that can be turned into a public or secret [`DescriptorKey`]"><meta name="keywords" content="rust, rustlang, rust-lang, IntoDescriptorKey"><title>IntoDescriptorKey in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">IntoDescriptorKey</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.into_descriptor_key">into_descriptor_key</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-%26str">&str</a></li><li><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-(T%2C%20DerivationPath)">(T, DerivationPath)</a></li><li><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-(T%2C%20KeySource%2C%20DerivationPath)">(T, KeySource, DerivationPath)</a></li><li><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-PrivateKey">PrivateKey</a></li><li><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-PublicKey">PublicKey</a></li><li><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-XOnlyPublicKey">XOnlyPublicKey</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="trait" href="#">IntoDescriptorKey</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/keys/mod.rs.html#305-308">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait IntoDescriptorKey<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> {
- fn <a href="#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</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 objects that can be turned into a public or secret <a href="enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a></p>
-<p>The generic type <code>Ctx</code> is used to define the context in which the key is valid: some key
-formats, like the mnemonics used by Electrum wallets, encode internally whether the wallet is
-legacy or segwit. Thus, trying to turn a valid legacy mnemonic into a <code>DescriptorKey</code>
-that would become part of a segwit descriptor should fail.</p>
-<p>For key types that do care about this, the <a href="trait.ExtScriptContext.html" title="ExtScriptContext"><code>ExtScriptContext</code></a> trait provides some useful
-methods that can be used to check at runtime which <code>Ctx</code> is being used.</p>
-<p>For key types that can do this check statically (because they can only work within a
-single <code>Ctx</code>), the “specialized” trait can be implemented to make the compiler handle the type
-checking.</p>
-<p>Keys also have control over the networks they support: constructing the return object with
-<a href="enum.DescriptorKey.html#method.from_public" title="DescriptorKey::from_public"><code>DescriptorKey::from_public</code></a> or <a href="enum.DescriptorKey.html#method.from_secret" title="DescriptorKey::from_secret"><code>DescriptorKey::from_secret</code></a> allows to specify a set of
-<a href="type.ValidNetworks.html" title="ValidNetworks"><code>ValidNetworks</code></a>.</p>
-<h3 id="examples"><a href="#examples">Examples</a></h3>
-<p>Key type valid in any context:</p>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk::bitcoin::PublicKey;
-
-<span class="kw">use </span>bdk::keys::{DescriptorKey, IntoDescriptorKey, KeyError, ScriptContext};
-
-<span class="kw">pub struct </span>MyKeyType {
- pubkey: PublicKey,
-}
-
-<span class="kw">impl</span><Ctx: ScriptContext> IntoDescriptorKey<Ctx> <span class="kw">for </span>MyKeyType {
- <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
- <span class="self">self</span>.pubkey.into_descriptor_key()
- }
-}</code></pre></div>
-<p>Key type that is only valid on mainnet:</p>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk::bitcoin::PublicKey;
-
-<span class="kw">use </span>bdk::keys::{
- mainnet_network, DescriptorKey, DescriptorPublicKey, IntoDescriptorKey, KeyError,
- ScriptContext, SinglePub, SinglePubKey,
-};
-
-<span class="kw">pub struct </span>MyKeyType {
- pubkey: PublicKey,
-}
-
-<span class="kw">impl</span><Ctx: ScriptContext> IntoDescriptorKey<Ctx> <span class="kw">for </span>MyKeyType {
- <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
- <span class="prelude-val">Ok</span>(DescriptorKey::from_public(
- DescriptorPublicKey::Single(SinglePub {
- origin: <span class="prelude-val">None</span>,
- key: SinglePubKey::FullKey(<span class="self">self</span>.pubkey),
- }),
- mainnet_network(),
- ))
- }
-}</code></pre></div>
-<p>Key type that internally encodes in which context it’s valid. The context is checked at runtime:</p>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk::bitcoin::PublicKey;
-
-<span class="kw">use </span>bdk::keys::{DescriptorKey, ExtScriptContext, IntoDescriptorKey, KeyError, ScriptContext};
-
-<span class="kw">pub struct </span>MyKeyType {
- is_legacy: bool,
- pubkey: PublicKey,
-}
-
-<span class="kw">impl</span><Ctx: ScriptContext + <span class="lifetime">'static</span>> IntoDescriptorKey<Ctx> <span class="kw">for </span>MyKeyType {
- <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
- <span class="kw">if </span>Ctx::is_legacy() == <span class="self">self</span>.is_legacy {
- <span class="self">self</span>.pubkey.into_descriptor_key()
- } <span class="kw">else </span>{
- <span class="prelude-val">Err</span>(KeyError::InvalidScriptContext)
- }
- }
-}</code></pre></div>
-<p>Key type that can only work within <a href="../descriptor/enum.Segwitv0.html" title="miniscript::Segwitv0"><code>miniscript::Segwitv0</code></a> context. Only the specialized version
-of the trait is implemented.</p>
-<p>This example deliberately fails to compile, to demonstrate how the compiler can catch when keys
-are misused. In this case, the “segwit-only” key is used to build a <code>pkh()</code> descriptor, which
-makes the compiler (correctly) fail.</p>
-
-<div class="example-wrap compile_fail"><div class='tooltip'>ⓘ</div><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk::bitcoin::PublicKey;
-<span class="kw">use </span>core::str::FromStr;
-
-<span class="kw">use </span>bdk::keys::{DescriptorKey, IntoDescriptorKey, KeyError};
-
-<span class="kw">pub struct </span>MySegwitOnlyKeyType {
- pubkey: PublicKey,
-}
-
-<span class="kw">impl </span>IntoDescriptorKey<bdk::miniscript::Segwitv0> <span class="kw">for </span>MySegwitOnlyKeyType {
- <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<bdk::miniscript::Segwitv0>, KeyError> {
- <span class="self">self</span>.pubkey.into_descriptor_key()
- }
-}
-
-<span class="kw">let </span>key = MySegwitOnlyKeyType {
- pubkey: PublicKey::from_str(<span class="string">"..."</span>)<span class="question-mark">?</span>,
-};
-<span class="kw">let </span>(descriptor, <span class="kw">_</span>, <span class="kw">_</span>) = <span class="macro">bdk::descriptor!</span>(pkh(key))<span class="question-mark">?</span>;
-<span class="comment">// ^^^^^ changing this to `wpkh` would make it compile
-</span></code></pre></div>
-</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 method-toggle" open><summary><section id="tymethod.into_descriptor_key" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#307">source</a><h4 class="code-header">fn <a href="#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>></h4></section></summary><div class="docblock"><p>Turn the key into a <a href="enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a> within the requested <a href="trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a></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><section id="impl-IntoDescriptorKey%3CCtx%3E-for-(T%2C%20DerivationPath)" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#726-732">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-(T%2C%20DerivationPath)" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>, T: <a class="trait" href="trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><Ctx>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for (T, DerivationPath)</h3></section></summary><div class="impl-items"><section id="method.into_descriptor_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#729-731">source</a><a href="#method.into_descriptor_key" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>></h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoDescriptorKey%3CCtx%3E-for-(T%2C%20KeySource%2C%20DerivationPath)" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#734-740">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-(T%2C%20KeySource%2C%20DerivationPath)" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>, T: <a class="trait" href="trait.DerivableKey.html" title="trait bdk::keys::DerivableKey">DerivableKey</a><Ctx>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for (T, KeySource, DerivationPath)</h3></section></summary><div class="impl-items"><section id="method.into_descriptor_key-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#737-739">source</a><a href="#method.into_descriptor_key-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>></h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoDescriptorKey%3CCtx%3E-for-PublicKey" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#860-868">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-PublicKey" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for PublicKey</h3></section></summary><div class="impl-items"><section id="method.into_descriptor_key-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#861-867">source</a><a href="#method.into_descriptor_key-2" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>></h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoDescriptorKey%3CCtx%3E-for-XOnlyPublicKey" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#870-878">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-XOnlyPublicKey" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for XOnlyPublicKey</h3></section></summary><div class="impl-items"><section id="method.into_descriptor_key-3" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#871-877">source</a><a href="#method.into_descriptor_key-3" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>></h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoDescriptorKey%3CCtx%3E-for-%26str" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#898-904">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-%26str" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h3></section></summary><div class="impl-items"><section id="method.into_descriptor_key-4" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#899-903">source</a><a href="#method.into_descriptor_key-4" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>></h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoDescriptorKey%3CCtx%3E-for-PrivateKey" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#906-914">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-PrivateKey" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for PrivateKey</h3></section></summary><div class="impl-items"><section id="method.into_descriptor_key-5" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#907-913">source</a><a href="#method.into_descriptor_key-5" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk::keys::KeyError">KeyError</a>></h4></section></div></details><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-IntoDescriptorKey%3CCtx%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#598-607">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx, K> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for <a class="struct" href="struct.GeneratedKey.html" title="struct bdk::keys::GeneratedKey">GeneratedKey</a><K, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> K: <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx>,</span></h3></section><section id="impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#838-842">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for <a class="enum" href="enum.DescriptorKey.html" title="enum bdk::keys::DescriptorKey">DescriptorKey</a><Ctx></h3></section><div class="docblock"><p>The “identity” conversion is used internally by some <code>bdk::fragment</code>s</p>
-</div><section id="impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#844-858">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorSecretKey" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/keys/mod.rs.html#880-896">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section></div><script src="../../implementors/bdk/keys/trait.IntoDescriptorKey.js" data-ignore-extern-crates="std,bitcoin,miniscript,secp256k1" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="The ScriptContext for Miniscript. Additional type information associated with miniscript that is used for carrying out checks that dependent on the context under which the script is used. For example, disallowing uncompressed keys in Segwit context"><meta name="keywords" content="rust, rustlang, rust-lang, ScriptContext"><title>ScriptContext in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">ScriptContext</a></h2><div class="sidebar-elems"><section><h3><a href="#required-associated-types">Required Associated Types</a></h3><ul class="block"><li><a href="#associatedtype.Key">Key</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.check_pk">check_pk</a></li><li><a href="#tymethod.check_terminal_non_malleable">check_terminal_non_malleable</a></li><li><a href="#tymethod.max_satisfaction_size">max_satisfaction_size</a></li><li><a href="#tymethod.name_str">name_str</a></li><li><a href="#tymethod.pk_len">pk_len</a></li><li><a href="#tymethod.sig_type">sig_type</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.check_global_consensus_validity">check_global_consensus_validity</a></li><li><a href="#method.check_global_policy_validity">check_global_policy_validity</a></li><li><a href="#method.check_global_validity">check_global_validity</a></li><li><a href="#method.check_local_consensus_validity">check_local_consensus_validity</a></li><li><a href="#method.check_local_policy_validity">check_local_policy_validity</a></li><li><a href="#method.check_local_validity">check_local_validity</a></li><li><a href="#method.check_witness">check_witness</a></li><li><a href="#method.other_top_level_checks">other_top_level_checks</a></li><li><a href="#method.top_level_checks">top_level_checks</a></li><li><a href="#method.top_level_type_check">top_level_type_check</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="trait" href="#">ScriptContext</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait ScriptContext: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <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.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/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</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/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> + Sealed {
- type <a href="#associatedtype.Key" class="associatedtype">Key</a>: ParseableKey<Sha256 = Hash, Hash256 = Hash, Ripemd160 = Hash, Hash160 = Hash> + MiniscriptKey;
-
-<details class="rustdoc-toggle type-contents-toggle"><summary class="hideme"><span>Show 16 methods</span></summary> fn <a href="#tymethod.check_terminal_non_malleable" class="fn">check_terminal_non_malleable</a><Pk>(<br> _frag: &Terminal<Pk, Self><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> Pk: MiniscriptKey</span>;
-<span class="item-spacer"></span> fn <a href="#tymethod.check_pk" class="fn">check_pk</a><Pk>(pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <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> Pk: MiniscriptKey</span>;
-<span class="item-spacer"></span> fn <a href="#tymethod.max_satisfaction_size" class="fn">max_satisfaction_size</a><Pk>(ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey</span>;
-<span class="item-spacer"></span> fn <a href="#tymethod.sig_type" class="fn">sig_type</a>() -> SigType;
-<span class="item-spacer"></span> fn <a href="#tymethod.pk_len" class="fn">pk_len</a><Pk>(pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br> <span class="where">where<br> Pk: MiniscriptKey</span>;
-<span class="item-spacer"></span> fn <a href="#tymethod.name_str" class="fn">name_str</a>() -> &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>;
-
- fn <a href="#method.check_witness" class="fn">check_witness</a><Pk>(<br> _witness: &[<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>>]<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> Pk: MiniscriptKey</span>,
- { ... }
-<span class="item-spacer"></span> fn <a href="#method.check_global_consensus_validity" class="fn">check_global_consensus_validity</a><Pk>(<br> _ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
- { ... }
-<span class="item-spacer"></span> fn <a href="#method.check_global_policy_validity" class="fn">check_global_policy_validity</a><Pk>(<br> _ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
- { ... }
-<span class="item-spacer"></span> fn <a href="#method.check_local_consensus_validity" class="fn">check_local_consensus_validity</a><Pk>(<br> _ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
- { ... }
-<span class="item-spacer"></span> fn <a href="#method.check_local_policy_validity" class="fn">check_local_policy_validity</a><Pk>(<br> _ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
- { ... }
-<span class="item-spacer"></span> fn <a href="#method.check_global_validity" class="fn">check_global_validity</a><Pk>(<br> ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
- { ... }
-<span class="item-spacer"></span> fn <a href="#method.check_local_validity" class="fn">check_local_validity</a><Pk>(<br> ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
- { ... }
-<span class="item-spacer"></span> fn <a href="#method.top_level_type_check" class="fn">top_level_type_check</a><Pk>(ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey</span>,
- { ... }
-<span class="item-spacer"></span> fn <a href="#method.other_top_level_checks" class="fn">other_top_level_checks</a><Pk>(<br> _ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
- { ... }
-<span class="item-spacer"></span> fn <a href="#method.top_level_checks" class="fn">top_level_checks</a><Pk>(ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey</span>,
- { ... }
-</details>}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The ScriptContext for Miniscript. Additional type information associated with
-miniscript that is used for carrying out checks that dependent on the
-context under which the script is used.
-For example, disallowing uncompressed keys in Segwit context</p>
-</div></details><h2 id="required-associated-types" class="small-section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Key" class="method has-srclink"><h4 class="code-header">type <a href="#associatedtype.Key" class="associatedtype">Key</a>: ParseableKey<Sha256 = Hash, Hash256 = Hash, Ripemd160 = Hash, Hash160 = Hash> + MiniscriptKey</h4></section></summary><div class="docblock"><p>The consensus key associated with the type. Must be a parseable key</p>
-</div></details></div><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 method-toggle" open><summary><section id="tymethod.check_terminal_non_malleable" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.check_terminal_non_malleable" class="fn">check_terminal_non_malleable</a><Pk>(<br> _frag: &Terminal<Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Depending on ScriptContext, fragments can be malleable. For Example,
-under Legacy context, PkH is malleable because it is possible to
-estimate the cost of satisfaction because of compressed keys
-This is currently only used in compiler code for removing malleable
-compilations.
-This does NOT recursively check if the children of the fragment are
-valid or not. Since the compilation proceeds in a leaf to root fashion,
-a recursive check is unnecessary.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.check_pk" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.check_pk" class="fn">check_pk</a><Pk>(pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Each context has slightly different rules on what Pks are allowed in descriptors
-Legacy/Bare does not allow x_only keys
-Segwit does not allow uncompressed keys and x_only keys
-Tapscript does not allow uncompressed keys</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.max_satisfaction_size" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.max_satisfaction_size" class="fn">max_satisfaction_size</a><Pk>(ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Depending on script context, the size of a satifaction witness may slightly differ.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.sig_type" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.sig_type" class="fn">sig_type</a>() -> SigType</h4></section></summary><div class="docblock"><p>The type of signature required for satisfaction</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.pk_len" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.pk_len" class="fn">pk_len</a><Pk>(pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Get the len of public key when serialized based on context
-Note that this includes the serialization prefix. Returns
-34/66 for Bare/Legacy based on key compressedness
-34 for Segwitv0, 33 for Tap</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.name_str" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.name_str" class="fn">name_str</a>() -> &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Local helper function to display error messages with context</p>
-</div></details></div><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_witness" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_witness" class="fn">check_witness</a><Pk>(<br> _witness: &[<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>>]<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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Check whether the given satisfaction is valid under the ScriptContext
-For example, segwit satisfactions may fail if the witness len is more
-3600 or number of stack elements are more than 100.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_consensus_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_global_consensus_validity" class="fn">check_global_consensus_validity</a><Pk>(<br> _ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Depending on script Context, some of the Terminals might not
-be valid under the current consensus rules.
-Or some of the script resource limits may have been exceeded.
-These miniscripts would never be accepted by the Bitcoin network and hence
-it is safe to discard them
-For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey
-uncompressed public keys are non-standard and thus invalid.
-In LegacyP2SH context, scripts above 520 bytes are invalid.
-Post Tapscript upgrade, this would have to consider other nodes.
-This does <em>NOT</em> recursively check the miniscript fragments.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_policy_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_global_policy_validity" class="fn">check_global_policy_validity</a><Pk>(<br> _ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Depending on script Context, some of the script resource limits
-may have been exceeded under the current bitcoin core policy rules
-These miniscripts would never be accepted by the Bitcoin network and hence
-it is safe to discard them. (unless explicitly disabled by non-standard flag)
-For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey
-scripts over 3600 bytes are invalid.
-Post Tapscript upgrade, this would have to consider other nodes.
-This does <em>NOT</em> recursively check the miniscript fragments.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_consensus_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_local_consensus_validity" class="fn">check_local_consensus_validity</a><Pk>(<br> _ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Consensus rules at the Miniscript satisfaction time.
-It is possible that some paths of miniscript may exceed resource limits
-and our current satisfier and lifting analysis would not work correctly.
-For example, satisfaction path(Legacy/Segwitv0) may require more than 201 opcodes.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_policy_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_local_policy_validity" class="fn">check_local_policy_validity</a><Pk>(<br> _ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Policy rules at the Miniscript satisfaction time.
-It is possible that some paths of miniscript may exceed resource limits
-and our current satisfier and lifting analysis would not work correctly.
-For example, satisfaction path in Legacy context scriptSig more
-than 1650 bytes</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_global_validity" class="fn">check_global_validity</a><Pk>(<br> ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Check the consensus + policy(if not disabled) rules that are not based
-satisfaction</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_local_validity" class="fn">check_local_validity</a><Pk>(<br> ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Check the consensus + policy(if not disabled) rules including the
-ones for satisfaction</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.top_level_type_check" class="method has-srclink"><h4 class="code-header">fn <a href="#method.top_level_type_check" class="fn">top_level_type_check</a><Pk>(ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Check whether the top-level is type B</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.other_top_level_checks" class="method has-srclink"><h4 class="code-header">fn <a href="#method.other_top_level_checks" class="fn">other_top_level_checks</a><Pk>(_ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Other top level checks that are context specific</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.top_level_checks" class="method has-srclink"><h4 class="code-header">fn <a href="#method.top_level_checks" class="fn">top_level_checks</a><Pk>(ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Check top level consensus rules.</p>
-</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ScriptContext-for-Legacy" class="impl has-srclink"><a href="#impl-ScriptContext-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a> for <a class="enum" href="../descriptor/enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Key-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Key-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Key" class="associatedtype">Key</a> = PublicKey</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ScriptContext-for-Segwitv0" class="impl has-srclink"><a href="#impl-ScriptContext-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a> for <a class="enum" href="../descriptor/enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Key-2" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Key-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Key" class="associatedtype">Key</a> = PublicKey</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ScriptContext-for-BareCtx" class="impl has-srclink"><a href="#impl-ScriptContext-for-BareCtx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a> for BareCtx</h3></section></summary><div class="impl-items"><section id="associatedtype.Key-3" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Key-3" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Key" class="associatedtype">Key</a> = PublicKey</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ScriptContext-for-Tap" class="impl has-srclink"><a href="#impl-ScriptContext-for-Tap" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a> for Tap</h3></section></summary><div class="impl-items"><section id="associatedtype.Key-4" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Key-4" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Key" class="associatedtype">Key</a> = XOnlyPublicKey</h4></section></div></details></div><script src="../../implementors/miniscript/miniscript/context/trait.ScriptContext.js" data-ignore-extern-crates="miniscript" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Alias type for a map of public key to secret key"><meta name="keywords" content="rust, rustlang, rust-lang, KeyMap"><title>KeyMap in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">KeyMap</a></h2><div class="sidebar-elems"><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="type" href="#">KeyMap</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub type KeyMap = <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><<a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>>;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Alias type for a map of public key to secret key</p>
-<p>This map is returned whenever a descriptor that contains secrets is parsed using
-<a href="../descriptor/enum.Descriptor.html#method.parse_descriptor" title="Descriptor::parse_descriptor"><code>Descriptor::parse_descriptor</code></a>, since the descriptor will always only contain
-public keys. This map allows looking up the corresponding secret key given a
-public key from the descriptor.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Set of valid networks for a key"><meta name="keywords" content="rust, rustlang, rust-lang, ValidNetworks"><title>ValidNetworks in bdk::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">ValidNetworks</a></h2><div class="sidebar-elems"><h2><a href="index.html">In bdk::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="../index.html">bdk</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="type" href="#">ValidNetworks</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/keys/mod.rs.html#44">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub type ValidNetworks = <a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/set/struct.HashSet.html" title="struct std::collections::hash::set::HashSet">HashSet</a><Network>;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Set of valid networks for a key</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta http-equiv="refresh" content="0;URL=macro.descriptor.html">
- <title>Redirection</title>
-</head>
-<body>
- <p>Redirecting to <a href="macro.descriptor.html">macro.descriptor.html</a>...</p>
- <script>location.replace("macro.descriptor.html" + location.search + location.hash);</script>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!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="Macro to write full descriptors with code"><meta name="keywords" content="rust, rustlang, rust-lang, descriptor"><title>descriptor in bdk - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc macro"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In bdk</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Macro <a href="index.html">bdk</a>::<wbr><a class="macro" href="#">descriptor</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk/descriptor/dsl.rs.html#500-553">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><div class="example-wrap"><pre class="rust macro"><code><span class="macro">macro_rules! </span>descriptor {
- ( bare ( $( <span class="macro-nonterminal">$minisc</span>:tt )* ) ) => { ... };
- ( sh ( wsh ( $( <span class="macro-nonterminal">$minisc</span>:tt )* ) ) ) => { ... };
- ( shwsh ( $( <span class="macro-nonterminal">$minisc</span>:tt )* ) ) => { ... };
- ( pk ( <span class="macro-nonterminal">$key</span>:expr ) ) => { ... };
- ( pkh ( <span class="macro-nonterminal">$key</span>:expr ) ) => { ... };
- ( wpkh ( <span class="macro-nonterminal">$key</span>:expr ) ) => { ... };
- ( sh ( wpkh ( <span class="macro-nonterminal">$key</span>:expr ) ) ) => { ... };
- ( shwpkh ( <span class="macro-nonterminal">$key</span>:expr ) ) => { ... };
- ( sh ( $( <span class="macro-nonterminal">$minisc</span>:tt )* ) ) => { ... };
- ( wsh ( $( <span class="macro-nonterminal">$minisc</span>:tt )* ) ) => { ... };
- ( tr ( <span class="macro-nonterminal">$internal_key</span>:expr ) ) => { ... };
- ( tr ( <span class="macro-nonterminal">$internal_key</span>:expr, $( <span class="macro-nonterminal">$taptree</span>:tt )* ) ) => { ... };
-}</code></pre></div>
-</div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Macro to write full descriptors with code</p>
-<p>This macro expands to a <code>Result</code> of
-<a href="descriptor/template/type.DescriptorTemplateOut.html"><code>DescriptorTemplateOut</code></a> and <a href="descriptor/error/enum.Error.html"><code>DescriptorError</code></a></p>
-<p>The syntax is very similar to the normal descriptor syntax, with the exception that modifiers
-cannot be grouped together. For instance, a descriptor fragment like <code>sdv:older(144)</code> has to be
-broken up to <code>s:d:v:older(144)</code>.</p>
-<p>The <code>pk()</code>, <code>pk_k()</code> and <code>pk_h()</code> operands can take as argument any type that implements
-<a href="keys/trait.IntoDescriptorKey.html"><code>IntoDescriptorKey</code></a>. This means that keys can also be written inline as strings, but in that
-case they must be wrapped in quotes, which is another difference compared to the standard
-descriptor syntax.</p>
-<h3 id="example"><a href="#example">Example</a></h3>
-<p>Signature plus timelock descriptor:</p>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>(my_descriptor, my_keys_map, networks) = <span class="macro">bdk::descriptor!</span>(sh(wsh(and_v(v:pk(<span class="string">"cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy"</span>),older(<span class="number">50</span>)))))<span class="question-mark">?</span>;</code></pre></div>
-<hr />
-<p>2-of-3 that becomes a 1-of-3 after a timelock has expired. Both <code>descriptor_a</code> and <code>descriptor_b</code> are equivalent: the first
-syntax is more suitable for a fixed number of items known at compile time, while the other accepts a
-<a href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"><code>Vec</code></a> of items, which makes it more suitable for writing dynamic descriptors.</p>
-<p>They both produce the descriptor: <code>wsh(thresh(2,pk(...),s:pk(...),sndv:older(...)))</code></p>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>my_key_1 = bitcoin::PublicKey::from_str(
- <span class="string">"02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c"</span>,
-)<span class="question-mark">?</span>;
-<span class="kw">let </span>my_key_2 =
- bitcoin::PrivateKey::from_wif(<span class="string">"cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy"</span>)<span class="question-mark">?</span>;
-<span class="kw">let </span>my_timelock = <span class="number">50</span>;
-
-<span class="kw">let </span>(descriptor_a, key_map_a, networks) = <span class="macro">bdk::descriptor! </span>{
- wsh (
- thresh(<span class="number">2</span>, pk(my_key_1), s:pk(my_key_2), s:n:d:v:older(my_timelock))
- )
-}<span class="question-mark">?</span>;
-
-<span class="attr">#[rustfmt::skip]
-</span><span class="kw">let </span>b_items = <span class="macro">vec!</span>[
- <span class="macro">bdk::fragment!</span>(pk(my_key_1))<span class="question-mark">?</span>,
- <span class="macro">bdk::fragment!</span>(s:pk(my_key_2))<span class="question-mark">?</span>,
- <span class="macro">bdk::fragment!</span>(s:n:d:v:older(my_timelock))<span class="question-mark">?</span>,
-];
-<span class="kw">let </span>(descriptor_b, <span class="kw-2">mut </span>key_map_b, networks) = <span class="macro">bdk::descriptor!</span>(wsh(thresh_vec(<span class="number">2</span>, b_items)))<span class="question-mark">?</span>;
-
-<span class="macro">assert_eq!</span>(descriptor_a, descriptor_b);
-<span class="macro">assert_eq!</span>(key_map_a.len(), key_map_b.len());</code></pre></div>
-<hr />
-<p>Simple 2-of-2 multi-signature, equivalent to: <code>wsh(multi(2, ...))</code></p>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>my_key_1 = bitcoin::PublicKey::from_str(
- <span class="string">"02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c"</span>,
-)<span class="question-mark">?</span>;
-<span class="kw">let </span>my_key_2 =
- bitcoin::PrivateKey::from_wif(<span class="string">"cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy"</span>)<span class="question-mark">?</span>;
-
-<span class="kw">let </span>(descriptor, key_map, networks) = <span class="macro">bdk::descriptor! </span>{
- wsh (
- multi(<span class="number">2</span>, my_key_1, my_key_2)
- )
-}<span class="question-mark">?</span>;</code></pre></div>
-<hr />
-<p>Native-Segwit single-sig, equivalent to: <code>wpkh(...)</code></p>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>my_key =
- bitcoin::PrivateKey::from_wif(<span class="string">"cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy"</span>)<span class="question-mark">?</span>;
-
-<span class="kw">let </span>(descriptor, key_map, networks) = <span class="macro">bdk::descriptor!</span>(wpkh(my_key))<span class="question-mark">?</span>;</code></pre></div>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta http-equiv="refresh" content="0;URL=macro.fragment.html">
- <title>Redirection</title>
-</head>
-<body>
- <p>Redirecting to <a href="macro.fragment.html">macro.fragment.html</a>...</p>
- <script>location.replace("macro.fragment.html" + location.search + location.hash);</script>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!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="Macro to write descriptor fragments with code"><meta name="keywords" content="rust, rustlang, rust-lang, fragment"><title>fragment in bdk - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc macro"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In bdk</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Macro <a href="index.html">bdk</a>::<wbr><a class="macro" href="#">fragment</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk/descriptor/dsl.rs.html#679-794">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><div class="example-wrap"><pre class="rust macro"><code><span class="macro">macro_rules! </span>fragment {
- ( <span class="macro-nonterminal">$modif</span>:tt : $( <span class="macro-nonterminal">$tail</span>:tt )* ) => { ... };
- ( <span class="bool-val">true </span>) => { ... };
- ( <span class="bool-val">false </span>) => { ... };
- ( pk_k ( <span class="macro-nonterminal">$key</span>:expr ) ) => { ... };
- ( pk ( <span class="macro-nonterminal">$key</span>:expr ) ) => { ... };
- ( pk_h ( <span class="macro-nonterminal">$key</span>:expr ) ) => { ... };
- ( after ( <span class="macro-nonterminal">$value</span>:expr ) ) => { ... };
- ( older ( <span class="macro-nonterminal">$value</span>:expr ) ) => { ... };
- ( sha256 ( <span class="macro-nonterminal">$hash</span>:expr ) ) => { ... };
- ( hash256 ( <span class="macro-nonterminal">$hash</span>:expr ) ) => { ... };
- ( ripemd160 ( <span class="macro-nonterminal">$hash</span>:expr ) ) => { ... };
- ( hash160 ( <span class="macro-nonterminal">$hash</span>:expr ) ) => { ... };
- ( and_v ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => { ... };
- ( and_b ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => { ... };
- ( and_or ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => { ... };
- ( andor ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => { ... };
- ( or_b ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => { ... };
- ( or_d ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => { ... };
- ( or_c ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => { ... };
- ( or_i ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => { ... };
- ( thresh_vec ( <span class="macro-nonterminal">$thresh</span>:expr, <span class="macro-nonterminal">$items</span>:expr ) ) => { ... };
- ( thresh ( <span class="macro-nonterminal">$thresh</span>:expr, $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => { ... };
- ( multi_vec ( <span class="macro-nonterminal">$thresh</span>:expr, <span class="macro-nonterminal">$keys</span>:expr ) ) => { ... };
- ( multi ( <span class="macro-nonterminal">$thresh</span>:expr $(, <span class="macro-nonterminal">$key</span>:expr )+ ) ) => { ... };
- ( multi_a_vec ( <span class="macro-nonterminal">$thresh</span>:expr, <span class="macro-nonterminal">$keys</span>:expr ) ) => { ... };
- ( multi_a ( <span class="macro-nonterminal">$thresh</span>:expr $(, <span class="macro-nonterminal">$key</span>:expr )+ ) ) => { ... };
- ( sortedmulti ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => { ... };
- ( sortedmulti_vec ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => { ... };
-}</code></pre></div>
-</div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Macro to write descriptor fragments with code</p>
-<p>This macro will be expanded to an object of type <code>Result<(Miniscript<DescriptorPublicKey, _>, KeyMap, ValidNetworks), DescriptorError></code>. It allows writing
-fragments of larger descriptors that can be pieced together using <code>fragment!(thresh_vec(m, ...))</code>.</p>
-<p>The syntax to write macro fragment is the same as documented for the <a href="macro.descriptor.html" title="descriptor"><code>descriptor</code></a> macro.</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Additional functions on the `rust-bitcoin` `Psbt` structure."><meta name="keywords" content="rust, rustlang, rust-lang, psbt"><title>bdk::psbt - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module psbt</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#traits">Traits</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../index.html">bdk</a>::<wbr><a class="mod" href="#">psbt</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/psbt/mod.rs.html#12-75">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Additional functions on the <code>rust-bitcoin</code> <code>Psbt</code> structure.</p>
-</div></details><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.PsbtUtils.html" title="bdk::psbt::PsbtUtils trait">PsbtUtils</a></div><div class="item-right docblock-short">Trait to add functions to extract utxos and calculate fees.</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-window.SIDEBAR_ITEMS = {"trait":[["PsbtUtils","Trait to add functions to extract utxos and calculate fees."]]};
\ No newline at end of file
+++ /dev/null
-<!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="Trait to add functions to extract utxos and calculate fees."><meta name="keywords" content="rust, rustlang, rust-lang, PsbtUtils"><title>PsbtUtils in bdk::psbt - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">PsbtUtils</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.fee_amount">fee_amount</a></li><li><a href="#tymethod.fee_rate">fee_rate</a></li><li><a href="#tymethod.get_utxo_for">get_utxo_for</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-PsbtUtils-for-Psbt">Psbt</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk::psbt</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../index.html">bdk</a>::<wbr><a href="index.html">psbt</a>::<wbr><a class="trait" href="#">PsbtUtils</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/psbt/mod.rs.html#23-36">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait PsbtUtils {
- fn <a href="#tymethod.get_utxo_for" class="fn">get_utxo_for</a>(&self, input_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><TxOut>;
-<span class="item-spacer"></span> fn <a href="#tymethod.fee_amount" class="fn">fee_amount</a>(&self) -> <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.u64.html">u64</a>>;
-<span class="item-spacer"></span> fn <a href="#tymethod.fee_rate" class="fn">fee_rate</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><FeeRate>;
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Trait to add functions to extract utxos and calculate fees.</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 method-toggle" open><summary><section id="tymethod.get_utxo_for" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/psbt/mod.rs.html#25">source</a><h4 class="code-header">fn <a href="#tymethod.get_utxo_for" class="fn">get_utxo_for</a>(&self, input_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><TxOut></h4></section></summary><div class="docblock"><p>Get the <code>TxOut</code> for the specified input index, if it doesn’t exist in the PSBT <code>None</code> is returned.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.fee_amount" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/psbt/mod.rs.html#29">source</a><h4 class="code-header">fn <a href="#tymethod.fee_amount" class="fn">fee_amount</a>(&self) -> <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.u64.html">u64</a>></h4></section></summary><div class="docblock"><p>The total transaction fee amount, sum of input amounts minus sum of output amounts, in sats.
-If the PSBT is missing a TxOut for an input returns None.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.fee_rate" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/psbt/mod.rs.html#35">source</a><h4 class="code-header">fn <a href="#tymethod.fee_rate" class="fn">fee_rate</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><FeeRate></h4></section></summary><div class="docblock"><p>The transaction’s fee rate. This value will only be accurate if calculated AFTER the
-<code>Psbt</code> is finalized and all witness/signature data is added to the
-transaction.
-If the PSBT is missing a TxOut for an input returns None.</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><section id="impl-PsbtUtils-for-Psbt" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/psbt/mod.rs.html#38-75">source</a><a href="#impl-PsbtUtils-for-Psbt" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.PsbtUtils.html" title="trait bdk::psbt::PsbtUtils">PsbtUtils</a> for Psbt</h3></section></summary><div class="impl-items"><section id="method.get_utxo_for" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/psbt/mod.rs.html#39-50">source</a><a href="#method.get_utxo_for" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.get_utxo_for" class="fn">get_utxo_for</a>(&self, input_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><TxOut></h4></section><section id="method.fee_amount" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/psbt/mod.rs.html#52-68">source</a><a href="#method.fee_amount" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.fee_amount" class="fn">fee_amount</a>(&self) -> <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.u64.html">u64</a>></h4></section><section id="method.fee_rate" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/psbt/mod.rs.html#70-74">source</a><a href="#method.fee_rate" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.fee_rate" class="fn">fee_rate</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><FeeRate></h4></section></div></details><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../implementors/bdk/psbt/trait.PsbtUtils.js" data-ignore-extern-crates="bitcoin" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-window.SIDEBAR_ITEMS = {"enum":[["KeychainKind","Types of keychains"],["Utxo","An unspent transaction output (UTXO)."]],"externcrate":[["bitcoin",""],["miniscript",""]],"fn":[["version","Get the version of BDK at runtime"]],"macro":[["descriptor","Macro to write full descriptors with code"],["fragment","Macro to write descriptor fragments with code"]],"mod":[["descriptor","Descriptors"],["keys","Key formats"],["psbt","Additional functions on the `rust-bitcoin` `Psbt` structure."],["wallet","Wallet"]],"struct":[["LocalOutput","An unspent output owned by a `Wallet`."],["WeightedUtxo","A [`Utxo`] with its `satisfaction_weight`."]]};
\ No newline at end of file
+++ /dev/null
-<!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="An unspent output owned by a `Wallet`."><meta name="keywords" content="rust, rustlang, rust-lang, LocalOutput"><title>LocalOutput in bdk - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">LocalOutput</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.confirmation_time">confirmation_time</a></li><li><a href="#structfield.derivation_index">derivation_index</a></li><li><a href="#structfield.is_spent">is_spent</a></li><li><a href="#structfield.keychain">keychain</a></li><li><a href="#structfield.outpoint">outpoint</a></li><li><a href="#structfield.txout">txout</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-LocalOutput">Clone</a></li><li><a href="#impl-Debug-for-LocalOutput">Debug</a></li><li><a href="#impl-Deserialize%3C%27de%3E-for-LocalOutput">Deserialize<'de></a></li><li><a href="#impl-Eq-for-LocalOutput">Eq</a></li><li><a href="#impl-Hash-for-LocalOutput">Hash</a></li><li><a href="#impl-PartialEq%3CLocalOutput%3E-for-LocalOutput">PartialEq<LocalOutput></a></li><li><a href="#impl-Serialize-for-LocalOutput">Serialize</a></li><li><a href="#impl-StructuralEq-for-LocalOutput">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-LocalOutput">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-LocalOutput">RefUnwindSafe</a></li><li><a href="#impl-Send-for-LocalOutput">Send</a></li><li><a href="#impl-Sync-for-LocalOutput">Sync</a></li><li><a href="#impl-Unpin-for-LocalOutput">Unpin</a></li><li><a href="#impl-UnwindSafe-for-LocalOutput">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-LocalOutput">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-LocalOutput">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-LocalOutput">BorrowMut<T></a></li><li><a href="#impl-DeserializeOwned-for-LocalOutput">DeserializeOwned</a></li><li><a href="#impl-From%3CT%3E-for-LocalOutput">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-LocalOutput">Into<U></a></li><li><a href="#impl-ToOwned-for-LocalOutput">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-LocalOutput">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-LocalOutput">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-LocalOutput">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="index.html">bdk</a>::<wbr><a class="struct" href="#">LocalOutput</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk/types.rs.html#53-66">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct LocalOutput {
- pub outpoint: OutPoint,
- pub txout: TxOut,
- pub keychain: <a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>,
- pub is_spent: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
- pub derivation_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
- pub confirmation_time: <a class="enum" href="../bdk_chain/chain_data/enum.ConfirmationTime.html" title="enum bdk_chain::chain_data::ConfirmationTime">ConfirmationTime</a>,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An unspent output owned by a <a href="wallet/struct.Wallet.html"><code>Wallet</code></a>.</p>
-</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.outpoint" class="structfield small-section-header"><a href="#structfield.outpoint" class="anchor field">§</a><code>outpoint: OutPoint</code></span><div class="docblock"><p>Reference to a transaction output</p>
-</div><span id="structfield.txout" class="structfield small-section-header"><a href="#structfield.txout" class="anchor field">§</a><code>txout: TxOut</code></span><div class="docblock"><p>Transaction output</p>
-</div><span id="structfield.keychain" class="structfield small-section-header"><a href="#structfield.keychain" class="anchor field">§</a><code>keychain: <a class="enum" href="enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></code></span><div class="docblock"><p>Type of keychain</p>
-</div><span id="structfield.is_spent" class="structfield small-section-header"><a href="#structfield.is_spent" class="anchor field">§</a><code>is_spent: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether this UTXO is spent or not</p>
-</div><span id="structfield.derivation_index" class="structfield small-section-header"><a href="#structfield.derivation_index" class="anchor field">§</a><code>derivation_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>The derivation index for the script pubkey in the wallet</p>
-</div><span id="structfield.confirmation_time" class="structfield small-section-header"><a href="#structfield.confirmation_time" class="anchor field">§</a><code>confirmation_time: <a class="enum" href="../bdk_chain/chain_data/enum.ConfirmationTime.html" title="enum bdk_chain::chain_data::ConfirmationTime">ConfirmationTime</a></code></span><div class="docblock"><p>The confirmation time for transaction containing this utxo</p>
-</div><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><section id="impl-Clone-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#52">source</a><a href="#impl-Clone-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk::LocalOutput">LocalOutput</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#52">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.LocalOutput.html" title="struct bdk::LocalOutput">LocalOutput</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#52">source</a><a href="#impl-Debug-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk::LocalOutput">LocalOutput</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#52">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserialize%3C%27de%3E-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#52">source</a><a href="#impl-Deserialize%3C%27de%3E-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk::LocalOutput">LocalOutput</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#52">source</a><a href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize" class="fn">deserialize</a><__D>(__deserializer: __D) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, __D::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>><span class="where fmt-newline">where<br> __D: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#52">source</a><a href="#impl-Hash-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk::LocalOutput">LocalOutput</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#52">source</a><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)</h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CLocalOutput%3E-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#52">source</a><a href="#impl-PartialEq%3CLocalOutput%3E-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.LocalOutput.html" title="struct bdk::LocalOutput">LocalOutput</a>> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk::LocalOutput">LocalOutput</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#52">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.LocalOutput.html" title="struct bdk::LocalOutput">LocalOutput</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#52">source</a><a href="#impl-Serialize-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk::LocalOutput">LocalOutput</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#52">source</a><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><__S>(&self, __serializer: __S) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><__S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, __S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> __S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#52">source</a><a href="#impl-Eq-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk::LocalOutput">LocalOutput</a></h3></section><section id="impl-StructuralEq-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#52">source</a><a href="#impl-StructuralEq-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk::LocalOutput">LocalOutput</a></h3></section><section id="impl-StructuralPartialEq-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#52">source</a><a href="#impl-StructuralPartialEq-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk::LocalOutput">LocalOutput</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-LocalOutput" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk::LocalOutput">LocalOutput</a></h3></section><section id="impl-Send-for-LocalOutput" class="impl has-srclink"><a href="#impl-Send-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk::LocalOutput">LocalOutput</a></h3></section><section id="impl-Sync-for-LocalOutput" class="impl has-srclink"><a href="#impl-Sync-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk::LocalOutput">LocalOutput</a></h3></section><section id="impl-Unpin-for-LocalOutput" class="impl has-srclink"><a href="#impl-Unpin-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk::LocalOutput">LocalOutput</a></h3></section><section id="impl-UnwindSafe-for-LocalOutput" class="impl has-srclink"><a href="#impl-UnwindSafe-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk::LocalOutput">LocalOutput</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-LocalOutput" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details><section id="impl-DeserializeOwned-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/serde/1.0.201/src/serde/de/mod.rs.html#608">source</a><a href="#impl-DeserializeOwned-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> for T<span class="where fmt-newline">where<br> T: for<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de>,</span></h3></section></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="A [`Utxo`] with its `satisfaction_weight`."><meta name="keywords" content="rust, rustlang, rust-lang, WeightedUtxo"><title>WeightedUtxo in bdk - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">WeightedUtxo</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.satisfaction_weight">satisfaction_weight</a></li><li><a href="#structfield.utxo">utxo</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-WeightedUtxo">Clone</a></li><li><a href="#impl-Debug-for-WeightedUtxo">Debug</a></li><li><a href="#impl-Eq-for-WeightedUtxo">Eq</a></li><li><a href="#impl-PartialEq%3CWeightedUtxo%3E-for-WeightedUtxo">PartialEq<WeightedUtxo></a></li><li><a href="#impl-StructuralEq-for-WeightedUtxo">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-WeightedUtxo">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-WeightedUtxo">RefUnwindSafe</a></li><li><a href="#impl-Send-for-WeightedUtxo">Send</a></li><li><a href="#impl-Sync-for-WeightedUtxo">Sync</a></li><li><a href="#impl-Unpin-for-WeightedUtxo">Unpin</a></li><li><a href="#impl-UnwindSafe-for-WeightedUtxo">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-WeightedUtxo">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-WeightedUtxo">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-WeightedUtxo">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-WeightedUtxo">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-WeightedUtxo">Into<U></a></li><li><a href="#impl-ToOwned-for-WeightedUtxo">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-WeightedUtxo">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-WeightedUtxo">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-WeightedUtxo">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="index.html">bdk</a>::<wbr><a class="struct" href="#">WeightedUtxo</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk/types.rs.html#70-78">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct WeightedUtxo {
- pub satisfaction_weight: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
- pub utxo: <a class="enum" href="enum.Utxo.html" title="enum bdk::Utxo">Utxo</a>,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A <a href="enum.Utxo.html" title="Utxo"><code>Utxo</code></a> with its <code>satisfaction_weight</code>.</p>
-</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.satisfaction_weight" class="structfield small-section-header"><a href="#structfield.satisfaction_weight" class="anchor field">§</a><code>satisfaction_weight: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code></span><div class="docblock"><p>The weight of the witness data and <code>scriptSig</code> expressed in <a href="https://en.bitcoin.it/wiki/Weight_units">weight units</a>. This is used to
-properly maintain the feerate when adding this input to a transaction during coin selection.</p>
-</div><span id="structfield.utxo" class="structfield small-section-header"><a href="#structfield.utxo" class="anchor field">§</a><code>utxo: <a class="enum" href="enum.Utxo.html" title="enum bdk::Utxo">Utxo</a></code></span><div class="docblock"><p>The UTXO</p>
-</div><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><section id="impl-Clone-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#69">source</a><a href="#impl-Clone-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#69">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#69">source</a><a href="#impl-Debug-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#69">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CWeightedUtxo%3E-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#69">source</a><a href="#impl-PartialEq%3CWeightedUtxo%3E-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a>> for <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#69">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><section id="impl-Eq-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#69">source</a><a href="#impl-Eq-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a></h3></section><section id="impl-StructuralEq-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#69">source</a><a href="#impl-StructuralEq-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a></h3></section><section id="impl-StructuralPartialEq-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk/types.rs.html#69">source</a><a href="#impl-StructuralPartialEq-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-WeightedUtxo" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a></h3></section><section id="impl-Send-for-WeightedUtxo" class="impl has-srclink"><a href="#impl-Send-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a></h3></section><section id="impl-Sync-for-WeightedUtxo" class="impl has-srclink"><a href="#impl-Sync-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a></h3></section><section id="impl-Unpin-for-WeightedUtxo" class="impl has-srclink"><a href="#impl-Unpin-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a></h3></section><section id="impl-UnwindSafe-for-WeightedUtxo" class="impl has-srclink"><a href="#impl-UnwindSafe-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-WeightedUtxo" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta http-equiv="refresh" content="0;URL=../../bdk/enum.KeychainKind.html">
- <title>Redirection</title>
-</head>
-<body>
- <p>Redirecting to <a href="../../bdk/enum.KeychainKind.html">../../bdk/enum.KeychainKind.html</a>...</p>
- <script>location.replace("../../bdk/enum.KeychainKind.html" + location.search + location.hash);</script>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta http-equiv="refresh" content="0;URL=../../bdk/enum.Utxo.html">
- <title>Redirection</title>
-</head>
-<body>
- <p>Redirecting to <a href="../../bdk/enum.Utxo.html">../../bdk/enum.Utxo.html</a>...</p>
- <script>location.replace("../../bdk/enum.Utxo.html" + location.search + location.hash);</script>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta http-equiv="refresh" content="0;URL=../../bdk/struct.LocalOutput.html">
- <title>Redirection</title>
-</head>
-<body>
- <p>Redirecting to <a href="../../bdk/struct.LocalOutput.html">../../bdk/struct.LocalOutput.html</a>...</p>
- <script>location.replace("../../bdk/struct.LocalOutput.html" + location.search + location.hash);</script>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta http-equiv="refresh" content="0;URL=../../bdk/struct.WeightedUtxo.html">
- <title>Redirection</title>
-</head>
-<body>
- <p>Redirecting to <a href="../../bdk/struct.WeightedUtxo.html">../../bdk/struct.WeightedUtxo.html</a>...</p>
- <script>location.replace("../../bdk/struct.WeightedUtxo.html" + location.search + location.hash);</script>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!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="Errors that can be thrown by the `coin_selection` module"><meta name="keywords" content="rust, rustlang, rust-lang, Error"><title>Error in bdk::wallet::coin_selection - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Error</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.BnBNoExactMatch">BnBNoExactMatch</a></li><li><a href="#variant.BnBTotalTriesExceeded">BnBTotalTriesExceeded</a></li><li><a href="#variant.InsufficientFunds">InsufficientFunds</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-Error">Debug</a></li><li><a href="#impl-Display-for-Error">Display</a></li><li><a href="#impl-Error-for-Error">Error</a></li><li><a href="#impl-From%3CError%3E-for-CreateTxError">From<Error></a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Error">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Error">Send</a></li><li><a href="#impl-Sync-for-Error">Sync</a></li><li><a href="#impl-Unpin-for-Error">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Error">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Error">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Error">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Error">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Error">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Error">Into<U></a></li><li><a href="#impl-Provider-for-Error">Provider</a></li><li><a href="#impl-ToString-for-Error">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Error">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Error">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Error">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::coin_selection</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">coin_selection</a>::<wbr><a class="enum" href="#">Error</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/coin_selection.rs.html#126-140">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum Error {
- InsufficientFunds {
- needed: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
- available: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
- },
- BnBNoExactMatch,
- BnBTotalTriesExceeded,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Errors that can be thrown by the <a href="index.html"><code>coin_selection</code></a> module</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.InsufficientFunds" class="variant"><a href="#variant.InsufficientFunds" class="anchor">§</a><h3 class="code-header">InsufficientFunds</h3></section><div class="sub-variant" id="variant.InsufficientFunds.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.InsufficientFunds.field.needed" class="small-section-header"><a href="#variant.InsufficientFunds.field.needed" class="anchor field">§</a><code>needed: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>Sats needed for some transaction</p>
-</div></div><div class="sub-variant-field"><span id="variant.InsufficientFunds.field.available" class="small-section-header"><a href="#variant.InsufficientFunds.field.available" class="anchor field">§</a><code>available: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>Sats available for spending</p>
-</div></div></div><div class="docblock"><p>Wallet’s UTXO set is not enough to cover recipient’s requested plus fee</p>
-</div><section id="variant.BnBNoExactMatch" class="variant"><a href="#variant.BnBNoExactMatch" class="anchor">§</a><h3 class="code-header">BnBNoExactMatch</h3></section><div class="docblock"><p>Branch and bound coin selection tries to avoid needing a change by finding the right inputs for
-the desired outputs plus fee, if there is not such combination this error is thrown</p>
-</div><section id="variant.BnBTotalTriesExceeded" class="variant"><a href="#variant.BnBTotalTriesExceeded" class="anchor">§</a><h3 class="code-header">BnBTotalTriesExceeded</h3></section><div class="docblock"><p>Branch and bound coin selection possible attempts with sufficiently big UTXO set could grow
-exponentially, thus a limit is set, and when hit, this error is thrown</p>
-</div></div><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><section id="impl-Debug-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#125">source</a><a href="#impl-Debug-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.Error.html" title="enum bdk::wallet::coin_selection::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#125">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#142-156">source</a><a href="#impl-Display-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.Error.html" title="enum bdk::wallet::coin_selection::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#143-155">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#159">source</a><a href="#impl-Error-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.Error.html" title="enum bdk::wallet::coin_selection::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#238-242">source</a><a href="#impl-From%3CError%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="enum.Error.html" title="enum bdk::wallet::coin_selection::Error">Error</a>> for <a class="enum" href="../error/enum.CreateTxError.html" title="enum bdk::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#239-241">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="enum" href="enum.Error.html" title="enum bdk::wallet::coin_selection::Error">Error</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Error" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.Error.html" title="enum bdk::wallet::coin_selection::Error">Error</a></h3></section><section id="impl-Send-for-Error" class="impl has-srclink"><a href="#impl-Send-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.Error.html" title="enum bdk::wallet::coin_selection::Error">Error</a></h3></section><section id="impl-Sync-for-Error" class="impl has-srclink"><a href="#impl-Sync-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.Error.html" title="enum bdk::wallet::coin_selection::Error">Error</a></h3></section><section id="impl-Unpin-for-Error" class="impl has-srclink"><a href="#impl-Unpin-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.Error.html" title="enum bdk::wallet::coin_selection::Error">Error</a></h3></section><section id="impl-UnwindSafe-for-Error" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.Error.html" title="enum bdk::wallet::coin_selection::Error">Error</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Error" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-Error" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
-provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-Error" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Error" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Remaining amount after performing coin selection"><meta name="keywords" content="rust, rustlang, rust-lang, Excess"><title>Excess in bdk::wallet::coin_selection - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Excess</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Change">Change</a></li><li><a href="#variant.NoChange">NoChange</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-Excess">Debug</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Excess">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Excess">Send</a></li><li><a href="#impl-Sync-for-Excess">Sync</a></li><li><a href="#impl-Unpin-for-Excess">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Excess">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Excess">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Excess">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Excess">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Excess">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Excess">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-Excess">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Excess">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Excess">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::coin_selection</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">coin_selection</a>::<wbr><a class="enum" href="#">Excess</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/coin_selection.rs.html#163-180">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum Excess {
- NoChange {
- dust_threshold: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
- remaining_amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
- change_fee: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
- },
- Change {
- amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
- fee: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
- },
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Remaining amount after performing coin selection</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.NoChange" class="variant"><a href="#variant.NoChange" class="anchor">§</a><h3 class="code-header">NoChange</h3></section><div class="sub-variant" id="variant.NoChange.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.NoChange.field.dust_threshold" class="small-section-header"><a href="#variant.NoChange.field.dust_threshold" class="anchor field">§</a><code>dust_threshold: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>Threshold to consider amount as dust for this particular change script_pubkey</p>
-</div></div><div class="sub-variant-field"><span id="variant.NoChange.field.remaining_amount" class="small-section-header"><a href="#variant.NoChange.field.remaining_amount" class="anchor field">§</a><code>remaining_amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>Exceeding amount of current selection over outgoing value and fee costs</p>
-</div></div><div class="sub-variant-field"><span id="variant.NoChange.field.change_fee" class="small-section-header"><a href="#variant.NoChange.field.change_fee" class="anchor field">§</a><code>change_fee: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>The calculated fee for the drain TxOut with the selected script_pubkey</p>
-</div></div></div><div class="docblock"><p>It’s not possible to create spendable output from excess using the current drain output</p>
-</div><section id="variant.Change" class="variant"><a href="#variant.Change" class="anchor">§</a><h3 class="code-header">Change</h3></section><div class="sub-variant" id="variant.Change.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Change.field.amount" class="small-section-header"><a href="#variant.Change.field.amount" class="anchor field">§</a><code>amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>Effective amount available to create change after deducting the change output fee</p>
-</div></div><div class="sub-variant-field"><span id="variant.Change.field.fee" class="small-section-header"><a href="#variant.Change.field.fee" class="anchor field">§</a><code>fee: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>The deducted change output fee</p>
-</div></div></div><div class="docblock"><p>It’s possible to create spendable output from excess using the current drain output</p>
-</div></div><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><section id="impl-Debug-for-Excess" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#161">source</a><a href="#impl-Debug-for-Excess" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.Excess.html" title="enum bdk::wallet::coin_selection::Excess">Excess</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#161">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Excess" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Excess" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.Excess.html" title="enum bdk::wallet::coin_selection::Excess">Excess</a></h3></section><section id="impl-Send-for-Excess" class="impl has-srclink"><a href="#impl-Send-for-Excess" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.Excess.html" title="enum bdk::wallet::coin_selection::Excess">Excess</a></h3></section><section id="impl-Sync-for-Excess" class="impl has-srclink"><a href="#impl-Sync-for-Excess" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.Excess.html" title="enum bdk::wallet::coin_selection::Excess">Excess</a></h3></section><section id="impl-Unpin-for-Excess" class="impl has-srclink"><a href="#impl-Unpin-for-Excess" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.Excess.html" title="enum bdk::wallet::coin_selection::Excess">Excess</a></h3></section><section id="impl-UnwindSafe-for-Excess" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Excess" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.Excess.html" title="enum bdk::wallet::coin_selection::Excess">Excess</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Excess" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Excess" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Excess" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Excess" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Excess" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Excess" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Excess" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Excess" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Excess" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Excess" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Excess" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Excess" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Excess" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Excess" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Excess" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Excess" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Decide if change can be created"><meta name="keywords" content="rust, rustlang, rust-lang, decide_change"><title>decide_change in bdk::wallet::coin_selection - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In bdk::wallet::coin_selection</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">coin_selection</a>::<wbr><a class="fn" href="#">decide_change</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/coin_selection.rs.html#311-331">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn decide_change(<br> remaining_amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,<br> fee_rate: FeeRate,<br> drain_script: &Script<br>) -> <a class="enum" href="enum.Excess.html" title="enum bdk::wallet::coin_selection::Excess">Excess</a></code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Decide if change can be created</p>
-<ul>
-<li><code>remaining_amount</code>: the amount in which the selected coins exceed the target amount</li>
-<li><code>fee_rate</code>: required fee rate for the current selection</li>
-<li><code>drain_script</code>: script to consider change creation</li>
-</ul>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Coin selection"><meta name="keywords" content="rust, rustlang, rust-lang, coin_selection"><title>bdk::wallet::coin_selection - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module coin_selection</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#traits">Traits</a></li><li><a href="#functions">Functions</a></li><li><a href="#types">Type Definitions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a class="mod" href="#">coin_selection</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/coin_selection.rs.html#12-1602">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Coin selection</p>
-<p>This module provides the trait <a href="trait.CoinSelectionAlgorithm.html" title="CoinSelectionAlgorithm"><code>CoinSelectionAlgorithm</code></a> that can be implemented to
-define custom coin selection algorithms.</p>
-<p>You can specify a custom coin selection algorithm through the <a href="../tx_builder/struct.TxBuilder.html#method.coin_selection"><code>coin_selection</code></a> method on
-<a href="../tx_builder/struct.TxBuilder.html"><code>TxBuilder</code></a>. <a href="type.DefaultCoinSelectionAlgorithm.html" title="DefaultCoinSelectionAlgorithm"><code>DefaultCoinSelectionAlgorithm</code></a> aliases the coin selection algorithm that will
-be used if it is not explicitly set.</p>
-<h3 id="example"><a href="#example">Example</a></h3>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#[derive(Debug)]
-</span><span class="kw">struct </span>AlwaysSpendEverything;
-
-<span class="kw">impl </span>CoinSelectionAlgorithm <span class="kw">for </span>AlwaysSpendEverything {
- <span class="kw">fn </span>coin_select(
- <span class="kw-2">&</span><span class="self">self</span>,
- required_utxos: Vec<WeightedUtxo>,
- optional_utxos: Vec<WeightedUtxo>,
- fee_rate: FeeRate,
- target_amount: u64,
- drain_script: <span class="kw-2">&</span>Script,
- ) -> <span class="prelude-ty">Result</span><CoinSelectionResult, coin_selection::Error> {
- <span class="kw">let </span><span class="kw-2">mut </span>selected_amount = <span class="number">0</span>;
- <span class="kw">let </span><span class="kw-2">mut </span>additional_weight = Weight::ZERO;
- <span class="kw">let </span>all_utxos_selected = required_utxos
- .into_iter()
- .chain(optional_utxos)
- .scan(
- (<span class="kw-2">&mut </span>selected_amount, <span class="kw-2">&mut </span>additional_weight),
- |(selected_amount, additional_weight), weighted_utxo| {
- <span class="kw-2">**</span>selected_amount += weighted_utxo.utxo.txout().value.to_sat();
- <span class="kw-2">**</span>additional_weight += Weight::from_wu(
- (TxIn::default().segwit_weight().to_wu()
- + weighted_utxo.satisfaction_weight <span class="kw">as </span>u64)
- <span class="kw">as </span>u64,
- );
- <span class="prelude-val">Some</span>(weighted_utxo.utxo)
- },
- )
- .collect::<Vec<<span class="kw">_</span>>>();
- <span class="kw">let </span>additional_fees = (fee_rate * additional_weight).to_sat();
- <span class="kw">let </span>amount_needed_with_fees = additional_fees + target_amount;
- <span class="kw">if </span>selected_amount < amount_needed_with_fees {
- <span class="kw">return </span><span class="prelude-val">Err</span>(coin_selection::Error::InsufficientFunds {
- needed: amount_needed_with_fees,
- available: selected_amount,
- });
- }
-
- <span class="kw">let </span>remaining_amount = selected_amount - amount_needed_with_fees;
-
- <span class="kw">let </span>excess = decide_change(remaining_amount, fee_rate, drain_script);
-
- <span class="prelude-val">Ok</span>(CoinSelectionResult {
- selected: all_utxos_selected,
- fee_amount: additional_fees,
- excess,
- })
- }
-}
-
-<span class="comment">// create wallet, sync, ...
-
-</span><span class="kw">let </span>to_address = Address::from_str(<span class="string">"2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt"</span>)
- .unwrap()
- .require_network(Network::Testnet)
- .unwrap();
-<span class="kw">let </span>psbt = {
- <span class="kw">let </span><span class="kw-2">mut </span>builder = wallet.build_tx().coin_selection(AlwaysSpendEverything);
- builder.add_recipient(to_address.script_pubkey(), Amount::from_sat(<span class="number">50_000</span>));
- builder.finish()<span class="question-mark">?
-</span>};
-
-<span class="comment">// inspect, sign, broadcast, ...
-</span></code></pre></div>
-</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="bdk::wallet::coin_selection::BranchAndBoundCoinSelection struct">BranchAndBoundCoinSelection</a></div><div class="item-right docblock-short">Branch and bound coin selection</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.CoinSelectionResult.html" title="bdk::wallet::coin_selection::CoinSelectionResult struct">CoinSelectionResult</a></div><div class="item-right docblock-short">Result of a successful coin selection</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.LargestFirstCoinSelection.html" title="bdk::wallet::coin_selection::LargestFirstCoinSelection struct">LargestFirstCoinSelection</a></div><div class="item-right docblock-short">Simple and dumb coin selection</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.OldestFirstCoinSelection.html" title="bdk::wallet::coin_selection::OldestFirstCoinSelection struct">OldestFirstCoinSelection</a></div><div class="item-right docblock-short">OldestFirstCoinSelection always picks the utxo with the smallest blockheight to add to the selected coins next</div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Error.html" title="bdk::wallet::coin_selection::Error enum">Error</a></div><div class="item-right docblock-short">Errors that can be thrown by the <a href="index.html"><code>coin_selection</code></a> module</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Excess.html" title="bdk::wallet::coin_selection::Excess enum">Excess</a></div><div class="item-right docblock-short">Remaining amount after performing coin selection</div></div></div><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.CoinSelectionAlgorithm.html" title="bdk::wallet::coin_selection::CoinSelectionAlgorithm trait">CoinSelectionAlgorithm</a></div><div class="item-right docblock-short">Trait for generalized coin selection algorithms</div></div></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.decide_change.html" title="bdk::wallet::coin_selection::decide_change fn">decide_change</a></div><div class="item-right docblock-short">Decide if change can be created</div></div></div><h2 id="types" class="small-section-header"><a href="#types">Type Definitions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="type" href="type.DefaultCoinSelectionAlgorithm.html" title="bdk::wallet::coin_selection::DefaultCoinSelectionAlgorithm type">DefaultCoinSelectionAlgorithm</a></div><div class="item-right docblock-short">Default coin selection algorithm used by <a href="../tx_builder/struct.TxBuilder.html"><code>TxBuilder</code></a> if not
-overridden</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-window.SIDEBAR_ITEMS = {"enum":[["Error","Errors that can be thrown by the `coin_selection` module"],["Excess","Remaining amount after performing coin selection"]],"fn":[["decide_change","Decide if change can be created"]],"struct":[["BranchAndBoundCoinSelection","Branch and bound coin selection"],["CoinSelectionResult","Result of a successful coin selection"],["LargestFirstCoinSelection","Simple and dumb coin selection"],["OldestFirstCoinSelection","OldestFirstCoinSelection always picks the utxo with the smallest blockheight to add to the selected coins next"]],"trait":[["CoinSelectionAlgorithm","Trait for generalized coin selection algorithms"]],"type":[["DefaultCoinSelectionAlgorithm","Default coin selection algorithm used by `TxBuilder` if not overridden"]]};
\ No newline at end of file
+++ /dev/null
-<!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="Branch and bound coin selection"><meta name="keywords" content="rust, rustlang, rust-lang, BranchAndBoundCoinSelection"><title>BranchAndBoundCoinSelection in bdk::wallet::coin_selection - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">BranchAndBoundCoinSelection</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.new">new</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-BranchAndBoundCoinSelection">Clone</a></li><li><a href="#impl-CoinSelectionAlgorithm-for-BranchAndBoundCoinSelection">CoinSelectionAlgorithm</a></li><li><a href="#impl-Debug-for-BranchAndBoundCoinSelection">Debug</a></li><li><a href="#impl-Default-for-BranchAndBoundCoinSelection">Default</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-BranchAndBoundCoinSelection">RefUnwindSafe</a></li><li><a href="#impl-Send-for-BranchAndBoundCoinSelection">Send</a></li><li><a href="#impl-Sync-for-BranchAndBoundCoinSelection">Sync</a></li><li><a href="#impl-Unpin-for-BranchAndBoundCoinSelection">Unpin</a></li><li><a href="#impl-UnwindSafe-for-BranchAndBoundCoinSelection">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-BranchAndBoundCoinSelection">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-BranchAndBoundCoinSelection">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-BranchAndBoundCoinSelection">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-BranchAndBoundCoinSelection">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-BranchAndBoundCoinSelection">Into<U></a></li><li><a href="#impl-ToOwned-for-BranchAndBoundCoinSelection">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-BranchAndBoundCoinSelection">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-BranchAndBoundCoinSelection">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-BranchAndBoundCoinSelection">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::coin_selection</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">coin_selection</a>::<wbr><a class="struct" href="#">BranchAndBoundCoinSelection</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/coin_selection.rs.html#410-412">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct BranchAndBoundCoinSelection { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Branch and bound coin selection</p>
-<p>Code adapted from Bitcoin Core’s implementation and from Mark Erhardt Master’s Thesis: <a href="http://murch.one/wp-content/uploads/2016/11/erhardt2016coinselection.pdf">http://murch.one/wp-content/uploads/2016/11/erhardt2016coinselection.pdf</a></p>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#423-428">source</a><a href="#impl-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#425-427">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(size_of_change: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>) -> Self</h4></section></summary><div class="docblock"><p>Create new instance with target size for change output</p>
-</div></details></div></details></div><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><section id="impl-Clone-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#409">source</a><a href="#impl-Clone-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#409">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-CoinSelectionAlgorithm-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#432-542">source</a><a href="#impl-CoinSelectionAlgorithm-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.CoinSelectionAlgorithm.html" title="trait bdk::wallet::coin_selection::CoinSelectionAlgorithm">CoinSelectionAlgorithm</a> for <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.coin_select" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#433-541">source</a><a href="#method.coin_select" class="anchor">§</a><h4 class="code-header">fn <a href="trait.CoinSelectionAlgorithm.html#tymethod.coin_select" class="fn">coin_select</a>(<br> &self,<br> required_utxos: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="../../struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a>>,<br> optional_utxos: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="../../struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a>>,<br> fee_rate: FeeRate,<br> target_amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,<br> drain_script: &Script<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="struct" href="struct.CoinSelectionResult.html" title="struct bdk::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a>, <a class="enum" href="enum.Error.html" title="enum bdk::wallet::coin_selection::Error">Error</a>></h4></section></summary><div class='docblock'>Perform the coin selection <a href="trait.CoinSelectionAlgorithm.html#tymethod.coin_select">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#409">source</a><a href="#impl-Debug-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#409">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#414-421">source</a><a href="#impl-Default-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#415-420">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> Self</h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h3></section><section id="impl-Send-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a href="#impl-Send-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h3></section><section id="impl-Sync-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a href="#impl-Sync-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h3></section><section id="impl-Unpin-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a href="#impl-Unpin-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h3></section><section id="impl-UnwindSafe-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a href="#impl-UnwindSafe-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Result of a successful coin selection"><meta name="keywords" content="rust, rustlang, rust-lang, CoinSelectionResult"><title>CoinSelectionResult in bdk::wallet::coin_selection - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">CoinSelectionResult</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.excess">excess</a></li><li><a href="#structfield.fee_amount">fee_amount</a></li><li><a href="#structfield.selected">selected</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.local_selected_amount">local_selected_amount</a></li><li><a href="#method.selected_amount">selected_amount</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-CoinSelectionResult">Debug</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-CoinSelectionResult">RefUnwindSafe</a></li><li><a href="#impl-Send-for-CoinSelectionResult">Send</a></li><li><a href="#impl-Sync-for-CoinSelectionResult">Sync</a></li><li><a href="#impl-Unpin-for-CoinSelectionResult">Unpin</a></li><li><a href="#impl-UnwindSafe-for-CoinSelectionResult">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-CoinSelectionResult">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-CoinSelectionResult">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-CoinSelectionResult">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-CoinSelectionResult">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-CoinSelectionResult">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-CoinSelectionResult">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-CoinSelectionResult">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-CoinSelectionResult">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::coin_selection</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">coin_selection</a>::<wbr><a class="struct" href="#">CoinSelectionResult</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/coin_selection.rs.html#184-191">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct CoinSelectionResult {
- pub selected: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="../../enum.Utxo.html" title="enum bdk::Utxo">Utxo</a>>,
- pub fee_amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
- pub excess: <a class="enum" href="enum.Excess.html" title="enum bdk::wallet::coin_selection::Excess">Excess</a>,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Result of a successful coin selection</p>
-</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.selected" class="structfield small-section-header"><a href="#structfield.selected" class="anchor field">§</a><code>selected: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="../../enum.Utxo.html" title="enum bdk::Utxo">Utxo</a>></code></span><div class="docblock"><p>List of outputs selected for use as inputs</p>
-</div><span id="structfield.fee_amount" class="structfield small-section-header"><a href="#structfield.fee_amount" class="anchor field">§</a><code>fee_amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>Total fee amount for the selected utxos in satoshis</p>
-</div><span id="structfield.excess" class="structfield small-section-header"><a href="#structfield.excess" class="anchor field">§</a><code>excess: <a class="enum" href="enum.Excess.html" title="enum bdk::wallet::coin_selection::Excess">Excess</a></code></span><div class="docblock"><p>Remaining amount after deducing fees and outgoing outputs</p>
-</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-CoinSelectionResult" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#193-209">source</a><a href="#impl-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.CoinSelectionResult.html" title="struct bdk::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.selected_amount" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#195-197">source</a><h4 class="code-header">pub fn <a href="#method.selected_amount" class="fn">selected_amount</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></h4></section></summary><div class="docblock"><p>The total value of the inputs selected.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.local_selected_amount" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#200-208">source</a><h4 class="code-header">pub fn <a href="#method.local_selected_amount" class="fn">local_selected_amount</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></h4></section></summary><div class="docblock"><p>The total value of the inputs selected from the local wallet.</p>
-</div></details></div></details></div><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><section id="impl-Debug-for-CoinSelectionResult" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#183">source</a><a href="#impl-Debug-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.CoinSelectionResult.html" title="struct bdk::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#183">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-CoinSelectionResult" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.CoinSelectionResult.html" title="struct bdk::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a></h3></section><section id="impl-Send-for-CoinSelectionResult" class="impl has-srclink"><a href="#impl-Send-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.CoinSelectionResult.html" title="struct bdk::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a></h3></section><section id="impl-Sync-for-CoinSelectionResult" class="impl has-srclink"><a href="#impl-Sync-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.CoinSelectionResult.html" title="struct bdk::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a></h3></section><section id="impl-Unpin-for-CoinSelectionResult" class="impl has-srclink"><a href="#impl-Unpin-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.CoinSelectionResult.html" title="struct bdk::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a></h3></section><section id="impl-UnwindSafe-for-CoinSelectionResult" class="impl has-srclink"><a href="#impl-UnwindSafe-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.CoinSelectionResult.html" title="struct bdk::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-CoinSelectionResult" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-CoinSelectionResult" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-CoinSelectionResult" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-CoinSelectionResult" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-CoinSelectionResult" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-CoinSelectionResult" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-CoinSelectionResult" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-CoinSelectionResult" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Simple and dumb coin selection"><meta name="keywords" content="rust, rustlang, rust-lang, LargestFirstCoinSelection"><title>LargestFirstCoinSelection in bdk::wallet::coin_selection - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">LargestFirstCoinSelection</a></h2><div class="sidebar-elems"><section><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-LargestFirstCoinSelection">Clone</a></li><li><a href="#impl-CoinSelectionAlgorithm-for-LargestFirstCoinSelection">CoinSelectionAlgorithm</a></li><li><a href="#impl-Copy-for-LargestFirstCoinSelection">Copy</a></li><li><a href="#impl-Debug-for-LargestFirstCoinSelection">Debug</a></li><li><a href="#impl-Default-for-LargestFirstCoinSelection">Default</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-LargestFirstCoinSelection">RefUnwindSafe</a></li><li><a href="#impl-Send-for-LargestFirstCoinSelection">Send</a></li><li><a href="#impl-Sync-for-LargestFirstCoinSelection">Sync</a></li><li><a href="#impl-Unpin-for-LargestFirstCoinSelection">Unpin</a></li><li><a href="#impl-UnwindSafe-for-LargestFirstCoinSelection">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-LargestFirstCoinSelection">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-LargestFirstCoinSelection">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-LargestFirstCoinSelection">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-LargestFirstCoinSelection">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-LargestFirstCoinSelection">Into<U></a></li><li><a href="#impl-ToOwned-for-LargestFirstCoinSelection">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-LargestFirstCoinSelection">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-LargestFirstCoinSelection">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-LargestFirstCoinSelection">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::coin_selection</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">coin_selection</a>::<wbr><a class="struct" href="#">LargestFirstCoinSelection</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/coin_selection.rs.html#246">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct LargestFirstCoinSelection;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Simple and dumb coin selection</p>
-<p>This coin selection algorithm sorts the available UTXOs by value and then picks them starting
-from the largest ones until the required amount is reached.</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><section id="impl-Clone-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#245">source</a><a href="#impl-Clone-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#245">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-CoinSelectionAlgorithm-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#248-269">source</a><a href="#impl-CoinSelectionAlgorithm-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.CoinSelectionAlgorithm.html" title="trait bdk::wallet::coin_selection::CoinSelectionAlgorithm">CoinSelectionAlgorithm</a> for <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.coin_select" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#249-268">source</a><a href="#method.coin_select" class="anchor">§</a><h4 class="code-header">fn <a href="trait.CoinSelectionAlgorithm.html#tymethod.coin_select" class="fn">coin_select</a>(<br> &self,<br> required_utxos: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="../../struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a>>,<br> optional_utxos: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="../../struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a>>,<br> fee_rate: FeeRate,<br> target_amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,<br> drain_script: &Script<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="struct" href="struct.CoinSelectionResult.html" title="struct bdk::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a>, <a class="enum" href="enum.Error.html" title="enum bdk::wallet::coin_selection::Error">Error</a>></h4></section></summary><div class='docblock'>Perform the coin selection <a href="trait.CoinSelectionAlgorithm.html#tymethod.coin_select">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#245">source</a><a href="#impl-Debug-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#245">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#245">source</a><a href="#impl-Default-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#245">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><section id="impl-Copy-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#245">source</a><a href="#impl-Copy-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-LargestFirstCoinSelection" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h3></section><section id="impl-Send-for-LargestFirstCoinSelection" class="impl has-srclink"><a href="#impl-Send-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h3></section><section id="impl-Sync-for-LargestFirstCoinSelection" class="impl has-srclink"><a href="#impl-Sync-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h3></section><section id="impl-Unpin-for-LargestFirstCoinSelection" class="impl has-srclink"><a href="#impl-Unpin-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h3></section><section id="impl-UnwindSafe-for-LargestFirstCoinSelection" class="impl has-srclink"><a href="#impl-UnwindSafe-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-LargestFirstCoinSelection" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="OldestFirstCoinSelection always picks the utxo with the smallest blockheight to add to the selected coins next"><meta name="keywords" content="rust, rustlang, rust-lang, OldestFirstCoinSelection"><title>OldestFirstCoinSelection in bdk::wallet::coin_selection - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">OldestFirstCoinSelection</a></h2><div class="sidebar-elems"><section><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-OldestFirstCoinSelection">Clone</a></li><li><a href="#impl-CoinSelectionAlgorithm-for-OldestFirstCoinSelection">CoinSelectionAlgorithm</a></li><li><a href="#impl-Copy-for-OldestFirstCoinSelection">Copy</a></li><li><a href="#impl-Debug-for-OldestFirstCoinSelection">Debug</a></li><li><a href="#impl-Default-for-OldestFirstCoinSelection">Default</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-OldestFirstCoinSelection">RefUnwindSafe</a></li><li><a href="#impl-Send-for-OldestFirstCoinSelection">Send</a></li><li><a href="#impl-Sync-for-OldestFirstCoinSelection">Sync</a></li><li><a href="#impl-Unpin-for-OldestFirstCoinSelection">Unpin</a></li><li><a href="#impl-UnwindSafe-for-OldestFirstCoinSelection">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-OldestFirstCoinSelection">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-OldestFirstCoinSelection">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-OldestFirstCoinSelection">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-OldestFirstCoinSelection">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-OldestFirstCoinSelection">Into<U></a></li><li><a href="#impl-ToOwned-for-OldestFirstCoinSelection">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-OldestFirstCoinSelection">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-OldestFirstCoinSelection">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-OldestFirstCoinSelection">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::coin_selection</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">coin_selection</a>::<wbr><a class="struct" href="#">OldestFirstCoinSelection</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/coin_selection.rs.html#276">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct OldestFirstCoinSelection;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>OldestFirstCoinSelection always picks the utxo with the smallest blockheight to add to the selected coins next</p>
-<p>This coin selection algorithm sorts the available UTXOs by blockheight and then picks them starting
-from the oldest ones until the required amount is reached.</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><section id="impl-Clone-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#275">source</a><a href="#impl-Clone-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#275">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-CoinSelectionAlgorithm-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#278-304">source</a><a href="#impl-CoinSelectionAlgorithm-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.CoinSelectionAlgorithm.html" title="trait bdk::wallet::coin_selection::CoinSelectionAlgorithm">CoinSelectionAlgorithm</a> for <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.coin_select" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#279-303">source</a><a href="#method.coin_select" class="anchor">§</a><h4 class="code-header">fn <a href="trait.CoinSelectionAlgorithm.html#tymethod.coin_select" class="fn">coin_select</a>(<br> &self,<br> required_utxos: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="../../struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a>>,<br> optional_utxos: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="../../struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a>>,<br> fee_rate: FeeRate,<br> target_amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,<br> drain_script: &Script<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="struct" href="struct.CoinSelectionResult.html" title="struct bdk::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a>, <a class="enum" href="enum.Error.html" title="enum bdk::wallet::coin_selection::Error">Error</a>></h4></section></summary><div class='docblock'>Perform the coin selection <a href="trait.CoinSelectionAlgorithm.html#tymethod.coin_select">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#275">source</a><a href="#impl-Debug-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#275">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#275">source</a><a href="#impl-Default-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#275">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><section id="impl-Copy-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#275">source</a><a href="#impl-Copy-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-OldestFirstCoinSelection" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h3></section><section id="impl-Send-for-OldestFirstCoinSelection" class="impl has-srclink"><a href="#impl-Send-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h3></section><section id="impl-Sync-for-OldestFirstCoinSelection" class="impl has-srclink"><a href="#impl-Sync-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h3></section><section id="impl-Unpin-for-OldestFirstCoinSelection" class="impl has-srclink"><a href="#impl-Unpin-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h3></section><section id="impl-UnwindSafe-for-OldestFirstCoinSelection" class="impl has-srclink"><a href="#impl-UnwindSafe-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-OldestFirstCoinSelection" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Trait for generalized coin selection algorithms"><meta name="keywords" content="rust, rustlang, rust-lang, CoinSelectionAlgorithm"><title>CoinSelectionAlgorithm in bdk::wallet::coin_selection - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">CoinSelectionAlgorithm</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.coin_select">coin_select</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk::wallet::coin_selection</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">coin_selection</a>::<wbr><a class="trait" href="#">CoinSelectionAlgorithm</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/coin_selection.rs.html#217-239">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait CoinSelectionAlgorithm: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> {
- fn <a href="#tymethod.coin_select" class="fn">coin_select</a>(<br> &self,<br> required_utxos: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="../../struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a>>,<br> optional_utxos: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="../../struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a>>,<br> fee_rate: FeeRate,<br> target_amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,<br> drain_script: &Script<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="struct" href="struct.CoinSelectionResult.html" title="struct bdk::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a>, <a class="enum" href="enum.Error.html" title="enum bdk::wallet::coin_selection::Error">Error</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 generalized coin selection algorithms</p>
-<p>This trait can be implemented to make the <a href="../struct.Wallet.html"><code>Wallet</code></a> use a customized coin
-selection algorithm when it creates transactions.</p>
-<p>For an example see <a href="index.html">this module</a>’s documentation.</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 method-toggle" open><summary><section id="tymethod.coin_select" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#231-238">source</a><h4 class="code-header">fn <a href="#tymethod.coin_select" class="fn">coin_select</a>(<br> &self,<br> required_utxos: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="../../struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a>>,<br> optional_utxos: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="../../struct.WeightedUtxo.html" title="struct bdk::WeightedUtxo">WeightedUtxo</a>>,<br> fee_rate: FeeRate,<br> target_amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,<br> drain_script: &Script<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="struct" href="struct.CoinSelectionResult.html" title="struct bdk::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a>, <a class="enum" href="enum.Error.html" title="enum bdk::wallet::coin_selection::Error">Error</a>></h4></section></summary><div class="docblock"><p>Perform the coin selection</p>
-<ul>
-<li><code>database</code>: a reference to the wallet’s database that can be used to lookup additional
-details for a specific UTXO</li>
-<li><code>required_utxos</code>: the utxos that must be spent regardless of <code>target_amount</code> with their
-weight cost</li>
-<li><code>optional_utxos</code>: the remaining available utxos to satisfy <code>target_amount</code> with their
-weight cost</li>
-<li><code>fee_rate</code>: fee rate to use</li>
-<li><code>target_amount</code>: the outgoing amount in satoshis and the fees already
-accumulated from added outputs and transaction’s header.</li>
-<li><code>drain_script</code>: the script to use in case of change</li>
-</ul>
-</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-CoinSelectionAlgorithm-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#432-542">source</a><a href="#impl-CoinSelectionAlgorithm-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.CoinSelectionAlgorithm.html" title="trait bdk::wallet::coin_selection::CoinSelectionAlgorithm">CoinSelectionAlgorithm</a> for <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h3></section><section id="impl-CoinSelectionAlgorithm-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#248-269">source</a><a href="#impl-CoinSelectionAlgorithm-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.CoinSelectionAlgorithm.html" title="trait bdk::wallet::coin_selection::CoinSelectionAlgorithm">CoinSelectionAlgorithm</a> for <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h3></section><section id="impl-CoinSelectionAlgorithm-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/coin_selection.rs.html#278-304">source</a><a href="#impl-CoinSelectionAlgorithm-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.CoinSelectionAlgorithm.html" title="trait bdk::wallet::coin_selection::CoinSelectionAlgorithm">CoinSelectionAlgorithm</a> for <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h3></section></div><script src="../../../implementors/bdk/wallet/coin_selection/trait.CoinSelectionAlgorithm.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Default coin selection algorithm used by `TxBuilder` if not overridden"><meta name="keywords" content="rust, rustlang, rust-lang, DefaultCoinSelectionAlgorithm"><title>DefaultCoinSelectionAlgorithm in bdk::wallet::coin_selection - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">DefaultCoinSelectionAlgorithm</a></h2><div class="sidebar-elems"><h2><a href="index.html">In bdk::wallet::coin_selection</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">coin_selection</a>::<wbr><a class="type" href="#">DefaultCoinSelectionAlgorithm</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/coin_selection.rs.html#122">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub type DefaultCoinSelectionAlgorithm = <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a>;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Default coin selection algorithm used by <a href="../tx_builder/struct.TxBuilder.html"><code>TxBuilder</code></a> if not
-overridden</p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="An error that may occur when applying a block to [`Wallet`]."><meta name="keywords" content="rust, rustlang, rust-lang, ApplyBlockError"><title>ApplyBlockError in bdk::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">ApplyBlockError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.CannotConnect">CannotConnect</a></li><li><a href="#variant.UnexpectedConnectedToHash">UnexpectedConnectedToHash</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-ApplyBlockError">Debug</a></li><li><a href="#impl-Display-for-ApplyBlockError">Display</a></li><li><a href="#impl-Error-for-ApplyBlockError">Error</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-ApplyBlockError">RefUnwindSafe</a></li><li><a href="#impl-Send-for-ApplyBlockError">Send</a></li><li><a href="#impl-Sync-for-ApplyBlockError">Sync</a></li><li><a href="#impl-Unpin-for-ApplyBlockError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-ApplyBlockError">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-ApplyBlockError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-ApplyBlockError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-ApplyBlockError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-ApplyBlockError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-ApplyBlockError">Into<U></a></li><li><a href="#impl-Provider-for-ApplyBlockError">Provider</a></li><li><a href="#impl-ToString-for-ApplyBlockError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-ApplyBlockError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-ApplyBlockError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-ApplyBlockError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="enum" href="#">ApplyBlockError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/wallet/mod.rs.html#431-441">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum ApplyBlockError {
- CannotConnect(<a class="struct" href="../../bdk_chain/local_chain/struct.CannotConnectError.html" title="struct bdk_chain::local_chain::CannotConnectError">CannotConnectError</a>),
- UnexpectedConnectedToHash {
- connected_to_hash: BlockHash,
- expected_hash: BlockHash,
- },
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An error that may occur when applying a block to <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>.</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.CannotConnect" class="variant"><a href="#variant.CannotConnect" class="anchor">§</a><h3 class="code-header">CannotConnect(<a class="struct" href="../../bdk_chain/local_chain/struct.CannotConnectError.html" title="struct bdk_chain::local_chain::CannotConnectError">CannotConnectError</a>)</h3></section><div class="docblock"><p>Occurs when the update chain cannot connect with original chain.</p>
-</div><section id="variant.UnexpectedConnectedToHash" class="variant"><a href="#variant.UnexpectedConnectedToHash" class="anchor">§</a><h3 class="code-header">UnexpectedConnectedToHash</h3></section><div class="sub-variant" id="variant.UnexpectedConnectedToHash.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.UnexpectedConnectedToHash.field.connected_to_hash" class="small-section-header"><a href="#variant.UnexpectedConnectedToHash.field.connected_to_hash" class="anchor field">§</a><code>connected_to_hash: BlockHash</code></span><div class="docblock"><p>Block hash of <code>connected_to</code>.</p>
-</div></div><div class="sub-variant-field"><span id="variant.UnexpectedConnectedToHash.field.expected_hash" class="small-section-header"><a href="#variant.UnexpectedConnectedToHash.field.expected_hash" class="anchor field">§</a><code>expected_hash: BlockHash</code></span><div class="docblock"><p>Expected block hash of <code>connected_to</code>, as derived from <code>block</code>.</p>
-</div></div></div><div class="docblock"><p>Occurs when the <code>connected_to</code> hash does not match the hash derived from <code>block</code>.</p>
-</div></div><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><section id="impl-Debug-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#430">source</a><a href="#impl-Debug-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.ApplyBlockError.html" title="enum bdk::wallet::ApplyBlockError">ApplyBlockError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#430">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#443-457">source</a><a href="#impl-Display-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.ApplyBlockError.html" title="enum bdk::wallet::ApplyBlockError">ApplyBlockError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#444-456">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#460">source</a><a href="#impl-Error-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.ApplyBlockError.html" title="enum bdk::wallet::ApplyBlockError">ApplyBlockError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-ApplyBlockError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.ApplyBlockError.html" title="enum bdk::wallet::ApplyBlockError">ApplyBlockError</a></h3></section><section id="impl-Send-for-ApplyBlockError" class="impl has-srclink"><a href="#impl-Send-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.ApplyBlockError.html" title="enum bdk::wallet::ApplyBlockError">ApplyBlockError</a></h3></section><section id="impl-Sync-for-ApplyBlockError" class="impl has-srclink"><a href="#impl-Sync-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.ApplyBlockError.html" title="enum bdk::wallet::ApplyBlockError">ApplyBlockError</a></h3></section><section id="impl-Unpin-for-ApplyBlockError" class="impl has-srclink"><a href="#impl-Unpin-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.ApplyBlockError.html" title="enum bdk::wallet::ApplyBlockError">ApplyBlockError</a></h3></section><section id="impl-UnwindSafe-for-ApplyBlockError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.ApplyBlockError.html" title="enum bdk::wallet::ApplyBlockError">ApplyBlockError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
-provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-ApplyBlockError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="An error that may occur when inserting a transaction into [`Wallet`]."><meta name="keywords" content="rust, rustlang, rust-lang, InsertTxError"><title>InsertTxError in bdk::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">InsertTxError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.ConfirmationHeightCannotBeGreaterThanTip">ConfirmationHeightCannotBeGreaterThanTip</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-InsertTxError">Debug</a></li><li><a href="#impl-Display-for-InsertTxError">Display</a></li><li><a href="#impl-Error-for-InsertTxError">Error</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-InsertTxError">RefUnwindSafe</a></li><li><a href="#impl-Send-for-InsertTxError">Send</a></li><li><a href="#impl-Sync-for-InsertTxError">Sync</a></li><li><a href="#impl-Unpin-for-InsertTxError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-InsertTxError">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-InsertTxError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-InsertTxError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-InsertTxError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-InsertTxError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-InsertTxError">Into<U></a></li><li><a href="#impl-Provider-for-InsertTxError">Provider</a></li><li><a href="#impl-ToString-for-InsertTxError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-InsertTxError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-InsertTxError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-InsertTxError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="enum" href="#">InsertTxError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/wallet/mod.rs.html#402-411">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum InsertTxError {
- ConfirmationHeightCannotBeGreaterThanTip {
- tip_height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
- tx_height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
- },
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An error that may occur when inserting a transaction into <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>.</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.ConfirmationHeightCannotBeGreaterThanTip" class="variant"><a href="#variant.ConfirmationHeightCannotBeGreaterThanTip" class="anchor">§</a><h3 class="code-header">ConfirmationHeightCannotBeGreaterThanTip</h3></section><div class="sub-variant" id="variant.ConfirmationHeightCannotBeGreaterThanTip.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.ConfirmationHeightCannotBeGreaterThanTip.field.tip_height" class="small-section-header"><a href="#variant.ConfirmationHeightCannotBeGreaterThanTip.field.tip_height" class="anchor field">§</a><code>tip_height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>The internal chain’s tip height.</p>
-</div></div><div class="sub-variant-field"><span id="variant.ConfirmationHeightCannotBeGreaterThanTip.field.tx_height" class="small-section-header"><a href="#variant.ConfirmationHeightCannotBeGreaterThanTip.field.tx_height" class="anchor field">§</a><code>tx_height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>The introduced transaction’s confirmation height.</p>
-</div></div></div><div class="docblock"><p>The error variant that occurs when the caller attempts to insert a transaction with a
-confirmation height that is greater than the internal chain tip.</p>
-</div></div><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><section id="impl-Debug-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#401">source</a><a href="#impl-Debug-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.InsertTxError.html" title="enum bdk::wallet::InsertTxError">InsertTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#401">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#413-424">source</a><a href="#impl-Display-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.InsertTxError.html" title="enum bdk::wallet::InsertTxError">InsertTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#414-423">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#427">source</a><a href="#impl-Error-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.InsertTxError.html" title="enum bdk::wallet::InsertTxError">InsertTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-InsertTxError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.InsertTxError.html" title="enum bdk::wallet::InsertTxError">InsertTxError</a></h3></section><section id="impl-Send-for-InsertTxError" class="impl has-srclink"><a href="#impl-Send-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.InsertTxError.html" title="enum bdk::wallet::InsertTxError">InsertTxError</a></h3></section><section id="impl-Sync-for-InsertTxError" class="impl has-srclink"><a href="#impl-Sync-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.InsertTxError.html" title="enum bdk::wallet::InsertTxError">InsertTxError</a></h3></section><section id="impl-Unpin-for-InsertTxError" class="impl has-srclink"><a href="#impl-Unpin-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.InsertTxError.html" title="enum bdk::wallet::InsertTxError">InsertTxError</a></h3></section><section id="impl-UnwindSafe-for-InsertTxError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.InsertTxError.html" title="enum bdk::wallet::InsertTxError">InsertTxError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
-provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-InsertTxError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="The error type when loading a [`Wallet`] from persistence."><meta name="keywords" content="rust, rustlang, rust-lang, LoadError"><title>LoadError in bdk::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">LoadError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Descriptor">Descriptor</a></li><li><a href="#variant.MissingDescriptor">MissingDescriptor</a></li><li><a href="#variant.MissingGenesis">MissingGenesis</a></li><li><a href="#variant.MissingNetwork">MissingNetwork</a></li><li><a href="#variant.NotInitialized">NotInitialized</a></li><li><a href="#variant.Persist">Persist</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-LoadError">Debug</a></li><li><a href="#impl-Display-for-LoadError">Display</a></li><li><a href="#impl-Error-for-LoadError">Error</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-LoadError">!RefUnwindSafe</a></li><li><a href="#impl-Send-for-LoadError">Send</a></li><li><a href="#impl-Sync-for-LoadError">Sync</a></li><li><a href="#impl-Unpin-for-LoadError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-LoadError">!UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-LoadError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-LoadError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-LoadError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-LoadError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-LoadError">Into<U></a></li><li><a href="#impl-Provider-for-LoadError">Provider</a></li><li><a href="#impl-ToString-for-LoadError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-LoadError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-LoadError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-LoadError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="enum" href="#">LoadError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/wallet/mod.rs.html#298-311">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum LoadError {
- Descriptor(<a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>),
- Persist(<a class="struct" href="https://docs.rs/anyhow/1.0.83/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>),
- NotInitialized,
- MissingNetwork,
- MissingGenesis,
- MissingDescriptor,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The error type when loading a <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a> from persistence.</p>
-<p>Method <a href="struct.Wallet.html#method.load"><code>load</code></a> may return this error.</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Descriptor" class="variant"><a href="#variant.Descriptor" class="anchor">§</a><h3 class="code-header">Descriptor(<a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>)</h3></section><div class="docblock"><p>There was a problem with the passed-in descriptor(s).</p>
-</div><section id="variant.Persist" class="variant"><a href="#variant.Persist" class="anchor">§</a><h3 class="code-header">Persist(<a class="struct" href="https://docs.rs/anyhow/1.0.83/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>)</h3></section><div class="docblock"><p>Loading data from the persistence backend failed.</p>
-</div><section id="variant.NotInitialized" class="variant"><a href="#variant.NotInitialized" class="anchor">§</a><h3 class="code-header">NotInitialized</h3></section><div class="docblock"><p>Wallet not initialized, persistence backend is empty.</p>
-</div><section id="variant.MissingNetwork" class="variant"><a href="#variant.MissingNetwork" class="anchor">§</a><h3 class="code-header">MissingNetwork</h3></section><div class="docblock"><p>Data loaded from persistence is missing network type.</p>
-</div><section id="variant.MissingGenesis" class="variant"><a href="#variant.MissingGenesis" class="anchor">§</a><h3 class="code-header">MissingGenesis</h3></section><div class="docblock"><p>Data loaded from persistence is missing genesis hash.</p>
-</div><section id="variant.MissingDescriptor" class="variant"><a href="#variant.MissingDescriptor" class="anchor">§</a><h3 class="code-header">MissingDescriptor</h3></section><div class="docblock"><p>Data loaded from persistence is missing descriptor.</p>
-</div></div><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><section id="impl-Debug-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#297">source</a><a href="#impl-Debug-for-LoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.LoadError.html" title="enum bdk::wallet::LoadError">LoadError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#297">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#313-326">source</a><a href="#impl-Display-for-LoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.LoadError.html" title="enum bdk::wallet::LoadError">LoadError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#314-325">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#329">source</a><a href="#impl-Error-for-LoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.LoadError.html" title="enum bdk::wallet::LoadError">LoadError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-LoadError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-LoadError" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.LoadError.html" title="enum bdk::wallet::LoadError">LoadError</a></h3></section><section id="impl-Send-for-LoadError" class="impl has-srclink"><a href="#impl-Send-for-LoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.LoadError.html" title="enum bdk::wallet::LoadError">LoadError</a></h3></section><section id="impl-Sync-for-LoadError" class="impl has-srclink"><a href="#impl-Sync-for-LoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.LoadError.html" title="enum bdk::wallet::LoadError">LoadError</a></h3></section><section id="impl-Unpin-for-LoadError" class="impl has-srclink"><a href="#impl-Unpin-for-LoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.LoadError.html" title="enum bdk::wallet::LoadError">LoadError</a></h3></section><section id="impl-UnwindSafe-for-LoadError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-LoadError" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.LoadError.html" title="enum bdk::wallet::LoadError">LoadError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-LoadError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-LoadError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-LoadError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-LoadError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-LoadError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-LoadError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
-provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-LoadError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-LoadError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-LoadError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-LoadError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-LoadError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="The error type when constructing a fresh [`Wallet`]."><meta name="keywords" content="rust, rustlang, rust-lang, NewError"><title>NewError in bdk::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">NewError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Descriptor">Descriptor</a></li><li><a href="#variant.NonEmptyDatabase">NonEmptyDatabase</a></li><li><a href="#variant.Persist">Persist</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-NewError">Debug</a></li><li><a href="#impl-Display-for-NewError">Display</a></li><li><a href="#impl-Error-for-NewError">Error</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-NewError">!RefUnwindSafe</a></li><li><a href="#impl-Send-for-NewError">Send</a></li><li><a href="#impl-Sync-for-NewError">Sync</a></li><li><a href="#impl-Unpin-for-NewError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-NewError">!UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-NewError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-NewError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-NewError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-NewError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-NewError">Into<U></a></li><li><a href="#impl-Provider-for-NewError">Provider</a></li><li><a href="#impl-ToString-for-NewError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-NewError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-NewError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-NewError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="enum" href="#">NewError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/wallet/mod.rs.html#267-274">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum NewError {
- NonEmptyDatabase,
- Descriptor(<a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>),
- Persist(<a class="struct" href="https://docs.rs/anyhow/1.0.83/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>),
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The error type when constructing a fresh <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>.</p>
-<p>Methods <a href="struct.Wallet.html#method.new"><code>new</code></a> and <a href="struct.Wallet.html#method.new_with_genesis_hash"><code>new_with_genesis_hash</code></a> may return this error.</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.NonEmptyDatabase" class="variant"><a href="#variant.NonEmptyDatabase" class="anchor">§</a><h3 class="code-header">NonEmptyDatabase</h3></section><div class="docblock"><p>Database already has data.</p>
-</div><section id="variant.Descriptor" class="variant"><a href="#variant.Descriptor" class="anchor">§</a><h3 class="code-header">Descriptor(<a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>)</h3></section><div class="docblock"><p>There was problem with the passed-in descriptor(s).</p>
-</div><section id="variant.Persist" class="variant"><a href="#variant.Persist" class="anchor">§</a><h3 class="code-header">Persist(<a class="struct" href="https://docs.rs/anyhow/1.0.83/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>)</h3></section><div class="docblock"><p>We were unable to write the wallet’s data to the persistence backend.</p>
-</div></div><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><section id="impl-Debug-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#266">source</a><a href="#impl-Debug-for-NewError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.NewError.html" title="enum bdk::wallet::NewError">NewError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#266">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#276-287">source</a><a href="#impl-Display-for-NewError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.NewError.html" title="enum bdk::wallet::NewError">NewError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#277-286">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#290">source</a><a href="#impl-Error-for-NewError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.NewError.html" title="enum bdk::wallet::NewError">NewError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-NewError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-NewError" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.NewError.html" title="enum bdk::wallet::NewError">NewError</a></h3></section><section id="impl-Send-for-NewError" class="impl has-srclink"><a href="#impl-Send-for-NewError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.NewError.html" title="enum bdk::wallet::NewError">NewError</a></h3></section><section id="impl-Sync-for-NewError" class="impl has-srclink"><a href="#impl-Sync-for-NewError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.NewError.html" title="enum bdk::wallet::NewError">NewError</a></h3></section><section id="impl-Unpin-for-NewError" class="impl has-srclink"><a href="#impl-Unpin-for-NewError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.NewError.html" title="enum bdk::wallet::NewError">NewError</a></h3></section><section id="impl-UnwindSafe-for-NewError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-NewError" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.NewError.html" title="enum bdk::wallet::NewError">NewError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-NewError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-NewError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-NewError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-NewError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-NewError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-NewError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
-provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-NewError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-NewError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-NewError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-NewError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-NewError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Error type for when we try load a [`Wallet`] from persistence and creating it if non-existent."><meta name="keywords" content="rust, rustlang, rust-lang, NewOrLoadError"><title>NewOrLoadError in bdk::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">NewOrLoadError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Descriptor">Descriptor</a></li><li><a href="#variant.LoadedDescriptorDoesNotMatch">LoadedDescriptorDoesNotMatch</a></li><li><a href="#variant.LoadedGenesisDoesNotMatch">LoadedGenesisDoesNotMatch</a></li><li><a href="#variant.LoadedNetworkDoesNotMatch">LoadedNetworkDoesNotMatch</a></li><li><a href="#variant.NotInitialized">NotInitialized</a></li><li><a href="#variant.Persist">Persist</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-NewOrLoadError">Debug</a></li><li><a href="#impl-Display-for-NewOrLoadError">Display</a></li><li><a href="#impl-Error-for-NewOrLoadError">Error</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-NewOrLoadError">!RefUnwindSafe</a></li><li><a href="#impl-Send-for-NewOrLoadError">Send</a></li><li><a href="#impl-Sync-for-NewOrLoadError">Sync</a></li><li><a href="#impl-Unpin-for-NewOrLoadError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-NewOrLoadError">!UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-NewOrLoadError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-NewOrLoadError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-NewOrLoadError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-NewOrLoadError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-NewOrLoadError">Into<U></a></li><li><a href="#impl-Provider-for-NewOrLoadError">Provider</a></li><li><a href="#impl-ToString-for-NewOrLoadError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-NewOrLoadError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-NewOrLoadError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-NewOrLoadError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="enum" href="#">NewOrLoadError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/wallet/mod.rs.html#338-366">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum NewOrLoadError {
- Descriptor(<a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>),
- Persist(<a class="struct" href="https://docs.rs/anyhow/1.0.83/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>),
- NotInitialized,
- LoadedGenesisDoesNotMatch {
- expected: BlockHash,
- got: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><BlockHash>,
- },
- LoadedNetworkDoesNotMatch {
- expected: Network,
- got: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Network>,
- },
- LoadedDescriptorDoesNotMatch {
- got: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="type" href="../descriptor/type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>>,
- keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>,
- },
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Error type for when we try load a <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a> from persistence and creating it if non-existent.</p>
-<p>Methods <a href="struct.Wallet.html#method.new_or_load"><code>new_or_load</code></a> and <a href="struct.Wallet.html#method.new_or_load_with_genesis_hash"><code>new_or_load_with_genesis_hash</code></a> may return this error.</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Descriptor" class="variant"><a href="#variant.Descriptor" class="anchor">§</a><h3 class="code-header">Descriptor(<a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>)</h3></section><div class="docblock"><p>There is a problem with the passed-in descriptor.</p>
-</div><section id="variant.Persist" class="variant"><a href="#variant.Persist" class="anchor">§</a><h3 class="code-header">Persist(<a class="struct" href="https://docs.rs/anyhow/1.0.83/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>)</h3></section><div class="docblock"><p>Either writing to or loading from the persistence backend failed.</p>
-</div><section id="variant.NotInitialized" class="variant"><a href="#variant.NotInitialized" class="anchor">§</a><h3 class="code-header">NotInitialized</h3></section><div class="docblock"><p>Wallet is not initialized, persistence backend is empty.</p>
-</div><section id="variant.LoadedGenesisDoesNotMatch" class="variant"><a href="#variant.LoadedGenesisDoesNotMatch" class="anchor">§</a><h3 class="code-header">LoadedGenesisDoesNotMatch</h3></section><div class="sub-variant" id="variant.LoadedGenesisDoesNotMatch.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.LoadedGenesisDoesNotMatch.field.expected" class="small-section-header"><a href="#variant.LoadedGenesisDoesNotMatch.field.expected" class="anchor field">§</a><code>expected: BlockHash</code></span><div class="docblock"><p>The expected genesis block hash.</p>
-</div></div><div class="sub-variant-field"><span id="variant.LoadedGenesisDoesNotMatch.field.got" class="small-section-header"><a href="#variant.LoadedGenesisDoesNotMatch.field.got" class="anchor field">§</a><code>got: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><BlockHash></code></span><div class="docblock"><p>The block hash loaded from persistence.</p>
-</div></div></div><div class="docblock"><p>The loaded genesis hash does not match what was provided.</p>
-</div><section id="variant.LoadedNetworkDoesNotMatch" class="variant"><a href="#variant.LoadedNetworkDoesNotMatch" class="anchor">§</a><h3 class="code-header">LoadedNetworkDoesNotMatch</h3></section><div class="sub-variant" id="variant.LoadedNetworkDoesNotMatch.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.LoadedNetworkDoesNotMatch.field.expected" class="small-section-header"><a href="#variant.LoadedNetworkDoesNotMatch.field.expected" class="anchor field">§</a><code>expected: Network</code></span><div class="docblock"><p>The expected network type.</p>
-</div></div><div class="sub-variant-field"><span id="variant.LoadedNetworkDoesNotMatch.field.got" class="small-section-header"><a href="#variant.LoadedNetworkDoesNotMatch.field.got" class="anchor field">§</a><code>got: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Network></code></span><div class="docblock"><p>The network type loaded from persistence.</p>
-</div></div></div><div class="docblock"><p>The loaded network type does not match what was provided.</p>
-</div><section id="variant.LoadedDescriptorDoesNotMatch" class="variant"><a href="#variant.LoadedDescriptorDoesNotMatch" class="anchor">§</a><h3 class="code-header">LoadedDescriptorDoesNotMatch</h3></section><div class="sub-variant" id="variant.LoadedDescriptorDoesNotMatch.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.LoadedDescriptorDoesNotMatch.field.got" class="small-section-header"><a href="#variant.LoadedDescriptorDoesNotMatch.field.got" class="anchor field">§</a><code>got: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="type" href="../descriptor/type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>></code></span><div class="docblock"><p>The descriptor loaded from persistence.</p>
-</div></div><div class="sub-variant-field"><span id="variant.LoadedDescriptorDoesNotMatch.field.keychain" class="small-section-header"><a href="#variant.LoadedDescriptorDoesNotMatch.field.keychain" class="anchor field">§</a><code>keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></code></span><div class="docblock"><p>The keychain of the descriptor not matching</p>
-</div></div></div><div class="docblock"><p>The loaded desccriptor does not match what was provided.</p>
-</div></div><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><section id="impl-Debug-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#337">source</a><a href="#impl-Debug-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.NewOrLoadError.html" title="enum bdk::wallet::NewOrLoadError">NewOrLoadError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#337">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#368-395">source</a><a href="#impl-Display-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.NewOrLoadError.html" title="enum bdk::wallet::NewOrLoadError">NewOrLoadError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#369-394">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#398">source</a><a href="#impl-Error-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.NewOrLoadError.html" title="enum bdk::wallet::NewOrLoadError">NewOrLoadError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-NewOrLoadError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.NewOrLoadError.html" title="enum bdk::wallet::NewOrLoadError">NewOrLoadError</a></h3></section><section id="impl-Send-for-NewOrLoadError" class="impl has-srclink"><a href="#impl-Send-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.NewOrLoadError.html" title="enum bdk::wallet::NewOrLoadError">NewOrLoadError</a></h3></section><section id="impl-Sync-for-NewOrLoadError" class="impl has-srclink"><a href="#impl-Sync-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.NewOrLoadError.html" title="enum bdk::wallet::NewOrLoadError">NewOrLoadError</a></h3></section><section id="impl-Unpin-for-NewOrLoadError" class="impl has-srclink"><a href="#impl-Unpin-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.NewOrLoadError.html" title="enum bdk::wallet::NewOrLoadError">NewOrLoadError</a></h3></section><section id="impl-UnwindSafe-for-NewOrLoadError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.NewOrLoadError.html" title="enum bdk::wallet::NewOrLoadError">NewOrLoadError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
-provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-NewOrLoadError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Error returned from `Wallet::build_fee_bump`"><meta name="keywords" content="rust, rustlang, rust-lang, BuildFeeBumpError"><title>BuildFeeBumpError in bdk::wallet::error - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">BuildFeeBumpError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.FeeRateUnavailable">FeeRateUnavailable</a></li><li><a href="#variant.IrreplaceableTransaction">IrreplaceableTransaction</a></li><li><a href="#variant.TransactionConfirmed">TransactionConfirmed</a></li><li><a href="#variant.TransactionNotFound">TransactionNotFound</a></li><li><a href="#variant.UnknownUtxo">UnknownUtxo</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-BuildFeeBumpError">Debug</a></li><li><a href="#impl-Display-for-BuildFeeBumpError">Display</a></li><li><a href="#impl-Error-for-BuildFeeBumpError">Error</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-BuildFeeBumpError">RefUnwindSafe</a></li><li><a href="#impl-Send-for-BuildFeeBumpError">Send</a></li><li><a href="#impl-Sync-for-BuildFeeBumpError">Sync</a></li><li><a href="#impl-Unpin-for-BuildFeeBumpError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-BuildFeeBumpError">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-BuildFeeBumpError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-BuildFeeBumpError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-BuildFeeBumpError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-BuildFeeBumpError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-BuildFeeBumpError">Into<U></a></li><li><a href="#impl-Provider-for-BuildFeeBumpError">Provider</a></li><li><a href="#impl-ToString-for-BuildFeeBumpError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-BuildFeeBumpError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-BuildFeeBumpError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-BuildFeeBumpError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::error</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">error</a>::<wbr><a class="enum" href="#">BuildFeeBumpError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/error.rs.html#251-262">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum BuildFeeBumpError {
- UnknownUtxo(OutPoint),
- TransactionNotFound(Txid),
- TransactionConfirmed(Txid),
- IrreplaceableTransaction(Txid),
- FeeRateUnavailable,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Error returned from <a href="../struct.Wallet.html#method.build_fee_bump"><code>Wallet::build_fee_bump</code></a></p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.UnknownUtxo" class="variant"><a href="#variant.UnknownUtxo" class="anchor">§</a><h3 class="code-header">UnknownUtxo(OutPoint)</h3></section><div class="docblock"><p>Happens when trying to spend an UTXO that is not in the internal database</p>
-</div><section id="variant.TransactionNotFound" class="variant"><a href="#variant.TransactionNotFound" class="anchor">§</a><h3 class="code-header">TransactionNotFound(Txid)</h3></section><div class="docblock"><p>Thrown when a tx is not found in the internal database</p>
-</div><section id="variant.TransactionConfirmed" class="variant"><a href="#variant.TransactionConfirmed" class="anchor">§</a><h3 class="code-header">TransactionConfirmed(Txid)</h3></section><div class="docblock"><p>Happens when trying to bump a transaction that is already confirmed</p>
-</div><section id="variant.IrreplaceableTransaction" class="variant"><a href="#variant.IrreplaceableTransaction" class="anchor">§</a><h3 class="code-header">IrreplaceableTransaction(Txid)</h3></section><div class="docblock"><p>Trying to replace a tx that has a sequence >= <code>0xFFFFFFFE</code></p>
-</div><section id="variant.FeeRateUnavailable" class="variant"><a href="#variant.FeeRateUnavailable" class="anchor">§</a><h3 class="code-header">FeeRateUnavailable</h3></section><div class="docblock"><p>Node doesn’t have data to estimate a fee rate</p>
-</div></div><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><section id="impl-Debug-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#247">source</a><a href="#impl-Debug-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.BuildFeeBumpError.html" title="enum bdk::wallet::error::BuildFeeBumpError">BuildFeeBumpError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#247">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#264-288">source</a><a href="#impl-Display-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.BuildFeeBumpError.html" title="enum bdk::wallet::error::BuildFeeBumpError">BuildFeeBumpError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#265-287">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#291">source</a><a href="#impl-Error-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.BuildFeeBumpError.html" title="enum bdk::wallet::error::BuildFeeBumpError">BuildFeeBumpError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-BuildFeeBumpError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.BuildFeeBumpError.html" title="enum bdk::wallet::error::BuildFeeBumpError">BuildFeeBumpError</a></h3></section><section id="impl-Send-for-BuildFeeBumpError" class="impl has-srclink"><a href="#impl-Send-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.BuildFeeBumpError.html" title="enum bdk::wallet::error::BuildFeeBumpError">BuildFeeBumpError</a></h3></section><section id="impl-Sync-for-BuildFeeBumpError" class="impl has-srclink"><a href="#impl-Sync-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.BuildFeeBumpError.html" title="enum bdk::wallet::error::BuildFeeBumpError">BuildFeeBumpError</a></h3></section><section id="impl-Unpin-for-BuildFeeBumpError" class="impl has-srclink"><a href="#impl-Unpin-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.BuildFeeBumpError.html" title="enum bdk::wallet::error::BuildFeeBumpError">BuildFeeBumpError</a></h3></section><section id="impl-UnwindSafe-for-BuildFeeBumpError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.BuildFeeBumpError.html" title="enum bdk::wallet::error::BuildFeeBumpError">BuildFeeBumpError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
-provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-BuildFeeBumpError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Error returned from `TxBuilder::finish`"><meta name="keywords" content="rust, rustlang, rust-lang, CreateTxError"><title>CreateTxError in bdk::wallet::error - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">CreateTxError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.ChangePolicyDescriptor">ChangePolicyDescriptor</a></li><li><a href="#variant.CoinSelection">CoinSelection</a></li><li><a href="#variant.Descriptor">Descriptor</a></li><li><a href="#variant.FeeRateTooLow">FeeRateTooLow</a></li><li><a href="#variant.FeeTooLow">FeeTooLow</a></li><li><a href="#variant.InsufficientFunds">InsufficientFunds</a></li><li><a href="#variant.LockTime">LockTime</a></li><li><a href="#variant.MiniscriptPsbt">MiniscriptPsbt</a></li><li><a href="#variant.MissingKeyOrigin">MissingKeyOrigin</a></li><li><a href="#variant.MissingNonWitnessUtxo">MissingNonWitnessUtxo</a></li><li><a href="#variant.NoRecipients">NoRecipients</a></li><li><a href="#variant.NoUtxosSelected">NoUtxosSelected</a></li><li><a href="#variant.OutputBelowDustLimit">OutputBelowDustLimit</a></li><li><a href="#variant.Persist">Persist</a></li><li><a href="#variant.Policy">Policy</a></li><li><a href="#variant.Psbt">Psbt</a></li><li><a href="#variant.RbfSequence">RbfSequence</a></li><li><a href="#variant.RbfSequenceCsv">RbfSequenceCsv</a></li><li><a href="#variant.SpendingPolicyRequired">SpendingPolicyRequired</a></li><li><a href="#variant.UnknownUtxo">UnknownUtxo</a></li><li><a href="#variant.Version0">Version0</a></li><li><a href="#variant.Version1Csv">Version1Csv</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-CreateTxError">Debug</a></li><li><a href="#impl-Display-for-CreateTxError">Display</a></li><li><a href="#impl-Error-for-CreateTxError">Error</a></li><li><a href="#impl-From%3CError%3E-for-CreateTxError">From<Error></a></li><li><a href="#impl-From%3CError%3E-for-CreateTxError-1">From<Error></a></li><li><a href="#impl-From%3CError%3E-for-CreateTxError-2">From<Error></a></li><li><a href="#impl-From%3CMiniscriptPsbtError%3E-for-CreateTxError">From<MiniscriptPsbtError></a></li><li><a href="#impl-From%3CPolicyError%3E-for-CreateTxError">From<PolicyError></a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-CreateTxError">!RefUnwindSafe</a></li><li><a href="#impl-Send-for-CreateTxError">Send</a></li><li><a href="#impl-Sync-for-CreateTxError">Sync</a></li><li><a href="#impl-Unpin-for-CreateTxError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-CreateTxError">!UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-CreateTxError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-CreateTxError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-CreateTxError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-CreateTxError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-CreateTxError">Into<U></a></li><li><a href="#impl-Provider-for-CreateTxError">Provider</a></li><li><a href="#impl-ToString-for-CreateTxError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-CreateTxError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-CreateTxError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-CreateTxError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::error</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">error</a>::<wbr><a class="enum" href="#">CreateTxError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/error.rs.html#50-120">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum CreateTxError {
-<details class="rustdoc-toggle type-contents-toggle"><summary class="hideme"><span>Show 22 variants</span></summary> Descriptor(<a class="enum" href="../../descriptor/error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>),
- Persist(<a class="struct" href="https://docs.rs/anyhow/1.0.83/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>),
- Policy(<a class="enum" href="../../descriptor/policy/enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a>),
- SpendingPolicyRequired(<a class="enum" href="../../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>),
- Version0,
- Version1Csv,
- LockTime {
- requested: LockTime,
- required: LockTime,
- },
- RbfSequence,
- RbfSequenceCsv {
- rbf: Sequence,
- csv: Sequence,
- },
- FeeTooLow {
- required: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
- },
- FeeRateTooLow {
- required: FeeRate,
- },
- NoUtxosSelected,
- OutputBelowDustLimit(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>),
- ChangePolicyDescriptor,
- CoinSelection(<a class="enum" href="../coin_selection/enum.Error.html" title="enum bdk::wallet::coin_selection::Error">Error</a>),
- InsufficientFunds {
- needed: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
- available: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
- },
- NoRecipients,
- Psbt(Error),
- MissingKeyOrigin(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>),
- UnknownUtxo,
- MissingNonWitnessUtxo(OutPoint),
- MiniscriptPsbt(<a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a>),
-</details>}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Error returned from <a href="../tx_builder/struct.TxBuilder.html#method.finish"><code>TxBuilder::finish</code></a></p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Descriptor" class="variant"><a href="#variant.Descriptor" class="anchor">§</a><h3 class="code-header">Descriptor(<a class="enum" href="../../descriptor/error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>)</h3></section><div class="docblock"><p>There was a problem with the descriptors passed in</p>
-</div><section id="variant.Persist" class="variant"><a href="#variant.Persist" class="anchor">§</a><h3 class="code-header">Persist(<a class="struct" href="https://docs.rs/anyhow/1.0.83/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>)</h3></section><div class="docblock"><p>We were unable to load wallet data from or write wallet data to the persistence backend</p>
-</div><section id="variant.Policy" class="variant"><a href="#variant.Policy" class="anchor">§</a><h3 class="code-header">Policy(<a class="enum" href="../../descriptor/policy/enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a>)</h3></section><div class="docblock"><p>There was a problem while extracting and manipulating policies</p>
-</div><section id="variant.SpendingPolicyRequired" class="variant"><a href="#variant.SpendingPolicyRequired" class="anchor">§</a><h3 class="code-header">SpendingPolicyRequired(<a class="enum" href="../../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>)</h3></section><div class="docblock"><p>Spending policy is not compatible with this <a href="../../enum.KeychainKind.html" title="KeychainKind"><code>KeychainKind</code></a></p>
-</div><section id="variant.Version0" class="variant"><a href="#variant.Version0" class="anchor">§</a><h3 class="code-header">Version0</h3></section><div class="docblock"><p>Requested invalid transaction version ‘0’</p>
-</div><section id="variant.Version1Csv" class="variant"><a href="#variant.Version1Csv" class="anchor">§</a><h3 class="code-header">Version1Csv</h3></section><div class="docblock"><p>Requested transaction version <code>1</code>, but at least <code>2</code> is needed to use OP_CSV</p>
-</div><section id="variant.LockTime" class="variant"><a href="#variant.LockTime" class="anchor">§</a><h3 class="code-header">LockTime</h3></section><div class="sub-variant" id="variant.LockTime.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.LockTime.field.requested" class="small-section-header"><a href="#variant.LockTime.field.requested" class="anchor field">§</a><code>requested: LockTime</code></span><div class="docblock"><p>Requested <code>LockTime</code></p>
-</div></div><div class="sub-variant-field"><span id="variant.LockTime.field.required" class="small-section-header"><a href="#variant.LockTime.field.required" class="anchor field">§</a><code>required: LockTime</code></span><div class="docblock"><p>Required <code>LockTime</code></p>
-</div></div></div><div class="docblock"><p>Requested <code>LockTime</code> is less than is required to spend from this script</p>
-</div><section id="variant.RbfSequence" class="variant"><a href="#variant.RbfSequence" class="anchor">§</a><h3 class="code-header">RbfSequence</h3></section><div class="docblock"><p>Cannot enable RBF with a <code>Sequence</code> >= 0xFFFFFFFE</p>
-</div><section id="variant.RbfSequenceCsv" class="variant"><a href="#variant.RbfSequenceCsv" class="anchor">§</a><h3 class="code-header">RbfSequenceCsv</h3></section><div class="sub-variant" id="variant.RbfSequenceCsv.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.RbfSequenceCsv.field.rbf" class="small-section-header"><a href="#variant.RbfSequenceCsv.field.rbf" class="anchor field">§</a><code>rbf: Sequence</code></span><div class="docblock"><p>Given RBF <code>Sequence</code></p>
-</div></div><div class="sub-variant-field"><span id="variant.RbfSequenceCsv.field.csv" class="small-section-header"><a href="#variant.RbfSequenceCsv.field.csv" class="anchor field">§</a><code>csv: Sequence</code></span><div class="docblock"><p>Required OP_CSV <code>Sequence</code></p>
-</div></div></div><div class="docblock"><p>Cannot enable RBF with <code>Sequence</code> given a required OP_CSV</p>
-</div><section id="variant.FeeTooLow" class="variant"><a href="#variant.FeeTooLow" class="anchor">§</a><h3 class="code-header">FeeTooLow</h3></section><div class="sub-variant" id="variant.FeeTooLow.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.FeeTooLow.field.required" class="small-section-header"><a href="#variant.FeeTooLow.field.required" class="anchor field">§</a><code>required: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>Required fee absolute value (satoshi)</p>
-</div></div></div><div class="docblock"><p>When bumping a tx the absolute fee requested is lower than replaced tx absolute fee</p>
-</div><section id="variant.FeeRateTooLow" class="variant"><a href="#variant.FeeRateTooLow" class="anchor">§</a><h3 class="code-header">FeeRateTooLow</h3></section><div class="sub-variant" id="variant.FeeRateTooLow.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.FeeRateTooLow.field.required" class="small-section-header"><a href="#variant.FeeRateTooLow.field.required" class="anchor field">§</a><code>required: FeeRate</code></span><div class="docblock"><p>Required fee rate</p>
-</div></div></div><div class="docblock"><p>When bumping a tx the fee rate requested is lower than required</p>
-</div><section id="variant.NoUtxosSelected" class="variant"><a href="#variant.NoUtxosSelected" class="anchor">§</a><h3 class="code-header">NoUtxosSelected</h3></section><div class="docblock"><p><code>manually_selected_only</code> option is selected but no utxo has been passed</p>
-</div><section id="variant.OutputBelowDustLimit" class="variant"><a href="#variant.OutputBelowDustLimit" class="anchor">§</a><h3 class="code-header">OutputBelowDustLimit(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h3></section><div class="docblock"><p>Output created is under the dust limit, 546 satoshis</p>
-</div><section id="variant.ChangePolicyDescriptor" class="variant"><a href="#variant.ChangePolicyDescriptor" class="anchor">§</a><h3 class="code-header">ChangePolicyDescriptor</h3></section><div class="docblock"><p>The <code>change_policy</code> was set but the wallet does not have a change_descriptor</p>
-</div><section id="variant.CoinSelection" class="variant"><a href="#variant.CoinSelection" class="anchor">§</a><h3 class="code-header">CoinSelection(<a class="enum" href="../coin_selection/enum.Error.html" title="enum bdk::wallet::coin_selection::Error">Error</a>)</h3></section><div class="docblock"><p>There was an error with coin selection</p>
-</div><section id="variant.InsufficientFunds" class="variant"><a href="#variant.InsufficientFunds" class="anchor">§</a><h3 class="code-header">InsufficientFunds</h3></section><div class="sub-variant" id="variant.InsufficientFunds.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.InsufficientFunds.field.needed" class="small-section-header"><a href="#variant.InsufficientFunds.field.needed" class="anchor field">§</a><code>needed: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>Sats needed for some transaction</p>
-</div></div><div class="sub-variant-field"><span id="variant.InsufficientFunds.field.available" class="small-section-header"><a href="#variant.InsufficientFunds.field.available" class="anchor field">§</a><code>available: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>Sats available for spending</p>
-</div></div></div><div class="docblock"><p>Wallet’s UTXO set is not enough to cover recipient’s requested plus fee</p>
-</div><section id="variant.NoRecipients" class="variant"><a href="#variant.NoRecipients" class="anchor">§</a><h3 class="code-header">NoRecipients</h3></section><div class="docblock"><p>Cannot build a tx without recipients</p>
-</div><section id="variant.Psbt" class="variant"><a href="#variant.Psbt" class="anchor">§</a><h3 class="code-header">Psbt(Error)</h3></section><div class="docblock"><p>Partially signed bitcoin transaction error</p>
-</div><section id="variant.MissingKeyOrigin" class="variant"><a href="#variant.MissingKeyOrigin" class="anchor">§</a><h3 class="code-header">MissingKeyOrigin(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>)</h3></section><div class="docblock"><p>In order to use the <a href="../tx_builder/struct.TxBuilder.html#method.add_global_xpubs"><code>TxBuilder::add_global_xpubs</code></a> option every extended
-key in the descriptor must either be a master key itself (having depth = 0) or have an
-explicit origin provided</p>
-</div><section id="variant.UnknownUtxo" class="variant"><a href="#variant.UnknownUtxo" class="anchor">§</a><h3 class="code-header">UnknownUtxo</h3></section><div class="docblock"><p>Happens when trying to spend an UTXO that is not in the internal database</p>
-</div><section id="variant.MissingNonWitnessUtxo" class="variant"><a href="#variant.MissingNonWitnessUtxo" class="anchor">§</a><h3 class="code-header">MissingNonWitnessUtxo(OutPoint)</h3></section><div class="docblock"><p>Missing non_witness_utxo on foreign utxo for given <code>OutPoint</code></p>
-</div><section id="variant.MiniscriptPsbt" class="variant"><a href="#variant.MiniscriptPsbt" class="anchor">§</a><h3 class="code-header">MiniscriptPsbt(<a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a>)</h3></section><div class="docblock"><p>Miniscript PSBT error</p>
-</div></div><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><section id="impl-Debug-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#46">source</a><a href="#impl-Debug-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#46">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#122-212">source</a><a href="#impl-Display-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#123-211">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#245">source</a><a href="#impl-Error-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#214-218">source</a><a href="#impl-From%3CError%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="../../descriptor/error/enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a>> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#215-217">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="enum" href="../../descriptor/error/enum.Error.html" title="enum bdk::descriptor::error::Error">Error</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-CreateTxError-1" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#232-236">source</a><a href="#impl-From%3CError%3E-for-CreateTxError-1" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Error> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-3" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#233-235">source</a><a href="#method.from-3" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: Error) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-CreateTxError-2" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#238-242">source</a><a href="#impl-From%3CError%3E-for-CreateTxError-2" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="../coin_selection/enum.Error.html" title="enum bdk::wallet::coin_selection::Error">Error</a>> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-4" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#239-241">source</a><a href="#method.from-4" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="enum" href="../coin_selection/enum.Error.html" title="enum bdk::wallet::coin_selection::Error">Error</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CMiniscriptPsbtError%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#226-230">source</a><a href="#impl-From%3CMiniscriptPsbtError%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a>> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#227-229">source</a><a href="#method.from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CPolicyError%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#220-224">source</a><a href="#impl-From%3CPolicyError%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="../../descriptor/policy/enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a>> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#221-223">source</a><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="enum" href="../../descriptor/policy/enum.PolicyError.html" title="enum bdk::descriptor::policy::PolicyError">PolicyError</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-CreateTxError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk::wallet::error::CreateTxError">CreateTxError</a></h3></section><section id="impl-Send-for-CreateTxError" class="impl has-srclink"><a href="#impl-Send-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk::wallet::error::CreateTxError">CreateTxError</a></h3></section><section id="impl-Sync-for-CreateTxError" class="impl has-srclink"><a href="#impl-Sync-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk::wallet::error::CreateTxError">CreateTxError</a></h3></section><section id="impl-Unpin-for-CreateTxError" class="impl has-srclink"><a href="#impl-Unpin-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk::wallet::error::CreateTxError">CreateTxError</a></h3></section><section id="impl-UnwindSafe-for-CreateTxError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk::wallet::error::CreateTxError">CreateTxError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-5" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-5" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
-provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-CreateTxError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Errors returned by miniscript when updating inconsistent PSBTs"><meta name="keywords" content="rust, rustlang, rust-lang, MiniscriptPsbtError"><title>MiniscriptPsbtError in bdk::wallet::error - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">MiniscriptPsbtError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Conversion">Conversion</a></li><li><a href="#variant.OutputUpdate">OutputUpdate</a></li><li><a href="#variant.UtxoUpdate">UtxoUpdate</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-MiniscriptPsbtError">Clone</a></li><li><a href="#impl-Debug-for-MiniscriptPsbtError">Debug</a></li><li><a href="#impl-Display-for-MiniscriptPsbtError">Display</a></li><li><a href="#impl-Error-for-MiniscriptPsbtError">Error</a></li><li><a href="#impl-From%3CMiniscriptPsbtError%3E-for-CreateTxError">From<MiniscriptPsbtError></a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-MiniscriptPsbtError">RefUnwindSafe</a></li><li><a href="#impl-Send-for-MiniscriptPsbtError">Send</a></li><li><a href="#impl-Sync-for-MiniscriptPsbtError">Sync</a></li><li><a href="#impl-Unpin-for-MiniscriptPsbtError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-MiniscriptPsbtError">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-MiniscriptPsbtError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-MiniscriptPsbtError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-MiniscriptPsbtError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-MiniscriptPsbtError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-MiniscriptPsbtError">Into<U></a></li><li><a href="#impl-Provider-for-MiniscriptPsbtError">Provider</a></li><li><a href="#impl-ToOwned-for-MiniscriptPsbtError">ToOwned</a></li><li><a href="#impl-ToString-for-MiniscriptPsbtError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-MiniscriptPsbtError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-MiniscriptPsbtError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-MiniscriptPsbtError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::error</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">error</a>::<wbr><a class="enum" href="#">MiniscriptPsbtError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/error.rs.html#24-31">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum MiniscriptPsbtError {
- Conversion(ConversionError),
- UtxoUpdate(UtxoUpdateError),
- OutputUpdate(OutputUpdateError),
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Errors returned by miniscript when updating inconsistent PSBTs</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Conversion" class="variant"><a href="#variant.Conversion" class="anchor">§</a><h3 class="code-header">Conversion(ConversionError)</h3></section><div class="docblock"><p>Descriptor key conversion error</p>
-</div><section id="variant.UtxoUpdate" class="variant"><a href="#variant.UtxoUpdate" class="anchor">§</a><h3 class="code-header">UtxoUpdate(UtxoUpdateError)</h3></section><div class="docblock"><p>Return error type for PsbtExt::update_input_with_descriptor</p>
-</div><section id="variant.OutputUpdate" class="variant"><a href="#variant.OutputUpdate" class="anchor">§</a><h3 class="code-header">OutputUpdate(OutputUpdateError)</h3></section><div class="docblock"><p>Return error type for PsbtExt::update_output_with_descriptor</p>
-</div></div><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><section id="impl-Clone-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#23">source</a><a href="#impl-Clone-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#23">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#23">source</a><a href="#impl-Debug-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#23">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#33-41">source</a><a href="#impl-Display-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#34-40">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#44">source</a><a href="#impl-Error-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CMiniscriptPsbtError%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#226-230">source</a><a href="#impl-From%3CMiniscriptPsbtError%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a>> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/error.rs.html#227-229">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-MiniscriptPsbtError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a></h3></section><section id="impl-Send-for-MiniscriptPsbtError" class="impl has-srclink"><a href="#impl-Send-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a></h3></section><section id="impl-Sync-for-MiniscriptPsbtError" class="impl has-srclink"><a href="#impl-Sync-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a></h3></section><section id="impl-Unpin-for-MiniscriptPsbtError" class="impl has-srclink"><a href="#impl-Unpin-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a></h3></section><section id="impl-UnwindSafe-for-MiniscriptPsbtError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
-provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-MiniscriptPsbtError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Errors that can be thrown by the `Wallet`"><meta name="keywords" content="rust, rustlang, rust-lang, error"><title>bdk::wallet::error - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module error</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#enums">Enums</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a class="mod" href="#">error</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/error.rs.html#12-291">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Errors that can be thrown by the <a href="../struct.Wallet.html"><code>Wallet</code></a></p>
-</div></details><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.BuildFeeBumpError.html" title="bdk::wallet::error::BuildFeeBumpError enum">BuildFeeBumpError</a></div><div class="item-right docblock-short">Error returned from <a href="../struct.Wallet.html#method.build_fee_bump"><code>Wallet::build_fee_bump</code></a></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.CreateTxError.html" title="bdk::wallet::error::CreateTxError enum">CreateTxError</a></div><div class="item-right docblock-short">Error returned from <a href="../tx_builder/struct.TxBuilder.html#method.finish"><code>TxBuilder::finish</code></a></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.MiniscriptPsbtError.html" title="bdk::wallet::error::MiniscriptPsbtError enum">MiniscriptPsbtError</a></div><div class="item-right docblock-short">Errors returned by miniscript when updating inconsistent PSBTs</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-window.SIDEBAR_ITEMS = {"enum":[["BuildFeeBumpError","Error returned from `Wallet::build_fee_bump`"],["CreateTxError","Error returned from `TxBuilder::finish`"],["MiniscriptPsbtError","Errors returned by miniscript when updating inconsistent PSBTs"]]};
\ No newline at end of file
+++ /dev/null
-<!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="Wallet export"><meta name="keywords" content="rust, rustlang, rust-lang, export"><title>bdk::wallet::export - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module export</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#types">Type Definitions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a class="mod" href="#">export</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/export.rs.html#12-341">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Wallet export</p>
-<p>This modules implements the wallet export format used by <a href="https://github.com/Fonta1n3/FullyNoded/blob/10b7808c8b929b171cca537fb50522d015168ac9/Docs/Wallets/Wallet-Export-Spec.md">FullyNoded</a>.</p>
-<h3 id="examples"><a href="#examples">Examples</a></h3><h4 id="import-from-json"><a href="#import-from-json">Import from JSON</a></h4>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>import = <span class="string">r#"{
- "descriptor": "wpkh([c258d2e4\/84h\/1h\/0h]tpubDD3ynpHgJQW8VvWRzQ5WFDCrs4jqVFGHB3vLC3r49XHJSqP8bHKdK4AriuUKLccK68zfzowx7YhmDN8SiSkgCDENUFx9qVw65YyqM78vyVe\/0\/*)",
- "blockheight":1782088,
- "label":"testnet"
-}"#</span>;
-
-<span class="kw">let </span>import = FullyNodedExport::from_str(import)<span class="question-mark">?</span>;
-<span class="kw">let </span>wallet = Wallet::new_no_persist(
- <span class="kw-2">&</span>import.descriptor(),
- import.change_descriptor().as_ref(),
- Network::Testnet,
-)<span class="question-mark">?</span>;</code></pre></div>
-<h4 id="export-a-wallet"><a href="#export-a-wallet">Export a <code>Wallet</code></a></h4>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>wallet = Wallet::new_no_persist(
- <span class="string">"wpkh([c258d2e4/84h/1h/0h]tpubDD3ynpHgJQW8VvWRzQ5WFDCrs4jqVFGHB3vLC3r49XHJSqP8bHKdK4AriuUKLccK68zfzowx7YhmDN8SiSkgCDENUFx9qVw65YyqM78vyVe/0/*)"</span>,
- <span class="prelude-val">Some</span>(<span class="string">"wpkh([c258d2e4/84h/1h/0h]tpubDD3ynpHgJQW8VvWRzQ5WFDCrs4jqVFGHB3vLC3r49XHJSqP8bHKdK4AriuUKLccK68zfzowx7YhmDN8SiSkgCDENUFx9qVw65YyqM78vyVe/1/*)"</span>),
- Network::Testnet,
-)<span class="question-mark">?</span>;
-<span class="kw">let </span>export = FullyNodedExport::export_wallet(<span class="kw-2">&</span>wallet, <span class="string">"exported wallet"</span>, <span class="bool-val">true</span>).unwrap();
-
-<span class="macro">println!</span>(<span class="string">"Exported: {}"</span>, export.to_string());</code></pre></div>
-</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.FullyNodedExport.html" title="bdk::wallet::export::FullyNodedExport struct">FullyNodedExport</a></div><div class="item-right docblock-short">Structure that contains the export of a wallet</div></div></div><h2 id="types" class="small-section-header"><a href="#types">Type Definitions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="type" href="type.WalletExport.html" title="bdk::wallet::export::WalletExport type">WalletExport</a><span class="stab deprecated" title="">Deprecated</span></div><div class="item-right docblock-short">Alias for <a href="struct.FullyNodedExport.html" title="FullyNodedExport"><code>FullyNodedExport</code></a></div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-window.SIDEBAR_ITEMS = {"struct":[["FullyNodedExport","Structure that contains the export of a wallet"]],"type":[["WalletExport","Alias for [`FullyNodedExport`]"]]};
\ No newline at end of file
+++ /dev/null
-<!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="Structure that contains the export of a wallet"><meta name="keywords" content="rust, rustlang, rust-lang, FullyNodedExport"><title>FullyNodedExport in bdk::wallet::export - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">FullyNodedExport</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.blockheight">blockheight</a></li><li><a href="#structfield.label">label</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.change_descriptor">change_descriptor</a></li><li><a href="#method.descriptor">descriptor</a></li><li><a href="#method.export_wallet">export_wallet</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-FullyNodedExport">Debug</a></li><li><a href="#impl-Deserialize%3C%27de%3E-for-FullyNodedExport">Deserialize<'de></a></li><li><a href="#impl-Display-for-FullyNodedExport">Display</a></li><li><a href="#impl-FromStr-for-FullyNodedExport">FromStr</a></li><li><a href="#impl-Serialize-for-FullyNodedExport">Serialize</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-FullyNodedExport">RefUnwindSafe</a></li><li><a href="#impl-Send-for-FullyNodedExport">Send</a></li><li><a href="#impl-Sync-for-FullyNodedExport">Sync</a></li><li><a href="#impl-Unpin-for-FullyNodedExport">Unpin</a></li><li><a href="#impl-UnwindSafe-for-FullyNodedExport">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-FullyNodedExport">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-FullyNodedExport">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-FullyNodedExport">BorrowMut<T></a></li><li><a href="#impl-DeserializeOwned-for-FullyNodedExport">DeserializeOwned</a></li><li><a href="#impl-From%3CT%3E-for-FullyNodedExport">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-FullyNodedExport">Into<U></a></li><li><a href="#impl-ToString-for-FullyNodedExport">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-FullyNodedExport">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-FullyNodedExport">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-FullyNodedExport">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::export</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">export</a>::<wbr><a class="struct" href="#">FullyNodedExport</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/export.rs.html#75-81">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct FullyNodedExport {
- pub blockheight: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
- pub label: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
- /* private fields */
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Structure that contains the export of a wallet</p>
-<p>For a usage example see <a href="index.html">this module</a>’s documentation.</p>
-</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.blockheight" class="structfield small-section-header"><a href="#structfield.blockheight" class="anchor field">§</a><code>blockheight: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Earliest block to rescan when looking for the wallet’s transactions</p>
-</div><span id="structfield.label" class="structfield small-section-header"><a href="#structfield.label" class="anchor field">§</a><code>label: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></code></span><div class="docblock"><p>Arbitrary label for the wallet</p>
-</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/export.rs.html#101-211">source</a><a href="#impl-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk::wallet::export::FullyNodedExport">FullyNodedExport</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.export_wallet" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/export.rs.html#113-163">source</a><h4 class="code-header">pub fn <a href="#method.export_wallet" class="fn">export_wallet</a>(<br> wallet: &<a class="struct" href="../struct.Wallet.html" title="struct bdk::wallet::Wallet">Wallet</a>,<br> label: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,<br> include_blockheight: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>></h4></section></summary><div class="docblock"><p>Export a wallet</p>
-<p>This function returns an error if it determines that the <code>wallet</code>’s descriptor(s) are not
-supported by Bitcoin Core or don’t follow the standard derivation paths defined by BIP44
-and others.</p>
-<p>If <code>include_blockheight</code> is <code>true</code>, this function will look into the <code>wallet</code>’s database
-for the oldest transaction it knows and use that as the earliest block to rescan.</p>
-<p>If the database is empty or <code>include_blockheight</code> is false, the <code>blockheight</code> field
-returned will be <code>0</code>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.descriptor" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/export.rs.html#197-199">source</a><h4 class="code-header">pub fn <a href="#method.descriptor" class="fn">descriptor</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class="docblock"><p>Return the external descriptor</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.change_descriptor" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/export.rs.html#202-210">source</a><h4 class="code-header">pub fn <a href="#method.change_descriptor" class="fn">change_descriptor</a>(&self) -> <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="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>></h4></section></summary><div class="docblock"><p>Return the internal descriptor, if present</p>
-</div></details></div></details></div><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><section id="impl-Debug-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/export.rs.html#74">source</a><a href="#impl-Debug-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk::wallet::export::FullyNodedExport">FullyNodedExport</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/export.rs.html#74">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserialize%3C%27de%3E-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/export.rs.html#74">source</a><a href="#impl-Deserialize%3C%27de%3E-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> for <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk::wallet::export::FullyNodedExport">FullyNodedExport</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/export.rs.html#74">source</a><a href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize" class="fn">deserialize</a><__D>(__deserializer: __D) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, __D::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>><span class="where fmt-newline">where<br> __D: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/export.rs.html#83-87">source</a><a href="#impl-Display-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk::wallet::export::FullyNodedExport">FullyNodedExport</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/export.rs.html#84-86">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-FromStr-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/export.rs.html#89-95">source</a><a href="#impl-FromStr-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a> for <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk::wallet::export::FullyNodedExport">FullyNodedExport</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Err" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Err" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" class="associatedtype">Err</a> = <a class="struct" href="https://docs.rs/serde_json/1.0.117/serde_json/error/struct.Error.html" title="struct serde_json::error::Error">Error</a></h4></section></summary><div class='docblock'>The associated error which can be returned from parsing.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_str" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/export.rs.html#92-94">source</a><a href="#method.from_str" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str" class="fn">from_str</a>(s: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, Self::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>></h4></section></summary><div class='docblock'>Parses a string <code>s</code> to return a value of this type. <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/export.rs.html#74">source</a><a href="#impl-Serialize-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk::wallet::export::FullyNodedExport">FullyNodedExport</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/export.rs.html#74">source</a><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><__S>(&self, __serializer: __S) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><__S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, __S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> __S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-FullyNodedExport" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk::wallet::export::FullyNodedExport">FullyNodedExport</a></h3></section><section id="impl-Send-for-FullyNodedExport" class="impl has-srclink"><a href="#impl-Send-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk::wallet::export::FullyNodedExport">FullyNodedExport</a></h3></section><section id="impl-Sync-for-FullyNodedExport" class="impl has-srclink"><a href="#impl-Sync-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk::wallet::export::FullyNodedExport">FullyNodedExport</a></h3></section><section id="impl-Unpin-for-FullyNodedExport" class="impl has-srclink"><a href="#impl-Unpin-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk::wallet::export::FullyNodedExport">FullyNodedExport</a></h3></section><section id="impl-UnwindSafe-for-FullyNodedExport" class="impl has-srclink"><a href="#impl-UnwindSafe-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk::wallet::export::FullyNodedExport">FullyNodedExport</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-FullyNodedExport" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details><section id="impl-DeserializeOwned-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/serde/1.0.201/src/serde/de/mod.rs.html#608">source</a><a href="#impl-DeserializeOwned-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> for T<span class="where fmt-newline">where<br> T: for<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de>,</span></h3></section></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Alias for [`FullyNodedExport`]"><meta name="keywords" content="rust, rustlang, rust-lang, WalletExport"><title>WalletExport in bdk::wallet::export - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">WalletExport</a></h2><div class="sidebar-elems"><h2><a href="index.html">In bdk::wallet::export</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">export</a>::<wbr><a class="type" href="#">WalletExport</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/export.rs.html#69">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub type WalletExport = <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk::wallet::export::FullyNodedExport">FullyNodedExport</a>;</code></pre></div><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 0.18.0: Please use [<code>FullyNodedExport</code>] instead</span></div></span><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Alias for <a href="struct.FullyNodedExport.html" title="FullyNodedExport"><code>FullyNodedExport</code></a></p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Deterministically generate a unique name given the descriptors defining the wallet"><meta name="keywords" content="rust, rustlang, rust-lang, wallet_name_from_descriptor"><title>wallet_name_from_descriptor in bdk::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In bdk::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="../index.html">bdk</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="fn" href="#">wallet_name_from_descriptor</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/wallet/mod.rs.html#2595-2621">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn wallet_name_from_descriptor<T>(<br> descriptor: T,<br> change_descriptor: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><T>,<br> network: Network,<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="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>><span class="where fmt-newline">where<br> T: <a class="trait" href="../descriptor/trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a>,</span></code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Deterministically generate a unique name given the descriptors defining the wallet</p>
-<p>Compatible with <a href="fn.wallet_name_from_descriptor.html" title="wallet_name_from_descriptor"><code>wallet_name_from_descriptor</code></a></p>
-</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Wallet"><meta name="keywords" content="rust, rustlang, rust-lang, wallet"><title>bdk::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module wallet</a></h2><div class="sidebar-elems"><section><ul class="block"><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="#functions">Functions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../index.html">bdk</a>::<wbr><a class="mod" href="#">wallet</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/wallet/mod.rs.html#12-2708">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Wallet</p>
-<p>This module defines the <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>.</p>
-</div></details><h2 id="modules" class="small-section-header"><a href="#modules">Modules</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="mod" href="coin_selection/index.html" title="bdk::wallet::coin_selection mod">coin_selection</a></div><div class="item-right docblock-short">Coin selection</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="error/index.html" title="bdk::wallet::error mod">error</a></div><div class="item-right docblock-short">Errors that can be thrown by the <a href="struct.Wallet.html"><code>Wallet</code></a></div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="export/index.html" title="bdk::wallet::export mod">export</a></div><div class="item-right docblock-short">Wallet export</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="signer/index.html" title="bdk::wallet::signer mod">signer</a></div><div class="item-right docblock-short">Generalized signers</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="tx_builder/index.html" title="bdk::wallet::tx_builder mod">tx_builder</a></div><div class="item-right docblock-short">Transaction builder</div></div></div><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.AddressInfo.html" title="bdk::wallet::AddressInfo struct">AddressInfo</a></div><div class="item-right docblock-short">A derived address and the index it was found at.
-For convenience this automatically derefs to <code>Address</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Balance.html" title="bdk::wallet::Balance struct">Balance</a></div><div class="item-right docblock-short">Balance, differentiated into various categories.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.ChangeSet.html" title="bdk::wallet::ChangeSet struct">ChangeSet</a></div><div class="item-right docblock-short">The changes made to a wallet by applying an <a href="struct.Update.html" title="Update"><code>Update</code></a>.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Update.html" title="bdk::wallet::Update struct">Update</a></div><div class="item-right docblock-short">An update to <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Wallet.html" title="bdk::wallet::Wallet struct">Wallet</a></div><div class="item-right docblock-short">A Bitcoin wallet</div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.ApplyBlockError.html" title="bdk::wallet::ApplyBlockError enum">ApplyBlockError</a></div><div class="item-right docblock-short">An error that may occur when applying a block to <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>.</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.InsertTxError.html" title="bdk::wallet::InsertTxError enum">InsertTxError</a></div><div class="item-right docblock-short">An error that may occur when inserting a transaction into <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>.</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.LoadError.html" title="bdk::wallet::LoadError enum">LoadError</a></div><div class="item-right docblock-short">The error type when loading a <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a> from persistence.</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.NewError.html" title="bdk::wallet::NewError enum">NewError</a></div><div class="item-right docblock-short">The error type when constructing a fresh <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>.</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.NewOrLoadError.html" title="bdk::wallet::NewOrLoadError enum">NewOrLoadError</a></div><div class="item-right docblock-short">Error type for when we try load a <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a> from persistence and creating it if non-existent.</div></div></div><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.IsDust.html" title="bdk::wallet::IsDust trait">IsDust</a></div><div class="item-right docblock-short">Trait to check if a value is below the dust limit.
-We are performing dust value calculation for a given script public key using rust-bitcoin to
-keep it compatible with network dust rate</div></div></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.wallet_name_from_descriptor.html" title="bdk::wallet::wallet_name_from_descriptor fn">wallet_name_from_descriptor</a></div><div class="item-right docblock-short">Deterministically generate a unique name given the descriptors defining the wallet</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-window.SIDEBAR_ITEMS = {"enum":[["ApplyBlockError","An error that may occur when applying a block to [`Wallet`]."],["InsertTxError","An error that may occur when inserting a transaction into [`Wallet`]."],["LoadError","The error type when loading a [`Wallet`] from persistence."],["NewError","The error type when constructing a fresh [`Wallet`]."],["NewOrLoadError","Error type for when we try load a [`Wallet`] from persistence and creating it if non-existent."]],"fn":[["wallet_name_from_descriptor","Deterministically generate a unique name given the descriptors defining the wallet"]],"mod":[["coin_selection","Coin selection"],["error","Errors that can be thrown by the `Wallet`"],["export","Wallet export"],["signer","Generalized signers"],["tx_builder","Transaction builder"]],"struct":[["AddressInfo","A derived address and the index it was found at. For convenience this automatically derefs to `Address`"],["Balance","Balance, differentiated into various categories."],["ChangeSet","The changes made to a wallet by applying an [`Update`]."],["Update","An update to [`Wallet`]."],["Wallet","A Bitcoin wallet"]],"trait":[["IsDust","Trait to check if a value is below the dust limit. We are performing dust value calculation for a given script public key using rust-bitcoin to keep it compatible with network dust rate"]]};
\ No newline at end of file
+++ /dev/null
-<!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="Signing context"><meta name="keywords" content="rust, rustlang, rust-lang, SignerContext"><title>SignerContext in bdk::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SignerContext</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Legacy">Legacy</a></li><li><a href="#variant.Segwitv0">Segwitv0</a></li><li><a href="#variant.Tap">Tap</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-SignerContext">Clone</a></li><li><a href="#impl-Copy-for-SignerContext">Copy</a></li><li><a href="#impl-Debug-for-SignerContext">Debug</a></li><li><a href="#impl-Eq-for-SignerContext">Eq</a></li><li><a href="#impl-PartialEq%3CSignerContext%3E-for-SignerContext">PartialEq<SignerContext></a></li><li><a href="#impl-StructuralEq-for-SignerContext">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-SignerContext">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SignerContext">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SignerContext">Send</a></li><li><a href="#impl-Sync-for-SignerContext">Sync</a></li><li><a href="#impl-Unpin-for-SignerContext">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SignerContext">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SignerContext">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SignerContext">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SignerContext">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SignerContext">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SignerContext">Into<U></a></li><li><a href="#impl-ToOwned-for-SignerContext">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SignerContext">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SignerContext">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SignerContext">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::signer</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">signer</a>::<wbr><a class="enum" href="#">SignerContext</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/signer.rs.html#205-215">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum SignerContext {
- Legacy,
- Segwitv0,
- Tap {
- is_internal_key: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
- },
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Signing context</p>
-<p>Used by our software signers to determine the type of signatures to make</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Legacy" class="variant"><a href="#variant.Legacy" class="anchor">§</a><h3 class="code-header">Legacy</h3></section><div class="docblock"><p>Legacy context</p>
-</div><section id="variant.Segwitv0" class="variant"><a href="#variant.Segwitv0" class="anchor">§</a><h3 class="code-header">Segwitv0</h3></section><div class="docblock"><p>Segwit v0 context (BIP 143)</p>
-</div><section id="variant.Tap" class="variant"><a href="#variant.Tap" class="anchor">§</a><h3 class="code-header">Tap</h3></section><div class="sub-variant" id="variant.Tap.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Tap.field.is_internal_key" class="small-section-header"><a href="#variant.Tap.field.is_internal_key" class="anchor field">§</a><code>is_internal_key: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether the signer can sign for the internal key or not</p>
-</div></div></div><div class="docblock"><p>Taproot context (BIP 340)</p>
-</div></div><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><section id="impl-Clone-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#204">source</a><a href="#impl-Clone-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.SignerContext.html" title="enum bdk::wallet::signer::SignerContext">SignerContext</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#204">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.SignerContext.html" title="enum bdk::wallet::signer::SignerContext">SignerContext</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#204">source</a><a href="#impl-Debug-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.SignerContext.html" title="enum bdk::wallet::signer::SignerContext">SignerContext</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#204">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CSignerContext%3E-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#204">source</a><a href="#impl-PartialEq%3CSignerContext%3E-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.SignerContext.html" title="enum bdk::wallet::signer::SignerContext">SignerContext</a>> for <a class="enum" href="enum.SignerContext.html" title="enum bdk::wallet::signer::SignerContext">SignerContext</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#204">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.SignerContext.html" title="enum bdk::wallet::signer::SignerContext">SignerContext</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><section id="impl-Copy-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#204">source</a><a href="#impl-Copy-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum.SignerContext.html" title="enum bdk::wallet::signer::SignerContext">SignerContext</a></h3></section><section id="impl-Eq-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#204">source</a><a href="#impl-Eq-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.SignerContext.html" title="enum bdk::wallet::signer::SignerContext">SignerContext</a></h3></section><section id="impl-StructuralEq-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#204">source</a><a href="#impl-StructuralEq-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.SignerContext.html" title="enum bdk::wallet::signer::SignerContext">SignerContext</a></h3></section><section id="impl-StructuralPartialEq-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#204">source</a><a href="#impl-StructuralPartialEq-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.SignerContext.html" title="enum bdk::wallet::signer::SignerContext">SignerContext</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SignerContext" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.SignerContext.html" title="enum bdk::wallet::signer::SignerContext">SignerContext</a></h3></section><section id="impl-Send-for-SignerContext" class="impl has-srclink"><a href="#impl-Send-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.SignerContext.html" title="enum bdk::wallet::signer::SignerContext">SignerContext</a></h3></section><section id="impl-Sync-for-SignerContext" class="impl has-srclink"><a href="#impl-Sync-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.SignerContext.html" title="enum bdk::wallet::signer::SignerContext">SignerContext</a></h3></section><section id="impl-Unpin-for-SignerContext" class="impl has-srclink"><a href="#impl-Unpin-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.SignerContext.html" title="enum bdk::wallet::signer::SignerContext">SignerContext</a></h3></section><section id="impl-UnwindSafe-for-SignerContext" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.SignerContext.html" title="enum bdk::wallet::signer::SignerContext">SignerContext</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SignerContext" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Signing error"><meta name="keywords" content="rust, rustlang, rust-lang, SignerError"><title>SignerError in bdk::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SignerError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.External">External</a></li><li><a href="#variant.InputIndexOutOfRange">InputIndexOutOfRange</a></li><li><a href="#variant.InvalidKey">InvalidKey</a></li><li><a href="#variant.InvalidNonWitnessUtxo">InvalidNonWitnessUtxo</a></li><li><a href="#variant.InvalidSighash">InvalidSighash</a></li><li><a href="#variant.MiniscriptPsbt">MiniscriptPsbt</a></li><li><a href="#variant.MissingHdKeypath">MissingHdKeypath</a></li><li><a href="#variant.MissingKey">MissingKey</a></li><li><a href="#variant.MissingNonWitnessUtxo">MissingNonWitnessUtxo</a></li><li><a href="#variant.MissingWitnessScript">MissingWitnessScript</a></li><li><a href="#variant.MissingWitnessUtxo">MissingWitnessUtxo</a></li><li><a href="#variant.NonStandardSighash">NonStandardSighash</a></li><li><a href="#variant.SighashError">SighashError</a></li><li><a href="#variant.UserCanceled">UserCanceled</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-SignerError">Debug</a></li><li><a href="#impl-Display-for-SignerError">Display</a></li><li><a href="#impl-Error-for-SignerError">Error</a></li><li><a href="#impl-From%3CError%3E-for-SignerError">From<Error></a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SignerError">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SignerError">Send</a></li><li><a href="#impl-Sync-for-SignerError">Sync</a></li><li><a href="#impl-Unpin-for-SignerError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SignerError">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SignerError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SignerError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SignerError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SignerError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SignerError">Into<U></a></li><li><a href="#impl-Provider-for-SignerError">Provider</a></li><li><a href="#impl-ToString-for-SignerError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SignerError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SignerError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SignerError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::signer</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">signer</a>::<wbr><a class="enum" href="#">SignerError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/signer.rs.html#134-169">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum SignerError {
-<details class="rustdoc-toggle type-contents-toggle"><summary class="hideme"><span>Show 14 variants</span></summary> MissingKey,
- InvalidKey,
- UserCanceled,
- InputIndexOutOfRange,
- MissingNonWitnessUtxo,
- InvalidNonWitnessUtxo,
- MissingWitnessUtxo,
- MissingWitnessScript,
- MissingHdKeypath,
- NonStandardSighash,
- InvalidSighash,
- SighashError(Error),
- MiniscriptPsbt(<a class="enum" href="../error/enum.MiniscriptPsbtError.html" title="enum bdk::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a>),
- External(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>),
-</details>}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Signing error</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.MissingKey" class="variant"><a href="#variant.MissingKey" class="anchor">§</a><h3 class="code-header">MissingKey</h3></section><div class="docblock"><p>The private key is missing for the required public key</p>
-</div><section id="variant.InvalidKey" class="variant"><a href="#variant.InvalidKey" class="anchor">§</a><h3 class="code-header">InvalidKey</h3></section><div class="docblock"><p>The private key in use has the right fingerprint but derives differently than expected</p>
-</div><section id="variant.UserCanceled" class="variant"><a href="#variant.UserCanceled" class="anchor">§</a><h3 class="code-header">UserCanceled</h3></section><div class="docblock"><p>The user canceled the operation</p>
-</div><section id="variant.InputIndexOutOfRange" class="variant"><a href="#variant.InputIndexOutOfRange" class="anchor">§</a><h3 class="code-header">InputIndexOutOfRange</h3></section><div class="docblock"><p>Input index is out of range</p>
-</div><section id="variant.MissingNonWitnessUtxo" class="variant"><a href="#variant.MissingNonWitnessUtxo" class="anchor">§</a><h3 class="code-header">MissingNonWitnessUtxo</h3></section><div class="docblock"><p>The <code>non_witness_utxo</code> field of the transaction is required to sign this input</p>
-</div><section id="variant.InvalidNonWitnessUtxo" class="variant"><a href="#variant.InvalidNonWitnessUtxo" class="anchor">§</a><h3 class="code-header">InvalidNonWitnessUtxo</h3></section><div class="docblock"><p>The <code>non_witness_utxo</code> specified is invalid</p>
-</div><section id="variant.MissingWitnessUtxo" class="variant"><a href="#variant.MissingWitnessUtxo" class="anchor">§</a><h3 class="code-header">MissingWitnessUtxo</h3></section><div class="docblock"><p>The <code>witness_utxo</code> field of the transaction is required to sign this input</p>
-</div><section id="variant.MissingWitnessScript" class="variant"><a href="#variant.MissingWitnessScript" class="anchor">§</a><h3 class="code-header">MissingWitnessScript</h3></section><div class="docblock"><p>The <code>witness_script</code> field of the transaction is required to sign this input</p>
-</div><section id="variant.MissingHdKeypath" class="variant"><a href="#variant.MissingHdKeypath" class="anchor">§</a><h3 class="code-header">MissingHdKeypath</h3></section><div class="docblock"><p>The fingerprint and derivation path are missing from the psbt input</p>
-</div><section id="variant.NonStandardSighash" class="variant"><a href="#variant.NonStandardSighash" class="anchor">§</a><h3 class="code-header">NonStandardSighash</h3></section><div class="docblock"><p>The psbt contains a non-<code>SIGHASH_ALL</code> sighash in one of its input and the user hasn’t
-explicitly allowed them</p>
-<p>To enable signing transactions with non-standard sighashes set
-<a href="struct.SignOptions.html#structfield.allow_all_sighashes" title="SignOptions::allow_all_sighashes"><code>SignOptions::allow_all_sighashes</code></a> to <code>true</code>.</p>
-</div><section id="variant.InvalidSighash" class="variant"><a href="#variant.InvalidSighash" class="anchor">§</a><h3 class="code-header">InvalidSighash</h3></section><div class="docblock"><p>Invalid SIGHASH for the signing context in use</p>
-</div><section id="variant.SighashError" class="variant"><a href="#variant.SighashError" class="anchor">§</a><h3 class="code-header">SighashError(Error)</h3></section><div class="docblock"><p>Error while computing the hash to sign</p>
-</div><section id="variant.MiniscriptPsbt" class="variant"><a href="#variant.MiniscriptPsbt" class="anchor">§</a><h3 class="code-header">MiniscriptPsbt(<a class="enum" href="../error/enum.MiniscriptPsbtError.html" title="enum bdk::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a>)</h3></section><div class="docblock"><p>Miniscript PSBT error</p>
-</div><section id="variant.External" class="variant"><a href="#variant.External" class="anchor">§</a><h3 class="code-header">External(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>)</h3></section><div class="docblock"><p>To be used only by external libraries implementing <a href="trait.InputSigner.html" title="InputSigner"><code>InputSigner</code></a> or
-<a href="trait.TransactionSigner.html" title="TransactionSigner"><code>TransactionSigner</code></a>, so that they can return their own custom errors, without having to
-modify <a href="enum.SignerError.html" title="SignerError"><code>SignerError</code></a> in BDK.</p>
-</div></div><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><section id="impl-Debug-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#133">source</a><a href="#impl-Debug-for-SignerError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.SignerError.html" title="enum bdk::wallet::signer::SignerError">SignerError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#133">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#177-196">source</a><a href="#impl-Display-for-SignerError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.SignerError.html" title="enum bdk::wallet::signer::SignerError">SignerError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#178-195">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#199">source</a><a href="#impl-Error-for-SignerError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.SignerError.html" title="enum bdk::wallet::signer::SignerError">SignerError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#171-175">source</a><a href="#impl-From%3CError%3E-for-SignerError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Error> for <a class="enum" href="enum.SignerError.html" title="enum bdk::wallet::signer::SignerError">SignerError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#172-174">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(e: Error) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SignerError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SignerError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.SignerError.html" title="enum bdk::wallet::signer::SignerError">SignerError</a></h3></section><section id="impl-Send-for-SignerError" class="impl has-srclink"><a href="#impl-Send-for-SignerError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.SignerError.html" title="enum bdk::wallet::signer::SignerError">SignerError</a></h3></section><section id="impl-Sync-for-SignerError" class="impl has-srclink"><a href="#impl-Sync-for-SignerError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.SignerError.html" title="enum bdk::wallet::signer::SignerError">SignerError</a></h3></section><section id="impl-Unpin-for-SignerError" class="impl has-srclink"><a href="#impl-Unpin-for-SignerError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.SignerError.html" title="enum bdk::wallet::signer::SignerError">SignerError</a></h3></section><section id="impl-UnwindSafe-for-SignerError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SignerError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.SignerError.html" title="enum bdk::wallet::signer::SignerError">SignerError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SignerError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SignerError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SignerError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SignerError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SignerError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-SignerError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
-provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-SignerError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SignerError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SignerError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SignerError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SignerError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Identifier of a signer in the `SignersContainers`. Used as a key to find the right signer among multiple of them"><meta name="keywords" content="rust, rustlang, rust-lang, SignerId"><title>SignerId in bdk::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SignerId</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Dummy">Dummy</a></li><li><a href="#variant.Fingerprint">Fingerprint</a></li><li><a href="#variant.PkHash">PkHash</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-SignerId">Clone</a></li><li><a href="#impl-Debug-for-SignerId">Debug</a></li><li><a href="#impl-Eq-for-SignerId">Eq</a></li><li><a href="#impl-From%3CFingerprint%3E-for-SignerId">From<Fingerprint></a></li><li><a href="#impl-From%3CHash%3E-for-SignerId">From<Hash></a></li><li><a href="#impl-Hash-for-SignerId">Hash</a></li><li><a href="#impl-Ord-for-SignerId">Ord</a></li><li><a href="#impl-PartialEq%3CSignerId%3E-for-SignerId">PartialEq<SignerId></a></li><li><a href="#impl-PartialOrd%3CSignerId%3E-for-SignerId">PartialOrd<SignerId></a></li><li><a href="#impl-StructuralEq-for-SignerId">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-SignerId">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SignerId">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SignerId">Send</a></li><li><a href="#impl-Sync-for-SignerId">Sync</a></li><li><a href="#impl-Unpin-for-SignerId">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SignerId">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SignerId">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SignerId">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SignerId">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SignerId">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SignerId">Into<U></a></li><li><a href="#impl-ToOwned-for-SignerId">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SignerId">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SignerId">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SignerId">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::signer</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">signer</a>::<wbr><a class="enum" href="#">SignerId</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/signer.rs.html#111-118">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum SignerId {
- PkHash(Hash),
- Fingerprint(Fingerprint),
- Dummy(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>),
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Identifier of a signer in the <code>SignersContainers</code>. Used as a key to find the right signer among
-multiple of them</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.PkHash" class="variant"><a href="#variant.PkHash" class="anchor">§</a><h3 class="code-header">PkHash(Hash)</h3></section><div class="docblock"><p>Bitcoin HASH160 (RIPEMD160 after SHA256) hash of an ECDSA public key</p>
-</div><section id="variant.Fingerprint" class="variant"><a href="#variant.Fingerprint" class="anchor">§</a><h3 class="code-header">Fingerprint(Fingerprint)</h3></section><div class="docblock"><p>The fingerprint of a BIP32 extended key</p>
-</div><section id="variant.Dummy" class="variant"><a href="#variant.Dummy" class="anchor">§</a><h3 class="code-header">Dummy(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>)</h3></section><div class="docblock"><p>Dummy identifier</p>
-</div></div><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><section id="impl-Clone-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#110">source</a><a href="#impl-Clone-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#110">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#110">source</a><a href="#impl-Debug-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#110">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CFingerprint%3E-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#126-130">source</a><a href="#impl-From%3CFingerprint%3E-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Fingerprint> for <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#127-129">source</a><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(fing: Fingerprint) -> <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CHash%3E-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#120-124">source</a><a href="#impl-From%3CHash%3E-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Hash> for <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#121-123">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(hash: Hash) -> <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#110">source</a><a href="#impl-Hash-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#110">source</a><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)</h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#110">source</a><a href="#impl-Ord-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#110">source</a><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CSignerId%3E-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#110">source</a><a href="#impl-PartialEq%3CSignerId%3E-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a>> for <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#110">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CSignerId%3E-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#110">source</a><a href="#impl-PartialOrd%3CSignerId%3E-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a>> for <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#110">source</a><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><section id="impl-Eq-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#110">source</a><a href="#impl-Eq-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a></h3></section><section id="impl-StructuralEq-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#110">source</a><a href="#impl-StructuralEq-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a></h3></section><section id="impl-StructuralPartialEq-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#110">source</a><a href="#impl-StructuralPartialEq-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SignerId" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a></h3></section><section id="impl-Send-for-SignerId" class="impl has-srclink"><a href="#impl-Send-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a></h3></section><section id="impl-Sync-for-SignerId" class="impl has-srclink"><a href="#impl-Sync-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a></h3></section><section id="impl-Unpin-for-SignerId" class="impl has-srclink"><a href="#impl-Unpin-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a></h3></section><section id="impl-UnwindSafe-for-SignerId" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SignerId" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SignerId" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SignerId" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SignerId" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SignerId" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-SignerId" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SignerId" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SignerId" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SignerId" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SignerId" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Customize which taproot script-path leaves the signer should sign."><meta name="keywords" content="rust, rustlang, rust-lang, TapLeavesOptions"><title>TapLeavesOptions in bdk::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">TapLeavesOptions</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.All">All</a></li><li><a href="#variant.Exclude">Exclude</a></li><li><a href="#variant.Include">Include</a></li><li><a href="#variant.None">None</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-TapLeavesOptions">Clone</a></li><li><a href="#impl-Debug-for-TapLeavesOptions">Debug</a></li><li><a href="#impl-Default-for-TapLeavesOptions">Default</a></li><li><a href="#impl-Eq-for-TapLeavesOptions">Eq</a></li><li><a href="#impl-PartialEq%3CTapLeavesOptions%3E-for-TapLeavesOptions">PartialEq<TapLeavesOptions></a></li><li><a href="#impl-StructuralEq-for-TapLeavesOptions">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-TapLeavesOptions">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-TapLeavesOptions">RefUnwindSafe</a></li><li><a href="#impl-Send-for-TapLeavesOptions">Send</a></li><li><a href="#impl-Sync-for-TapLeavesOptions">Sync</a></li><li><a href="#impl-Unpin-for-TapLeavesOptions">Unpin</a></li><li><a href="#impl-UnwindSafe-for-TapLeavesOptions">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-TapLeavesOptions">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-TapLeavesOptions">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-TapLeavesOptions">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-TapLeavesOptions">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-TapLeavesOptions">Into<U></a></li><li><a href="#impl-ToOwned-for-TapLeavesOptions">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-TapLeavesOptions">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-TapLeavesOptions">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-TapLeavesOptions">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::signer</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">signer</a>::<wbr><a class="enum" href="#">TapLeavesOptions</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/signer.rs.html#819-830">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum TapLeavesOptions {
- All,
- Include(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><TapLeafHash>),
- Exclude(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><TapLeafHash>),
- None,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Customize which taproot script-path leaves the signer should sign.</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.All" class="variant"><a href="#variant.All" class="anchor">§</a><h3 class="code-header">All</h3></section><div class="docblock"><p>The signer will sign all the leaves it has a key for.</p>
-</div><section id="variant.Include" class="variant"><a href="#variant.Include" class="anchor">§</a><h3 class="code-header">Include(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><TapLeafHash>)</h3></section><div class="docblock"><p>The signer won’t sign leaves other than the ones specified. Note that it could still ignore
-some of the specified leaves, if it doesn’t have the right key to sign them.</p>
-</div><section id="variant.Exclude" class="variant"><a href="#variant.Exclude" class="anchor">§</a><h3 class="code-header">Exclude(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><TapLeafHash>)</h3></section><div class="docblock"><p>The signer won’t sign the specified leaves.</p>
-</div><section id="variant.None" class="variant"><a href="#variant.None" class="anchor">§</a><h3 class="code-header">None</h3></section><div class="docblock"><p>The signer won’t sign any leaf.</p>
-</div></div><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><section id="impl-Clone-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#818">source</a><a href="#impl-Clone-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#818">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#818">source</a><a href="#impl-Debug-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#818">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#818">source</a><a href="#impl-Default-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#818">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CTapLeavesOptions%3E-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#818">source</a><a href="#impl-PartialEq%3CTapLeavesOptions%3E-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk::wallet::signer::TapLeavesOptions">TapLeavesOptions</a>> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#818">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk::wallet::signer::TapLeavesOptions">TapLeavesOptions</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><section id="impl-Eq-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#818">source</a><a href="#impl-Eq-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section><section id="impl-StructuralEq-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#818">source</a><a href="#impl-StructuralEq-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section><section id="impl-StructuralPartialEq-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#818">source</a><a href="#impl-StructuralPartialEq-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-TapLeavesOptions" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section><section id="impl-Send-for-TapLeavesOptions" class="impl has-srclink"><a href="#impl-Send-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section><section id="impl-Sync-for-TapLeavesOptions" class="impl has-srclink"><a href="#impl-Sync-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section><section id="impl-Unpin-for-TapLeavesOptions" class="impl has-srclink"><a href="#impl-Unpin-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section><section id="impl-UnwindSafe-for-TapLeavesOptions" class="impl has-srclink"><a href="#impl-UnwindSafe-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-TapLeavesOptions" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Generalized signers"><meta name="keywords" content="rust, rustlang, rust-lang, signer"><title>bdk::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module signer</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#traits">Traits</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a class="mod" href="#">signer</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/signer.rs.html#12-1193">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Generalized signers</p>
-<p>This module provides the ability to add customized signers to a <a href="../struct.Wallet.html"><code>Wallet</code></a>
-through the <a href="../struct.Wallet.html#method.add_signer"><code>Wallet::add_signer</code></a> function.</p>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#[derive(Debug)]
-</span><span class="kw">struct </span>CustomSigner {
- device: CustomHSM,
-}
-
-<span class="kw">impl </span>CustomSigner {
- <span class="kw">fn </span>connect() -> <span class="self">Self </span>{
- CustomSigner { device: CustomHSM::connect() }
- }
-}
-
-<span class="kw">impl </span>SignerCommon <span class="kw">for </span>CustomSigner {
- <span class="kw">fn </span>id(<span class="kw-2">&</span><span class="self">self</span>, _secp: <span class="kw-2">&</span>Secp256k1<All>) -> SignerId {
- <span class="self">self</span>.device.get_id()
- }
-}
-
-<span class="kw">impl </span>InputSigner <span class="kw">for </span>CustomSigner {
- <span class="kw">fn </span>sign_input(
- <span class="kw-2">&</span><span class="self">self</span>,
- psbt: <span class="kw-2">&mut </span>Psbt,
- input_index: usize,
- _sign_options: <span class="kw-2">&</span>SignOptions,
- _secp: <span class="kw-2">&</span>Secp256k1<All>,
- ) -> <span class="prelude-ty">Result</span><(), SignerError> {
- <span class="self">self</span>.device.hsm_sign_input(psbt, input_index)<span class="question-mark">?</span>;
-
- <span class="prelude-val">Ok</span>(())
- }
-}
-
-<span class="kw">let </span>custom_signer = CustomSigner::connect();
-
-<span class="kw">let </span>descriptor = <span class="string">"wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/*)"</span>;
-<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(descriptor, <span class="prelude-val">None</span>, Network::Testnet)<span class="question-mark">?</span>;
-wallet.add_signer(
- KeychainKind::External,
- SignerOrdering(<span class="number">200</span>),
- Arc::new(custom_signer)
-);
-</code></pre></div>
-</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.SignOptions.html" title="bdk::wallet::signer::SignOptions struct">SignOptions</a></div><div class="item-right docblock-short">Options for a software signer</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.SignerOrdering.html" title="bdk::wallet::signer::SignerOrdering struct">SignerOrdering</a></div><div class="item-right docblock-short">Defines the order in which signers are called</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.SignerWrapper.html" title="bdk::wallet::signer::SignerWrapper struct">SignerWrapper</a></div><div class="item-right docblock-short">Wrapper to pair a signer with its context</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.SignersContainer.html" title="bdk::wallet::signer::SignersContainer struct">SignersContainer</a></div><div class="item-right docblock-short">Container for multiple signers</div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.SignerContext.html" title="bdk::wallet::signer::SignerContext enum">SignerContext</a></div><div class="item-right docblock-short">Signing context</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.SignerError.html" title="bdk::wallet::signer::SignerError enum">SignerError</a></div><div class="item-right docblock-short">Signing error</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.SignerId.html" title="bdk::wallet::signer::SignerId enum">SignerId</a></div><div class="item-right docblock-short">Identifier of a signer in the <code>SignersContainers</code>. Used as a key to find the right signer among
-multiple of them</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.TapLeavesOptions.html" title="bdk::wallet::signer::TapLeavesOptions enum">TapLeavesOptions</a></div><div class="item-right docblock-short">Customize which taproot script-path leaves the signer should sign.</div></div></div><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.InputSigner.html" title="bdk::wallet::signer::InputSigner trait">InputSigner</a></div><div class="item-right docblock-short">PSBT Input signer</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.SignerCommon.html" title="bdk::wallet::signer::SignerCommon trait">SignerCommon</a></div><div class="item-right docblock-short">Common signer methods</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.TransactionSigner.html" title="bdk::wallet::signer::TransactionSigner trait">TransactionSigner</a></div><div class="item-right docblock-short">PSBT signer</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-window.SIDEBAR_ITEMS = {"enum":[["SignerContext","Signing context"],["SignerError","Signing error"],["SignerId","Identifier of a signer in the `SignersContainers`. Used as a key to find the right signer among multiple of them"],["TapLeavesOptions","Customize which taproot script-path leaves the signer should sign."]],"struct":[["SignOptions","Options for a software signer"],["SignerOrdering","Defines the order in which signers are called"],["SignerWrapper","Wrapper to pair a signer with its context"],["SignersContainer","Container for multiple signers"]],"trait":[["InputSigner","PSBT Input signer"],["SignerCommon","Common signer methods"],["TransactionSigner","PSBT signer"]]};
\ No newline at end of file
+++ /dev/null
-<!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="Options for a software signer"><meta name="keywords" content="rust, rustlang, rust-lang, SignOptions"><title>SignOptions in bdk::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SignOptions</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.allow_all_sighashes">allow_all_sighashes</a></li><li><a href="#structfield.allow_grinding">allow_grinding</a></li><li><a href="#structfield.assume_height">assume_height</a></li><li><a href="#structfield.remove_partial_sigs">remove_partial_sigs</a></li><li><a href="#structfield.remove_taproot_extras">remove_taproot_extras</a></li><li><a href="#structfield.sign_with_tap_internal_key">sign_with_tap_internal_key</a></li><li><a href="#structfield.tap_leaves_options">tap_leaves_options</a></li><li><a href="#structfield.trust_witness_utxo">trust_witness_utxo</a></li><li><a href="#structfield.try_finalize">try_finalize</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-SignOptions">Clone</a></li><li><a href="#impl-Debug-for-SignOptions">Debug</a></li><li><a href="#impl-Default-for-SignOptions">Default</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SignOptions">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SignOptions">Send</a></li><li><a href="#impl-Sync-for-SignOptions">Sync</a></li><li><a href="#impl-Unpin-for-SignOptions">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SignOptions">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SignOptions">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SignOptions">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SignOptions">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SignOptions">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SignOptions">Into<U></a></li><li><a href="#impl-ToOwned-for-SignOptions">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SignOptions">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SignOptions">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SignOptions">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::signer</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">signer</a>::<wbr><a class="struct" href="#">SignOptions</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/signer.rs.html#750-815">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct SignOptions {
- pub trust_witness_utxo: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
- pub assume_height: <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.u32.html">u32</a>>,
- pub allow_all_sighashes: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
- pub remove_partial_sigs: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
- pub remove_taproot_extras: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
- pub try_finalize: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
- pub tap_leaves_options: <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk::wallet::signer::TapLeavesOptions">TapLeavesOptions</a>,
- pub sign_with_tap_internal_key: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
- pub allow_grinding: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Options for a software signer</p>
-<p>Adjust the behavior of our software signers and the way a transaction is finalized</p>
-</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.trust_witness_utxo" class="structfield small-section-header"><a href="#structfield.trust_witness_utxo" class="anchor field">§</a><code>trust_witness_utxo: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether the signer should trust the <code>witness_utxo</code>, if the <code>non_witness_utxo</code> hasn’t been
-provided</p>
-<p>Defaults to <code>false</code> to mitigate the “SegWit bug” which should trick the wallet into
-paying a fee larger than expected.</p>
-<p>Some wallets, especially if relatively old, might not provide the <code>non_witness_utxo</code> for
-SegWit transactions in the PSBT they generate: in those cases setting this to <code>true</code>
-should correctly produce a signature, at the expense of an increased trust in the creator
-of the PSBT.</p>
-<p>For more details see: <a href="https://blog.trezor.io/details-of-firmware-updates-for-trezor-one-version-1-9-1-and-trezor-model-t-version-2-3-1-1eba8f60f2dd">https://blog.trezor.io/details-of-firmware-updates-for-trezor-one-version-1-9-1-and-trezor-model-t-version-2-3-1-1eba8f60f2dd</a></p>
-</div><span id="structfield.assume_height" class="structfield small-section-header"><a href="#structfield.assume_height" class="anchor field">§</a><code>assume_height: <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.u32.html">u32</a>></code></span><div class="docblock"><p>Whether the wallet should assume a specific height has been reached when trying to finalize
-a transaction</p>
-<p>The wallet will only “use” a timelock to satisfy the spending policy of an input if the
-timelock height has already been reached. This option allows overriding the “current height” to let the
-wallet use timelocks in the future to spend a coin.</p>
-</div><span id="structfield.allow_all_sighashes" class="structfield small-section-header"><a href="#structfield.allow_all_sighashes" class="anchor field">§</a><code>allow_all_sighashes: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether the signer should use the <code>sighash_type</code> set in the PSBT when signing, no matter
-what its value is</p>
-<p>Defaults to <code>false</code> which will only allow signing using <code>SIGHASH_ALL</code>.</p>
-</div><span id="structfield.remove_partial_sigs" class="structfield small-section-header"><a href="#structfield.remove_partial_sigs" class="anchor field">§</a><code>remove_partial_sigs: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether to remove partial signatures from the PSBT inputs while finalizing PSBT.</p>
-<p>Defaults to <code>true</code> which will remove partial signatures during finalization.</p>
-</div><span id="structfield.remove_taproot_extras" class="structfield small-section-header"><a href="#structfield.remove_taproot_extras" class="anchor field">§</a><code>remove_taproot_extras: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether to remove taproot specific fields from the PSBT on finalization.</p>
-<p>For inputs this includes the taproot internal key, merkle root, and individual
-scripts and signatures. For both inputs and outputs it includes key origin info.</p>
-<p>Defaults to <code>true</code> which will remove all of the above mentioned fields when finalizing.</p>
-<p>See <a href="https://github.com/bitcoin/bips/blob/master/bip-0371.mediawiki"><code>BIP371</code></a> for details.</p>
-</div><span id="structfield.try_finalize" class="structfield small-section-header"><a href="#structfield.try_finalize" class="anchor field">§</a><code>try_finalize: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether to try finalizing the PSBT after the inputs are signed.</p>
-<p>Defaults to <code>true</code> which will try finalizing PSBT after inputs are signed.</p>
-</div><span id="structfield.tap_leaves_options" class="structfield small-section-header"><a href="#structfield.tap_leaves_options" class="anchor field">§</a><code>tap_leaves_options: <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></code></span><div class="docblock"><p>Specifies which Taproot script-spend leaves we should sign for. This option is
-ignored if we’re signing a non-taproot PSBT.</p>
-<p>Defaults to All, i.e., the wallet will sign all the leaves it has a key for.</p>
-</div><span id="structfield.sign_with_tap_internal_key" class="structfield small-section-header"><a href="#structfield.sign_with_tap_internal_key" class="anchor field">§</a><code>sign_with_tap_internal_key: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether we should try to sign a taproot transaction with the taproot internal key
-or not. This option is ignored if we’re signing a non-taproot PSBT.</p>
-<p>Defaults to <code>true</code>, i.e., we always try to sign with the taproot internal key.</p>
-</div><span id="structfield.allow_grinding" class="structfield small-section-header"><a href="#structfield.allow_grinding" class="anchor field">§</a><code>allow_grinding: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether we should grind ECDSA signature to ensure signing with low r
-or not.
-Defaults to <code>true</code>, i.e., we always grind ECDSA signature to sign with low r.</p>
-</div><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><section id="impl-Clone-for-SignOptions" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#749">source</a><a href="#impl-Clone-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.SignOptions.html" title="struct bdk::wallet::signer::SignOptions">SignOptions</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#749">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.SignOptions.html" title="struct bdk::wallet::signer::SignOptions">SignOptions</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-SignOptions" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#749">source</a><a href="#impl-Debug-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.SignOptions.html" title="struct bdk::wallet::signer::SignOptions">SignOptions</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#749">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-SignOptions" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#832-846">source</a><a href="#impl-Default-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.SignOptions.html" title="struct bdk::wallet::signer::SignOptions">SignOptions</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#833-845">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> Self</h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SignOptions" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.SignOptions.html" title="struct bdk::wallet::signer::SignOptions">SignOptions</a></h3></section><section id="impl-Send-for-SignOptions" class="impl has-srclink"><a href="#impl-Send-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.SignOptions.html" title="struct bdk::wallet::signer::SignOptions">SignOptions</a></h3></section><section id="impl-Sync-for-SignOptions" class="impl has-srclink"><a href="#impl-Sync-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.SignOptions.html" title="struct bdk::wallet::signer::SignOptions">SignOptions</a></h3></section><section id="impl-Unpin-for-SignOptions" class="impl has-srclink"><a href="#impl-Unpin-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.SignOptions.html" title="struct bdk::wallet::signer::SignOptions">SignOptions</a></h3></section><section id="impl-UnwindSafe-for-SignOptions" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.SignOptions.html" title="struct bdk::wallet::signer::SignOptions">SignOptions</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SignOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SignOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SignOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SignOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SignOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-SignOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SignOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SignOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SignOptions" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Defines the order in which signers are called"><meta name="keywords" content="rust, rustlang, rust-lang, SignerOrdering"><title>SignerOrdering in bdk::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SignerOrdering</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-SignerOrdering">Clone</a></li><li><a href="#impl-Debug-for-SignerOrdering">Debug</a></li><li><a href="#impl-Default-for-SignerOrdering">Default</a></li><li><a href="#impl-Eq-for-SignerOrdering">Eq</a></li><li><a href="#impl-Ord-for-SignerOrdering">Ord</a></li><li><a href="#impl-PartialEq%3CSignerOrdering%3E-for-SignerOrdering">PartialEq<SignerOrdering></a></li><li><a href="#impl-PartialOrd%3CSignerOrdering%3E-for-SignerOrdering">PartialOrd<SignerOrdering></a></li><li><a href="#impl-StructuralEq-for-SignerOrdering">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-SignerOrdering">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SignerOrdering">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SignerOrdering">Send</a></li><li><a href="#impl-Sync-for-SignerOrdering">Sync</a></li><li><a href="#impl-Unpin-for-SignerOrdering">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SignerOrdering">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SignerOrdering">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SignerOrdering">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SignerOrdering">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SignerOrdering">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SignerOrdering">Into<U></a></li><li><a href="#impl-ToOwned-for-SignerOrdering">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SignerOrdering">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SignerOrdering">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SignerOrdering">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::signer</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">signer</a>::<wbr><a class="struct" href="#">SignerOrdering</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/signer.rs.html#609">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct SignerOrdering(pub <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Defines the order in which signers are called</p>
-<p>The default value is <code>100</code>. Signers with an ordering above that will be called later,
-and they will thus see the partial signatures added to the transaction once they get to sign
-themselves.</p>
-</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code></span><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><section id="impl-Clone-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#608">source</a><a href="#impl-Clone-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#608">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.SignerOrdering.html" title="struct bdk::wallet::signer::SignerOrdering">SignerOrdering</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#608">source</a><a href="#impl-Debug-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#608">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#611-615">source</a><a href="#impl-Default-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#612-614">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> Self</h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#608">source</a><a href="#impl-Ord-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#608">source</a><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="struct" href="struct.SignerOrdering.html" title="struct bdk::wallet::signer::SignerOrdering">SignerOrdering</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CSignerOrdering%3E-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#608">source</a><a href="#impl-PartialEq%3CSignerOrdering%3E-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.SignerOrdering.html" title="struct bdk::wallet::signer::SignerOrdering">SignerOrdering</a>> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#608">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.SignerOrdering.html" title="struct bdk::wallet::signer::SignerOrdering">SignerOrdering</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CSignerOrdering%3E-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#608">source</a><a href="#impl-PartialOrd%3CSignerOrdering%3E-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="struct" href="struct.SignerOrdering.html" title="struct bdk::wallet::signer::SignerOrdering">SignerOrdering</a>> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#608">source</a><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="struct" href="struct.SignerOrdering.html" title="struct bdk::wallet::signer::SignerOrdering">SignerOrdering</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><section id="impl-Eq-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#608">source</a><a href="#impl-Eq-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section><section id="impl-StructuralEq-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#608">source</a><a href="#impl-StructuralEq-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section><section id="impl-StructuralPartialEq-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#608">source</a><a href="#impl-StructuralPartialEq-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SignerOrdering" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section><section id="impl-Send-for-SignerOrdering" class="impl has-srclink"><a href="#impl-Send-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section><section id="impl-Sync-for-SignerOrdering" class="impl has-srclink"><a href="#impl-Sync-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section><section id="impl-Unpin-for-SignerOrdering" class="impl has-srclink"><a href="#impl-Unpin-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section><section id="impl-UnwindSafe-for-SignerOrdering" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SignerOrdering" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Wrapper to pair a signer with its context"><meta name="keywords" content="rust, rustlang, rust-lang, SignerWrapper"><title>SignerWrapper in bdk::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SignerWrapper</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.new">new</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-SignerWrapper%3CS%3E">Clone</a></li><li><a href="#impl-Debug-for-SignerWrapper%3CS%3E">Debug</a></li><li><a href="#impl-Deref-for-SignerWrapper%3CS%3E">Deref</a></li><li><a href="#impl-InputSigner-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E">InputSigner</a></li><li><a href="#impl-InputSigner-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E">InputSigner</a></li><li><a href="#impl-InputSigner-for-SignerWrapper%3CPrivateKey%3E">InputSigner</a></li><li><a href="#impl-SignerCommon-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E">SignerCommon</a></li><li><a href="#impl-SignerCommon-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E">SignerCommon</a></li><li><a href="#impl-SignerCommon-for-SignerWrapper%3CPrivateKey%3E">SignerCommon</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SignerWrapper%3CS%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SignerWrapper%3CS%3E">Send</a></li><li><a href="#impl-Sync-for-SignerWrapper%3CS%3E">Sync</a></li><li><a href="#impl-Unpin-for-SignerWrapper%3CS%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SignerWrapper%3CS%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SignerWrapper%3CS%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SignerWrapper%3CS%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SignerWrapper%3CS%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SignerWrapper%3CS%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SignerWrapper%3CS%3E">Into<U></a></li><li><a href="#impl-ToOwned-for-SignerWrapper%3CS%3E">ToOwned</a></li><li><a href="#impl-TransactionSigner-for-SignerWrapper%3CS%3E">TransactionSigner</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SignerWrapper%3CS%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SignerWrapper%3CS%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SignerWrapper%3CS%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::signer</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">signer</a>::<wbr><a class="struct" href="#">SignerWrapper</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/signer.rs.html#219-222">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct SignerWrapper<S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>> { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Wrapper to pair a signer with its context</p>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#224-229">source</a><a href="#impl-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>> <a class="struct" href="struct.SignerWrapper.html" title="struct bdk::wallet::signer::SignerWrapper">SignerWrapper</a><S></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#226-228">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(signer: S, ctx: <a class="enum" href="enum.SignerContext.html" title="enum bdk::wallet::signer::SignerContext">SignerContext</a>) -> Self</h4></section></summary><div class="docblock"><p>Create a wrapped signer from a signer and a context</p>
-</div></details></div></details></div><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><section id="impl-Clone-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#218">source</a><a href="#impl-Clone-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S: <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/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <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/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk::wallet::signer::SignerWrapper">SignerWrapper</a><S></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#218">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.SignerWrapper.html" title="struct bdk::wallet::signer::SignerWrapper">SignerWrapper</a><S></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#218">source</a><a href="#impl-Debug-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <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/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk::wallet::signer::SignerWrapper">SignerWrapper</a><S></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#218">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deref-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#231-237">source</a><a href="#impl-Deref-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <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/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk::wallet::signer::SignerWrapper">SignerWrapper</a><S></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Target" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Target" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#associatedtype.Target" class="associatedtype">Target</a> = S</h4></section></summary><div class='docblock'>The resulting type after dereferencing.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deref" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#234-236">source</a><a href="#method.deref" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#tymethod.deref" class="fn">deref</a>(&self) -> &Self::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#associatedtype.Target" title="type core::ops::deref::Deref::Target">Target</a></h4></section></summary><div class='docblock'>Dereferences the value.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-InputSigner-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#408-422">source</a><a href="#impl-InputSigner-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.InputSigner.html" title="trait bdk::wallet::signer::InputSigner">InputSigner</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk::wallet::signer::SignerWrapper">SignerWrapper</a><DescriptorMultiXKey<Xpriv>></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sign_input-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#409-421">source</a><a href="#method.sign_input-1" class="anchor">§</a><h4 class="code-header">fn <a href="trait.InputSigner.html#tymethod.sign_input" class="fn">sign_input</a>(<br> &self,<br> psbt: &mut Psbt,<br> input_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> sign_options: &<a class="struct" href="struct.SignOptions.html" title="struct bdk::wallet::signer::SignOptions">SignOptions</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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.SignerError.html" title="enum bdk::wallet::signer::SignerError">SignerError</a>></h4></section></summary><div class='docblock'>Sign a single psbt input</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-InputSigner-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#312-380">source</a><a href="#impl-InputSigner-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.InputSigner.html" title="trait bdk::wallet::signer::InputSigner">InputSigner</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk::wallet::signer::SignerWrapper">SignerWrapper</a><DescriptorXKey<Xpriv>></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sign_input" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#313-379">source</a><a href="#method.sign_input" class="anchor">§</a><h4 class="code-header">fn <a href="trait.InputSigner.html#tymethod.sign_input" class="fn">sign_input</a>(<br> &self,<br> psbt: &mut Psbt,<br> input_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> sign_options: &<a class="struct" href="struct.SignOptions.html" title="struct bdk::wallet::signer::SignOptions">SignOptions</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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.SignerError.html" title="enum bdk::wallet::signer::SignerError">SignerError</a>></h4></section></summary><div class='docblock'>Sign a single psbt input</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-InputSigner-for-SignerWrapper%3CPrivateKey%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#437-545">source</a><a href="#impl-InputSigner-for-SignerWrapper%3CPrivateKey%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.InputSigner.html" title="trait bdk::wallet::signer::InputSigner">InputSigner</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk::wallet::signer::SignerWrapper">SignerWrapper</a><PrivateKey></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sign_input-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#438-544">source</a><a href="#method.sign_input-2" class="anchor">§</a><h4 class="code-header">fn <a href="trait.InputSigner.html#tymethod.sign_input" class="fn">sign_input</a>(<br> &self,<br> psbt: &mut Psbt,<br> input_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> sign_options: &<a class="struct" href="struct.SignOptions.html" title="struct bdk::wallet::signer::SignOptions">SignOptions</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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.SignerError.html" title="enum bdk::wallet::signer::SignerError">SignerError</a>></h4></section></summary><div class='docblock'>Sign a single psbt input</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-SignerCommon-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#398-406">source</a><a href="#impl-SignerCommon-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.SignerCommon.html" title="trait bdk::wallet::signer::SignerCommon">SignerCommon</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk::wallet::signer::SignerWrapper">SignerWrapper</a><DescriptorMultiXKey<Xpriv>></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.id-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#399-401">source</a><a href="#method.id-1" class="anchor">§</a><h4 class="code-header">fn <a href="trait.SignerCommon.html#tymethod.id" class="fn">id</a>(&self, secp: &Secp256k1<All>) -> <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a></h4></section></summary><div class='docblock'>Return the <a href="enum.SignerId.html" title="SignerId"><code>SignerId</code></a> for this signer <a href="trait.SignerCommon.html#tymethod.id">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.descriptor_secret_key-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#403-405">source</a><a href="#method.descriptor_secret_key-1" class="anchor">§</a><h4 class="code-header">fn <a href="trait.SignerCommon.html#method.descriptor_secret_key" class="fn">descriptor_secret_key</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a>></h4></section></summary><div class='docblock'>Return the secret key for the signer <a href="trait.SignerCommon.html#method.descriptor_secret_key">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-SignerCommon-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#302-310">source</a><a href="#impl-SignerCommon-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.SignerCommon.html" title="trait bdk::wallet::signer::SignerCommon">SignerCommon</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk::wallet::signer::SignerWrapper">SignerWrapper</a><DescriptorXKey<Xpriv>></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.id" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#303-305">source</a><a href="#method.id" class="anchor">§</a><h4 class="code-header">fn <a href="trait.SignerCommon.html#tymethod.id" class="fn">id</a>(&self, secp: &Secp256k1<All>) -> <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a></h4></section></summary><div class='docblock'>Return the <a href="enum.SignerId.html" title="SignerId"><code>SignerId</code></a> for this signer <a href="trait.SignerCommon.html#tymethod.id">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.descriptor_secret_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#307-309">source</a><a href="#method.descriptor_secret_key" class="anchor">§</a><h4 class="code-header">fn <a href="trait.SignerCommon.html#method.descriptor_secret_key" class="fn">descriptor_secret_key</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a>></h4></section></summary><div class='docblock'>Return the secret key for the signer <a href="trait.SignerCommon.html#method.descriptor_secret_key">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-SignerCommon-for-SignerWrapper%3CPrivateKey%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#424-435">source</a><a href="#impl-SignerCommon-for-SignerWrapper%3CPrivateKey%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.SignerCommon.html" title="trait bdk::wallet::signer::SignerCommon">SignerCommon</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk::wallet::signer::SignerWrapper">SignerWrapper</a><PrivateKey></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.id-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#425-427">source</a><a href="#method.id-2" class="anchor">§</a><h4 class="code-header">fn <a href="trait.SignerCommon.html#tymethod.id" class="fn">id</a>(&self, secp: &Secp256k1<All>) -> <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a></h4></section></summary><div class='docblock'>Return the <a href="enum.SignerId.html" title="SignerId"><code>SignerId</code></a> for this signer <a href="trait.SignerCommon.html#tymethod.id">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.descriptor_secret_key-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#429-434">source</a><a href="#method.descriptor_secret_key-2" class="anchor">§</a><h4 class="code-header">fn <a href="trait.SignerCommon.html#method.descriptor_secret_key" class="fn">descriptor_secret_key</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a>></h4></section></summary><div class='docblock'>Return the secret key for the signer <a href="trait.SignerCommon.html#method.descriptor_secret_key">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk::wallet::signer::SignerWrapper">SignerWrapper</a><S><span class="where fmt-newline">where<br> S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a href="#impl-Send-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk::wallet::signer::SignerWrapper">SignerWrapper</a><S><span class="where fmt-newline">where<br> S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a href="#impl-Sync-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk::wallet::signer::SignerWrapper">SignerWrapper</a><S><span class="where fmt-newline">where<br> S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a href="#impl-Unpin-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk::wallet::signer::SignerWrapper">SignerWrapper</a><S><span class="where fmt-newline">where<br> S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk::wallet::signer::SignerWrapper">SignerWrapper</a><S><span class="where fmt-newline">where<br> S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TransactionSigner-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#287-300">source</a><a href="#impl-TransactionSigner-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="trait.TransactionSigner.html" title="trait bdk::wallet::signer::TransactionSigner">TransactionSigner</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.InputSigner.html" title="trait bdk::wallet::signer::InputSigner">InputSigner</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sign_transaction" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#288-299">source</a><a href="#method.sign_transaction" class="anchor">§</a><h4 class="code-header">fn <a href="trait.TransactionSigner.html#tymethod.sign_transaction" class="fn">sign_transaction</a>(<br> &self,<br> psbt: &mut Psbt,<br> sign_options: &<a class="struct" href="struct.SignOptions.html" title="struct bdk::wallet::signer::SignOptions">SignOptions</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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.SignerError.html" title="enum bdk::wallet::signer::SignerError">SignerError</a>></h4></section></summary><div class='docblock'>Sign all the inputs of the psbt</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Container for multiple signers"><meta name="keywords" content="rust, rustlang, rust-lang, SignersContainer"><title>SignersContainer in bdk::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SignersContainer</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.add_external">add_external</a></li><li><a href="#method.as_key_map">as_key_map</a></li><li><a href="#method.build">build</a></li><li><a href="#method.find">find</a></li><li><a href="#method.ids">ids</a></li><li><a href="#method.new">new</a></li><li><a href="#method.remove">remove</a></li><li><a href="#method.signers">signers</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-SignersContainer">Clone</a></li><li><a href="#impl-Debug-for-SignersContainer">Debug</a></li><li><a href="#impl-Default-for-SignersContainer">Default</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SignersContainer">!RefUnwindSafe</a></li><li><a href="#impl-Send-for-SignersContainer">Send</a></li><li><a href="#impl-Sync-for-SignersContainer">Sync</a></li><li><a href="#impl-Unpin-for-SignersContainer">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SignersContainer">!UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SignersContainer">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SignersContainer">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SignersContainer">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SignersContainer">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SignersContainer">Into<U></a></li><li><a href="#impl-ToOwned-for-SignersContainer">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SignersContainer">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SignersContainer">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SignersContainer">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::signer</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">signer</a>::<wbr><a class="struct" href="#">SignersContainer</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/signer.rs.html#634">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct SignersContainer(_);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Container for multiple signers</p>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#636-692">source</a><a href="#impl-SignersContainer" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.SignersContainer.html" title="struct bdk::wallet::signer::SignersContainer">SignersContainer</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_key_map" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#638-644">source</a><h4 class="code-header">pub fn <a href="#method.as_key_map" class="fn">as_key_map</a>(&self, secp: &Secp256k1<All>) -> <a class="type" href="../../keys/type.KeyMap.html" title="type bdk::keys::KeyMap">KeyMap</a></h4></section></summary><div class="docblock"><p>Create a map of public keys to secret keys</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#650-691">source</a><h4 class="code-header">pub fn <a href="#method.build" class="fn">build</a>(<br> keymap: <a class="type" href="../../keys/type.KeyMap.html" title="type bdk::keys::KeyMap">KeyMap</a>,<br> descriptor: &<a class="enum" href="../../descriptor/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>>,<br> secp: &Secp256k1<All><br>) -> <a class="struct" href="struct.SignersContainer.html" title="struct bdk::wallet::signer::SignersContainer">SignersContainer</a></h4></section></summary><div class="docblock"><p>Build a new signer container from a <a href="../../keys/type.KeyMap.html" title="KeyMap"><code>KeyMap</code></a></p>
-<p>Also looks at the corresponding descriptor to determine the <a href="enum.SignerContext.html" title="SignerContext"><code>SignerContext</code></a> to attach to
-the signers</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-SignersContainer-1" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#694-744">source</a><a href="#impl-SignersContainer-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.SignersContainer.html" title="struct bdk::wallet::signer::SignersContainer">SignersContainer</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#696-698">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>() -> Self</h4></section></summary><div class="docblock"><p>Default constructor</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_external" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#702-709">source</a><h4 class="code-header">pub fn <a href="#method.add_external" class="fn">add_external</a>(<br> &mut self,<br> id: <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a>,<br> ordering: <a class="struct" href="struct.SignerOrdering.html" title="struct bdk::wallet::signer::SignerOrdering">SignerOrdering</a>,<br> signer: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><dyn <a class="trait" href="trait.TransactionSigner.html" title="trait bdk::wallet::signer::TransactionSigner">TransactionSigner</a>><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="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><dyn <a class="trait" href="trait.TransactionSigner.html" title="trait bdk::wallet::signer::TransactionSigner">TransactionSigner</a>>></h4></section></summary><div class="docblock"><p>Adds an external signer to the container for the specified id. Optionally returns the
-signer that was previously in the container, if any</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.remove" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#712-718">source</a><h4 class="code-header">pub fn <a href="#method.remove" class="fn">remove</a>(<br> &mut self,<br> id: <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a>,<br> ordering: <a class="struct" href="struct.SignerOrdering.html" title="struct bdk::wallet::signer::SignerOrdering">SignerOrdering</a><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="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><dyn <a class="trait" href="trait.TransactionSigner.html" title="trait bdk::wallet::signer::TransactionSigner">TransactionSigner</a>>></h4></section></summary><div class="docblock"><p>Removes a signer from the container and returns it</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ids" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#721-726">source</a><h4 class="code-header">pub fn <a href="#method.ids" class="fn">ids</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><&<a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a>></h4></section></summary><div class="docblock"><p>Returns the list of identifiers of all the signers in the container</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.signers" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#729-731">source</a><h4 class="code-header">pub fn <a href="#method.signers" class="fn">signers</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><&<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><dyn <a class="trait" href="trait.TransactionSigner.html" title="trait bdk::wallet::signer::TransactionSigner">TransactionSigner</a>>></h4></section></summary><div class="docblock"><p>Returns the list of signers in the container, sorted by lowest to highest <code>ordering</code></p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.find" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#734-743">source</a><h4 class="code-header">pub fn <a href="#method.find" class="fn">find</a>(&self, id: <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</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="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><dyn <a class="trait" href="trait.TransactionSigner.html" title="trait bdk::wallet::signer::TransactionSigner">TransactionSigner</a>>></h4></section></summary><div class="docblock"><p>Finds the signer with lowest ordering for a given id in the container.</p>
-</div></details></div></details></div><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><section id="impl-Clone-for-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#633">source</a><a href="#impl-Clone-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.SignersContainer.html" title="struct bdk::wallet::signer::SignersContainer">SignersContainer</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#633">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.SignersContainer.html" title="struct bdk::wallet::signer::SignersContainer">SignersContainer</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#633">source</a><a href="#impl-Debug-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.SignersContainer.html" title="struct bdk::wallet::signer::SignersContainer">SignersContainer</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#633">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#633">source</a><a href="#impl-Default-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.SignersContainer.html" title="struct bdk::wallet::signer::SignersContainer">SignersContainer</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#633">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="struct" href="struct.SignersContainer.html" title="struct bdk::wallet::signer::SignersContainer">SignersContainer</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SignersContainer" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.SignersContainer.html" title="struct bdk::wallet::signer::SignersContainer">SignersContainer</a></h3></section><section id="impl-Send-for-SignersContainer" class="impl has-srclink"><a href="#impl-Send-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.SignersContainer.html" title="struct bdk::wallet::signer::SignersContainer">SignersContainer</a></h3></section><section id="impl-Sync-for-SignersContainer" class="impl has-srclink"><a href="#impl-Sync-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.SignersContainer.html" title="struct bdk::wallet::signer::SignersContainer">SignersContainer</a></h3></section><section id="impl-Unpin-for-SignersContainer" class="impl has-srclink"><a href="#impl-Unpin-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.SignersContainer.html" title="struct bdk::wallet::signer::SignersContainer">SignersContainer</a></h3></section><section id="impl-UnwindSafe-for-SignersContainer" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.SignersContainer.html" title="struct bdk::wallet::signer::SignersContainer">SignersContainer</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SignersContainer" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="PSBT Input signer"><meta name="keywords" content="rust, rustlang, rust-lang, InputSigner"><title>InputSigner in bdk::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">InputSigner</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.sign_input">sign_input</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk::wallet::signer</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">signer</a>::<wbr><a class="trait" href="#">InputSigner</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/signer.rs.html#262-271">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait InputSigner: <a class="trait" href="trait.SignerCommon.html" title="trait bdk::wallet::signer::SignerCommon">SignerCommon</a> {
- fn <a href="#tymethod.sign_input" class="fn">sign_input</a>(<br> &self,<br> psbt: &mut Psbt,<br> input_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> sign_options: &<a class="struct" href="struct.SignOptions.html" title="struct bdk::wallet::signer::SignOptions">SignOptions</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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.SignerError.html" title="enum bdk::wallet::signer::SignerError">SignerError</a>>;
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>PSBT Input signer</p>
-<p>This trait can be implemented to provide custom signers to the wallet. If the signer supports signing
-individual inputs, this trait should be implemented and BDK will provide automatically an implementation
-for <a href="trait.TransactionSigner.html" title="TransactionSigner"><code>TransactionSigner</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 method-toggle" open><summary><section id="tymethod.sign_input" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#264-270">source</a><h4 class="code-header">fn <a href="#tymethod.sign_input" class="fn">sign_input</a>(<br> &self,<br> psbt: &mut Psbt,<br> input_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> sign_options: &<a class="struct" href="struct.SignOptions.html" title="struct bdk::wallet::signer::SignOptions">SignOptions</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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.SignerError.html" title="enum bdk::wallet::signer::SignerError">SignerError</a>></h4></section></summary><div class="docblock"><p>Sign a single psbt input</p>
-</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-InputSigner-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#408-422">source</a><a href="#impl-InputSigner-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.InputSigner.html" title="trait bdk::wallet::signer::InputSigner">InputSigner</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk::wallet::signer::SignerWrapper">SignerWrapper</a><DescriptorMultiXKey<Xpriv>></h3></section><section id="impl-InputSigner-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#312-380">source</a><a href="#impl-InputSigner-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.InputSigner.html" title="trait bdk::wallet::signer::InputSigner">InputSigner</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk::wallet::signer::SignerWrapper">SignerWrapper</a><DescriptorXKey<Xpriv>></h3></section><section id="impl-InputSigner-for-SignerWrapper%3CPrivateKey%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#437-545">source</a><a href="#impl-InputSigner-for-SignerWrapper%3CPrivateKey%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.InputSigner.html" title="trait bdk::wallet::signer::InputSigner">InputSigner</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk::wallet::signer::SignerWrapper">SignerWrapper</a><PrivateKey></h3></section></div><script src="../../../implementors/bdk/wallet/signer/trait.InputSigner.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Common signer methods"><meta name="keywords" content="rust, rustlang, rust-lang, SignerCommon"><title>SignerCommon in bdk::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SignerCommon</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.id">id</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.descriptor_secret_key">descriptor_secret_key</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk::wallet::signer</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">signer</a>::<wbr><a class="trait" href="#">SignerCommon</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/signer.rs.html#240-255">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait SignerCommon: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> {
- fn <a href="#tymethod.id" class="fn">id</a>(&self, secp: &Secp256k1<All>) -> <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a>;
-
- fn <a href="#method.descriptor_secret_key" class="fn">descriptor_secret_key</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a>> { ... }
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Common signer methods</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 method-toggle" open><summary><section id="tymethod.id" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#245">source</a><h4 class="code-header">fn <a href="#tymethod.id" class="fn">id</a>(&self, secp: &Secp256k1<All>) -> <a class="enum" href="enum.SignerId.html" title="enum bdk::wallet::signer::SignerId">SignerId</a></h4></section></summary><div class="docblock"><p>Return the <a href="enum.SignerId.html" title="SignerId"><code>SignerId</code></a> for this signer</p>
-<p>The <a href="enum.SignerId.html" title="SignerId"><code>SignerId</code></a> can be used to lookup a signer in the <a href="../struct.Wallet.html"><code>Wallet</code></a>’s signers map or to
-compare two signers.</p>
-</div></details></div><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.descriptor_secret_key" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#252-254">source</a><h4 class="code-header">fn <a href="#method.descriptor_secret_key" class="fn">descriptor_secret_key</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk::keys::DescriptorSecretKey">DescriptorSecretKey</a>></h4></section></summary><div class="docblock"><p>Return the secret key for the signer</p>
-<p>This is used internally to reconstruct the original descriptor that may contain secrets.
-External signers that are meant to keep key isolated should just return <code>None</code> here (which
-is the default for this method, if not overridden).</p>
-</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-SignerCommon-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#398-406">source</a><a href="#impl-SignerCommon-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.SignerCommon.html" title="trait bdk::wallet::signer::SignerCommon">SignerCommon</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk::wallet::signer::SignerWrapper">SignerWrapper</a><DescriptorMultiXKey<Xpriv>></h3></section><section id="impl-SignerCommon-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#302-310">source</a><a href="#impl-SignerCommon-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.SignerCommon.html" title="trait bdk::wallet::signer::SignerCommon">SignerCommon</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk::wallet::signer::SignerWrapper">SignerWrapper</a><DescriptorXKey<Xpriv>></h3></section><section id="impl-SignerCommon-for-SignerWrapper%3CPrivateKey%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#424-435">source</a><a href="#impl-SignerCommon-for-SignerWrapper%3CPrivateKey%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.SignerCommon.html" title="trait bdk::wallet::signer::SignerCommon">SignerCommon</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk::wallet::signer::SignerWrapper">SignerWrapper</a><PrivateKey></h3></section></div><script src="../../../implementors/bdk/wallet/signer/trait.SignerCommon.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="PSBT signer"><meta name="keywords" content="rust, rustlang, rust-lang, TransactionSigner"><title>TransactionSigner in bdk::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">TransactionSigner</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.sign_transaction">sign_transaction</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk::wallet::signer</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">signer</a>::<wbr><a class="trait" href="#">TransactionSigner</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/signer.rs.html#277-285">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait TransactionSigner: <a class="trait" href="trait.SignerCommon.html" title="trait bdk::wallet::signer::SignerCommon">SignerCommon</a> {
- fn <a href="#tymethod.sign_transaction" class="fn">sign_transaction</a>(<br> &self,<br> psbt: &mut Psbt,<br> sign_options: &<a class="struct" href="struct.SignOptions.html" title="struct bdk::wallet::signer::SignOptions">SignOptions</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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.SignerError.html" title="enum bdk::wallet::signer::SignerError">SignerError</a>>;
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>PSBT signer</p>
-<p>This trait can be implemented when the signer can’t sign inputs individually, but signs the whole transaction
-at once.</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 method-toggle" open><summary><section id="tymethod.sign_transaction" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#279-284">source</a><h4 class="code-header">fn <a href="#tymethod.sign_transaction" class="fn">sign_transaction</a>(<br> &self,<br> psbt: &mut Psbt,<br> sign_options: &<a class="struct" href="struct.SignOptions.html" title="struct bdk::wallet::signer::SignOptions">SignOptions</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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.SignerError.html" title="enum bdk::wallet::signer::SignerError">SignerError</a>></h4></section></summary><div class="docblock"><p>Sign all the inputs of the psbt</p>
-</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-TransactionSigner-for-T" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/signer.rs.html#287-300">source</a><a href="#impl-TransactionSigner-for-T" class="anchor">§</a><h3 class="code-header">impl<T: <a class="trait" href="trait.InputSigner.html" title="trait bdk::wallet::signer::InputSigner">InputSigner</a>> <a class="trait" href="trait.TransactionSigner.html" title="trait bdk::wallet::signer::TransactionSigner">TransactionSigner</a> for T</h3></section></div><script src="../../../implementors/bdk/wallet/signer/trait.TransactionSigner.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="A derived address and the index it was found at. For convenience this automatically derefs to `Address`"><meta name="keywords" content="rust, rustlang, rust-lang, AddressInfo"><title>AddressInfo in bdk::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">AddressInfo</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.address">address</a></li><li><a href="#structfield.index">index</a></li><li><a href="#structfield.keychain">keychain</a></li></ul><h3><a href="#deref-methods-Address">Methods from Deref<Target=Address></a></h3><ul class="block"><li><a href="#method.address_type">address_type</a></li><li><a href="#method.as_unchecked">as_unchecked</a></li><li><a href="#method.assume_checked_ref">assume_checked_ref</a></li><li><a href="#method.is_related_to_pubkey">is_related_to_pubkey</a></li><li><a href="#method.is_related_to_xonly_pubkey">is_related_to_xonly_pubkey</a></li><li><a href="#method.is_spend_standard">is_spend_standard</a></li><li><a href="#method.is_valid_for_network">is_valid_for_network</a></li><li><a href="#method.matches_script_pubkey">matches_script_pubkey</a></li><li><a href="#method.network">network</a></li><li><a href="#method.payload">payload</a></li><li><a href="#method.script_pubkey">script_pubkey</a></li><li><a href="#method.to_qr_uri">to_qr_uri</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-AddressInfo">Debug</a></li><li><a href="#impl-Deref-for-AddressInfo">Deref</a></li><li><a href="#impl-Display-for-AddressInfo">Display</a></li><li><a href="#impl-Eq-for-AddressInfo">Eq</a></li><li><a href="#impl-PartialEq%3CAddressInfo%3E-for-AddressInfo">PartialEq<AddressInfo></a></li><li><a href="#impl-StructuralEq-for-AddressInfo">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-AddressInfo">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-AddressInfo">RefUnwindSafe</a></li><li><a href="#impl-Send-for-AddressInfo">Send</a></li><li><a href="#impl-Sync-for-AddressInfo">Sync</a></li><li><a href="#impl-Unpin-for-AddressInfo">Unpin</a></li><li><a href="#impl-UnwindSafe-for-AddressInfo">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-AddressInfo">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-AddressInfo">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-AddressInfo">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-AddressInfo">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-AddressInfo">Into<U></a></li><li><a href="#impl-ToString-for-AddressInfo">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-AddressInfo">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-AddressInfo">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-AddressInfo">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">bdk</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="struct" href="#">AddressInfo</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/wallet/mod.rs.html#207-214">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct AddressInfo {
- pub index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
- pub address: Address,
- pub keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A derived address and the index it was found at.
-For convenience this automatically derefs to <code>Address</code></p>
-</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.index" class="structfield small-section-header"><a href="#structfield.index" class="anchor field">§</a><code>index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Child index of this address</p>
-</div><span id="structfield.address" class="structfield small-section-header"><a href="#structfield.address" class="anchor field">§</a><code>address: Address</code></span><div class="docblock"><p>Address</p>
-</div><span id="structfield.keychain" class="structfield small-section-header"><a href="#structfield.keychain" class="anchor field">§</a><code>keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a></code></span><div class="docblock"><p>Type of keychain</p>
-</div><h2 id="deref-methods-Address" class="small-section-header"><span>Methods from <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a><Target = Address></span><a href="#deref-methods-Address" class="anchor">§</a></h2><div id="deref-methods-Address-1"><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.payload" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.payload" class="fn">payload</a>(&self) -> &Payload</h4></section></summary><div class="docblock"><p>Returns a reference to the payload of this address.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.network" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.network" class="fn">network</a>(&self) -> &Network</h4></section></summary><div class="docblock"><p>Returns a reference to the network of this address.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_unchecked" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.as_unchecked" class="fn">as_unchecked</a>(&self) -> &Address<NetworkUnchecked></h4></section></summary><div class="docblock"><p>Returns a reference to the unchecked address, which is dangerous to use if the address
-is invalid in the context of <code>NetworkUnchecked</code>.</p>
-</div></details></div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.address_type" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.address_type" class="fn">address_type</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><AddressType></h4></section></summary><div class="docblock"><p>Gets the address type of the address.</p>
-<h5 id="returns"><a href="#returns">Returns</a></h5>
-<p>None if unknown, non-standard or related to the future witness version.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_spend_standard" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_spend_standard" class="fn">is_spend_standard</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Checks whether or not the address is following Bitcoin standardness rules when
-<em>spending</em> from this address. <em>NOT</em> to be called by senders.</p>
-<details>
-<summary>Spending Standardness</summary>
-<p>For forward compatibility, the senders must send to any [<code>Address</code>]. Receivers
-can use this method to check whether or not they can spend from this address.</p>
-<p>SegWit addresses with unassigned witness versions or non-standard program sizes are
-considered non-standard.</p>
-</details>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.script_pubkey" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.script_pubkey" class="fn">script_pubkey</a>(&self) -> ScriptBuf</h4></section></summary><div class="docblock"><p>Generates a script pubkey spending to this address.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_qr_uri" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.to_qr_uri" class="fn">to_qr_uri</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class="docblock"><p>Creates a URI string <em>bitcoin:address</em> optimized to be encoded in QR codes.</p>
-<p>If the address is bech32, the address becomes uppercase.
-If the address is base58, the address is left mixed case.</p>
-<p>Quoting BIP 173 “inside QR codes uppercase SHOULD be used, as those permit the use of
-alphanumeric mode, which is 45% more compact than the normal byte mode.”</p>
-<p>Note however that despite BIP21 explicitly stating that the <code>bitcoin:</code> prefix should be
-parsed as case-insensitive many wallets got this wrong and don’t parse correctly.
-<a href="https://github.com/btcpayserver/btcpayserver/issues/2110">See compatibility table.</a></p>
-<p>If you want to avoid allocation you can use alternate display instead:</p>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code>
-<span class="macro">write!</span>(writer, <span class="string">"{:#}"</span>, address)<span class="question-mark">?</span>;
-</code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_related_to_pubkey" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_related_to_pubkey" class="fn">is_related_to_pubkey</a>(&self, pubkey: &PublicKey) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns true if the given pubkey is directly related to the address payload.</p>
-<p>This is determined by directly comparing the address payload with either the
-hash of the given public key or the segwit redeem hash generated from the
-given key. For taproot addresses, the supplied key is assumed to be tweaked</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_related_to_xonly_pubkey" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_related_to_xonly_pubkey" class="fn">is_related_to_xonly_pubkey</a>(&self, xonly_pubkey: &XOnlyPublicKey) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns true if the supplied xonly public key can be used to derive the address.</p>
-<p>This will only work for Taproot addresses. The Public Key is
-assumed to have already been tweaked.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.matches_script_pubkey" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.matches_script_pubkey" class="fn">matches_script_pubkey</a>(&self, script_pubkey: &Script) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns true if the address creates a particular script
-This function doesn’t make any allocations.</p>
-</div></details></div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.assume_checked_ref" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.assume_checked_ref" class="fn">assume_checked_ref</a>(&self) -> &Address<NetworkChecked></h4></section></summary><div class="docblock"><p>Returns a reference to the checked address.
-This function is dangerous in case the address is not a valid checked address.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_valid_for_network" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_valid_for_network" class="fn">is_valid_for_network</a>(&self, network: Network) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Parsed addresses do not always have <em>one</em> network. The problem is that legacy testnet,
-regtest and signet addresse use the same prefix instead of multiple different ones. When
-parsing, such addresses are always assumed to be testnet addresses (the same is true for
-bech32 signet addresses). So if one wants to check if an address belongs to a certain
-network a simple comparison is not enough anymore. Instead this function can be used.</p>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bitcoin::{Address, Network};
-<span class="kw">use </span>bitcoin::address::NetworkUnchecked;
-
-<span class="kw">let </span>address: Address<NetworkUnchecked> = <span class="string">"2N83imGV3gPwBzKJQvWJ7cRUY2SpUyU6A5e"</span>.parse().unwrap();
-<span class="macro">assert!</span>(address.is_valid_for_network(Network::Testnet));
-<span class="macro">assert!</span>(address.is_valid_for_network(Network::Regtest));
-<span class="macro">assert!</span>(address.is_valid_for_network(Network::Signet));
-
-<span class="macro">assert_eq!</span>(address.is_valid_for_network(Network::Bitcoin), <span class="bool-val">false</span>);
-
-<span class="kw">let </span>address: Address<NetworkUnchecked> = <span class="string">"32iVBEu4dxkUQk9dJbZUiBiQdmypcEyJRf"</span>.parse().unwrap();
-<span class="macro">assert!</span>(address.is_valid_for_network(Network::Bitcoin));
-<span class="macro">assert_eq!</span>(address.is_valid_for_network(Network::Testnet), <span class="bool-val">false</span>);</code></pre></div>
-</div></details></div></div><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><section id="impl-Debug-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#206">source</a><a href="#impl-Debug-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk::wallet::AddressInfo">AddressInfo</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#206">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deref-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#216-222">source</a><a href="#impl-Deref-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk::wallet::AddressInfo">AddressInfo</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Target" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Target" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#associatedtype.Target" class="associatedtype">Target</a> = Address<NetworkChecked></h4></section></summary><div class='docblock'>The resulting type after dereferencing.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deref" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#219-221">source</a><a href="#method.deref" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#tymethod.deref" class="fn">deref</a>(&self) -> &Self::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#associatedtype.Target" title="type core::ops::deref::Deref::Target">Target</a></h4></section></summary><div class='docblock'>Dereferences the value.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#224-228">source</a><a href="#impl-Display-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk::wallet::AddressInfo">AddressInfo</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#225-227">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CAddressInfo%3E-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#206">source</a><a href="#impl-PartialEq%3CAddressInfo%3E-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.AddressInfo.html" title="struct bdk::wallet::AddressInfo">AddressInfo</a>> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk::wallet::AddressInfo">AddressInfo</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#206">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.AddressInfo.html" title="struct bdk::wallet::AddressInfo">AddressInfo</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><section id="impl-Eq-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#206">source</a><a href="#impl-Eq-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk::wallet::AddressInfo">AddressInfo</a></h3></section><section id="impl-StructuralEq-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#206">source</a><a href="#impl-StructuralEq-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk::wallet::AddressInfo">AddressInfo</a></h3></section><section id="impl-StructuralPartialEq-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#206">source</a><a href="#impl-StructuralPartialEq-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk::wallet::AddressInfo">AddressInfo</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-AddressInfo" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk::wallet::AddressInfo">AddressInfo</a></h3></section><section id="impl-Send-for-AddressInfo" class="impl has-srclink"><a href="#impl-Send-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk::wallet::AddressInfo">AddressInfo</a></h3></section><section id="impl-Sync-for-AddressInfo" class="impl has-srclink"><a href="#impl-Sync-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk::wallet::AddressInfo">AddressInfo</a></h3></section><section id="impl-Unpin-for-AddressInfo" class="impl has-srclink"><a href="#impl-Unpin-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk::wallet::AddressInfo">AddressInfo</a></h3></section><section id="impl-UnwindSafe-for-AddressInfo" class="impl has-srclink"><a href="#impl-UnwindSafe-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk::wallet::AddressInfo">AddressInfo</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-AddressInfo" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Balance, differentiated into various categories."><meta name="keywords" content="rust, rustlang, rust-lang, Balance"><title>Balance in bdk::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Balance</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.confirmed">confirmed</a></li><li><a href="#structfield.immature">immature</a></li><li><a href="#structfield.trusted_pending">trusted_pending</a></li><li><a href="#structfield.untrusted_pending">untrusted_pending</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.total">total</a></li><li><a href="#method.trusted_spendable">trusted_spendable</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Add%3CBalance%3E-for-Balance">Add<Balance></a></li><li><a href="#impl-Clone-for-Balance">Clone</a></li><li><a href="#impl-Debug-for-Balance">Debug</a></li><li><a href="#impl-Default-for-Balance">Default</a></li><li><a href="#impl-Deserialize%3C%27de%3E-for-Balance">Deserialize<'de></a></li><li><a href="#impl-Display-for-Balance">Display</a></li><li><a href="#impl-Eq-for-Balance">Eq</a></li><li><a href="#impl-PartialEq%3CBalance%3E-for-Balance">PartialEq<Balance></a></li><li><a href="#impl-Serialize-for-Balance">Serialize</a></li><li><a href="#impl-StructuralEq-for-Balance">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-Balance">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Balance">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Balance">Send</a></li><li><a href="#impl-Sync-for-Balance">Sync</a></li><li><a href="#impl-Unpin-for-Balance">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Balance">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Balance">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Balance">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Balance">BorrowMut<T></a></li><li><a href="#impl-DeserializeOwned-for-Balance">DeserializeOwned</a></li><li><a href="#impl-From%3CT%3E-for-Balance">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Balance">Into<U></a></li><li><a href="#impl-ToOwned-for-Balance">ToOwned</a></li><li><a href="#impl-ToString-for-Balance">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Balance">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Balance">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Balance">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">bdk</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="struct" href="#">Balance</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_chain/keychain.rs.html#26">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Balance {
- pub immature: Amount,
- pub trusted_pending: Amount,
- pub untrusted_pending: Amount,
- pub confirmed: Amount,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Balance, differentiated into various categories.</p>
-</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.immature" class="structfield small-section-header"><a href="#structfield.immature" class="anchor field">§</a><code>immature: Amount</code></span><div class="docblock"><p>All coinbase outputs not yet matured</p>
-</div><span id="structfield.trusted_pending" class="structfield small-section-header"><a href="#structfield.trusted_pending" class="anchor field">§</a><code>trusted_pending: Amount</code></span><div class="docblock"><p>Unconfirmed UTXOs generated by a wallet tx</p>
-</div><span id="structfield.untrusted_pending" class="structfield small-section-header"><a href="#structfield.untrusted_pending" class="anchor field">§</a><code>untrusted_pending: Amount</code></span><div class="docblock"><p>Unconfirmed UTXOs received from an external wallet</p>
-</div><span id="structfield.confirmed" class="structfield small-section-header"><a href="#structfield.confirmed" class="anchor field">§</a><code>confirmed: Amount</code></span><div class="docblock"><p>Confirmed and immediately spendable balance</p>
-</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Balance" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/keychain.rs.html#37">source</a><a href="#impl-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.trusted_spendable" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/keychain.rs.html#42">source</a><h4 class="code-header">pub fn <a href="#method.trusted_spendable" class="fn">trusted_spendable</a>(&self) -> Amount</h4></section></summary><div class="docblock"><p>Get sum of trusted_pending and confirmed coins.</p>
-<p>This is the balance you can spend right now that shouldn’t get cancelled via another party
-double spending it.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.total" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/keychain.rs.html#47">source</a><h4 class="code-header">pub fn <a href="#method.total" class="fn">total</a>(&self) -> Amount</h4></section></summary><div class="docblock"><p>Get the whole balance visible to the wallet.</p>
-</div></details></div></details></div><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><section id="impl-Add%3CBalance%3E-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/keychain.rs.html#62">source</a><a href="#impl-Add%3CBalance%3E-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html" title="trait core::ops::arith::Add">Add</a><<a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a>> for <a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a></h4></section></summary><div class='docblock'>The resulting type after applying the <code>+</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/keychain.rs.html#65">source</a><a href="#method.add" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#tymethod.add" class="fn">add</a>(self, other: <a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a>) -> <a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a></h4></section></summary><div class='docblock'>Performs the <code>+</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#tymethod.add">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Clone-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/keychain.rs.html#20">source</a><a href="#impl-Clone-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/keychain.rs.html#20">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/keychain.rs.html#20">source</a><a href="#impl-Debug-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/keychain.rs.html#20">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/keychain.rs.html#20">source</a><a href="#impl-Default-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/keychain.rs.html#20">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserialize%3C%27de%3E-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/keychain.rs.html#23">source</a><a href="#impl-Deserialize%3C%27de%3E-for-Balance" class="anchor">§</a><h3 class="code-header">impl<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> for <a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/keychain.rs.html#23">source</a><a href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize" class="fn">deserialize</a><__D>(<br> __deserializer: __D<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="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a>, <__D as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>><span class="where fmt-newline">where<br> __D: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/keychain.rs.html#52">source</a><a href="#impl-Display-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/keychain.rs.html#53">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CBalance%3E-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/keychain.rs.html#20">source</a><a href="#impl-PartialEq%3CBalance%3E-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a>> for <a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/keychain.rs.html#20">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/keychain.rs.html#23">source</a><a href="#impl-Serialize-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/keychain.rs.html#23">source</a><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><__S>(<br> &self,<br> __serializer: __S<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<__S as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, <__S as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> __S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/keychain.rs.html#20">source</a><a href="#impl-Eq-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a></h3></section><section id="impl-StructuralEq-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/keychain.rs.html#20">source</a><a href="#impl-StructuralEq-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a></h3></section><section id="impl-StructuralPartialEq-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_chain/keychain.rs.html#20">source</a><a href="#impl-StructuralPartialEq-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Balance" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a></h3></section><section id="impl-Send-for-Balance" class="impl has-srclink"><a href="#impl-Send-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a></h3></section><section id="impl-Sync-for-Balance" class="impl has-srclink"><a href="#impl-Sync-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a></h3></section><section id="impl-Unpin-for-Balance" class="impl has-srclink"><a href="#impl-Unpin-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a></h3></section><section id="impl-UnwindSafe-for-Balance" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Balance" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Balance" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Balance" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Balance" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Balance" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-Balance" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-Balance" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Balance" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Balance" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Balance" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Balance" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details><section id="impl-DeserializeOwned-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/serde/1.0.201/src/serde/de/mod.rs.html#608">source</a><a href="#impl-DeserializeOwned-for-Balance" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> for T<span class="where fmt-newline">where<br> T: for<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de>,</span></h3></section></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="The changes made to a wallet by applying an [`Update`]."><meta name="keywords" content="rust, rustlang, rust-lang, ChangeSet"><title>ChangeSet in bdk::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">ChangeSet</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.chain">chain</a></li><li><a href="#structfield.indexed_tx_graph">indexed_tx_graph</a></li><li><a href="#structfield.network">network</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Append-for-ChangeSet">Append</a></li><li><a href="#impl-Clone-for-ChangeSet">Clone</a></li><li><a href="#impl-Debug-for-ChangeSet">Debug</a></li><li><a href="#impl-Default-for-ChangeSet">Default</a></li><li><a href="#impl-Deserialize%3C%27de%3E-for-ChangeSet">Deserialize<'de></a></li><li><a href="#impl-From%3CBTreeMap%3Cu32%2C%20Option%3CBlockHash%3E%2C%20Global%3E%3E-for-ChangeSet">From<BTreeMap<u32, Option<BlockHash>, Global>></a></li><li><a href="#impl-From%3CChangeSet%3CConfirmationTimeHeightAnchor%2C%20ChangeSet%3CKeychainKind%3E%3E%3E-for-ChangeSet">From<ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>></a></li><li><a href="#impl-PartialEq%3CChangeSet%3E-for-ChangeSet">PartialEq<ChangeSet></a></li><li><a href="#impl-Serialize-for-ChangeSet">Serialize</a></li><li><a href="#impl-StructuralPartialEq-for-ChangeSet">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-ChangeSet">RefUnwindSafe</a></li><li><a href="#impl-Send-for-ChangeSet">Send</a></li><li><a href="#impl-Sync-for-ChangeSet">Sync</a></li><li><a href="#impl-Unpin-for-ChangeSet">Unpin</a></li><li><a href="#impl-UnwindSafe-for-ChangeSet">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-ChangeSet">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-ChangeSet">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-ChangeSet">BorrowMut<T></a></li><li><a href="#impl-DeserializeOwned-for-ChangeSet">DeserializeOwned</a></li><li><a href="#impl-From%3CT%3E-for-ChangeSet">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-ChangeSet">Into<U></a></li><li><a href="#impl-ToOwned-for-ChangeSet">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-ChangeSet">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-ChangeSet">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-ChangeSet">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">bdk</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="struct" href="#">ChangeSet</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/wallet/mod.rs.html#138-154">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct ChangeSet {
- pub chain: <a class="type" href="../../bdk_chain/local_chain/type.ChangeSet.html" title="type bdk_chain::local_chain::ChangeSet">ChangeSet</a>,
- pub indexed_tx_graph: <a class="struct" href="../../bdk_chain/indexed_tx_graph/struct.ChangeSet.html" title="struct bdk_chain::indexed_tx_graph::ChangeSet">ChangeSet</a><<a class="struct" href="../../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor">ConfirmationTimeHeightAnchor</a>, <a class="struct" href="../../bdk_chain/keychain/txout_index/struct.ChangeSet.html" title="struct bdk_chain::keychain::txout_index::ChangeSet">ChangeSet</a><<a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>>>,
- pub network: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Network>,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The changes made to a wallet by applying an <a href="struct.Update.html" title="Update"><code>Update</code></a>.</p>
-</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.chain" class="structfield small-section-header"><a href="#structfield.chain" class="anchor field">§</a><code>chain: <a class="type" href="../../bdk_chain/local_chain/type.ChangeSet.html" title="type bdk_chain::local_chain::ChangeSet">ChangeSet</a></code></span><div class="docblock"><p>Changes to the <a href="../../bdk_chain/local_chain/struct.LocalChain.html"><code>LocalChain</code></a>.</p>
-</div><span id="structfield.indexed_tx_graph" class="structfield small-section-header"><a href="#structfield.indexed_tx_graph" class="anchor field">§</a><code>indexed_tx_graph: <a class="struct" href="../../bdk_chain/indexed_tx_graph/struct.ChangeSet.html" title="struct bdk_chain::indexed_tx_graph::ChangeSet">ChangeSet</a><<a class="struct" href="../../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor">ConfirmationTimeHeightAnchor</a>, <a class="struct" href="../../bdk_chain/keychain/txout_index/struct.ChangeSet.html" title="struct bdk_chain::keychain::txout_index::ChangeSet">ChangeSet</a><<a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>>></code></span><div class="docblock"><p>Changes to <a href="../../bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html"><code>IndexedTxGraph</code></a>.</p>
-</div><span id="structfield.network" class="structfield small-section-header"><a href="#structfield.network" class="anchor field">§</a><code>network: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Network></code></span><div class="docblock"><p>Stores the network type of the wallet.</p>
-</div><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><section id="impl-Append-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#156-172">source</a><a href="#impl-Append-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../../bdk_chain/tx_data_traits/trait.Append.html" title="trait bdk_chain::tx_data_traits::Append">Append</a> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.append" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#157-167">source</a><a href="#method.append" class="anchor">§</a><h4 class="code-header">fn <a href="../../bdk_chain/tx_data_traits/trait.Append.html#tymethod.append" class="fn">append</a>(&mut self, other: Self)</h4></section></summary><div class='docblock'>Append another object of the same type onto <code>self</code>.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_empty" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#169-171">source</a><a href="#method.is_empty" class="anchor">§</a><h4 class="code-header">fn <a href="../../bdk_chain/tx_data_traits/trait.Append.html#tymethod.is_empty" class="fn">is_empty</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns whether the structure is considered empty.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Clone-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#137">source</a><a href="#impl-Clone-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#137">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#137">source</a><a href="#impl-Debug-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#137">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#137">source</a><a href="#impl-Default-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#137">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserialize%3C%27de%3E-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#137">source</a><a href="#impl-Deserialize%3C%27de%3E-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#137">source</a><a href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize" class="fn">deserialize</a><__D>(__deserializer: __D) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, __D::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>><span class="where fmt-newline">where<br> __D: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CBTreeMap%3Cu32%2C%20Option%3CBlockHash%3E%2C%20Global%3E%3E-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#174-181">source</a><a href="#impl-From%3CBTreeMap%3Cu32%2C%20Option%3CBlockHash%3E%2C%20Global%3E%3E-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<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><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>, <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><BlockHash>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>>> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#175-180">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(chain: <a class="type" href="../../bdk_chain/local_chain/type.ChangeSet.html" title="type bdk_chain::local_chain::ChangeSet">ChangeSet</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CChangeSet%3CConfirmationTimeHeightAnchor%2C%20ChangeSet%3CKeychainKind%3E%3E%3E-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#183-202">source</a><a href="#impl-From%3CChangeSet%3CConfirmationTimeHeightAnchor%2C%20ChangeSet%3CKeychainKind%3E%3E%3E-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="struct" href="../../bdk_chain/indexed_tx_graph/struct.ChangeSet.html" title="struct bdk_chain::indexed_tx_graph::ChangeSet">ChangeSet</a><<a class="struct" href="../../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor">ConfirmationTimeHeightAnchor</a>, <a class="struct" href="../../bdk_chain/keychain/txout_index/struct.ChangeSet.html" title="struct bdk_chain::keychain::txout_index::ChangeSet">ChangeSet</a><<a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>>>> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#191-201">source</a><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(<br> indexed_tx_graph: <a class="struct" href="../../bdk_chain/indexed_tx_graph/struct.ChangeSet.html" title="struct bdk_chain::indexed_tx_graph::ChangeSet">ChangeSet</a><<a class="struct" href="../../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor">ConfirmationTimeHeightAnchor</a>, <a class="struct" href="../../bdk_chain/keychain/txout_index/struct.ChangeSet.html" title="struct bdk_chain::keychain::txout_index::ChangeSet">ChangeSet</a><<a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>>><br>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CChangeSet%3E-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#137">source</a><a href="#impl-PartialEq%3CChangeSet%3E-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a>> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#137">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#137">source</a><a href="#impl-Serialize-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#137">source</a><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><__S>(&self, __serializer: __S) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><__S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, __S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> __S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-StructuralPartialEq-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#137">source</a><a href="#impl-StructuralPartialEq-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-ChangeSet" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a></h3></section><section id="impl-Send-for-ChangeSet" class="impl has-srclink"><a href="#impl-Send-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a></h3></section><section id="impl-Sync-for-ChangeSet" class="impl has-srclink"><a href="#impl-Sync-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a></h3></section><section id="impl-Unpin-for-ChangeSet" class="impl has-srclink"><a href="#impl-Unpin-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a></h3></section><section id="impl-UnwindSafe-for-ChangeSet" class="impl has-srclink"><a href="#impl-UnwindSafe-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-ChangeSet" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details><section id="impl-DeserializeOwned-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/serde/1.0.201/src/serde/de/mod.rs.html#608">source</a><a href="#impl-DeserializeOwned-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> for T<span class="where fmt-newline">where<br> T: for<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de>,</span></h3></section></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="An update to [`Wallet`]."><meta name="keywords" content="rust, rustlang, rust-lang, Update"><title>Update in bdk::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Update</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.chain">chain</a></li><li><a href="#structfield.graph">graph</a></li><li><a href="#structfield.last_active_indices">last_active_indices</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-Update">Clone</a></li><li><a href="#impl-Debug-for-Update">Debug</a></li><li><a href="#impl-Default-for-Update">Default</a></li><li><a href="#impl-From%3CFullScanResult%3CKeychainKind%2C%20ConfirmationTimeHeightAnchor%3E%3E-for-Update">From<FullScanResult<KeychainKind, ConfirmationTimeHeightAnchor>></a></li><li><a href="#impl-From%3CSyncResult%3CConfirmationTimeHeightAnchor%3E%3E-for-Update">From<SyncResult<ConfirmationTimeHeightAnchor>></a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Update">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Update">Send</a></li><li><a href="#impl-Sync-for-Update">Sync</a></li><li><a href="#impl-Unpin-for-Update">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Update">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Update">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Update">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Update">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Update">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Update">Into<U></a></li><li><a href="#impl-ToOwned-for-Update">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Update">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Update">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Update">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">bdk</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="struct" href="#">Update</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/wallet/mod.rs.html#102-114">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Update {
- pub last_active_indices: <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><<a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>>,
- pub graph: <a class="struct" href="../../bdk_chain/tx_graph/struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><<a class="struct" href="../../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor">ConfirmationTimeHeightAnchor</a>>,
- pub chain: <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="../../bdk_chain/local_chain/struct.CheckPoint.html" title="struct bdk_chain::local_chain::CheckPoint">CheckPoint</a>>,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An update to <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>.</p>
-<p>It updates <a href="../../bdk_chain/keychain/txout_index/struct.KeychainTxOutIndex.html" title="bdk_chain::keychain::KeychainTxOutIndex"><code>bdk_chain::keychain::KeychainTxOutIndex</code></a>, <a href="../../bdk_chain/tx_graph/struct.TxGraph.html" title="bdk_chain::TxGraph"><code>bdk_chain::TxGraph</code></a> and <a href="../../bdk_chain/local_chain/struct.LocalChain.html" title="local_chain::LocalChain"><code>local_chain::LocalChain</code></a> atomically.</p>
-</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.last_active_indices" class="structfield small-section-header"><a href="#structfield.last_active_indices" class="anchor field">§</a><code>last_active_indices: <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><<a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>></code></span><div class="docblock"><p>Contains the last active derivation indices per keychain (<code>K</code>), which is used to update the
-<a href="../../bdk_chain/keychain/txout_index/struct.KeychainTxOutIndex.html" title="KeychainTxOutIndex"><code>KeychainTxOutIndex</code></a>.</p>
-</div><span id="structfield.graph" class="structfield small-section-header"><a href="#structfield.graph" class="anchor field">§</a><code>graph: <a class="struct" href="../../bdk_chain/tx_graph/struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><<a class="struct" href="../../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor">ConfirmationTimeHeightAnchor</a>></code></span><div class="docblock"><p>Update for the wallet’s internal <a href="../../bdk_chain/tx_graph/struct.TxGraph.html" title="TxGraph"><code>TxGraph</code></a>.</p>
-</div><span id="structfield.chain" class="structfield small-section-header"><a href="#structfield.chain" class="anchor field">§</a><code>chain: <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="../../bdk_chain/local_chain/struct.CheckPoint.html" title="struct bdk_chain::local_chain::CheckPoint">CheckPoint</a>></code></span><div class="docblock"><p>Update for the wallet’s internal <a href="../../bdk_chain/local_chain/struct.LocalChain.html"><code>LocalChain</code></a>.</p>
-</div><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><section id="impl-Clone-for-Update" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#101">source</a><a href="#impl-Clone-for-Update" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.Update.html" title="struct bdk::wallet::Update">Update</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#101">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.Update.html" title="struct bdk::wallet::Update">Update</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Update" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#101">source</a><a href="#impl-Debug-for-Update" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Update.html" title="struct bdk::wallet::Update">Update</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#101">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-Update" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#101">source</a><a href="#impl-Default-for-Update" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.Update.html" title="struct bdk::wallet::Update">Update</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#101">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="struct" href="struct.Update.html" title="struct bdk::wallet::Update">Update</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CFullScanResult%3CKeychainKind%2C%20ConfirmationTimeHeightAnchor%3E%3E-for-Update" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#116-124">source</a><a href="#impl-From%3CFullScanResult%3CKeychainKind%2C%20ConfirmationTimeHeightAnchor%3E%3E-for-Update" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="struct" href="../../bdk_chain/spk_client/struct.FullScanResult.html" title="struct bdk_chain::spk_client::FullScanResult">FullScanResult</a><<a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>, <a class="struct" href="../../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor">ConfirmationTimeHeightAnchor</a>>> for <a class="struct" href="struct.Update.html" title="struct bdk::wallet::Update">Update</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#117-123">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(value: <a class="struct" href="../../bdk_chain/spk_client/struct.FullScanResult.html" title="struct bdk_chain::spk_client::FullScanResult">FullScanResult</a><<a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CSyncResult%3CConfirmationTimeHeightAnchor%3E%3E-for-Update" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#126-134">source</a><a href="#impl-From%3CSyncResult%3CConfirmationTimeHeightAnchor%3E%3E-for-Update" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="struct" href="../../bdk_chain/spk_client/struct.SyncResult.html" title="struct bdk_chain::spk_client::SyncResult">SyncResult</a><<a class="struct" href="../../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor">ConfirmationTimeHeightAnchor</a>>> for <a class="struct" href="struct.Update.html" title="struct bdk::wallet::Update">Update</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#127-133">source</a><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(value: <a class="struct" href="../../bdk_chain/spk_client/struct.SyncResult.html" title="struct bdk_chain::spk_client::SyncResult">SyncResult</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Update" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Update" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Update.html" title="struct bdk::wallet::Update">Update</a></h3></section><section id="impl-Send-for-Update" class="impl has-srclink"><a href="#impl-Send-for-Update" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Update.html" title="struct bdk::wallet::Update">Update</a></h3></section><section id="impl-Sync-for-Update" class="impl has-srclink"><a href="#impl-Sync-for-Update" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Update.html" title="struct bdk::wallet::Update">Update</a></h3></section><section id="impl-Unpin-for-Update" class="impl has-srclink"><a href="#impl-Unpin-for-Update" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Update.html" title="struct bdk::wallet::Update">Update</a></h3></section><section id="impl-UnwindSafe-for-Update" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Update" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Update.html" title="struct bdk::wallet::Update">Update</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Update" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Update" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Update" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Update" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Update" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Update" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Update" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Update" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Update" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Update" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Update" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-Update" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Update" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Update" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Update" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Update" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Update" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Update" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="A Bitcoin wallet"><meta name="keywords" content="rust, rustlang, rust-lang, Wallet"><title>Wallet in bdk::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Wallet</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.add_signer">add_signer</a></li><li><a href="#method.all_unbounded_spk_iters">all_unbounded_spk_iters</a></li><li><a href="#method.apply_block">apply_block</a></li><li><a href="#method.apply_block_connected_to">apply_block_connected_to</a></li><li><a href="#method.apply_unconfirmed_txs">apply_unconfirmed_txs</a></li><li><a href="#method.apply_update">apply_update</a></li><li><a href="#method.build_fee_bump">build_fee_bump</a></li><li><a href="#method.build_tx">build_tx</a></li><li><a href="#method.calculate_fee">calculate_fee</a></li><li><a href="#method.calculate_fee_rate">calculate_fee_rate</a></li><li><a href="#method.cancel_tx">cancel_tx</a></li><li><a href="#method.checkpoints">checkpoints</a></li><li><a href="#method.commit">commit</a></li><li><a href="#method.derivation_index">derivation_index</a></li><li><a href="#method.derivation_of_spk">derivation_of_spk</a></li><li><a href="#method.descriptor_checksum">descriptor_checksum</a></li><li><a href="#method.finalize_psbt">finalize_psbt</a></li><li><a href="#method.get_balance">get_balance</a></li><li><a href="#method.get_descriptor_for_keychain">get_descriptor_for_keychain</a></li><li><a href="#method.get_psbt_input">get_psbt_input</a></li><li><a href="#method.get_signers">get_signers</a></li><li><a href="#method.get_tx">get_tx</a></li><li><a href="#method.get_utxo">get_utxo</a></li><li><a href="#method.insert_checkpoint">insert_checkpoint</a></li><li><a href="#method.insert_tx">insert_tx</a></li><li><a href="#method.insert_txout">insert_txout</a></li><li><a href="#method.is_mine">is_mine</a></li><li><a href="#method.keychains">keychains</a></li><li><a href="#method.latest_checkpoint">latest_checkpoint</a></li><li><a href="#method.list_output">list_output</a></li><li><a href="#method.list_unspent">list_unspent</a></li><li><a href="#method.list_unused_addresses">list_unused_addresses</a></li><li><a href="#method.load">load</a></li><li><a href="#method.local_chain">local_chain</a></li><li><a href="#method.mark_used">mark_used</a></li><li><a href="#method.network">network</a></li><li><a href="#method.new">new</a></li><li><a href="#method.new_no_persist">new_no_persist</a></li><li><a href="#method.new_no_persist_with_genesis_hash">new_no_persist_with_genesis_hash</a></li><li><a href="#method.new_or_load">new_or_load</a></li><li><a href="#method.new_or_load_with_genesis_hash">new_or_load_with_genesis_hash</a></li><li><a href="#method.new_with_genesis_hash">new_with_genesis_hash</a></li><li><a href="#method.next_derivation_index">next_derivation_index</a></li><li><a href="#method.next_unused_address">next_unused_address</a></li><li><a href="#method.peek_address">peek_address</a></li><li><a href="#method.policies">policies</a></li><li><a href="#method.public_descriptor">public_descriptor</a></li><li><a href="#method.reveal_addresses_to">reveal_addresses_to</a></li><li><a href="#method.reveal_next_address">reveal_next_address</a></li><li><a href="#method.secp_ctx">secp_ctx</a></li><li><a href="#method.sent_and_received">sent_and_received</a></li><li><a href="#method.sign">sign</a></li><li><a href="#method.spk_index">spk_index</a></li><li><a href="#method.staged">staged</a></li><li><a href="#method.start_full_scan">start_full_scan</a></li><li><a href="#method.start_sync_with_revealed_spks">start_sync_with_revealed_spks</a></li><li><a href="#method.transactions">transactions</a></li><li><a href="#method.tx_graph">tx_graph</a></li><li><a href="#method.unbounded_spk_iter">unbounded_spk_iter</a></li><li><a href="#method.unmark_used">unmark_used</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-AsRef%3CTxGraph%3CConfirmationTimeHeightAnchor%3E%3E-for-Wallet">AsRef<TxGraph<ConfirmationTimeHeightAnchor>></a></li><li><a href="#impl-Debug-for-Wallet">Debug</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Wallet">!RefUnwindSafe</a></li><li><a href="#impl-Send-for-Wallet">Send</a></li><li><a href="#impl-Sync-for-Wallet">Sync</a></li><li><a href="#impl-Unpin-for-Wallet">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Wallet">!UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Wallet">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Wallet">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Wallet">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Wallet">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Wallet">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-Wallet">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Wallet">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Wallet">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">bdk</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="struct" href="#">Wallet</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/wallet/mod.rs.html#88-96">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Wallet { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A Bitcoin wallet</p>
-<p>The <code>Wallet</code> acts as a way of coherently interfacing with output descriptors and related transactions.
-Its main components are:</p>
-<ol>
-<li>output <em>descriptors</em> from which it can derive addresses.</li>
-<li><a href="signer/index.html"><code>signer</code></a>s that can contribute signatures to addresses instantiated from the descriptors.</li>
-</ol>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Wallet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#230-258">source</a><a href="#impl-Wallet" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Wallet.html" title="struct bdk::wallet::Wallet">Wallet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_no_persist" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#232-242">source</a><h4 class="code-header">pub fn <a href="#method.new_no_persist" class="fn">new_no_persist</a><E: <a class="trait" href="../descriptor/trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a>>(<br> descriptor: E,<br> change_descriptor: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><E>,<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><Self, <a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class="docblock"><p>Creates a wallet that does not persist data.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_no_persist_with_genesis_hash" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#245-257">source</a><h4 class="code-header">pub fn <a href="#method.new_no_persist_with_genesis_hash" class="fn">new_no_persist_with_genesis_hash</a><E: <a class="trait" href="../descriptor/trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a>>(<br> descriptor: E,<br> change_descriptor: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><E>,<br> network: Network,<br> genesis_hash: BlockHash<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, <a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class="docblock"><p>Creates a wallet that does not persist data, with a custom genesis hash.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Wallet-1" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#462-2557">source</a><a href="#impl-Wallet-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Wallet.html" title="struct bdk::wallet::Wallet">Wallet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#464-472">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a><E: <a class="trait" href="../descriptor/trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a>>(<br> descriptor: E,<br> change_descriptor: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><E>,<br> db: impl PersistBackend<<a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static,<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><Self, <a class="enum" href="enum.NewError.html" title="enum bdk::wallet::NewError">NewError</a>></h4></section></summary><div class="docblock"><p>Initialize an empty <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_with_genesis_hash" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#478-517">source</a><h4 class="code-header">pub fn <a href="#method.new_with_genesis_hash" class="fn">new_with_genesis_hash</a><E: <a class="trait" href="../descriptor/trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a>>(<br> descriptor: E,<br> change_descriptor: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><E>,<br> db: impl PersistBackend<<a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static,<br> network: Network,<br> genesis_hash: BlockHash<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, <a class="enum" href="enum.NewError.html" title="enum bdk::wallet::NewError">NewError</a>></h4></section></summary><div class="docblock"><p>Initialize an empty <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a> with a custom genesis hash.</p>
-<p>This is like <a href="struct.Wallet.html#method.new" title="Wallet::new"><code>Wallet::new</code></a> with an additional <code>genesis_hash</code> parameter. This is useful
-for syncing from alternative networks.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.load" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#560-568">source</a><h4 class="code-header">pub fn <a href="#method.load" class="fn">load</a>(<br> db: impl PersistBackend<<a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, <a class="enum" href="enum.LoadError.html" title="enum bdk::wallet::LoadError">LoadError</a>></h4></section></summary><div class="docblock"><p>Load <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a> from the given persistence backend.</p>
-<p>Note that the descriptor secret keys are not persisted to the db; this means that after
-calling this method the <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a> <strong>won’t</strong> know the secret keys, and as such, won’t be
-able to sign transactions.</p>
-<p>If you wish to use the wallet to sign transactions, you need to add the secret keys
-manually to the <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>:</p>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>secp = Secp256k1::new();
-
-<span class="kw">let </span>(external_descriptor, external_keymap) = Descriptor::parse_descriptor(<span class="kw-2">&</span>secp, <span class="string">"wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/0/*)"</span>).unwrap();
-<span class="kw">let </span>(internal_descriptor, internal_keymap) = Descriptor::parse_descriptor(<span class="kw-2">&</span>secp, <span class="string">"wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/1/*)"</span>).unwrap();
-
-<span class="kw">let </span>external_signer_container = SignersContainer::build(external_keymap, <span class="kw-2">&</span>external_descriptor, <span class="kw-2">&</span>secp);
-<span class="kw">let </span>internal_signer_container = SignersContainer::build(internal_keymap, <span class="kw-2">&</span>internal_descriptor, <span class="kw-2">&</span>secp);
-
-<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::load(db)<span class="question-mark">?</span>;
-
-external_signer_container.signers().into_iter()
- .for_each(|s| wallet.add_signer(KeychainKind::External, SignerOrdering::default(), s.clone()));
-internal_signer_container.signers().into_iter()
- .for_each(|s| wallet.add_signer(KeychainKind::Internal, SignerOrdering::default(), s.clone()));</code></pre></div>
-<p>Alternatively, you can call <a href="struct.Wallet.html#method.new_or_load" title="Wallet::new_or_load"><code>Wallet::new_or_load</code></a>, which will add the private keys of the
-passed-in descriptors to the <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_or_load" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#616-630">source</a><h4 class="code-header">pub fn <a href="#method.new_or_load" class="fn">new_or_load</a><E: <a class="trait" href="../descriptor/trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a>>(<br> descriptor: E,<br> change_descriptor: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><E>,<br> db: impl PersistBackend<<a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static,<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><Self, <a class="enum" href="enum.NewOrLoadError.html" title="enum bdk::wallet::NewOrLoadError">NewOrLoadError</a>></h4></section></summary><div class="docblock"><p>Either loads <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a> from persistence, or initializes it if it does not exist.</p>
-<p>This method will fail if the loaded <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a> has different parameters to those provided.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_or_load_with_genesis_hash" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#638-763">source</a><h4 class="code-header">pub fn <a href="#method.new_or_load_with_genesis_hash" class="fn">new_or_load_with_genesis_hash</a><E: <a class="trait" href="../descriptor/trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a>>(<br> descriptor: E,<br> change_descriptor: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><E>,<br> db: impl PersistBackend<<a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static,<br> network: Network,<br> genesis_hash: BlockHash<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, <a class="enum" href="enum.NewOrLoadError.html" title="enum bdk::wallet::NewOrLoadError">NewOrLoadError</a>></h4></section></summary><div class="docblock"><p>Either loads <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a> from persistence, or initializes it if it does not exist, using the
-provided descriptor, change descriptor, network, and custom genesis hash.</p>
-<p>This method will fail if the loaded <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a> has different parameters to those provided.
-This is like <a href="struct.Wallet.html#method.new_or_load" title="Wallet::new_or_load"><code>Wallet::new_or_load</code></a> with an additional <code>genesis_hash</code> parameter. This is
-useful for syncing from alternative networks.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.network" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#766-768">source</a><h4 class="code-header">pub fn <a href="#method.network" class="fn">network</a>(&self) -> Network</h4></section></summary><div class="docblock"><p>Get the Bitcoin network the wallet is using.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.keychains" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#771-773">source</a><h4 class="code-header">pub fn <a href="#method.keychains" class="fn">keychains</a>(<br> &self<br>) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = (&<a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>, &<a class="type" href="../descriptor/type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>)></h4></section></summary><div class="docblock"><p>Iterator over all keychains in this wallet</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.peek_address" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#783-802">source</a><h4 class="code-header">pub fn <a href="#method.peek_address" class="fn">peek_address</a>(&self, keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>, index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) -> <a class="struct" href="struct.AddressInfo.html" title="struct bdk::wallet::AddressInfo">AddressInfo</a></h4></section></summary><div class="docblock"><p>Peek an address of the given <code>keychain</code> at <code>index</code> without revealing it.</p>
-<p>For non-wildcard descriptors this returns the same address at every provided index.</p>
-<h5 id="panics"><a href="#panics">Panics</a></h5>
-<p>This panics when the caller requests for an address of derivation index greater than the
-<a href="https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki">BIP32</a> max index.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.reveal_next_address" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#814-830">source</a><h4 class="code-header">pub fn <a href="#method.reveal_next_address" class="fn">reveal_next_address</a>(<br> &mut self,<br> keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a><br>) -> <a class="type" href="https://docs.rs/anyhow/1.0.83/anyhow/type.Result.html" title="type anyhow::Result">Result</a><<a class="struct" href="struct.AddressInfo.html" title="struct bdk::wallet::AddressInfo">AddressInfo</a>></h4></section></summary><div class="docblock"><p>Attempt to reveal the next address of the given <code>keychain</code>.</p>
-<p>This will increment the internal derivation index. If the keychain’s descriptor doesn’t
-contain a wildcard or every address is already revealed up to the maximum derivation
-index defined in <a href="https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki">BIP32</a>,
-then returns the last revealed address.</p>
-<h5 id="errors"><a href="#errors">Errors</a></h5>
-<p>If writing to persistent storage fails.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.reveal_addresses_to" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#842-862">source</a><h4 class="code-header">pub fn <a href="#method.reveal_addresses_to" class="fn">reveal_addresses_to</a>(<br> &mut self,<br> keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>,<br> index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a><br>) -> <a class="type" href="https://docs.rs/anyhow/1.0.83/anyhow/type.Result.html" title="type anyhow::Result">Result</a><impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = <a class="struct" href="struct.AddressInfo.html" title="struct bdk::wallet::AddressInfo">AddressInfo</a>> + '_></h4></section></summary><div class="docblock"><p>Reveal addresses up to and including the target <code>index</code> and return an iterator
-of newly revealed addresses.</p>
-<p>If the target <code>index</code> is unreachable, we make a best effort to reveal up to the last
-possible index. If all addresses up to the given <code>index</code> are already revealed, then
-no new addresses are returned.</p>
-<h5 id="errors-1"><a href="#errors-1">Errors</a></h5>
-<p>If writing to persistent storage fails.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.next_unused_address" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#873-889">source</a><h4 class="code-header">pub fn <a href="#method.next_unused_address" class="fn">next_unused_address</a>(<br> &mut self,<br> keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a><br>) -> <a class="type" href="https://docs.rs/anyhow/1.0.83/anyhow/type.Result.html" title="type anyhow::Result">Result</a><<a class="struct" href="struct.AddressInfo.html" title="struct bdk::wallet::AddressInfo">AddressInfo</a>></h4></section></summary><div class="docblock"><p>Get the next unused address for the given <code>keychain</code>, i.e. the address with the lowest
-derivation index that hasn’t been used.</p>
-<p>This will attempt to derive and reveal a new address if no newly revealed addresses
-are available. See also <a href="struct.Wallet.html#method.reveal_next_address"><code>reveal_next_address</code></a>.</p>
-<h5 id="errors-2"><a href="#errors-2">Errors</a></h5>
-<p>If writing to persistent storage fails.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mark_used" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#894-896">source</a><h4 class="code-header">pub fn <a href="#method.mark_used" class="fn">mark_used</a>(&mut self, keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>, index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Marks an address used of the given <code>keychain</code> at <code>index</code>.</p>
-<p>Returns whether the given index was present and then removed from the unused set.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.unmark_used" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#906-908">source</a><h4 class="code-header">pub fn <a href="#method.unmark_used" class="fn">unmark_used</a>(&mut self, keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>, index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Undoes the effect of <a href="struct.Wallet.html#method.mark_used"><code>mark_used</code></a> and returns whether the <code>index</code> was inserted
-back into the unused set.</p>
-<p>Since this is only a superficial marker, it will have no effect if the address at the given
-<code>index</code> was actually used, i.e. the wallet has previously indexed a tx output for the
-derived spk.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.list_unused_addresses" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#915-928">source</a><h4 class="code-header">pub fn <a href="#method.list_unused_addresses" class="fn">list_unused_addresses</a>(<br> &self,<br> keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a><br>) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/double_ended/trait.DoubleEndedIterator.html" title="trait core::iter::traits::double_ended::DoubleEndedIterator">DoubleEndedIterator</a><Item = <a class="struct" href="struct.AddressInfo.html" title="struct bdk::wallet::AddressInfo">AddressInfo</a>> + '_</h4></section></summary><div class="docblock"><p>List addresses that are revealed but unused.</p>
-<p>Note if the returned iterator is empty you can reveal more addresses
-by using <a href="struct.Wallet.html#method.reveal_next_address"><code>reveal_next_address</code></a> or
-<a href="struct.Wallet.html#method.reveal_addresses_to"><code>reveal_addresses_to</code></a>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_mine" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#931-933">source</a><h4 class="code-header">pub fn <a href="#method.is_mine" class="fn">is_mine</a>(&self, script: &Script) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Return whether or not a <code>script</code> is part of this wallet (either internal or external)</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.derivation_of_spk" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#938-940">source</a><h4 class="code-header">pub fn <a href="#method.derivation_of_spk" class="fn">derivation_of_spk</a>(&self, spk: &Script) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(<a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>)></h4></section></summary><div class="docblock"><p>Finds how the wallet derived the script pubkey <code>spk</code>.</p>
-<p>Will only return <code>Some(_)</code> if the wallet has given out the spk.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.list_unspent" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#943-952">source</a><h4 class="code-header">pub fn <a href="#method.list_unspent" class="fn">list_unspent</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = <a class="struct" href="../struct.LocalOutput.html" title="struct bdk::LocalOutput">LocalOutput</a>> + '_</h4></section></summary><div class="docblock"><p>Return the list of unspent outputs of this wallet</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.list_output" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#957-966">source</a><h4 class="code-header">pub fn <a href="#method.list_output" class="fn">list_output</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = <a class="struct" href="../struct.LocalOutput.html" title="struct bdk::LocalOutput">LocalOutput</a>> + '_</h4></section></summary><div class="docblock"><p>List all relevant outputs (includes both spent and unspent, confirmed and unconfirmed).</p>
-<p>To list only unspent outputs (UTXOs), use <a href="struct.Wallet.html#method.list_unspent" title="Wallet::list_unspent"><code>Wallet::list_unspent</code></a> instead.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.checkpoints" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#969-971">source</a><h4 class="code-header">pub fn <a href="#method.checkpoints" class="fn">checkpoints</a>(&self) -> <a class="struct" href="../../bdk_chain/local_chain/struct.CheckPointIter.html" title="struct bdk_chain::local_chain::CheckPointIter">CheckPointIter</a></h4></section></summary><div class="docblock"><p>Get all the checkpoints the wallet is currently storing indexed by height.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.latest_checkpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#974-976">source</a><h4 class="code-header">pub fn <a href="#method.latest_checkpoint" class="fn">latest_checkpoint</a>(&self) -> <a class="struct" href="../../bdk_chain/local_chain/struct.CheckPoint.html" title="struct bdk_chain::local_chain::CheckPoint">CheckPoint</a></h4></section></summary><div class="docblock"><p>Returns the latest checkpoint.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.all_unbounded_spk_iters" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#986-990">source</a><h4 class="code-header">pub fn <a href="#method.all_unbounded_spk_iters" class="fn">all_unbounded_spk_iters</a>(<br> &self<br>) -> <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><<a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>, impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = (<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>, ScriptBuf)> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>></h4></section></summary><div class="docblock"><p>Get unbounded script pubkey iterators for both <code>Internal</code> and <code>External</code> keychains.</p>
-<p>This is intended to be used when doing a full scan of your addresses (e.g. after restoring
-from seed words). You pass the <code>BTreeMap</code> of iterators to a blockchain data source (e.g.
-electrum server) which will go through each address until it reaches a <em>stop gap</em>.</p>
-<p>Note carefully that iterators go over <strong>all</strong> script pubkeys on the keychains (not what
-script pubkeys the wallet is storing internally).</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.unbounded_spk_iter" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#997-1006">source</a><h4 class="code-header">pub fn <a href="#method.unbounded_spk_iter" class="fn">unbounded_spk_iter</a>(<br> &self,<br> keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a><br>) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = (<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>, ScriptBuf)> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a></h4></section></summary><div class="docblock"><p>Get an unbounded script pubkey iterator for the given <code>keychain</code>.</p>
-<p>See <a href="struct.Wallet.html#method.all_unbounded_spk_iters"><code>all_unbounded_spk_iters</code></a> for more documentation</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_utxo" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#1010-1021">source</a><h4 class="code-header">pub fn <a href="#method.get_utxo" class="fn">get_utxo</a>(&self, op: OutPoint) -> <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="../struct.LocalOutput.html" title="struct bdk::LocalOutput">LocalOutput</a>></h4></section></summary><div class="docblock"><p>Returns the utxo owned by this wallet corresponding to <code>outpoint</code> if it exists in the
-wallet’s database.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.insert_txout" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#1039-1042">source</a><h4 class="code-header">pub fn <a href="#method.insert_txout" class="fn">insert_txout</a>(&mut self, outpoint: OutPoint, txout: TxOut)</h4></section></summary><div class="docblock"><p>Inserts a [<code>TxOut</code>] at [<code>OutPoint</code>] into the wallet’s transaction graph.</p>
-<p>This is used for providing a previous output’s value so that we can use <a href="struct.Wallet.html#method.calculate_fee"><code>calculate_fee</code></a>
-or <a href="struct.Wallet.html#method.calculate_fee_rate"><code>calculate_fee_rate</code></a> on a given transaction. Outputs inserted with this method will
-not be returned in <a href="struct.Wallet.html#method.list_unspent"><code>list_unspent</code></a> or <a href="struct.Wallet.html#method.list_output"><code>list_output</code></a>.</p>
-<p>Any inserted <code>TxOut</code>s are not persisted until <a href="struct.Wallet.html#method.commit"><code>commit</code></a> is called.</p>
-<p><strong>WARNING:</strong> This should only be used to add <code>TxOut</code>s that the wallet does not own. Only
-insert <code>TxOut</code>s that you trust the values for!</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.calculate_fee" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#1071-1073">source</a><h4 class="code-header">pub fn <a href="#method.calculate_fee" class="fn">calculate_fee</a>(&self, tx: &Transaction) -> <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.u64.html">u64</a>, <a class="enum" href="../../bdk_chain/tx_graph/enum.CalculateFeeError.html" title="enum bdk_chain::tx_graph::CalculateFeeError">CalculateFeeError</a>></h4></section></summary><div class="docblock"><p>Calculates the fee of a given transaction. Returns 0 if <code>tx</code> is a coinbase transaction.</p>
-<p>To calculate the fee for a [<code>Transaction</code>] with inputs not owned by this wallet you must
-manually insert the TxOut(s) into the tx graph using the <a href="struct.Wallet.html#method.insert_txout"><code>insert_txout</code></a> function.</p>
-<p>Note <code>tx</code> does not have to be in the graph for this to work.</p>
-<h5 id="examples"><a href="#examples">Examples</a></h5>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>tx = wallet.get_tx(txid).expect(<span class="string">"transaction"</span>).tx_node.tx;
-<span class="kw">let </span>fee = wallet.calculate_fee(<span class="kw-2">&</span>tx).expect(<span class="string">"fee"</span>);</code></pre></div>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>tx = <span class="kw-2">&</span>psbt.clone().extract_tx().expect(<span class="string">"tx"</span>);
-<span class="kw">let </span>fee = wallet.calculate_fee(tx).expect(<span class="string">"fee"</span>);</code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.calculate_fee_rate" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#1102-1105">source</a><h4 class="code-header">pub fn <a href="#method.calculate_fee_rate" class="fn">calculate_fee_rate</a>(<br> &self,<br> tx: &Transaction<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><FeeRate, <a class="enum" href="../../bdk_chain/tx_graph/enum.CalculateFeeError.html" title="enum bdk_chain::tx_graph::CalculateFeeError">CalculateFeeError</a>></h4></section></summary><div class="docblock"><p>Calculate the [<code>FeeRate</code>] for a given transaction.</p>
-<p>To calculate the fee rate for a [<code>Transaction</code>] with inputs not owned by this wallet you must
-manually insert the TxOut(s) into the tx graph using the <a href="struct.Wallet.html#method.insert_txout"><code>insert_txout</code></a> function.</p>
-<p>Note <code>tx</code> does not have to be in the graph for this to work.</p>
-<h5 id="examples-1"><a href="#examples-1">Examples</a></h5>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>tx = wallet.get_tx(txid).expect(<span class="string">"transaction"</span>).tx_node.tx;
-<span class="kw">let </span>fee_rate = wallet.calculate_fee_rate(<span class="kw-2">&</span>tx).expect(<span class="string">"fee rate"</span>);</code></pre></div>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>tx = <span class="kw-2">&</span>psbt.clone().extract_tx().expect(<span class="string">"tx"</span>);
-<span class="kw">let </span>fee_rate = wallet.calculate_fee_rate(tx).expect(<span class="string">"fee rate"</span>);</code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sent_and_received" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#1132-1134">source</a><h4 class="code-header">pub fn <a href="#method.sent_and_received" class="fn">sent_and_received</a>(&self, tx: &Transaction) -> (Amount, Amount)</h4></section></summary><div class="docblock"><p>Compute the <code>tx</code>’s sent and received [<code>Amount</code>]s.</p>
-<p>This method returns a tuple <code>(sent, received)</code>. Sent is the sum of the txin amounts
-that spend from previous txouts tracked by this wallet. Received is the summation
-of this tx’s outputs that send to script pubkeys tracked by this wallet.</p>
-<h5 id="examples-2"><a href="#examples-2">Examples</a></h5>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>tx = wallet.get_tx(txid).expect(<span class="string">"tx exists"</span>).tx_node.tx;
-<span class="kw">let </span>(sent, received) = wallet.sent_and_received(<span class="kw-2">&</span>tx);</code></pre></div>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>tx = <span class="kw-2">&</span>psbt.clone().extract_tx().expect(<span class="string">"tx"</span>);
-<span class="kw">let </span>(sent, received) = wallet.sent_and_received(tx);</code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_tx" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#1179-1193">source</a><h4 class="code-header">pub fn <a href="#method.get_tx" class="fn">get_tx</a>(<br> &self,<br> txid: Txid<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="struct" href="../../bdk_chain/tx_graph/struct.CanonicalTx.html" title="struct bdk_chain::tx_graph::CanonicalTx">CanonicalTx</a><'_, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><Transaction>, <a class="struct" href="../../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor">ConfirmationTimeHeightAnchor</a>>></h4></section></summary><div class="docblock"><p>Get a single transaction from the wallet as a <a href="../../bdk_chain/tx_graph/struct.CanonicalTx.html" title="CanonicalTx"><code>CanonicalTx</code></a> (if the transaction exists).</p>
-<p><code>CanonicalTx</code> contains the full transaction alongside meta-data such as:</p>
-<ul>
-<li>Blocks that the transaction is <a href="../../bdk_chain/tx_data_traits/trait.Anchor.html"><code>Anchor</code></a>ed in. These may or may not be blocks that exist
-in the best chain.</li>
-<li>The <a href="../../bdk_chain/chain_data/enum.ChainPosition.html" title="ChainPosition"><code>ChainPosition</code></a> of the transaction in the best chain - whether the transaction is
-confirmed or unconfirmed. If the transaction is confirmed, the anchor which proves the
-confirmation is provided. If the transaction is unconfirmed, the unix timestamp of when
-the transaction was last seen in the mempool is provided.</li>
-</ul>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk::{chain::ChainPosition, Wallet};
-<span class="kw">use </span>bdk_chain::Anchor;
-
-<span class="kw">let </span>canonical_tx = wallet.get_tx(my_txid).expect(<span class="string">"panic if tx does not exist"</span>);
-
-<span class="comment">// get reference to full transaction
-</span><span class="macro">println!</span>(<span class="string">"my tx: {:#?}"</span>, canonical_tx.tx_node.tx);
-
-<span class="comment">// list all transaction anchors
-</span><span class="kw">for </span>anchor <span class="kw">in </span>canonical_tx.tx_node.anchors {
- <span class="macro">println!</span>(
- <span class="string">"tx is anchored by block of hash {}"</span>,
- anchor.anchor_block().hash
- );
-}
-
-<span class="comment">// get confirmation status of transaction
-</span><span class="kw">match </span>canonical_tx.chain_position {
- ChainPosition::Confirmed(anchor) => <span class="macro">println!</span>(
- <span class="string">"tx is confirmed at height {}, we know this since {}:{} is in the best chain"</span>,
- anchor.confirmation_height, anchor.anchor_block.height, anchor.anchor_block.hash,
- ),
- ChainPosition::Unconfirmed(last_seen) => <span class="macro">println!</span>(
- <span class="string">"tx is last seen at {}, it is unconfirmed as it is not anchored in the best chain"</span>,
- last_seen,
- ),
-}</code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.insert_checkpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#1202-1210">source</a><h4 class="code-header">pub fn <a href="#method.insert_checkpoint" class="fn">insert_checkpoint</a>(<br> &mut self,<br> block_id: <a class="struct" href="../../bdk_chain/chain_data/struct.BlockId.html" title="struct bdk_chain::chain_data::BlockId">BlockId</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.bool.html">bool</a>, <a class="struct" href="../../bdk_chain/local_chain/struct.AlterCheckPointError.html" title="struct bdk_chain::local_chain::AlterCheckPointError">AlterCheckPointError</a>></h4></section></summary><div class="docblock"><p>Add a new checkpoint to the wallet’s internal view of the chain.
-This stages but does not <a href="struct.Wallet.html#method.commit"><code>commit</code></a> the change.</p>
-<p>Returns whether anything changed with the insertion (e.g. <code>false</code> if checkpoint was already
-there).</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.insert_tx" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#1229-1269">source</a><h4 class="code-header">pub fn <a href="#method.insert_tx" class="fn">insert_tx</a>(<br> &mut self,<br> tx: Transaction,<br> position: <a class="enum" href="../../bdk_chain/chain_data/enum.ConfirmationTime.html" title="enum bdk_chain::chain_data::ConfirmationTime">ConfirmationTime</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.bool.html">bool</a>, <a class="enum" href="enum.InsertTxError.html" title="enum bdk::wallet::InsertTxError">InsertTxError</a>></h4></section></summary><div class="docblock"><p>Add a transaction to the wallet’s internal view of the chain. This stages but does not
-<a href="struct.Wallet.html#method.commit"><code>commit</code></a> the change.</p>
-<p>Returns whether anything changed with the transaction insertion (e.g. <code>false</code> if the
-transaction was already inserted at the same position).</p>
-<p>A <code>tx</code> can be rejected if <code>position</code> has a height greater than the <a href="struct.Wallet.html#method.latest_checkpoint"><code>latest_checkpoint</code></a>.
-Therefore you should use <a href="struct.Wallet.html#method.insert_checkpoint"><code>insert_checkpoint</code></a> to insert new checkpoints before manually
-inserting new transactions.</p>
-<p><strong>WARNING:</strong> If <code>position</code> is confirmed, we anchor the <code>tx</code> to a the lowest checkpoint that
-is >= the <code>position</code>’s height. The caller is responsible for ensuring the <code>tx</code> exists in our
-local view of the best chain’s history.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.transactions" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#1272-1279">source</a><h4 class="code-header">pub fn <a href="#method.transactions" class="fn">transactions</a>(<br> &self<br>) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = <a class="struct" href="../../bdk_chain/tx_graph/struct.CanonicalTx.html" title="struct bdk_chain::tx_graph::CanonicalTx">CanonicalTx</a><'_, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><Transaction>, <a class="struct" href="../../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor">ConfirmationTimeHeightAnchor</a>>> + '_</h4></section></summary><div class="docblock"><p>Iterate over the transactions in the wallet.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_balance" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#1283-1290">source</a><h4 class="code-header">pub fn <a href="#method.get_balance" class="fn">get_balance</a>(&self) -> <a class="struct" href="struct.Balance.html" title="struct bdk::wallet::Balance">Balance</a></h4></section></summary><div class="docblock"><p>Return the balance, separated into available, trusted-pending, untrusted-pending and immature
-values.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_signer" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#1295-1307">source</a><h4 class="code-header">pub fn <a href="#method.add_signer" class="fn">add_signer</a>(<br> &mut self,<br> keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>,<br> ordering: <a class="struct" href="signer/struct.SignerOrdering.html" title="struct bdk::wallet::signer::SignerOrdering">SignerOrdering</a>,<br> signer: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><dyn <a class="trait" href="signer/trait.TransactionSigner.html" title="trait bdk::wallet::signer::TransactionSigner">TransactionSigner</a>><br>)</h4></section></summary><div class="docblock"><p>Add an external signer</p>
-<p>See <a href="signer/index.html">the <code>signer</code> module</a> for an example.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_signers" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#1324-1329">source</a><h4 class="code-header">pub fn <a href="#method.get_signers" class="fn">get_signers</a>(&self, keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><<a class="struct" href="signer/struct.SignersContainer.html" title="struct bdk::wallet::signer::SignersContainer">SignersContainer</a>></h4></section></summary><div class="docblock"><p>Get the signers</p>
-<h6 id="example"><a href="#example">Example</a></h6>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>wallet = Wallet::new_no_persist(<span class="string">"wpkh(tprv8ZgxMBicQKsPe73PBRSmNbTfbcsZnwWhz5eVmhHpi31HW29Z7mc9B4cWGRQzopNUzZUT391DeDJxL2PefNunWyLgqCKRMDkU1s2s8bAfoSk/84'/0'/0'/0/*)"</span>, <span class="prelude-val">None</span>, Network::Testnet)<span class="question-mark">?</span>;
-<span class="kw">for </span>secret_key <span class="kw">in </span>wallet.get_signers(KeychainKind::External).signers().iter().filter_map(|s| s.descriptor_secret_key()) {
- <span class="comment">// secret_key: tprv8ZgxMBicQKsPe73PBRSmNbTfbcsZnwWhz5eVmhHpi31HW29Z7mc9B4cWGRQzopNUzZUT391DeDJxL2PefNunWyLgqCKRMDkU1s2s8bAfoSk/84'/0'/0'/0/*
- </span><span class="macro">println!</span>(<span class="string">"secret_key: {}"</span>, secret_key);
-}
-
-<span class="prelude-val">Ok</span>::<(), Box<<span class="kw">dyn </span>std::error::Error>>(())</code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build_tx" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#1360-1367">source</a><h4 class="code-header">pub fn <a href="#method.build_tx" class="fn">build_tx</a>(<br> &mut self<br>) -> <a class="struct" href="tx_builder/struct.TxBuilder.html" title="struct bdk::wallet::tx_builder::TxBuilder">TxBuilder</a><'_, <a class="type" href="coin_selection/type.DefaultCoinSelectionAlgorithm.html" title="type bdk::wallet::coin_selection::DefaultCoinSelectionAlgorithm">DefaultCoinSelectionAlgorithm</a>, <a class="struct" href="tx_builder/struct.CreateTx.html" title="struct bdk::wallet::tx_builder::CreateTx">CreateTx</a>></h4></section></summary><div class="docblock"><p>Start building a transaction.</p>
-<p>This returns a blank <a href="tx_builder/struct.TxBuilder.html"><code>TxBuilder</code></a> from which you can specify the parameters for the transaction.</p>
-<h6 id="example-1"><a href="#example-1">Example</a></h6>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>psbt = {
- <span class="kw">let </span><span class="kw-2">mut </span>builder = wallet.build_tx();
- builder
- .add_recipient(to_address.script_pubkey(), Amount::from_sat(<span class="number">50_000</span>));
- builder.finish()<span class="question-mark">?
-</span>};
-
-<span class="comment">// sign and broadcast ...</span></code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build_fee_bump" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#1748-1877">source</a><h4 class="code-header">pub fn <a href="#method.build_fee_bump" class="fn">build_fee_bump</a>(<br> &mut self,<br> txid: Txid<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="struct" href="tx_builder/struct.TxBuilder.html" title="struct bdk::wallet::tx_builder::TxBuilder">TxBuilder</a><'_, <a class="type" href="coin_selection/type.DefaultCoinSelectionAlgorithm.html" title="type bdk::wallet::coin_selection::DefaultCoinSelectionAlgorithm">DefaultCoinSelectionAlgorithm</a>, <a class="struct" href="tx_builder/struct.BumpFee.html" title="struct bdk::wallet::tx_builder::BumpFee">BumpFee</a>>, <a class="enum" href="error/enum.BuildFeeBumpError.html" title="enum bdk::wallet::error::BuildFeeBumpError">BuildFeeBumpError</a>></h4></section></summary><div class="docblock"><p>Bump the fee of a transaction previously created with this wallet.</p>
-<p>Returns an error if the transaction is already confirmed or doesn’t explicitly signal
-<em>replace by fee</em> (RBF). If the transaction can be fee bumped then it returns a <a href="tx_builder/struct.TxBuilder.html" title="TxBuilder"><code>TxBuilder</code></a>
-pre-populated with the inputs and outputs of the original transaction.</p>
-<h6 id="example-2"><a href="#example-2">Example</a></h6>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>psbt = {
- <span class="kw">let </span><span class="kw-2">mut </span>builder = wallet.build_tx();
- builder
- .add_recipient(to_address.script_pubkey(), Amount::from_sat(<span class="number">50_000</span>))
- .enable_rbf();
- builder.finish()<span class="question-mark">?
-</span>};
-<span class="kw">let _ </span>= wallet.sign(<span class="kw-2">&mut </span>psbt, SignOptions::default())<span class="question-mark">?</span>;
-<span class="kw">let </span>tx = psbt.clone().extract_tx().expect(<span class="string">"tx"</span>);
-<span class="comment">// broadcast tx but it's taking too long to confirm so we want to bump the fee
-</span><span class="kw">let </span><span class="kw-2">mut </span>psbt = {
- <span class="kw">let </span><span class="kw-2">mut </span>builder = wallet.build_fee_bump(tx.txid())<span class="question-mark">?</span>;
- builder
- .fee_rate(FeeRate::from_sat_per_vb(<span class="number">5</span>).expect(<span class="string">"valid feerate"</span>));
- builder.finish()<span class="question-mark">?
-</span>};
-
-<span class="kw">let _ </span>= wallet.sign(<span class="kw-2">&mut </span>psbt, SignOptions::default())<span class="question-mark">?</span>;
-<span class="kw">let </span>fee_bumped_tx = psbt.extract_tx();
-<span class="comment">// broadcast fee_bumped_tx to replace original</span></code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sign" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#1907-1954">source</a><h4 class="code-header">pub fn <a href="#method.sign" class="fn">sign</a>(<br> &self,<br> psbt: &mut Psbt,<br> sign_options: <a class="struct" href="signer/struct.SignOptions.html" title="struct bdk::wallet::signer::SignOptions">SignOptions</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.bool.html">bool</a>, <a class="enum" href="signer/enum.SignerError.html" title="enum bdk::wallet::signer::SignerError">SignerError</a>></h4></section></summary><div class="docblock"><p>Sign a transaction with all the wallet’s signers, in the order specified by every signer’s
-<a href="signer/struct.SignerOrdering.html" title="SignerOrdering"><code>SignerOrdering</code></a>. This function returns the <code>Result</code> type with an encapsulated <code>bool</code> that has the value true if the PSBT was finalized, or false otherwise.</p>
-<p>The <a href="signer/struct.SignOptions.html" title="SignOptions"><code>SignOptions</code></a> can be used to tweak the behavior of the software signers, and the way
-the transaction is finalized at the end. Note that it can’t be guaranteed that <em>every</em>
-signers will follow the options, but the “software signers” (WIF keys and <code>xprv</code>) defined
-in this library will.</p>
-<h6 id="example-3"><a href="#example-3">Example</a></h6>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>psbt = {
- <span class="kw">let </span><span class="kw-2">mut </span>builder = wallet.build_tx();
- builder.add_recipient(to_address.script_pubkey(), Amount::from_sat(<span class="number">50_000</span>));
- builder.finish()<span class="question-mark">?
-</span>};
-<span class="kw">let </span>finalized = wallet.sign(<span class="kw-2">&mut </span>psbt, SignOptions::default())<span class="question-mark">?</span>;
-<span class="macro">assert!</span>(finalized, <span class="string">"we should have signed all the inputs"</span>);</code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.policies" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#1957-1967">source</a><h4 class="code-header">pub fn <a href="#method.policies" class="fn">policies</a>(<br> &self,<br> keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</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="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="../descriptor/policy/struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a>>, <a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class="docblock"><p>Return the spending policies for the wallet’s descriptor</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.public_descriptor" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#1973-1979">source</a><h4 class="code-header">pub fn <a href="#method.public_descriptor" class="fn">public_descriptor</a>(<br> &self,<br> keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a><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="type" href="../descriptor/type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>></h4></section></summary><div class="docblock"><p>Return the “public” version of the wallet’s descriptor, meaning a new descriptor that has
-the same structure but with every secret key removed</p>
-<p>This can be used to build a watch-only version of a wallet</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.finalize_psbt" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#1989-2076">source</a><h4 class="code-header">pub fn <a href="#method.finalize_psbt" class="fn">finalize_psbt</a>(<br> &self,<br> psbt: &mut Psbt,<br> sign_options: <a class="struct" href="signer/struct.SignOptions.html" title="struct bdk::wallet::signer::SignOptions">SignOptions</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.bool.html">bool</a>, <a class="enum" href="signer/enum.SignerError.html" title="enum bdk::wallet::signer::SignerError">SignerError</a>></h4></section></summary><div class="docblock"><p>Finalize a PSBT, i.e., for each input determine if sufficient data is available to pass
-validation and construct the respective <code>scriptSig</code> or <code>scriptWitness</code>. Please refer to
-<a href="https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#Input_Finalizer">BIP174</a>
-for further information.</p>
-<p>Returns <code>true</code> if the PSBT could be finalized, and <code>false</code> otherwise.</p>
-<p>The <a href="signer/struct.SignOptions.html" title="SignOptions"><code>SignOptions</code></a> can be used to tweak the behavior of the finalizer.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.secp_ctx" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#2079-2081">source</a><h4 class="code-header">pub fn <a href="#method.secp_ctx" class="fn">secp_ctx</a>(&self) -> &Secp256k1<All></h4></section></summary><div class="docblock"><p>Return the secp256k1 context used for all signing operations</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_descriptor_for_keychain" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#2084-2087">source</a><h4 class="code-header">pub fn <a href="#method.get_descriptor_for_keychain" class="fn">get_descriptor_for_keychain</a>(<br> &self,<br> keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a><br>) -> &<a class="type" href="../descriptor/type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a></h4></section></summary><div class="docblock"><p>Returns the descriptor used to create addresses for a particular <code>keychain</code>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.derivation_index" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#2091-2093">source</a><h4 class="code-header">pub fn <a href="#method.derivation_index" class="fn">derivation_index</a>(&self, keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>></h4></section></summary><div class="docblock"><p>The derivation index of this wallet. It will return <code>None</code> if it has not derived any addresses.
-Otherwise, it will return the index of the highest address it has derived.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.next_derivation_index" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#2096-2103">source</a><h4 class="code-header">pub fn <a href="#method.next_derivation_index" class="fn">next_derivation_index</a>(&self, keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></h4></section></summary><div class="docblock"><p>The index of the next address that you would get if you were to ask the wallet for a new address</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cancel_tx" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#2109-2118">source</a><h4 class="code-header">pub fn <a href="#method.cancel_tx" class="fn">cancel_tx</a>(&mut self, tx: &Transaction)</h4></section></summary><div class="docblock"><p>Informs the wallet that you no longer intend to broadcast a tx that was built from it.</p>
-<p>This frees up the change address used when creating the tx for use in future transactions.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_psbt_input" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#2338-2376">source</a><h4 class="code-header">pub fn <a href="#method.get_psbt_input" class="fn">get_psbt_input</a>(<br> &self,<br> utxo: <a class="struct" href="../struct.LocalOutput.html" title="struct bdk::LocalOutput">LocalOutput</a>,<br> sighash_type: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><PsbtSighashType>,<br> only_witness_utxo: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Input, <a class="enum" href="error/enum.CreateTxError.html" title="enum bdk::wallet::error::CreateTxError">CreateTxError</a>></h4></section></summary><div class="docblock"><p>get the corresponding PSBT Input for a LocalUtxo</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.descriptor_checksum" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#2418-2425">source</a><h4 class="code-header">pub fn <a href="#method.descriptor_checksum" class="fn">descriptor_checksum</a>(&self, keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class="docblock"><p>Return the checksum of the public descriptor associated to <code>keychain</code></p>
-<p>Internally calls <a href="struct.Wallet.html#method.get_descriptor_for_keychain" title="Self::get_descriptor_for_keychain"><code>Self::get_descriptor_for_keychain</code></a> to fetch the right descriptor</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.apply_update" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#2433-2452">source</a><h4 class="code-header">pub fn <a href="#method.apply_update" class="fn">apply_update</a>(<br> &mut self,<br> update: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="struct.Update.html" title="struct bdk::wallet::Update">Update</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>, <a class="struct" href="../../bdk_chain/local_chain/struct.CannotConnectError.html" title="struct bdk_chain::local_chain::CannotConnectError">CannotConnectError</a>></h4></section></summary><div class="docblock"><p>Applies an update to the wallet and stages the changes (but does not <a href="struct.Wallet.html#method.commit"><code>commit</code></a> them).</p>
-<p>Usually you create an <code>update</code> by interacting with some blockchain data source and inserting
-transactions related to your wallet into it.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.commit" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#2460-2462">source</a><h4 class="code-header">pub fn <a href="#method.commit" class="fn">commit</a>(&mut self) -> <a class="type" href="https://docs.rs/anyhow/1.0.83/anyhow/type.Result.html" title="type anyhow::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>></h4></section></summary><div class="docblock"><p>Commits all currently <a href="struct.Wallet.html#method.staged"><code>staged</code></a> changed to the persistence backend returning and error when
-this fails.</p>
-<p>This returns whether the <code>update</code> resulted in any changes.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.staged" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#2467-2469">source</a><h4 class="code-header">pub fn <a href="#method.staged" class="fn">staged</a>(&self) -> &<a class="struct" href="struct.ChangeSet.html" title="struct bdk::wallet::ChangeSet">ChangeSet</a></h4></section></summary><div class="docblock"><p>Returns the changes that will be committed with the next call to <a href="struct.Wallet.html#method.commit"><code>commit</code></a>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tx_graph" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#2472-2474">source</a><h4 class="code-header">pub fn <a href="#method.tx_graph" class="fn">tx_graph</a>(&self) -> &<a class="struct" href="../../bdk_chain/tx_graph/struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><<a class="struct" href="../../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor">ConfirmationTimeHeightAnchor</a>></h4></section></summary><div class="docblock"><p>Get a reference to the inner <a href="../../bdk_chain/tx_graph/struct.TxGraph.html" title="TxGraph"><code>TxGraph</code></a>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.spk_index" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#2477-2479">source</a><h4 class="code-header">pub fn <a href="#method.spk_index" class="fn">spk_index</a>(&self) -> &<a class="struct" href="../../bdk_chain/keychain/txout_index/struct.KeychainTxOutIndex.html" title="struct bdk_chain::keychain::txout_index::KeychainTxOutIndex">KeychainTxOutIndex</a><<a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>></h4></section></summary><div class="docblock"><p>Get a reference to the inner <a href="../../bdk_chain/keychain/txout_index/struct.KeychainTxOutIndex.html" title="KeychainTxOutIndex"><code>KeychainTxOutIndex</code></a>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.local_chain" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#2482-2484">source</a><h4 class="code-header">pub fn <a href="#method.local_chain" class="fn">local_chain</a>(&self) -> &<a class="struct" href="../../bdk_chain/local_chain/struct.LocalChain.html" title="struct bdk_chain::local_chain::LocalChain">LocalChain</a></h4></section></summary><div class="docblock"><p>Get a reference to the inner <a href="../../bdk_chain/local_chain/struct.LocalChain.html" title="LocalChain"><code>LocalChain</code></a>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.apply_block" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#2493-2511">source</a><h4 class="code-header">pub fn <a href="#method.apply_block" class="fn">apply_block</a>(<br> &mut self,<br> block: &Block,<br> height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</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>, <a class="struct" href="../../bdk_chain/local_chain/struct.CannotConnectError.html" title="struct bdk_chain::local_chain::CannotConnectError">CannotConnectError</a>></h4></section></summary><div class="docblock"><p>Introduces a <code>block</code> of <code>height</code> to the wallet, and tries to connect it to the
-<code>prev_blockhash</code> of the block’s header.</p>
-<p>This is a convenience method that is equivalent to calling <a href="struct.Wallet.html#method.apply_block_connected_to"><code>apply_block_connected_to</code></a>
-with <code>prev_blockhash</code> and <code>height-1</code> as the <code>connected_to</code> parameter.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.apply_block_connected_to" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#2519-2538">source</a><h4 class="code-header">pub fn <a href="#method.apply_block_connected_to" class="fn">apply_block_connected_to</a>(<br> &mut self,<br> block: &Block,<br> height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,<br> connected_to: <a class="struct" href="../../bdk_chain/chain_data/struct.BlockId.html" title="struct bdk_chain::chain_data::BlockId">BlockId</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>, <a class="enum" href="../../bdk_chain/local_chain/enum.ApplyHeaderError.html" title="enum bdk_chain::local_chain::ApplyHeaderError">ApplyHeaderError</a>></h4></section></summary><div class="docblock"><p>Applies relevant transactions from <code>block</code> of <code>height</code> to the wallet, and connects the
-block to the internal chain.</p>
-<p>The <code>connected_to</code> parameter informs the wallet how this block connects to the internal
-<a href="../../bdk_chain/local_chain/struct.LocalChain.html" title="LocalChain"><code>LocalChain</code></a>. Relevant transactions are filtered from the <code>block</code> and inserted into the
-internal <a href="../../bdk_chain/tx_graph/struct.TxGraph.html" title="TxGraph"><code>TxGraph</code></a>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.apply_unconfirmed_txs" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#2548-2556">source</a><h4 class="code-header">pub fn <a href="#method.apply_unconfirmed_txs" class="fn">apply_unconfirmed_txs</a><'t>(<br> &mut self,<br> unconfirmed_txs: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = (&'t Transaction, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>)><br>)</h4></section></summary><div class="docblock"><p>Apply relevant unconfirmed transactions to the wallet.</p>
-<p>Transactions that are not relevant are filtered out.</p>
-<p>This method takes in an iterator of <code>(tx, last_seen)</code> where <code>last_seen</code> is the timestamp of
-when the transaction was last seen in the mempool. This is used for conflict resolution
-when there is conflicting unconfirmed transactions. The transaction with the later
-<code>last_seen</code> is prioritized.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Wallet-2" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#2560-2584">source</a><a href="#impl-Wallet-2" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Wallet.html" title="struct bdk::wallet::Wallet">Wallet</a></h3></section></summary><div class="docblock"><p>Methods to construct sync/full-scan requests for spk-based chain sources.</p>
-</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.start_sync_with_revealed_spks" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#2566-2570">source</a><h4 class="code-header">pub fn <a href="#method.start_sync_with_revealed_spks" class="fn">start_sync_with_revealed_spks</a>(&self) -> <a class="struct" href="../../bdk_chain/spk_client/struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest">SyncRequest</a></h4></section></summary><div class="docblock"><p>Create a partial <a href="../../bdk_chain/spk_client/struct.SyncRequest.html" title="SyncRequest"><code>SyncRequest</code></a> for this wallet for all revealed spks.</p>
-<p>This is the first step when performing a spk-based wallet partial sync, the returned
-<a href="../../bdk_chain/spk_client/struct.SyncRequest.html" title="SyncRequest"><code>SyncRequest</code></a> collects all revealed script pubkeys from the wallet keychain needed to
-start a blockchain sync with a spk based blockchain client.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.start_full_scan" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#2580-2583">source</a><h4 class="code-header">pub fn <a href="#method.start_full_scan" class="fn">start_full_scan</a>(&self) -> <a class="struct" href="../../bdk_chain/spk_client/struct.FullScanRequest.html" title="struct bdk_chain::spk_client::FullScanRequest">FullScanRequest</a><<a class="enum" href="../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a>></h4></section></summary><div class="docblock"><p>Create a <a href="../../bdk_chain/spk_client/struct.FullScanRequest.html" title="FullScanRequest">`FullScanRequest</a> for this wallet.</p>
-<p>This is the first step when performing a spk-based wallet full scan, the returned
-<a href="../../bdk_chain/spk_client/struct.FullScanRequest.html" title="FullScanRequest">`FullScanRequest</a> collects iterators for the wallet’s keychain script pub keys needed to
-start a blockchain full scan with a spk based blockchain client.</p>
-<p>This operation is generally only used when importing or restoring a previously used wallet
-in which the list of used scripts is not known.</p>
-</div></details></div></details></div><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><section id="impl-AsRef%3CTxGraph%3CConfirmationTimeHeightAnchor%3E%3E-for-Wallet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#2586-2590">source</a><a href="#impl-AsRef%3CTxGraph%3CConfirmationTimeHeightAnchor%3E%3E-for-Wallet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a><<a class="struct" href="../../bdk_chain/tx_graph/struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><<a class="struct" href="../../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor">ConfirmationTimeHeightAnchor</a>>> for <a class="struct" href="struct.Wallet.html" title="struct bdk::wallet::Wallet">Wallet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_ref" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#2587-2589">source</a><a href="#method.as_ref" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html#tymethod.as_ref" class="fn">as_ref</a>(&self) -> &<a class="struct" href="../../bdk_chain/tx_graph/struct.TxGraph.html" title="struct bdk_chain::tx_graph::TxGraph">TxGraph</a><<a class="struct" href="../../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor">ConfirmationTimeHeightAnchor</a>></h4></section></summary><div class='docblock'>Converts this type into a shared reference of the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Wallet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#87">source</a><a href="#impl-Debug-for-Wallet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Wallet.html" title="struct bdk::wallet::Wallet">Wallet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/mod.rs.html#87">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Wallet" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Wallet" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Wallet.html" title="struct bdk::wallet::Wallet">Wallet</a></h3></section><section id="impl-Send-for-Wallet" class="impl has-srclink"><a href="#impl-Send-for-Wallet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Wallet.html" title="struct bdk::wallet::Wallet">Wallet</a></h3></section><section id="impl-Sync-for-Wallet" class="impl has-srclink"><a href="#impl-Sync-for-Wallet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Wallet.html" title="struct bdk::wallet::Wallet">Wallet</a></h3></section><section id="impl-Unpin-for-Wallet" class="impl has-srclink"><a href="#impl-Unpin-for-Wallet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Wallet.html" title="struct bdk::wallet::Wallet">Wallet</a></h3></section><section id="impl-UnwindSafe-for-Wallet" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Wallet" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Wallet.html" title="struct bdk::wallet::Wallet">Wallet</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Wallet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Wallet" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Wallet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Wallet" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Wallet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Wallet" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Wallet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Wallet" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Wallet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Wallet" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Wallet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Wallet" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Wallet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Wallet" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Wallet" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Wallet" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Trait to check if a value is below the dust limit. We are performing dust value calculation for a given script public key using rust-bitcoin to keep it compatible with network dust rate"><meta name="keywords" content="rust, rustlang, rust-lang, IsDust"><title>IsDust in bdk::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">IsDust</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.is_dust">is_dust</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-IsDust-for-u64">u64</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../index.html">bdk</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="trait" href="#">IsDust</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/wallet/utils.rs.html#22-25">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait IsDust {
- fn <a href="#tymethod.is_dust" class="fn">is_dust</a>(&self, script: &Script) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>;
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Trait to check if a value is below the dust limit.
-We are performing dust value calculation for a given script public key using rust-bitcoin to
-keep it compatible with network dust rate</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 method-toggle" open><summary><section id="tymethod.is_dust" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/utils.rs.html#24">source</a><h4 class="code-header">fn <a href="#tymethod.is_dust" class="fn">is_dust</a>(&self, script: &Script) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check whether or not a value is below dust limit</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><section id="impl-IsDust-for-u64" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/utils.rs.html#27-31">source</a><a href="#impl-IsDust-for-u64" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.IsDust.html" title="trait bdk::wallet::IsDust">IsDust</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></h3></section></summary><div class="impl-items"><section id="method.is_dust" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk/wallet/utils.rs.html#28-30">source</a><a href="#method.is_dust" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.is_dust" class="fn">is_dust</a>(&self, script: &Script) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></div></details><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../implementors/bdk/wallet/utils/trait.IsDust.js" data-ignore-extern-crates="std" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Error returned from [`TxBuilder::add_foreign_utxo`]."><meta name="keywords" content="rust, rustlang, rust-lang, AddForeignUtxoError"><title>AddForeignUtxoError in bdk::wallet::tx_builder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">AddForeignUtxoError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.InvalidOutpoint">InvalidOutpoint</a></li><li><a href="#variant.InvalidTxid">InvalidTxid</a></li><li><a href="#variant.MissingUtxo">MissingUtxo</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-AddForeignUtxoError">Debug</a></li><li><a href="#impl-Display-for-AddForeignUtxoError">Display</a></li><li><a href="#impl-Error-for-AddForeignUtxoError">Error</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-AddForeignUtxoError">RefUnwindSafe</a></li><li><a href="#impl-Send-for-AddForeignUtxoError">Send</a></li><li><a href="#impl-Sync-for-AddForeignUtxoError">Sync</a></li><li><a href="#impl-Unpin-for-AddForeignUtxoError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-AddForeignUtxoError">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-AddForeignUtxoError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-AddForeignUtxoError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-AddForeignUtxoError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-AddForeignUtxoError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-AddForeignUtxoError">Into<U></a></li><li><a href="#impl-Provider-for-AddForeignUtxoError">Provider</a></li><li><a href="#impl-ToString-for-AddForeignUtxoError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-AddForeignUtxoError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-AddForeignUtxoError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-AddForeignUtxoError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::tx_builder</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">tx_builder</a>::<wbr><a class="enum" href="#">AddForeignUtxoError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/tx_builder.rs.html#654-666">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum AddForeignUtxoError {
- InvalidTxid {
- input_txid: Txid,
- foreign_utxo: OutPoint,
- },
- InvalidOutpoint(OutPoint),
- MissingUtxo,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Error returned from <a href="struct.TxBuilder.html#method.add_foreign_utxo" title="TxBuilder::add_foreign_utxo"><code>TxBuilder::add_foreign_utxo</code></a>.</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.InvalidTxid" class="variant"><a href="#variant.InvalidTxid" class="anchor">§</a><h3 class="code-header">InvalidTxid</h3></section><div class="sub-variant" id="variant.InvalidTxid.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.InvalidTxid.field.input_txid" class="small-section-header"><a href="#variant.InvalidTxid.field.input_txid" class="anchor field">§</a><code>input_txid: Txid</code></span><div class="docblock"><p>PSBT input txid</p>
-</div></div><div class="sub-variant-field"><span id="variant.InvalidTxid.field.foreign_utxo" class="small-section-header"><a href="#variant.InvalidTxid.field.foreign_utxo" class="anchor field">§</a><code>foreign_utxo: OutPoint</code></span><div class="docblock"><p>Foreign UTXO outpoint</p>
-</div></div></div><div class="docblock"><p>Foreign utxo outpoint txid does not match PSBT input txid</p>
-</div><section id="variant.InvalidOutpoint" class="variant"><a href="#variant.InvalidOutpoint" class="anchor">§</a><h3 class="code-header">InvalidOutpoint(OutPoint)</h3></section><div class="docblock"><p>Requested outpoint doesn’t exist in the tx (vout greater than available outputs)</p>
-</div><section id="variant.MissingUtxo" class="variant"><a href="#variant.MissingUtxo" class="anchor">§</a><h3 class="code-header">MissingUtxo</h3></section><div class="docblock"><p>Foreign utxo missing witness_utxo or non_witness_utxo</p>
-</div></div><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><section id="impl-Debug-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#652">source</a><a href="#impl-Debug-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.AddForeignUtxoError.html" title="enum bdk::wallet::tx_builder::AddForeignUtxoError">AddForeignUtxoError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#652">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#668-687">source</a><a href="#impl-Display-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.AddForeignUtxoError.html" title="enum bdk::wallet::tx_builder::AddForeignUtxoError">AddForeignUtxoError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#669-686">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#690">source</a><a href="#impl-Error-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.AddForeignUtxoError.html" title="enum bdk::wallet::tx_builder::AddForeignUtxoError">AddForeignUtxoError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-AddForeignUtxoError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.AddForeignUtxoError.html" title="enum bdk::wallet::tx_builder::AddForeignUtxoError">AddForeignUtxoError</a></h3></section><section id="impl-Send-for-AddForeignUtxoError" class="impl has-srclink"><a href="#impl-Send-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.AddForeignUtxoError.html" title="enum bdk::wallet::tx_builder::AddForeignUtxoError">AddForeignUtxoError</a></h3></section><section id="impl-Sync-for-AddForeignUtxoError" class="impl has-srclink"><a href="#impl-Sync-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.AddForeignUtxoError.html" title="enum bdk::wallet::tx_builder::AddForeignUtxoError">AddForeignUtxoError</a></h3></section><section id="impl-Unpin-for-AddForeignUtxoError" class="impl has-srclink"><a href="#impl-Unpin-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.AddForeignUtxoError.html" title="enum bdk::wallet::tx_builder::AddForeignUtxoError">AddForeignUtxoError</a></h3></section><section id="impl-UnwindSafe-for-AddForeignUtxoError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.AddForeignUtxoError.html" title="enum bdk::wallet::tx_builder::AddForeignUtxoError">AddForeignUtxoError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
-provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-AddForeignUtxoError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Error returned from [`TxBuilder::add_utxo`] and [`TxBuilder::add_utxos`]"><meta name="keywords" content="rust, rustlang, rust-lang, AddUtxoError"><title>AddUtxoError in bdk::wallet::tx_builder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">AddUtxoError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.UnknownUtxo">UnknownUtxo</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-AddUtxoError">Debug</a></li><li><a href="#impl-Display-for-AddUtxoError">Display</a></li><li><a href="#impl-Error-for-AddUtxoError">Error</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-AddUtxoError">RefUnwindSafe</a></li><li><a href="#impl-Send-for-AddUtxoError">Send</a></li><li><a href="#impl-Sync-for-AddUtxoError">Sync</a></li><li><a href="#impl-Unpin-for-AddUtxoError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-AddUtxoError">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-AddUtxoError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-AddUtxoError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-AddUtxoError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-AddUtxoError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-AddUtxoError">Into<U></a></li><li><a href="#impl-Provider-for-AddUtxoError">Provider</a></li><li><a href="#impl-ToString-for-AddUtxoError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-AddUtxoError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-AddUtxoError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-AddUtxoError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::tx_builder</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">tx_builder</a>::<wbr><a class="enum" href="#">AddUtxoError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/tx_builder.rs.html#632-635">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum AddUtxoError {
- UnknownUtxo(OutPoint),
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Error returned from <a href="struct.TxBuilder.html#method.add_utxo" title="TxBuilder::add_utxo"><code>TxBuilder::add_utxo</code></a> and <a href="struct.TxBuilder.html#method.add_utxos" title="TxBuilder::add_utxos"><code>TxBuilder::add_utxos</code></a></p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.UnknownUtxo" class="variant"><a href="#variant.UnknownUtxo" class="anchor">§</a><h3 class="code-header">UnknownUtxo(OutPoint)</h3></section><div class="docblock"><p>Happens when trying to spend an UTXO that is not in the internal database</p>
-</div></div><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><section id="impl-Debug-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#630">source</a><a href="#impl-Debug-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.AddUtxoError.html" title="enum bdk::wallet::tx_builder::AddUtxoError">AddUtxoError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#630">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#637-647">source</a><a href="#impl-Display-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.AddUtxoError.html" title="enum bdk::wallet::tx_builder::AddUtxoError">AddUtxoError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#638-646">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#650">source</a><a href="#impl-Error-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.AddUtxoError.html" title="enum bdk::wallet::tx_builder::AddUtxoError">AddUtxoError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-AddUtxoError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.AddUtxoError.html" title="enum bdk::wallet::tx_builder::AddUtxoError">AddUtxoError</a></h3></section><section id="impl-Send-for-AddUtxoError" class="impl has-srclink"><a href="#impl-Send-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.AddUtxoError.html" title="enum bdk::wallet::tx_builder::AddUtxoError">AddUtxoError</a></h3></section><section id="impl-Sync-for-AddUtxoError" class="impl has-srclink"><a href="#impl-Sync-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.AddUtxoError.html" title="enum bdk::wallet::tx_builder::AddUtxoError">AddUtxoError</a></h3></section><section id="impl-Unpin-for-AddUtxoError" class="impl has-srclink"><a href="#impl-Unpin-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.AddUtxoError.html" title="enum bdk::wallet::tx_builder::AddUtxoError">AddUtxoError</a></h3></section><section id="impl-UnwindSafe-for-AddUtxoError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.AddUtxoError.html" title="enum bdk::wallet::tx_builder::AddUtxoError">AddUtxoError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
-provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-AddUtxoError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Error returned from [`TxBuilder::allow_shrinking`]"><meta name="keywords" content="rust, rustlang, rust-lang, AllowShrinkingError"><title>AllowShrinkingError in bdk::wallet::tx_builder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">AllowShrinkingError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.MissingScriptPubKey">MissingScriptPubKey</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-AllowShrinkingError">Debug</a></li><li><a href="#impl-Display-for-AllowShrinkingError">Display</a></li><li><a href="#impl-Error-for-AllowShrinkingError">Error</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-AllowShrinkingError">RefUnwindSafe</a></li><li><a href="#impl-Send-for-AllowShrinkingError">Send</a></li><li><a href="#impl-Sync-for-AllowShrinkingError">Sync</a></li><li><a href="#impl-Unpin-for-AllowShrinkingError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-AllowShrinkingError">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-AllowShrinkingError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-AllowShrinkingError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-AllowShrinkingError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-AllowShrinkingError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-AllowShrinkingError">Into<U></a></li><li><a href="#impl-Provider-for-AllowShrinkingError">Provider</a></li><li><a href="#impl-ToString-for-AllowShrinkingError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-AllowShrinkingError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-AllowShrinkingError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-AllowShrinkingError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::tx_builder</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">tx_builder</a>::<wbr><a class="enum" href="#">AllowShrinkingError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/tx_builder.rs.html#694-697">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum AllowShrinkingError {
- MissingScriptPubKey(ScriptBuf),
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Error returned from <a href="struct.TxBuilder.html#method.allow_shrinking" title="TxBuilder::allow_shrinking"><code>TxBuilder::allow_shrinking</code></a></p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.MissingScriptPubKey" class="variant"><a href="#variant.MissingScriptPubKey" class="anchor">§</a><h3 class="code-header">MissingScriptPubKey(ScriptBuf)</h3></section><div class="docblock"><p>Script/PubKey was not in the original transaction</p>
-</div></div><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><section id="impl-Debug-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#692">source</a><a href="#impl-Debug-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.AllowShrinkingError.html" title="enum bdk::wallet::tx_builder::AllowShrinkingError">AllowShrinkingError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#692">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#699-709">source</a><a href="#impl-Display-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.AllowShrinkingError.html" title="enum bdk::wallet::tx_builder::AllowShrinkingError">AllowShrinkingError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#700-708">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#712">source</a><a href="#impl-Error-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.AllowShrinkingError.html" title="enum bdk::wallet::tx_builder::AllowShrinkingError">AllowShrinkingError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-AllowShrinkingError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.AllowShrinkingError.html" title="enum bdk::wallet::tx_builder::AllowShrinkingError">AllowShrinkingError</a></h3></section><section id="impl-Send-for-AllowShrinkingError" class="impl has-srclink"><a href="#impl-Send-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.AllowShrinkingError.html" title="enum bdk::wallet::tx_builder::AllowShrinkingError">AllowShrinkingError</a></h3></section><section id="impl-Sync-for-AllowShrinkingError" class="impl has-srclink"><a href="#impl-Sync-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.AllowShrinkingError.html" title="enum bdk::wallet::tx_builder::AllowShrinkingError">AllowShrinkingError</a></h3></section><section id="impl-Unpin-for-AllowShrinkingError" class="impl has-srclink"><a href="#impl-Unpin-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.AllowShrinkingError.html" title="enum bdk::wallet::tx_builder::AllowShrinkingError">AllowShrinkingError</a></h3></section><section id="impl-UnwindSafe-for-AllowShrinkingError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.AllowShrinkingError.html" title="enum bdk::wallet::tx_builder::AllowShrinkingError">AllowShrinkingError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
-provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-AllowShrinkingError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Policy regarding the use of change outputs when creating a transaction"><meta name="keywords" content="rust, rustlang, rust-lang, ChangeSpendPolicy"><title>ChangeSpendPolicy in bdk::wallet::tx_builder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">ChangeSpendPolicy</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.ChangeAllowed">ChangeAllowed</a></li><li><a href="#variant.ChangeForbidden">ChangeForbidden</a></li><li><a href="#variant.OnlyChange">OnlyChange</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-ChangeSpendPolicy">Clone</a></li><li><a href="#impl-Copy-for-ChangeSpendPolicy">Copy</a></li><li><a href="#impl-Debug-for-ChangeSpendPolicy">Debug</a></li><li><a href="#impl-Default-for-ChangeSpendPolicy">Default</a></li><li><a href="#impl-Eq-for-ChangeSpendPolicy">Eq</a></li><li><a href="#impl-Hash-for-ChangeSpendPolicy">Hash</a></li><li><a href="#impl-Ord-for-ChangeSpendPolicy">Ord</a></li><li><a href="#impl-PartialEq%3CChangeSpendPolicy%3E-for-ChangeSpendPolicy">PartialEq<ChangeSpendPolicy></a></li><li><a href="#impl-PartialOrd%3CChangeSpendPolicy%3E-for-ChangeSpendPolicy">PartialOrd<ChangeSpendPolicy></a></li><li><a href="#impl-StructuralEq-for-ChangeSpendPolicy">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-ChangeSpendPolicy">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-ChangeSpendPolicy">RefUnwindSafe</a></li><li><a href="#impl-Send-for-ChangeSpendPolicy">Send</a></li><li><a href="#impl-Sync-for-ChangeSpendPolicy">Sync</a></li><li><a href="#impl-Unpin-for-ChangeSpendPolicy">Unpin</a></li><li><a href="#impl-UnwindSafe-for-ChangeSpendPolicy">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-ChangeSpendPolicy">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-ChangeSpendPolicy">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-ChangeSpendPolicy">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-ChangeSpendPolicy">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-ChangeSpendPolicy">Into<U></a></li><li><a href="#impl-ToOwned-for-ChangeSpendPolicy">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-ChangeSpendPolicy">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-ChangeSpendPolicy">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-ChangeSpendPolicy">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::tx_builder</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">tx_builder</a>::<wbr><a class="enum" href="#">ChangeSpendPolicy</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/tx_builder.rs.html#894-902">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum ChangeSpendPolicy {
- ChangeAllowed,
- OnlyChange,
- ChangeForbidden,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Policy regarding the use of change outputs when creating a transaction</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.ChangeAllowed" class="variant"><a href="#variant.ChangeAllowed" class="anchor">§</a><h3 class="code-header">ChangeAllowed</h3></section><div class="docblock"><p>Use both change and non-change outputs (default)</p>
-</div><section id="variant.OnlyChange" class="variant"><a href="#variant.OnlyChange" class="anchor">§</a><h3 class="code-header">OnlyChange</h3></section><div class="docblock"><p>Only use change outputs (see <a href="struct.TxBuilder.html#method.only_spend_change" title="TxBuilder::only_spend_change"><code>TxBuilder::only_spend_change</code></a>)</p>
-</div><section id="variant.ChangeForbidden" class="variant"><a href="#variant.ChangeForbidden" class="anchor">§</a><h3 class="code-header">ChangeForbidden</h3></section><div class="docblock"><p>Only use non-change outputs (see <a href="struct.TxBuilder.html#method.do_not_spend_change" title="TxBuilder::do_not_spend_change"><code>TxBuilder::do_not_spend_change</code></a>)</p>
-</div></div><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><section id="impl-Clone-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#893">source</a><a href="#impl-Clone-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#893">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#893">source</a><a href="#impl-Debug-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#893">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#893">source</a><a href="#impl-Default-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#893">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#893">source</a><a href="#impl-Hash-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#893">source</a><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)</h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#893">source</a><a href="#impl-Ord-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#893">source</a><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CChangeSpendPolicy%3E-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#893">source</a><a href="#impl-PartialEq%3CChangeSpendPolicy%3E-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a>> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#893">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CChangeSpendPolicy%3E-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#893">source</a><a href="#impl-PartialOrd%3CChangeSpendPolicy%3E-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a>> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#893">source</a><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><section id="impl-Copy-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#893">source</a><a href="#impl-Copy-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section><section id="impl-Eq-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#893">source</a><a href="#impl-Eq-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section><section id="impl-StructuralEq-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#893">source</a><a href="#impl-StructuralEq-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section><section id="impl-StructuralPartialEq-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#893">source</a><a href="#impl-StructuralPartialEq-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-ChangeSpendPolicy" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section><section id="impl-Send-for-ChangeSpendPolicy" class="impl has-srclink"><a href="#impl-Send-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section><section id="impl-Sync-for-ChangeSpendPolicy" class="impl has-srclink"><a href="#impl-Sync-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section><section id="impl-Unpin-for-ChangeSpendPolicy" class="impl has-srclink"><a href="#impl-Unpin-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section><section id="impl-UnwindSafe-for-ChangeSpendPolicy" class="impl has-srclink"><a href="#impl-UnwindSafe-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-ChangeSpendPolicy" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Ordering of the transaction’s inputs and outputs"><meta name="keywords" content="rust, rustlang, rust-lang, TxOrdering"><title>TxOrdering in bdk::wallet::tx_builder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">TxOrdering</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Bip69Lexicographic">Bip69Lexicographic</a></li><li><a href="#variant.Shuffle">Shuffle</a></li><li><a href="#variant.Untouched">Untouched</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.sort_tx">sort_tx</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-TxOrdering">Clone</a></li><li><a href="#impl-Copy-for-TxOrdering">Copy</a></li><li><a href="#impl-Debug-for-TxOrdering">Debug</a></li><li><a href="#impl-Default-for-TxOrdering">Default</a></li><li><a href="#impl-Eq-for-TxOrdering">Eq</a></li><li><a href="#impl-Hash-for-TxOrdering">Hash</a></li><li><a href="#impl-Ord-for-TxOrdering">Ord</a></li><li><a href="#impl-PartialEq%3CTxOrdering%3E-for-TxOrdering">PartialEq<TxOrdering></a></li><li><a href="#impl-PartialOrd%3CTxOrdering%3E-for-TxOrdering">PartialOrd<TxOrdering></a></li><li><a href="#impl-StructuralEq-for-TxOrdering">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-TxOrdering">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-TxOrdering">RefUnwindSafe</a></li><li><a href="#impl-Send-for-TxOrdering">Send</a></li><li><a href="#impl-Sync-for-TxOrdering">Sync</a></li><li><a href="#impl-Unpin-for-TxOrdering">Unpin</a></li><li><a href="#impl-UnwindSafe-for-TxOrdering">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-TxOrdering">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-TxOrdering">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-TxOrdering">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-TxOrdering">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-TxOrdering">Into<U></a></li><li><a href="#impl-ToOwned-for-TxOrdering">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-TxOrdering">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-TxOrdering">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-TxOrdering">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::tx_builder</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">tx_builder</a>::<wbr><a class="enum" href="#">TxOrdering</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/tx_builder.rs.html#830-838">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum TxOrdering {
- Shuffle,
- Untouched,
- Bip69Lexicographic,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Ordering of the transaction’s inputs and outputs</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Shuffle" class="variant"><a href="#variant.Shuffle" class="anchor">§</a><h3 class="code-header">Shuffle</h3></section><div class="docblock"><p>Randomized (default)</p>
-</div><section id="variant.Untouched" class="variant"><a href="#variant.Untouched" class="anchor">§</a><h3 class="code-header">Untouched</h3></section><div class="docblock"><p>Unchanged</p>
-</div><section id="variant.Bip69Lexicographic" class="variant"><a href="#variant.Bip69Lexicographic" class="anchor">§</a><h3 class="code-header">Bip69Lexicographic</h3></section><div class="docblock"><p>BIP69 / Lexicographic</p>
-</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#840-860">source</a><a href="#impl-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sort_tx" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#842-859">source</a><h4 class="code-header">pub fn <a href="#method.sort_tx" class="fn">sort_tx</a>(&self, tx: &mut Transaction)</h4></section></summary><div class="docblock"><p>Sort transaction inputs and outputs by <a href="enum.TxOrdering.html" title="TxOrdering"><code>TxOrdering</code></a> variant</p>
-</div></details></div></details></div><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><section id="impl-Clone-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#829">source</a><a href="#impl-Clone-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#829">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#829">source</a><a href="#impl-Debug-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#829">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#829">source</a><a href="#impl-Default-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#829">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#829">source</a><a href="#impl-Hash-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#829">source</a><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)</h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#829">source</a><a href="#impl-Ord-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#829">source</a><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CTxOrdering%3E-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#829">source</a><a href="#impl-PartialEq%3CTxOrdering%3E-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a>> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#829">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
-by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CTxOrdering%3E-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#829">source</a><a href="#impl-PartialOrd%3CTxOrdering%3E-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a>> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#829">source</a><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><section id="impl-Copy-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#829">source</a><a href="#impl-Copy-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section><section id="impl-Eq-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#829">source</a><a href="#impl-Eq-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section><section id="impl-StructuralEq-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#829">source</a><a href="#impl-StructuralEq-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section><section id="impl-StructuralPartialEq-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#829">source</a><a href="#impl-StructuralPartialEq-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-TxOrdering" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section><section id="impl-Send-for-TxOrdering" class="impl has-srclink"><a href="#impl-Send-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section><section id="impl-Sync-for-TxOrdering" class="impl has-srclink"><a href="#impl-Sync-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section><section id="impl-Unpin-for-TxOrdering" class="impl has-srclink"><a href="#impl-Unpin-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section><section id="impl-UnwindSafe-for-TxOrdering" class="impl has-srclink"><a href="#impl-UnwindSafe-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-TxOrdering" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Transaction builder"><meta name="keywords" content="rust, rustlang, rust-lang, tx_builder"><title>bdk::wallet::tx_builder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module tx_builder</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#traits">Traits</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a class="mod" href="#">tx_builder</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/tx_builder.rs.html#12-1083">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Transaction builder</p>
-<h3 id="example"><a href="#example">Example</a></h3>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="comment">// create a TxBuilder from a wallet
-</span><span class="kw">let </span><span class="kw-2">mut </span>tx_builder = wallet.build_tx();
-
-tx_builder
- <span class="comment">// Create a transaction with one output to `to_address` of 50_000 satoshi
- </span>.add_recipient(to_address.script_pubkey(), Amount::from_sat(<span class="number">50_000</span>))
- <span class="comment">// With a custom fee rate of 5.0 satoshi/vbyte
- </span>.fee_rate(FeeRate::from_sat_per_vb(<span class="number">5</span>).expect(<span class="string">"valid feerate"</span>))
- <span class="comment">// Only spend non-change outputs
- </span>.do_not_spend_change()
- <span class="comment">// Turn on RBF signaling
- </span>.enable_rbf();
-<span class="kw">let </span>psbt = tx_builder.finish()<span class="question-mark">?</span>;</code></pre></div>
-</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.BumpFee.html" title="bdk::wallet::tx_builder::BumpFee struct">BumpFee</a></div><div class="item-right docblock-short">Marker type to indicate the <a href="struct.TxBuilder.html" title="TxBuilder"><code>TxBuilder</code></a> is being used to bump the fee of an existing transaction.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.CreateTx.html" title="bdk::wallet::tx_builder::CreateTx struct">CreateTx</a></div><div class="item-right docblock-short">Marker type to indicate the <a href="struct.TxBuilder.html" title="TxBuilder"><code>TxBuilder</code></a> is being used to create a new transaction (as opposed
-to bumping the fee of an existing one).</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.TxBuilder.html" title="bdk::wallet::tx_builder::TxBuilder struct">TxBuilder</a></div><div class="item-right docblock-short">A transaction builder</div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.AddForeignUtxoError.html" title="bdk::wallet::tx_builder::AddForeignUtxoError enum">AddForeignUtxoError</a></div><div class="item-right docblock-short">Error returned from <a href="struct.TxBuilder.html#method.add_foreign_utxo" title="TxBuilder::add_foreign_utxo"><code>TxBuilder::add_foreign_utxo</code></a>.</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.AddUtxoError.html" title="bdk::wallet::tx_builder::AddUtxoError enum">AddUtxoError</a></div><div class="item-right docblock-short">Error returned from <a href="struct.TxBuilder.html#method.add_utxo" title="TxBuilder::add_utxo"><code>TxBuilder::add_utxo</code></a> and <a href="struct.TxBuilder.html#method.add_utxos" title="TxBuilder::add_utxos"><code>TxBuilder::add_utxos</code></a></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.AllowShrinkingError.html" title="bdk::wallet::tx_builder::AllowShrinkingError enum">AllowShrinkingError</a></div><div class="item-right docblock-short">Error returned from <a href="struct.TxBuilder.html#method.allow_shrinking" title="TxBuilder::allow_shrinking"><code>TxBuilder::allow_shrinking</code></a></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.ChangeSpendPolicy.html" title="bdk::wallet::tx_builder::ChangeSpendPolicy enum">ChangeSpendPolicy</a></div><div class="item-right docblock-short">Policy regarding the use of change outputs when creating a transaction</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.TxOrdering.html" title="bdk::wallet::tx_builder::TxOrdering enum">TxOrdering</a></div><div class="item-right docblock-short">Ordering of the transaction’s inputs and outputs</div></div></div><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.TxBuilderContext.html" title="bdk::wallet::tx_builder::TxBuilderContext trait">TxBuilderContext</a></div><div class="item-right docblock-short">Context in which the <a href="struct.TxBuilder.html" title="TxBuilder"><code>TxBuilder</code></a> is valid</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-window.SIDEBAR_ITEMS = {"enum":[["AddForeignUtxoError","Error returned from [`TxBuilder::add_foreign_utxo`]."],["AddUtxoError","Error returned from [`TxBuilder::add_utxo`] and [`TxBuilder::add_utxos`]"],["AllowShrinkingError","Error returned from [`TxBuilder::allow_shrinking`]"],["ChangeSpendPolicy","Policy regarding the use of change outputs when creating a transaction"],["TxOrdering","Ordering of the transaction’s inputs and outputs"]],"struct":[["BumpFee","Marker type to indicate the [`TxBuilder`] is being used to bump the fee of an existing transaction."],["CreateTx","Marker type to indicate the [`TxBuilder`] is being used to create a new transaction (as opposed to bumping the fee of an existing one)."],["TxBuilder","A transaction builder"]],"trait":[["TxBuilderContext","Context in which the [`TxBuilder`] is valid"]]};
\ No newline at end of file
+++ /dev/null
-<!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="Marker type to indicate the [`TxBuilder`] is being used to bump the fee of an existing transaction."><meta name="keywords" content="rust, rustlang, rust-lang, BumpFee"><title>BumpFee in bdk::wallet::tx_builder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">BumpFee</a></h2><div class="sidebar-elems"><section><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-BumpFee">Clone</a></li><li><a href="#impl-Debug-for-BumpFee">Debug</a></li><li><a href="#impl-Default-for-BumpFee">Default</a></li><li><a href="#impl-TxBuilderContext-for-BumpFee">TxBuilderContext</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-BumpFee">RefUnwindSafe</a></li><li><a href="#impl-Send-for-BumpFee">Send</a></li><li><a href="#impl-Sync-for-BumpFee">Sync</a></li><li><a href="#impl-Unpin-for-BumpFee">Unpin</a></li><li><a href="#impl-UnwindSafe-for-BumpFee">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-BumpFee">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-BumpFee">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-BumpFee">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-BumpFee">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-BumpFee">Into<U></a></li><li><a href="#impl-ToOwned-for-BumpFee">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-BumpFee">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-BumpFee">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-BumpFee">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::tx_builder</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">tx_builder</a>::<wbr><a class="struct" href="#">BumpFee</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/tx_builder.rs.html#68">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct BumpFee;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Marker type to indicate the <a href="struct.TxBuilder.html" title="TxBuilder"><code>TxBuilder</code></a> is being used to bump the fee of an existing transaction.</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><section id="impl-Clone-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#67">source</a><a href="#impl-Clone-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.BumpFee.html" title="struct bdk::wallet::tx_builder::BumpFee">BumpFee</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#67">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.BumpFee.html" title="struct bdk::wallet::tx_builder::BumpFee">BumpFee</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#67">source</a><a href="#impl-Debug-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.BumpFee.html" title="struct bdk::wallet::tx_builder::BumpFee">BumpFee</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#67">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#67">source</a><a href="#impl-Default-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.BumpFee.html" title="struct bdk::wallet::tx_builder::BumpFee">BumpFee</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#67">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="struct" href="struct.BumpFee.html" title="struct bdk::wallet::tx_builder::BumpFee">BumpFee</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><section id="impl-TxBuilderContext-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#69">source</a><a href="#impl-TxBuilderContext-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.TxBuilderContext.html" title="trait bdk::wallet::tx_builder::TxBuilderContext">TxBuilderContext</a> for <a class="struct" href="struct.BumpFee.html" title="struct bdk::wallet::tx_builder::BumpFee">BumpFee</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-BumpFee" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.BumpFee.html" title="struct bdk::wallet::tx_builder::BumpFee">BumpFee</a></h3></section><section id="impl-Send-for-BumpFee" class="impl has-srclink"><a href="#impl-Send-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.BumpFee.html" title="struct bdk::wallet::tx_builder::BumpFee">BumpFee</a></h3></section><section id="impl-Sync-for-BumpFee" class="impl has-srclink"><a href="#impl-Sync-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.BumpFee.html" title="struct bdk::wallet::tx_builder::BumpFee">BumpFee</a></h3></section><section id="impl-Unpin-for-BumpFee" class="impl has-srclink"><a href="#impl-Unpin-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.BumpFee.html" title="struct bdk::wallet::tx_builder::BumpFee">BumpFee</a></h3></section><section id="impl-UnwindSafe-for-BumpFee" class="impl has-srclink"><a href="#impl-UnwindSafe-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.BumpFee.html" title="struct bdk::wallet::tx_builder::BumpFee">BumpFee</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-BumpFee" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Marker type to indicate the [`TxBuilder`] is being used to create a new transaction (as opposed to bumping the fee of an existing one)."><meta name="keywords" content="rust, rustlang, rust-lang, CreateTx"><title>CreateTx in bdk::wallet::tx_builder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">CreateTx</a></h2><div class="sidebar-elems"><section><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-CreateTx">Clone</a></li><li><a href="#impl-Debug-for-CreateTx">Debug</a></li><li><a href="#impl-Default-for-CreateTx">Default</a></li><li><a href="#impl-TxBuilderContext-for-CreateTx">TxBuilderContext</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-CreateTx">RefUnwindSafe</a></li><li><a href="#impl-Send-for-CreateTx">Send</a></li><li><a href="#impl-Sync-for-CreateTx">Sync</a></li><li><a href="#impl-Unpin-for-CreateTx">Unpin</a></li><li><a href="#impl-UnwindSafe-for-CreateTx">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-CreateTx">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-CreateTx">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-CreateTx">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-CreateTx">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-CreateTx">Into<U></a></li><li><a href="#impl-ToOwned-for-CreateTx">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-CreateTx">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-CreateTx">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-CreateTx">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::tx_builder</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">tx_builder</a>::<wbr><a class="struct" href="#">CreateTx</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/tx_builder.rs.html#63">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct CreateTx;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Marker type to indicate the <a href="struct.TxBuilder.html" title="TxBuilder"><code>TxBuilder</code></a> is being used to create a new transaction (as opposed
-to bumping the fee of an existing one).</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><section id="impl-Clone-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#62">source</a><a href="#impl-Clone-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.CreateTx.html" title="struct bdk::wallet::tx_builder::CreateTx">CreateTx</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#62">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.CreateTx.html" title="struct bdk::wallet::tx_builder::CreateTx">CreateTx</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#62">source</a><a href="#impl-Debug-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.CreateTx.html" title="struct bdk::wallet::tx_builder::CreateTx">CreateTx</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#62">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#62">source</a><a href="#impl-Default-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.CreateTx.html" title="struct bdk::wallet::tx_builder::CreateTx">CreateTx</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#62">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="struct" href="struct.CreateTx.html" title="struct bdk::wallet::tx_builder::CreateTx">CreateTx</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><section id="impl-TxBuilderContext-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#64">source</a><a href="#impl-TxBuilderContext-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.TxBuilderContext.html" title="trait bdk::wallet::tx_builder::TxBuilderContext">TxBuilderContext</a> for <a class="struct" href="struct.CreateTx.html" title="struct bdk::wallet::tx_builder::CreateTx">CreateTx</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-CreateTx" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.CreateTx.html" title="struct bdk::wallet::tx_builder::CreateTx">CreateTx</a></h3></section><section id="impl-Send-for-CreateTx" class="impl has-srclink"><a href="#impl-Send-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.CreateTx.html" title="struct bdk::wallet::tx_builder::CreateTx">CreateTx</a></h3></section><section id="impl-Sync-for-CreateTx" class="impl has-srclink"><a href="#impl-Sync-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.CreateTx.html" title="struct bdk::wallet::tx_builder::CreateTx">CreateTx</a></h3></section><section id="impl-Unpin-for-CreateTx" class="impl has-srclink"><a href="#impl-Unpin-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.CreateTx.html" title="struct bdk::wallet::tx_builder::CreateTx">CreateTx</a></h3></section><section id="impl-UnwindSafe-for-CreateTx" class="impl has-srclink"><a href="#impl-UnwindSafe-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.CreateTx.html" title="struct bdk::wallet::tx_builder::CreateTx">CreateTx</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-CreateTx" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="A transaction builder"><meta name="keywords" content="rust, rustlang, rust-lang, TxBuilder"><title>TxBuilder in bdk::wallet::tx_builder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">TxBuilder</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.add_data">add_data</a></li><li><a href="#method.add_foreign_utxo">add_foreign_utxo</a></li><li><a href="#method.add_foreign_utxo_with_sequence">add_foreign_utxo_with_sequence</a></li><li><a href="#method.add_global_xpubs">add_global_xpubs</a></li><li><a href="#method.add_recipient">add_recipient</a></li><li><a href="#method.add_unspendable">add_unspendable</a></li><li><a href="#method.add_utxo">add_utxo</a></li><li><a href="#method.add_utxos">add_utxos</a></li><li><a href="#method.allow_dust">allow_dust</a></li><li><a href="#method.allow_shrinking">allow_shrinking</a></li><li><a href="#method.change_policy">change_policy</a></li><li><a href="#method.coin_selection">coin_selection</a></li><li><a href="#method.current_height">current_height</a></li><li><a href="#method.do_not_spend_change">do_not_spend_change</a></li><li><a href="#method.drain_to">drain_to</a></li><li><a href="#method.drain_wallet">drain_wallet</a></li><li><a href="#method.enable_rbf">enable_rbf</a></li><li><a href="#method.enable_rbf_with_sequence">enable_rbf_with_sequence</a></li><li><a href="#method.fee_absolute">fee_absolute</a></li><li><a href="#method.fee_rate">fee_rate</a></li><li><a href="#method.finish">finish</a></li><li><a href="#method.include_output_redeem_witness_script">include_output_redeem_witness_script</a></li><li><a href="#method.manually_selected_only">manually_selected_only</a></li><li><a href="#method.nlocktime">nlocktime</a></li><li><a href="#method.only_spend_change">only_spend_change</a></li><li><a href="#method.only_witness_utxo">only_witness_utxo</a></li><li><a href="#method.ordering">ordering</a></li><li><a href="#method.policy_path">policy_path</a></li><li><a href="#method.set_recipients">set_recipients</a></li><li><a href="#method.sighash">sighash</a></li><li><a href="#method.unspendable">unspendable</a></li><li><a href="#method.version">version</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">Clone</a></li><li><a href="#impl-Debug-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">Debug</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">!RefUnwindSafe</a></li><li><a href="#impl-Send-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">!Send</a></li><li><a href="#impl-Sync-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">!Sync</a></li><li><a href="#impl-Unpin-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">!UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">Into<U></a></li><li><a href="#impl-ToOwned-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk::wallet::tx_builder</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">tx_builder</a>::<wbr><a class="struct" href="#">TxBuilder</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/tx_builder.rs.html#126-131">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct TxBuilder<'a, Cs, Ctx> { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A transaction builder</p>
-<p>A <code>TxBuilder</code> is created by calling <a href="../struct.Wallet.html#method.build_tx"><code>build_tx</code></a> or <a href="../struct.Wallet.html#method.build_fee_bump"><code>build_fee_bump</code></a> on a wallet. After
-assigning it, you set options on it until finally calling <a href="struct.TxBuilder.html#method.finish"><code>finish</code></a> to consume the builder and
-generate the transaction.</p>
-<p>Each option setting method on <code>TxBuilder</code> takes and returns <code>&mut self</code> so you can chain calls
-as in the following example:</p>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="comment">// chaining
-</span><span class="kw">let </span>psbt1 = {
- <span class="kw">let </span><span class="kw-2">mut </span>builder = wallet.build_tx();
- builder
- .ordering(TxOrdering::Untouched)
- .add_recipient(addr1.script_pubkey(), Amount::from_sat(<span class="number">50_000</span>))
- .add_recipient(addr2.script_pubkey(), Amount::from_sat(<span class="number">50_000</span>));
- builder.finish()<span class="question-mark">?
-</span>};
-
-<span class="comment">// non-chaining
-</span><span class="kw">let </span>psbt2 = {
- <span class="kw">let </span><span class="kw-2">mut </span>builder = wallet.build_tx();
- builder.ordering(TxOrdering::Untouched);
- <span class="kw">for </span>addr <span class="kw">in </span><span class="kw-2">&</span>[addr1, addr2] {
- builder.add_recipient(addr.script_pubkey(), Amount::from_sat(<span class="number">50_000</span>));
- }
- builder.finish()<span class="question-mark">?
-</span>};
-
-<span class="macro">assert_eq!</span>(psbt1.unsigned_tx.output[..<span class="number">2</span>], psbt2.unsigned_tx.output[..<span class="number">2</span>]);</code></pre></div>
-<p>At the moment <a href="struct.TxBuilder.html#method.coin_selection"><code>coin_selection</code></a> is an exception to the rule as it consumes <code>self</code>.
-This means it is usually best to call <a href="struct.TxBuilder.html#method.coin_selection"><code>coin_selection</code></a> on the return value of <code>build_tx</code> before assigning it.</p>
-<p>For further examples see <a href="index.html">this module</a>’s documentation;</p>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#190-615">source</a><a href="#impl-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<'a, Cs, Ctx> <a class="struct" href="struct.TxBuilder.html" title="struct bdk::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, Cs, Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fee_rate" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#201-204">source</a><h4 class="code-header">pub fn <a href="#method.fee_rate" class="fn">fee_rate</a>(&mut self, fee_rate: FeeRate) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Set a custom fee rate.</p>
-<p>This method sets the mining fee paid by the transaction as a rate on its size.
-This means that the total fee paid is equal to <code>fee_rate</code> times the size
-of the transaction. Default is 1 sat/vB in accordance with Bitcoin Core’s default
-relay policy.</p>
-<p>Note that this is really a minimum feerate – it’s possible to
-overshoot it slightly since adding a change output to drain the remaining
-excess might not be viable.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fee_absolute" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#215-218">source</a><h4 class="code-header">pub fn <a href="#method.fee_absolute" class="fn">fee_absolute</a>(&mut self, fee_amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Set an absolute fee
-The fee_absolute method refers to the absolute transaction fee in satoshis (sats).
-If anyone sets both the fee_absolute method and the fee_rate method,
-the FeePolicy enum will be set by whichever method was called last,
-as the FeeRate and FeeAmount are mutually exclusive.</p>
-<p>Note that this is really a minimum absolute fee – it’s possible to
-overshoot it slightly since adding a change output to drain the remaining
-excess might not be viable.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.policy_path" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#282-294">source</a><h4 class="code-header">pub fn <a href="#method.policy_path" class="fn">policy_path</a>(<br> &mut self,<br> policy_path: <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><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</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.usize.html">usize</a>>>,<br> keychain: <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk::KeychainKind">KeychainKind</a><br>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Set the policy path to use while creating the transaction for a given keychain.</p>
-<p>This method accepts a map where the key is the policy node id (see
-<a href="../../descriptor/policy/struct.Policy.html#structfield.id"><code>Policy::id</code></a>) and the value is the list of the indexes of
-the items that are intended to be satisfied from the policy node (see
-<a href="../../descriptor/policy/enum.SatisfiableItem.html#variant.Thresh.field.items"><code>SatisfiableItem::Thresh::items</code></a>).</p>
-<h6 id="example"><a href="#example">Example</a></h6>
-<p>An example of when the policy path is needed is the following descriptor:
-<code>wsh(thresh(2,pk(A),sj:and_v(v:pk(B),n:older(6)),snj:and_v(v:pk(C),after(630000))))</code>,
-derived from the miniscript policy <code>thresh(2,pk(A),and(pk(B),older(6)),and(pk(C),after(630000)))</code>.
-It declares three descriptor fragments, and at the top level it uses <code>thresh()</code> to
-ensure that at least two of them are satisfied. The individual fragments are:</p>
-<ol>
-<li><code>pk(A)</code></li>
-<li><code>and(pk(B),older(6))</code></li>
-<li><code>and(pk(C),after(630000))</code></li>
-</ol>
-<p>When those conditions are combined in pairs, it’s clear that the transaction needs to be created
-differently depending on how the user intends to satisfy the policy afterwards:</p>
-<ul>
-<li>If fragments <code>1</code> and <code>2</code> are used, the transaction will need to use a specific
-<code>n_sequence</code> in order to spend an <code>OP_CSV</code> branch.</li>
-<li>If fragments <code>1</code> and <code>3</code> are used, the transaction will need to use a specific <code>locktime</code>
-in order to spend an <code>OP_CLTV</code> branch.</li>
-<li>If fragments <code>2</code> and <code>3</code> are used, the transaction will need both.</li>
-</ul>
-<p>When the spending policy is represented as a tree (see
-<a href="../struct.Wallet.html#method.policies"><code>Wallet::policies</code></a>), every node
-is assigned a unique identifier that can be used in the policy path to specify which of
-the node’s children the user intends to satisfy: for instance, assuming the <code>thresh()</code>
-root node of this example has an id of <code>aabbccdd</code>, the policy path map would look like:</p>
-<p><code>{ "aabbccdd" => [0, 1] }</code></p>
-<p>where the key is the node’s id, and the value is a list of the children that should be
-used, in no particular order.</p>
-<p>If a particularly complex descriptor has multiple ambiguous thresholds in its structure,
-multiple entries can be added to the map, one for each node that requires an explicit path.</p>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code>Address::from_str(<span class="string">"2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt"</span>)
- .unwrap()
- .assume_checked();
-<span class="kw">let </span><span class="kw-2">mut </span>path = BTreeMap::new();
-path.insert(<span class="string">"aabbccdd"</span>.to_string(), <span class="macro">vec!</span>[<span class="number">0</span>, <span class="number">1</span>]);
-
-<span class="kw">let </span>builder = wallet
- .build_tx()
- .add_recipient(to_address.script_pubkey(), Amount::from_sat(<span class="number">50_000</span>))
- .policy_path(path, KeychainKind::External);
-</code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_utxos" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#302-325">source</a><h4 class="code-header">pub fn <a href="#method.add_utxos" class="fn">add_utxos</a>(<br> &mut self,<br> outpoints: &[OutPoint]<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.reference.html">&mut </a>Self, <a class="enum" href="enum.AddUtxoError.html" title="enum bdk::wallet::tx_builder::AddUtxoError">AddUtxoError</a>></h4></section></summary><div class="docblock"><p>Add the list of outpoints to the internal list of UTXOs that <strong>must</strong> be spent.</p>
-<p>If an error occurs while adding any of the UTXOs then none of them are added and the error is returned.</p>
-<p>These have priority over the “unspendable” utxos, meaning that if a utxo is present both in
-the “utxos” and the “unspendable” list, it will be spent.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_utxo" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#331-333">source</a><h4 class="code-header">pub fn <a href="#method.add_utxo" class="fn">add_utxo</a>(&mut self, outpoint: OutPoint) -> <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.reference.html">&mut </a>Self, <a class="enum" href="enum.AddUtxoError.html" title="enum bdk::wallet::tx_builder::AddUtxoError">AddUtxoError</a>></h4></section></summary><div class="docblock"><p>Add a utxo to the internal list of utxos that <strong>must</strong> be spent</p>
-<p>These have priority over the “unspendable” utxos, meaning that if a utxo is present both in
-the “utxos” and the “unspendable” list, it will be spent.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_foreign_utxo" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#381-393">source</a><h4 class="code-header">pub fn <a href="#method.add_foreign_utxo" class="fn">add_foreign_utxo</a>(<br> &mut self,<br> outpoint: OutPoint,<br> psbt_input: Input,<br> satisfaction_weight: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</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.reference.html">&mut </a>Self, <a class="enum" href="enum.AddForeignUtxoError.html" title="enum bdk::wallet::tx_builder::AddForeignUtxoError">AddForeignUtxoError</a>></h4></section></summary><div class="docblock"><p>Add a foreign UTXO i.e. a UTXO not owned by this wallet.</p>
-<p>At a minimum to add a foreign UTXO we need:</p>
-<ol>
-<li><code>outpoint</code>: To add it to the raw transaction.</li>
-<li><code>psbt_input</code>: To know the value.</li>
-<li><code>satisfaction_weight</code>: To know how much weight/vbytes the input will add to the transaction for fee calculation.</li>
-</ol>
-<p>There are several security concerns about adding foreign UTXOs that application
-developers should consider. First, how do you know the value of the input is correct? If a
-<code>non_witness_utxo</code> is provided in the <code>psbt_input</code> then this method implicitly verifies the
-value by checking it against the transaction. If only a <code>witness_utxo</code> is provided then this
-method doesn’t verify the value but just takes it as a given – it is up to you to check
-that whoever sent you the <code>input_psbt</code> was not lying!</p>
-<p>Secondly, you must somehow provide <code>satisfaction_weight</code> of the input. Depending on your
-application it may be important that this be known precisely. If not, a malicious
-counterparty may fool you into putting in a value that is too low, giving the transaction a
-lower than expected feerate. They could also fool you into putting a value that is too high
-causing you to pay a fee that is too high. The party who is broadcasting the transaction can
-of course check the real input weight matches the expected weight prior to broadcasting.</p>
-<p>To guarantee the <code>max_weight_to_satisfy</code> is correct, you can require the party providing the
-<code>psbt_input</code> provide a miniscript descriptor for the input so you can check it against the
-<code>script_pubkey</code> and then ask it for the <a href="../../descriptor/enum.Descriptor.html#method.max_weight_to_satisfy"><code>max_weight_to_satisfy</code></a>.</p>
-<p>This is an <strong>EXPERIMENTAL</strong> feature, API and other major changes are expected.</p>
-<p>In order to use <a href="../struct.Wallet.html#method.calculate_fee" title="Wallet::calculate_fee"><code>Wallet::calculate_fee</code></a> or <a href="../struct.Wallet.html#method.calculate_fee_rate" title="Wallet::calculate_fee_rate"><code>Wallet::calculate_fee_rate</code></a> for a transaction
-created with foreign UTXO(s) you must manually insert the corresponding TxOut(s) into the tx
-graph using the <a href="../struct.Wallet.html#method.insert_txout" title="Wallet::insert_txout"><code>Wallet::insert_txout</code></a> function.</p>
-<h5 id="errors"><a href="#errors">Errors</a></h5>
-<p>This method returns errors in the following circumstances:</p>
-<ol>
-<li>The <code>psbt_input</code> does not contain a <code>witness_utxo</code> or <code>non_witness_utxo</code>.</li>
-<li>The data in <code>non_witness_utxo</code> does not match what is in <code>outpoint</code>.</li>
-</ol>
-<p>Note unless you set <a href="struct.TxBuilder.html#method.only_witness_utxo"><code>only_witness_utxo</code></a> any non-taproot <code>psbt_input</code> you pass to this
-method must have <code>non_witness_utxo</code> set otherwise you will get an error when <a href="struct.TxBuilder.html#method.finish"><code>finish</code></a>
-is called.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_foreign_utxo_with_sequence" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#396-432">source</a><h4 class="code-header">pub fn <a href="#method.add_foreign_utxo_with_sequence" class="fn">add_foreign_utxo_with_sequence</a>(<br> &mut self,<br> outpoint: OutPoint,<br> psbt_input: Input,<br> satisfaction_weight: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> sequence: Sequence<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.reference.html">&mut </a>Self, <a class="enum" href="enum.AddForeignUtxoError.html" title="enum bdk::wallet::tx_builder::AddForeignUtxoError">AddForeignUtxoError</a>></h4></section></summary><div class="docblock"><p>Same as <a href="struct.TxBuilder.html#method.add_foreign_utxo">add_foreign_utxo</a> but allows to set the nSequence value.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.manually_selected_only" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#440-443">source</a><h4 class="code-header">pub fn <a href="#method.manually_selected_only" class="fn">manually_selected_only</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Only spend utxos added by <a href="struct.TxBuilder.html#method.add_utxo"><code>add_utxo</code></a>.</p>
-<p>The wallet will <strong>not</strong> add additional utxos to the transaction even if they are needed to
-make the transaction valid.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.unspendable" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#449-452">source</a><h4 class="code-header">pub fn <a href="#method.unspendable" class="fn">unspendable</a>(&mut self, unspendable: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><OutPoint>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Replace the internal list of unspendable utxos with a new list</p>
-<p>It’s important to note that the “must-be-spent” utxos added with <a href="struct.TxBuilder.html#method.add_utxo" title="TxBuilder::add_utxo"><code>TxBuilder::add_utxo</code></a>
-have priority over these. See the docs of the two linked methods for more details.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_unspendable" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#458-461">source</a><h4 class="code-header">pub fn <a href="#method.add_unspendable" class="fn">add_unspendable</a>(&mut self, unspendable: OutPoint) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Add a utxo to the internal list of unspendable utxos</p>
-<p>It’s important to note that the “must-be-spent” utxos added with <a href="struct.TxBuilder.html#method.add_utxo" title="TxBuilder::add_utxo"><code>TxBuilder::add_utxo</code></a>
-have priority over this. See the docs of the two linked methods for more details.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sighash" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#466-469">source</a><h4 class="code-header">pub fn <a href="#method.sighash" class="fn">sighash</a>(&mut self, sighash: PsbtSighashType) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Sign with a specific sig hash</p>
-<p><strong>Use this option very carefully</strong></p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ordering" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#472-475">source</a><h4 class="code-header">pub fn <a href="#method.ordering" class="fn">ordering</a>(&mut self, ordering: <a class="enum" href="enum.TxOrdering.html" title="enum bdk::wallet::tx_builder::TxOrdering">TxOrdering</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Choose the ordering for inputs and outputs of the transaction</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.nlocktime" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#480-483">source</a><h4 class="code-header">pub fn <a href="#method.nlocktime" class="fn">nlocktime</a>(&mut self, locktime: LockTime) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Use a specific nLockTime while creating the transaction</p>
-<p>This can cause conflicts if the wallet’s descriptors contain an “after” (OP_CLTV) operator.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.version" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#489-492">source</a><h4 class="code-header">pub fn <a href="#method.version" class="fn">version</a>(&mut self, version: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Build a transaction with a specific version</p>
-<p>The <code>version</code> should always be greater than <code>0</code> and greater than <code>1</code> if the wallet’s
-descriptors contain an “older” (OP_CSV) operator.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.do_not_spend_change" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#498-501">source</a><h4 class="code-header">pub fn <a href="#method.do_not_spend_change" class="fn">do_not_spend_change</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Do not spend change outputs</p>
-<p>This effectively adds all the change outputs to the “unspendable” list. See
-<a href="struct.TxBuilder.html#method.unspendable" title="TxBuilder::unspendable"><code>TxBuilder::unspendable</code></a>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.only_spend_change" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#507-510">source</a><h4 class="code-header">pub fn <a href="#method.only_spend_change" class="fn">only_spend_change</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Only spend change outputs</p>
-<p>This effectively adds all the non-change outputs to the “unspendable” list. See
-<a href="struct.TxBuilder.html#method.unspendable" title="TxBuilder::unspendable"><code>TxBuilder::unspendable</code></a>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.change_policy" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#514-517">source</a><h4 class="code-header">pub fn <a href="#method.change_policy" class="fn">change_policy</a>(&mut self, change_policy: <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Set a specific <a href="enum.ChangeSpendPolicy.html" title="ChangeSpendPolicy"><code>ChangeSpendPolicy</code></a>. See <a href="struct.TxBuilder.html#method.do_not_spend_change" title="TxBuilder::do_not_spend_change"><code>TxBuilder::do_not_spend_change</code></a> and
-<a href="struct.TxBuilder.html#method.only_spend_change" title="TxBuilder::only_spend_change"><code>TxBuilder::only_spend_change</code></a> for some shortcuts.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.only_witness_utxo" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#524-527">source</a><h4 class="code-header">pub fn <a href="#method.only_witness_utxo" class="fn">only_witness_utxo</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Only Fill-in the <a href="bitcoin::psbt::Input::witness_utxo"><code>psbt::Input::witness_utxo</code></a> field when spending from
-SegWit descriptors.</p>
-<p>This reduces the size of the PSBT, but some signers might reject them due to the lack of
-the <code>non_witness_utxo</code>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.include_output_redeem_witness_script" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#533-536">source</a><h4 class="code-header">pub fn <a href="#method.include_output_redeem_witness_script" class="fn">include_output_redeem_witness_script</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Fill-in the <a href="bitcoin::psbt::Output::redeem_script"><code>psbt::Output::redeem_script</code></a> and
-<a href="bitcoin::psbt::Output::witness_script"><code>psbt::Output::witness_script</code></a> fields.</p>
-<p>This is useful for signers which always require it, like ColdCard hardware wallets.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_global_xpubs" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#543-546">source</a><h4 class="code-header">pub fn <a href="#method.add_global_xpubs" class="fn">add_global_xpubs</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Fill-in the <code>PSBT_GLOBAL_XPUB</code> field with the extended keys contained in both the external
-and internal descriptors</p>
-<p>This is useful for offline signers that take part to a multisig. Some hardware wallets like
-BitBox and ColdCard are known to require this.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.drain_wallet" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#549-552">source</a><h4 class="code-header">pub fn <a href="#method.drain_wallet" class="fn">drain_wallet</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Spend all the available inputs. This respects filters like <a href="struct.TxBuilder.html#method.unspendable" title="TxBuilder::unspendable"><code>TxBuilder::unspendable</code></a> and the change policy.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.coin_selection" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#559-569">source</a><h4 class="code-header">pub fn <a href="#method.coin_selection" class="fn">coin_selection</a><P: <a class="trait" href="../coin_selection/trait.CoinSelectionAlgorithm.html" title="trait bdk::wallet::coin_selection::CoinSelectionAlgorithm">CoinSelectionAlgorithm</a>>(<br> self,<br> coin_selection: P<br>) -> <a class="struct" href="struct.TxBuilder.html" title="struct bdk::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, P, Ctx></h4></section></summary><div class="docblock"><p>Choose the coin selection algorithm</p>
-<p>Overrides the <a href="../coin_selection/type.DefaultCoinSelectionAlgorithm.html" title="DefaultCoinSelectionAlgorithm"><code>DefaultCoinSelectionAlgorithm</code></a>.</p>
-<p>Note that this function consumes the builder and returns it so it is usually best to put this as the first call on the builder.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.enable_rbf" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#574-577">source</a><h4 class="code-header">pub fn <a href="#method.enable_rbf" class="fn">enable_rbf</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Enable signaling RBF</p>
-<p>This will use the default nSequence value of <code>0xFFFFFFFD</code>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.enable_rbf_with_sequence" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#586-589">source</a><h4 class="code-header">pub fn <a href="#method.enable_rbf_with_sequence" class="fn">enable_rbf_with_sequence</a>(&mut self, nsequence: Sequence) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Enable signaling RBF with a specific nSequence value</p>
-<p>This can cause conflicts if the wallet’s descriptors contain an “older” (OP_CSV) operator
-and the given <code>nsequence</code> is lower than the CSV value.</p>
-<p>If the <code>nsequence</code> is higher than <code>0xFFFFFFFD</code> an error will be thrown, since it would not
-be a valid nSequence to signal RBF.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.current_height" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#602-606">source</a><h4 class="code-header">pub fn <a href="#method.current_height" class="fn">current_height</a>(&mut self, height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Set the current blockchain height.</p>
-<p>This will be used to:</p>
-<ol>
-<li>Set the nLockTime for preventing fee sniping.
-<strong>Note</strong>: This will be ignored if you manually specify a nlocktime using <a href="struct.TxBuilder.html#method.nlocktime" title="TxBuilder::nlocktime"><code>TxBuilder::nlocktime</code></a>.</li>
-<li>Decide whether coinbase outputs are mature or not. If the coinbase outputs are not
-mature at <code>current_height</code>, we ignore them in the coin selection.
-If you want to create a transaction that spends immature coinbase inputs, manually
-add them using <a href="struct.TxBuilder.html#method.add_utxos" title="TxBuilder::add_utxos"><code>TxBuilder::add_utxos</code></a>.</li>
-</ol>
-<p>In both cases, if you don’t provide a current height, we use the last sync height.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.allow_dust" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#611-614">source</a><h4 class="code-header">pub fn <a href="#method.allow_dust" class="fn">allow_dust</a>(&mut self, allow_dust: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Set whether or not the dust limit is checked.</p>
-<p><strong>Note</strong>: by avoiding a dust limit check you may end up with a transaction that is non-standard.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E-1" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#617-628">source</a><a href="#impl-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E-1" class="anchor">§</a><h3 class="code-header">impl<'a, Cs: <a class="trait" href="../coin_selection/trait.CoinSelectionAlgorithm.html" title="trait bdk::wallet::coin_selection::CoinSelectionAlgorithm">CoinSelectionAlgorithm</a>, Ctx> <a class="struct" href="struct.TxBuilder.html" title="struct bdk::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, Cs, Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.finish" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#623-627">source</a><h4 class="code-header">pub fn <a href="#method.finish" class="fn">finish</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Psbt, <a class="enum" href="../error/enum.CreateTxError.html" title="enum bdk::wallet::error::CreateTxError">CreateTxError</a>></h4></section></summary><div class="docblock"><p>Finish building the transaction.</p>
-<p>Returns a new [<code>Psbt</code>] per <a href="https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki"><code>BIP174</code></a>.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-TxBuilder%3C%27a%2C%20Cs%2C%20CreateTx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#714-794">source</a><a href="#impl-TxBuilder%3C%27a%2C%20Cs%2C%20CreateTx%3E" class="anchor">§</a><h3 class="code-header">impl<'a, Cs: <a class="trait" href="../coin_selection/trait.CoinSelectionAlgorithm.html" title="trait bdk::wallet::coin_selection::CoinSelectionAlgorithm">CoinSelectionAlgorithm</a>> <a class="struct" href="struct.TxBuilder.html" title="struct bdk::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, Cs, <a class="struct" href="struct.CreateTx.html" title="struct bdk::wallet::tx_builder::CreateTx">CreateTx</a>></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.set_recipients" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#716-722">source</a><h4 class="code-header">pub fn <a href="#method.set_recipients" class="fn">set_recipients</a>(<br> &mut self,<br> recipients: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><(ScriptBuf, Amount)><br>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Replace the recipients already added with a new list</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_recipient" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#725-730">source</a><h4 class="code-header">pub fn <a href="#method.add_recipient" class="fn">add_recipient</a>(<br> &mut self,<br> script_pubkey: ScriptBuf,<br> amount: Amount<br>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Add a recipient to the internal list</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_data" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#733-737">source</a><h4 class="code-header">pub fn <a href="#method.add_data" class="fn">add_data</a><T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a><PushBytes>>(&mut self, data: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Add data as an output, using OP_RETURN</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.drain_to" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#790-793">source</a><h4 class="code-header">pub fn <a href="#method.drain_to" class="fn">drain_to</a>(&mut self, script_pubkey: ScriptBuf) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Sets the address to <em>drain</em> excess coins to.</p>
-<p>Usually, when there are excess coins they are sent to a change address generated by the
-wallet. This option replaces the usual change address with an arbitrary <code>script_pubkey</code> of
-your choosing. Just as with a change output, if the drain output is not needed (the excess
-coins are too small) it will not be included in the resulting transaction. The only
-difference is that it is valid to use <code>drain_to</code> without setting any ordinary recipients
-with <a href="struct.TxBuilder.html#method.add_recipient"><code>add_recipient</code></a> (but it is perfectly fine to add recipients as well).</p>
-<p>If you choose not to set any recipients, you should either provide the utxos that the
-transaction should spend via <a href="struct.TxBuilder.html#method.add_utxos"><code>add_utxos</code></a>, or set <a href="struct.TxBuilder.html#method.drain_wallet"><code>drain_wallet</code></a> to spend all of them.</p>
-<p>When bumping the fees of a transaction made with this option, you probably want to
-use <a href="struct.TxBuilder.html#method.allow_shrinking"><code>allow_shrinking</code></a> to allow this output to be reduced to pay for the extra fees.</p>
-<h5 id="example-1"><a href="#example-1">Example</a></h5>
-<p><code>drain_to</code> is very useful for draining all the coins in a wallet with <a href="struct.TxBuilder.html#method.drain_wallet"><code>drain_wallet</code></a> to a
-single address.</p>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code>Address::from_str(<span class="string">"2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt"</span>)
- .unwrap()
- .assume_checked();
-<span class="kw">let </span><span class="kw-2">mut </span>tx_builder = wallet.build_tx();
-
-tx_builder
- <span class="comment">// Spend all outputs in this wallet.
- </span>.drain_wallet()
- <span class="comment">// Send the excess (which is all the coins minus the fee) to this address.
- </span>.drain_to(to_address.script_pubkey())
- .fee_rate(FeeRate::from_sat_per_vb(<span class="number">5</span>).expect(<span class="string">"valid feerate"</span>))
- .enable_rbf();
-<span class="kw">let </span>psbt = tx_builder.finish()<span class="question-mark">?</span>;</code></pre></div>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-TxBuilder%3C%27a%2C%20DefaultCoinSelectionAlgorithm%2C%20BumpFee%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#797-826">source</a><a href="#impl-TxBuilder%3C%27a%2C%20DefaultCoinSelectionAlgorithm%2C%20BumpFee%3E" class="anchor">§</a><h3 class="code-header">impl<'a> <a class="struct" href="struct.TxBuilder.html" title="struct bdk::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, <a class="type" href="../coin_selection/type.DefaultCoinSelectionAlgorithm.html" title="type bdk::wallet::coin_selection::DefaultCoinSelectionAlgorithm">DefaultCoinSelectionAlgorithm</a>, <a class="struct" href="struct.BumpFee.html" title="struct bdk::wallet::tx_builder::BumpFee">BumpFee</a>></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.allow_shrinking" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#808-825">source</a><h4 class="code-header">pub fn <a href="#method.allow_shrinking" class="fn">allow_shrinking</a>(<br> &mut self,<br> script_pubkey: ScriptBuf<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.reference.html">&mut </a>Self, <a class="enum" href="enum.AllowShrinkingError.html" title="enum bdk::wallet::tx_builder::AllowShrinkingError">AllowShrinkingError</a>></h4></section></summary><div class="docblock"><p>Explicitly tells the wallet that it is allowed to reduce the amount of the output matching this
-<code>script_pubkey</code> in order to bump the transaction fee. Without specifying this the wallet
-will attempt to find a change output to shrink instead.</p>
-<p><strong>Note</strong> that the output may shrink to below the dust limit and therefore be removed. If it is
-preserved then it is currently not guaranteed to be in the same position as it was
-originally.</p>
-<p>Returns an <code>Err</code> if <code>script_pubkey</code> can’t be found among the recipients of the
-transaction we are bumping.</p>
-</div></details></div></details></div><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><section id="impl-Clone-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#178-187">source</a><a href="#impl-Clone-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<'a, Cs: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.TxBuilder.html" title="struct bdk::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, Cs, Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#179-186">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> Self</h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#125">source</a><a href="#impl-Debug-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<'a, Cs: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>, Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.TxBuilder.html" title="struct bdk::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, Cs, Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#125">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<'a, Cs, Ctx> !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.TxBuilder.html" title="struct bdk::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, Cs, Ctx></h3></section><section id="impl-Send-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Send-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<'a, Cs, Ctx> !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.TxBuilder.html" title="struct bdk::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, Cs, Ctx></h3></section><section id="impl-Sync-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Sync-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<'a, Cs, Ctx> !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.TxBuilder.html" title="struct bdk::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, Cs, Ctx></h3></section><section id="impl-Unpin-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Unpin-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<'a, Cs, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.TxBuilder.html" title="struct bdk::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, Cs, Ctx><span class="where fmt-newline">where<br> Cs: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<'a, Cs, Ctx> !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.TxBuilder.html" title="struct bdk::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, Cs, Ctx></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
-<p>That is, this conversion is whatever the implementation of
-<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Context in which the [`TxBuilder`] is valid"><meta name="keywords" content="rust, rustlang, rust-lang, TxBuilderContext"><title>TxBuilderContext in bdk::wallet::tx_builder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk/index.html"><div class="logo-container">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">TxBuilderContext</a></h2><div class="sidebar-elems"><section><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk::wallet::tx_builder</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">tx_builder</a>::<wbr><a class="trait" href="#">TxBuilderContext</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/wallet/tx_builder.rs.html#58">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait TxBuilderContext: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> { }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Context in which the <a href="struct.TxBuilder.html" title="TxBuilder"><code>TxBuilder</code></a> is valid</p>
-</div></details><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-TxBuilderContext-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#69">source</a><a href="#impl-TxBuilderContext-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.TxBuilderContext.html" title="trait bdk::wallet::tx_builder::TxBuilderContext">TxBuilderContext</a> for <a class="struct" href="struct.BumpFee.html" title="struct bdk::wallet::tx_builder::BumpFee">BumpFee</a></h3></section><section id="impl-TxBuilderContext-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk/wallet/tx_builder.rs.html#64">source</a><a href="#impl-TxBuilderContext-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.TxBuilderContext.html" title="trait bdk::wallet::tx_builder::TxBuilderContext">TxBuilderContext</a> for <a class="struct" href="struct.CreateTx.html" title="struct bdk::wallet::tx_builder::CreateTx">CreateTx</a></h3></section></div><script src="../../../implementors/bdk/wallet/tx_builder/trait.TxBuilderContext.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta http-equiv="refresh" content="0;URL=../../../bdk/wallet/trait.IsDust.html">
- <title>Redirection</title>
-</head>
-<body>
- <p>Redirecting to <a href="../../../bdk/wallet/trait.IsDust.html">../../../bdk/wallet/trait.IsDust.html</a>...</p>
- <script>location.replace("../../../bdk/wallet/trait.IsDust.html" + location.search + location.hash);</script>
-</body>
-</html>
\ No newline at end of file
<!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="A newly emitted block from [`Emitter`]."><meta name="keywords" content="rust, rustlang, rust-lang, BlockEvent"><title>BlockEvent in bdk_bitcoind_rpc - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk_bitcoind_rpc/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk_bitcoind_rpc/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">BlockEvent</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.block">block</a></li><li><a href="#structfield.checkpoint">checkpoint</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.block_hash">block_hash</a></li><li><a href="#method.block_height">block_height</a></li><li><a href="#method.connected_to">connected_to</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-BlockEvent%3CB%3E">Debug</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-BlockEvent%3CB%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-BlockEvent%3CB%3E">Send</a></li><li><a href="#impl-Sync-for-BlockEvent%3CB%3E">Sync</a></li><li><a href="#impl-Unpin-for-BlockEvent%3CB%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-BlockEvent%3CB%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-BlockEvent%3CB%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-BlockEvent%3CB%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-BlockEvent%3CB%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-BlockEvent%3CB%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-BlockEvent%3CB%3E">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-BlockEvent%3CB%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-BlockEvent%3CB%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-BlockEvent%3CB%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_bitcoind_rpc</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="index.html">bdk_bitcoind_rpc</a>::<wbr><a class="struct" href="#">BlockEvent</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk_bitcoind_rpc/lib.rs.html#146-159">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct BlockEvent<B> {
pub block: B,
- pub checkpoint: <a class="struct" href="../bdk_chain/local_chain/struct.CheckPoint.html" title="struct bdk_chain::local_chain::CheckPoint">CheckPoint</a>,
+ pub checkpoint: CheckPoint,
}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A newly emitted block from <a href="struct.Emitter.html" title="Emitter"><code>Emitter</code></a>.</p>
</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.block" class="structfield small-section-header"><a href="#structfield.block" class="anchor field">§</a><code>block: B</code></span><div class="docblock"><p>Either a full [<code>Block</code>] or [<code>Header</code>] of the new block.</p>
-</div><span id="structfield.checkpoint" class="structfield small-section-header"><a href="#structfield.checkpoint" class="anchor field">§</a><code>checkpoint: <a class="struct" href="../bdk_chain/local_chain/struct.CheckPoint.html" title="struct bdk_chain::local_chain::CheckPoint">CheckPoint</a></code></span><div class="docblock"><p>The checkpoint of the new block.</p>
-<p>A <a href="../bdk_chain/local_chain/struct.CheckPoint.html" title="CheckPoint"><code>CheckPoint</code></a> is a node of a linked list of <a href="../bdk_chain/chain_data/struct.BlockId.html" title="BlockId"><code>BlockId</code></a>s. This checkpoint is linked to
-all <a href="../bdk_chain/chain_data/struct.BlockId.html" title="BlockId"><code>BlockId</code></a>s originally passed in <a href="struct.Emitter.html#method.new" title="Emitter::new"><code>Emitter::new</code></a> as well as emitted blocks since then.
+</div><span id="structfield.checkpoint" class="structfield small-section-header"><a href="#structfield.checkpoint" class="anchor field">§</a><code>checkpoint: CheckPoint</code></span><div class="docblock"><p>The checkpoint of the new block.</p>
+<p>A [<code>CheckPoint</code>] is a node of a linked list of [<code>BlockId</code>]s. This checkpoint is linked to
+all [<code>BlockId</code>]s originally passed in <a href="struct.Emitter.html#method.new" title="Emitter::new"><code>Emitter::new</code></a> as well as emitted blocks since then.
These blocks are guaranteed to be of the same chain.</p>
<p>This is important as BDK structures require block-to-apply to be connected with another
block in the original chain.</p>
</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-BlockEvent%3CB%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_bitcoind_rpc/lib.rs.html#161-185">source</a><a href="#impl-BlockEvent%3CB%3E" class="anchor">§</a><h3 class="code-header">impl<B> <a class="struct" href="struct.BlockEvent.html" title="struct bdk_bitcoind_rpc::BlockEvent">BlockEvent</a><B></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.block_height" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_bitcoind_rpc/lib.rs.html#163-165">source</a><h4 class="code-header">pub fn <a href="#method.block_height" class="fn">block_height</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></h4></section></summary><div class="docblock"><p>The block height of this new block.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.block_hash" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_bitcoind_rpc/lib.rs.html#168-170">source</a><h4 class="code-header">pub fn <a href="#method.block_hash" class="fn">block_hash</a>(&self) -> BlockHash</h4></section></summary><div class="docblock"><p>The block hash of this new block.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.connected_to" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_bitcoind_rpc/lib.rs.html#178-184">source</a><h4 class="code-header">pub fn <a href="#method.connected_to" class="fn">connected_to</a>(&self) -> <a class="struct" href="../bdk_chain/chain_data/struct.BlockId.html" title="struct bdk_chain::chain_data::BlockId">BlockId</a></h4></section></summary><div class="docblock"><p>The <a href="../bdk_chain/chain_data/struct.BlockId.html" title="BlockId"><code>BlockId</code></a> of a previous block that this block connects to.</p>
-<p>This either returns a <a href="../bdk_chain/chain_data/struct.BlockId.html" title="BlockId"><code>BlockId</code></a> of a previously emitted block or from the chain we started
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.connected_to" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_bitcoind_rpc/lib.rs.html#178-184">source</a><h4 class="code-header">pub fn <a href="#method.connected_to" class="fn">connected_to</a>(&self) -> BlockId</h4></section></summary><div class="docblock"><p>The [<code>BlockId</code>] of a previous block that this block connects to.</p>
+<p>This either returns a [<code>BlockId</code>] of a previously emitted block or from the chain we started
with (passed in as <code>last_cp</code> in <a href="struct.Emitter.html#method.new" title="Emitter::new"><code>Emitter::new</code></a>).</p>
<p>This value is derived from <a href="struct.BlockEvent.html#structfield.checkpoint" title="BlockEvent::checkpoint"><code>BlockEvent::checkpoint</code></a>.</p>
</div></details></div></details></div><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><section id="impl-Debug-for-BlockEvent%3CB%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_bitcoind_rpc/lib.rs.html#145">source</a><a href="#impl-Debug-for-BlockEvent%3CB%3E" class="anchor">§</a><h3 class="code-header">impl<B: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.BlockEvent.html" title="struct bdk_bitcoind_rpc::BlockEvent">BlockEvent</a><B></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_bitcoind_rpc/lib.rs.html#145">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-BlockEvent%3CB%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-BlockEvent%3CB%3E" class="anchor">§</a><h3 class="code-header">impl<B> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.BlockEvent.html" title="struct bdk_bitcoind_rpc::BlockEvent">BlockEvent</a><B><span class="where fmt-newline">where<br> B: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-BlockEvent%3CB%3E" class="impl has-srclink"><a href="#impl-Send-for-BlockEvent%3CB%3E" class="anchor">§</a><h3 class="code-header">impl<B> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.BlockEvent.html" title="struct bdk_bitcoind_rpc::BlockEvent">BlockEvent</a><B><span class="where fmt-newline">where<br> B: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-BlockEvent%3CB%3E" class="impl has-srclink"><a href="#impl-Sync-for-BlockEvent%3CB%3E" class="anchor">§</a><h3 class="code-header">impl<B> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.BlockEvent.html" title="struct bdk_bitcoind_rpc::BlockEvent">BlockEvent</a><B><span class="where fmt-newline">where<br> B: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-BlockEvent%3CB%3E" class="impl has-srclink"><a href="#impl-Unpin-for-BlockEvent%3CB%3E" class="anchor">§</a><h3 class="code-header">impl<B> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.BlockEvent.html" title="struct bdk_bitcoind_rpc::BlockEvent">BlockEvent</a><B><span class="where fmt-newline">where<br> B: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-BlockEvent%3CB%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-BlockEvent%3CB%3E" class="anchor">§</a><h3 class="code-header">impl<B> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.BlockEvent.html" title="struct bdk_bitcoind_rpc::BlockEvent">BlockEvent</a><B><span class="where fmt-newline">where<br> B: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-BlockEvent%3CB%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-BlockEvent%3CB%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-BlockEvent%3CB%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-BlockEvent%3CB%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-BlockEvent%3CB%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-BlockEvent%3CB%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-BlockEvent%3CB%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-BlockEvent%3CB%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
<!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="The [`Emitter`] is used to emit data sourced from [`bitcoincore_rpc::Client`]."><meta name="keywords" content="rust, rustlang, rust-lang, Emitter"><title>Emitter in bdk_bitcoind_rpc - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk_bitcoind_rpc/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk_bitcoind_rpc/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">Emitter</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.mempool">mempool</a></li><li><a href="#method.new">new</a></li><li><a href="#method.next_block">next_block</a></li><li><a href="#method.next_header">next_header</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Emitter%3C%27c%2C%20C%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Emitter%3C%27c%2C%20C%3E">Send</a></li><li><a href="#impl-Sync-for-Emitter%3C%27c%2C%20C%3E">Sync</a></li><li><a href="#impl-Unpin-for-Emitter%3C%27c%2C%20C%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Emitter%3C%27c%2C%20C%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Emitter%3C%27c%2C%20C%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Emitter%3C%27c%2C%20C%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Emitter%3C%27c%2C%20C%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Emitter%3C%27c%2C%20C%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Emitter%3C%27c%2C%20C%3E">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-Emitter%3C%27c%2C%20C%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Emitter%3C%27c%2C%20C%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Emitter%3C%27c%2C%20C%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_bitcoind_rpc</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="index.html">bdk_bitcoind_rpc</a>::<wbr><a class="struct" href="#">Emitter</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk_bitcoind_rpc/lib.rs.html#22-43">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Emitter<'c, C> { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The <a href="struct.Emitter.html" title="Emitter"><code>Emitter</code></a> is used to emit data sourced from [<code>bitcoincore_rpc::Client</code>].</p>
<p>Refer to <a href="index.html">module-level documentation</a> for more.</p>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Emitter%3C%27c%2C%20C%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_bitcoind_rpc/lib.rs.html#45-142">source</a><a href="#impl-Emitter%3C%27c%2C%20C%3E" class="anchor">§</a><h3 class="code-header">impl<'c, C: RpcApi> <a class="struct" href="struct.Emitter.html" title="struct bdk_bitcoind_rpc::Emitter">Emitter</a><'c, C></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_bitcoind_rpc/lib.rs.html#53-62">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(client: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&'c </a>C, last_cp: <a class="struct" href="../bdk_chain/local_chain/struct.CheckPoint.html" title="struct bdk_chain::local_chain::CheckPoint">CheckPoint</a>, start_height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) -> Self</h4></section></summary><div class="docblock"><p>Construct a new <a href="struct.Emitter.html" title="Emitter"><code>Emitter</code></a>.</p>
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Emitter%3C%27c%2C%20C%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_bitcoind_rpc/lib.rs.html#45-142">source</a><a href="#impl-Emitter%3C%27c%2C%20C%3E" class="anchor">§</a><h3 class="code-header">impl<'c, C: RpcApi> <a class="struct" href="struct.Emitter.html" title="struct bdk_bitcoind_rpc::Emitter">Emitter</a><'c, C></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_bitcoind_rpc/lib.rs.html#53-62">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(client: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&'c </a>C, last_cp: CheckPoint, start_height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) -> Self</h4></section></summary><div class="docblock"><p>Construct a new <a href="struct.Emitter.html" title="Emitter"><code>Emitter</code></a>.</p>
<p><code>last_cp</code> informs the emitter of the chain we are starting off with. This way, the emitter
can start emission from a block that connects to the original chain.</p>
<p><code>start_height</code> starts emission from a given height (if there are no conflicts with the
-<!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="This crate is used for updating structures of [`bdk_chain`] with data from an Electrum server."><meta name="keywords" content="rust, rustlang, rust-lang, bdk_electrum"><title>bdk_electrum - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk_electrum/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk_electrum/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">Crate bdk_electrum</a></h2><div class="sidebar-elems"><ul class="block"><li class="version">Version 0.13.0</li><li><a id="all-types" href="all.html">All Items</a></li></ul><section><ul class="block"><li><a href="#reexports">Re-exports</a></li><li><a href="#structs">Structs</a></li><li><a href="#traits">Traits</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Crate <a class="mod" href="#">bdk_electrum</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk_electrum/lib.rs.html#1-21">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>This crate is used for updating structures of <a href="../bdk_chain/index.html" title="bdk_chain"><code>bdk_chain</code></a> with data from an Electrum server.</p>
+<!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="This crate is used for updating structures of [`bdk_chain`] with data from an Electrum server."><meta name="keywords" content="rust, rustlang, rust-lang, bdk_electrum"><title>bdk_electrum - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk_electrum/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk_electrum/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">Crate bdk_electrum</a></h2><div class="sidebar-elems"><ul class="block"><li class="version">Version 0.13.0</li><li><a id="all-types" href="all.html">All Items</a></li></ul><section><ul class="block"><li><a href="#reexports">Re-exports</a></li><li><a href="#structs">Structs</a></li><li><a href="#traits">Traits</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Crate <a class="mod" href="#">bdk_electrum</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk_electrum/lib.rs.html#1-21">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>This crate is used for updating structures of [<code>bdk_chain</code>] with data from an Electrum server.</p>
<p>The two primary methods are <a href="trait.ElectrumExt.html#tymethod.sync" title="ElectrumExt::sync"><code>ElectrumExt::sync</code></a> and <a href="trait.ElectrumExt.html#tymethod.full_scan" title="ElectrumExt::full_scan"><code>ElectrumExt::full_scan</code></a>. In most cases
<a href="trait.ElectrumExt.html#tymethod.sync" title="ElectrumExt::sync"><code>ElectrumExt::sync</code></a> is used to sync the transaction histories of scripts that the application
cares about, for example the scripts for all the receive addresses of a Wallet’s keychain that it
keychain where the range of possibly used scripts is not known. In this case it is necessary to
scan all keychain scripts until a number (the “stop gap”) of unused scripts is discovered. For a
sync or full scan the user receives relevant blockchain data and output updates for
-<a href="../bdk_chain/index.html" title="bdk_chain"><code>bdk_chain</code></a>.</p>
+[<code>bdk_chain</code>].</p>
<p>Refer to <a href="https://github.com/bitcoindevkit/bdk/tree/master/example-crates/example_electrum"><code>example_electrum</code></a> for a complete example.</p>
-</div></details><h2 id="reexports" class="small-section-header"><a href="#reexports">Re-exports</a></h2><div class="item-table"><div class="item-row"><div class="item-left import-item" id="reexport.bdk_chain"><code>pub use <a class="mod" href="../bdk_chain/index.html" title="mod bdk_chain">bdk_chain</a>;</code></div></div><div class="item-row"><div class="item-left import-item" id="reexport.electrum_client"><code>pub use electrum_client;</code></div></div></div><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.ElectrumFullScanResult.html" title="bdk_electrum::ElectrumFullScanResult struct">ElectrumFullScanResult</a></div><div class="item-right docblock-short">The result of <a href="trait.ElectrumExt.html#tymethod.full_scan" title="ElectrumExt::full_scan"><code>ElectrumExt::full_scan</code></a>.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.ElectrumSyncResult.html" title="bdk_electrum::ElectrumSyncResult struct">ElectrumSyncResult</a></div><div class="item-right docblock-short">The result of <a href="trait.ElectrumExt.html#tymethod.sync" title="ElectrumExt::sync"><code>ElectrumExt::sync</code></a>.</div></div></div><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.ElectrumExt.html" title="bdk_electrum::ElectrumExt trait">ElectrumExt</a></div><div class="item-right docblock-short">Trait to extend [<code>electrum_client::Client</code>] functionality.</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk_electrum" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+</div></details><h2 id="reexports" class="small-section-header"><a href="#reexports">Re-exports</a></h2><div class="item-table"><div class="item-row"><div class="item-left import-item" id="reexport.bdk_chain"><code>pub use bdk_chain;</code></div></div><div class="item-row"><div class="item-left import-item" id="reexport.electrum_client"><code>pub use electrum_client;</code></div></div></div><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.ElectrumFullScanResult.html" title="bdk_electrum::ElectrumFullScanResult struct">ElectrumFullScanResult</a></div><div class="item-right docblock-short">The result of <a href="trait.ElectrumExt.html#tymethod.full_scan" title="ElectrumExt::full_scan"><code>ElectrumExt::full_scan</code></a>.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.ElectrumSyncResult.html" title="bdk_electrum::ElectrumSyncResult struct">ElectrumSyncResult</a></div><div class="item-right docblock-short">The result of <a href="trait.ElectrumExt.html#tymethod.sync" title="ElectrumExt::sync"><code>ElectrumExt::sync</code></a>.</div></div></div><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.ElectrumExt.html" title="bdk_electrum::ElectrumExt trait">ElectrumExt</a></div><div class="item-right docblock-short">Trait to extend [<code>electrum_client::Client</code>] functionality.</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk_electrum" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
<!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="The result of [`ElectrumExt::full_scan`]."><meta name="keywords" content="rust, rustlang, rust-lang, ElectrumFullScanResult"><title>ElectrumFullScanResult in bdk_electrum - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk_electrum/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk_electrum/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">ElectrumFullScanResult</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.with_confirmation_height_anchor">with_confirmation_height_anchor</a></li><li><a href="#method.with_confirmation_time_height_anchor">with_confirmation_time_height_anchor</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-ElectrumFullScanResult%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-ElectrumFullScanResult%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-ElectrumFullScanResult%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-ElectrumFullScanResult%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-ElectrumFullScanResult%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-ElectrumFullScanResult%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-ElectrumFullScanResult%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-ElectrumFullScanResult%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-ElectrumFullScanResult%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-ElectrumFullScanResult%3CK%3E">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-ElectrumFullScanResult%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-ElectrumFullScanResult%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-ElectrumFullScanResult%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_electrum</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="index.html">bdk_electrum</a>::<wbr><a class="struct" href="#">ElectrumFullScanResult</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk_electrum/electrum_ext.rs.html#204">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct ElectrumFullScanResult<K>(_);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The result of <a href="trait.ElectrumExt.html#tymethod.full_scan" title="ElectrumExt::full_scan"><code>ElectrumExt::full_scan</code></a>.</p>
-<p>This can be transformed into a <a href="../bdk_chain/spk_client/struct.FullScanResult.html" title="FullScanResult"><code>FullScanResult</code></a> with either <a href="../bdk_chain/chain_data/struct.ConfirmationHeightAnchor.html" title="ConfirmationHeightAnchor"><code>ConfirmationHeightAnchor</code></a> or
-<a href="../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="ConfirmationTimeHeightAnchor"><code>ConfirmationTimeHeightAnchor</code></a> anchor types.</p>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ElectrumFullScanResult%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_electrum/electrum_ext.rs.html#206-226">source</a><a href="#impl-ElectrumFullScanResult%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="struct" href="struct.ElectrumFullScanResult.html" title="struct bdk_electrum::ElectrumFullScanResult">ElectrumFullScanResult</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.with_confirmation_height_anchor" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_electrum/electrum_ext.rs.html#208-210">source</a><h4 class="code-header">pub fn <a href="#method.with_confirmation_height_anchor" class="fn">with_confirmation_height_anchor</a>(<br> self<br>) -> <a class="struct" href="../bdk_chain/spk_client/struct.FullScanResult.html" title="struct bdk_chain::spk_client::FullScanResult">FullScanResult</a><K, <a class="struct" href="../bdk_chain/chain_data/struct.ConfirmationHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationHeightAnchor">ConfirmationHeightAnchor</a>></h4></section></summary><div class="docblock"><p>Return <a href="../bdk_chain/spk_client/struct.FullScanResult.html" title="FullScanResult"><code>FullScanResult</code></a> with <a href="../bdk_chain/chain_data/struct.ConfirmationHeightAnchor.html" title="ConfirmationHeightAnchor"><code>ConfirmationHeightAnchor</code></a>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.with_confirmation_time_height_anchor" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_electrum/electrum_ext.rs.html#215-225">source</a><h4 class="code-header">pub fn <a href="#method.with_confirmation_time_height_anchor" class="fn">with_confirmation_time_height_anchor</a>(<br> self,<br> client: &impl ElectrumApi<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="struct" href="../bdk_chain/spk_client/struct.FullScanResult.html" title="struct bdk_chain::spk_client::FullScanResult">FullScanResult</a><K, <a class="struct" href="../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor">ConfirmationTimeHeightAnchor</a>>, Error></h4></section></summary><div class="docblock"><p>Return <a href="../bdk_chain/spk_client/struct.FullScanResult.html" title="FullScanResult"><code>FullScanResult</code></a> with <a href="../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="ConfirmationTimeHeightAnchor"><code>ConfirmationTimeHeightAnchor</code></a>.</p>
+<p>This can be transformed into a [<code>FullScanResult</code>] with either [<code>ConfirmationHeightAnchor</code>] or
+[<code>ConfirmationTimeHeightAnchor</code>] anchor types.</p>
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ElectrumFullScanResult%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_electrum/electrum_ext.rs.html#206-226">source</a><a href="#impl-ElectrumFullScanResult%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="struct" href="struct.ElectrumFullScanResult.html" title="struct bdk_electrum::ElectrumFullScanResult">ElectrumFullScanResult</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.with_confirmation_height_anchor" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_electrum/electrum_ext.rs.html#208-210">source</a><h4 class="code-header">pub fn <a href="#method.with_confirmation_height_anchor" class="fn">with_confirmation_height_anchor</a>(<br> self<br>) -> FullScanResult<K, ConfirmationHeightAnchor></h4></section></summary><div class="docblock"><p>Return [<code>FullScanResult</code>] with [<code>ConfirmationHeightAnchor</code>].</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.with_confirmation_time_height_anchor" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_electrum/electrum_ext.rs.html#215-225">source</a><h4 class="code-header">pub fn <a href="#method.with_confirmation_time_height_anchor" class="fn">with_confirmation_time_height_anchor</a>(<br> self,<br> client: &impl ElectrumApi<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><FullScanResult<K, ConfirmationTimeHeightAnchor>, Error></h4></section></summary><div class="docblock"><p>Return [<code>FullScanResult</code>] with [<code>ConfirmationTimeHeightAnchor</code>].</p>
<p>This requires additional calls to the Electrum server.</p>
</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-ElectrumFullScanResult%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-ElectrumFullScanResult%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.ElectrumFullScanResult.html" title="struct bdk_electrum::ElectrumFullScanResult">ElectrumFullScanResult</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-ElectrumFullScanResult%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-ElectrumFullScanResult%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.ElectrumFullScanResult.html" title="struct bdk_electrum::ElectrumFullScanResult">ElectrumFullScanResult</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-ElectrumFullScanResult%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-ElectrumFullScanResult%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.ElectrumFullScanResult.html" title="struct bdk_electrum::ElectrumFullScanResult">ElectrumFullScanResult</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-ElectrumFullScanResult%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-ElectrumFullScanResult%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.ElectrumFullScanResult.html" title="struct bdk_electrum::ElectrumFullScanResult">ElectrumFullScanResult</a><K></h3></section><section id="impl-UnwindSafe-for-ElectrumFullScanResult%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-ElectrumFullScanResult%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.ElectrumFullScanResult.html" title="struct bdk_electrum::ElectrumFullScanResult">ElectrumFullScanResult</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-ElectrumFullScanResult%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-ElectrumFullScanResult%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-ElectrumFullScanResult%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-ElectrumFullScanResult%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-ElectrumFullScanResult%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-ElectrumFullScanResult%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-ElectrumFullScanResult%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-ElectrumFullScanResult%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ElectrumFullScanResult%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ElectrumFullScanResult%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<!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="The result of [`ElectrumExt::sync`]."><meta name="keywords" content="rust, rustlang, rust-lang, ElectrumSyncResult"><title>ElectrumSyncResult in bdk_electrum - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk_electrum/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk_electrum/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">ElectrumSyncResult</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.with_confirmation_height_anchor">with_confirmation_height_anchor</a></li><li><a href="#method.with_confirmation_time_height_anchor">with_confirmation_time_height_anchor</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-ElectrumSyncResult">RefUnwindSafe</a></li><li><a href="#impl-Send-for-ElectrumSyncResult">Send</a></li><li><a href="#impl-Sync-for-ElectrumSyncResult">Sync</a></li><li><a href="#impl-Unpin-for-ElectrumSyncResult">Unpin</a></li><li><a href="#impl-UnwindSafe-for-ElectrumSyncResult">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-ElectrumSyncResult">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-ElectrumSyncResult">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-ElectrumSyncResult">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-ElectrumSyncResult">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-ElectrumSyncResult">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-ElectrumSyncResult">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-ElectrumSyncResult">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-ElectrumSyncResult">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_electrum</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="index.html">bdk_electrum</a>::<wbr><a class="struct" href="#">ElectrumSyncResult</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk_electrum/electrum_ext.rs.html#232">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct ElectrumSyncResult(_);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The result of <a href="trait.ElectrumExt.html#tymethod.sync" title="ElectrumExt::sync"><code>ElectrumExt::sync</code></a>.</p>
-<p>This can be transformed into a <a href="../bdk_chain/spk_client/struct.SyncResult.html" title="SyncResult"><code>SyncResult</code></a> with either <a href="../bdk_chain/chain_data/struct.ConfirmationHeightAnchor.html" title="ConfirmationHeightAnchor"><code>ConfirmationHeightAnchor</code></a> or
-<a href="../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="ConfirmationTimeHeightAnchor"><code>ConfirmationTimeHeightAnchor</code></a> anchor types.</p>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ElectrumSyncResult" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_electrum/electrum_ext.rs.html#234-253">source</a><a href="#impl-ElectrumSyncResult" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.ElectrumSyncResult.html" title="struct bdk_electrum::ElectrumSyncResult">ElectrumSyncResult</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.with_confirmation_height_anchor" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_electrum/electrum_ext.rs.html#236-238">source</a><h4 class="code-header">pub fn <a href="#method.with_confirmation_height_anchor" class="fn">with_confirmation_height_anchor</a>(<br> self<br>) -> <a class="struct" href="../bdk_chain/spk_client/struct.SyncResult.html" title="struct bdk_chain::spk_client::SyncResult">SyncResult</a><<a class="struct" href="../bdk_chain/chain_data/struct.ConfirmationHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationHeightAnchor">ConfirmationHeightAnchor</a>></h4></section></summary><div class="docblock"><p>Return <a href="../bdk_chain/spk_client/struct.SyncResult.html" title="SyncResult"><code>SyncResult</code></a> with <a href="../bdk_chain/chain_data/struct.ConfirmationHeightAnchor.html" title="ConfirmationHeightAnchor"><code>ConfirmationHeightAnchor</code></a>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.with_confirmation_time_height_anchor" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_electrum/electrum_ext.rs.html#243-252">source</a><h4 class="code-header">pub fn <a href="#method.with_confirmation_time_height_anchor" class="fn">with_confirmation_time_height_anchor</a>(<br> self,<br> client: &impl ElectrumApi<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="struct" href="../bdk_chain/spk_client/struct.SyncResult.html" title="struct bdk_chain::spk_client::SyncResult">SyncResult</a><<a class="struct" href="../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor">ConfirmationTimeHeightAnchor</a>>, Error></h4></section></summary><div class="docblock"><p>Return <a href="../bdk_chain/spk_client/struct.SyncResult.html" title="SyncResult"><code>SyncResult</code></a> with <a href="../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="ConfirmationTimeHeightAnchor"><code>ConfirmationTimeHeightAnchor</code></a>.</p>
+<p>This can be transformed into a [<code>SyncResult</code>] with either [<code>ConfirmationHeightAnchor</code>] or
+[<code>ConfirmationTimeHeightAnchor</code>] anchor types.</p>
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ElectrumSyncResult" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_electrum/electrum_ext.rs.html#234-253">source</a><a href="#impl-ElectrumSyncResult" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.ElectrumSyncResult.html" title="struct bdk_electrum::ElectrumSyncResult">ElectrumSyncResult</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.with_confirmation_height_anchor" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_electrum/electrum_ext.rs.html#236-238">source</a><h4 class="code-header">pub fn <a href="#method.with_confirmation_height_anchor" class="fn">with_confirmation_height_anchor</a>(<br> self<br>) -> SyncResult<ConfirmationHeightAnchor></h4></section></summary><div class="docblock"><p>Return [<code>SyncResult</code>] with [<code>ConfirmationHeightAnchor</code>].</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.with_confirmation_time_height_anchor" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_electrum/electrum_ext.rs.html#243-252">source</a><h4 class="code-header">pub fn <a href="#method.with_confirmation_time_height_anchor" class="fn">with_confirmation_time_height_anchor</a>(<br> self,<br> client: &impl ElectrumApi<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><SyncResult<ConfirmationTimeHeightAnchor>, Error></h4></section></summary><div class="docblock"><p>Return [<code>SyncResult</code>] with [<code>ConfirmationTimeHeightAnchor</code>].</p>
<p>This requires additional calls to the Electrum server.</p>
</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-ElectrumSyncResult" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-ElectrumSyncResult" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.ElectrumSyncResult.html" title="struct bdk_electrum::ElectrumSyncResult">ElectrumSyncResult</a></h3></section><section id="impl-Send-for-ElectrumSyncResult" class="impl has-srclink"><a href="#impl-Send-for-ElectrumSyncResult" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.ElectrumSyncResult.html" title="struct bdk_electrum::ElectrumSyncResult">ElectrumSyncResult</a></h3></section><section id="impl-Sync-for-ElectrumSyncResult" class="impl has-srclink"><a href="#impl-Sync-for-ElectrumSyncResult" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.ElectrumSyncResult.html" title="struct bdk_electrum::ElectrumSyncResult">ElectrumSyncResult</a></h3></section><section id="impl-Unpin-for-ElectrumSyncResult" class="impl has-srclink"><a href="#impl-Unpin-for-ElectrumSyncResult" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.ElectrumSyncResult.html" title="struct bdk_electrum::ElectrumSyncResult">ElectrumSyncResult</a></h3></section><section id="impl-UnwindSafe-for-ElectrumSyncResult" class="impl has-srclink"><a href="#impl-UnwindSafe-for-ElectrumSyncResult" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.ElectrumSyncResult.html" title="struct bdk_electrum::ElectrumSyncResult">ElectrumSyncResult</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-ElectrumSyncResult" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-ElectrumSyncResult" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-ElectrumSyncResult" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-ElectrumSyncResult" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-ElectrumSyncResult" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-ElectrumSyncResult" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-ElectrumSyncResult" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-ElectrumSyncResult" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ElectrumSyncResult" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ElectrumSyncResult" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<!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="Trait to extend [`electrum_client::Client`] functionality."><meta name="keywords" content="rust, rustlang, rust-lang, ElectrumExt"><title>ElectrumExt in bdk_electrum - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk_electrum/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk_electrum/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">ElectrumExt</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.full_scan">full_scan</a></li><li><a href="#tymethod.sync">sync</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk_electrum</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="index.html">bdk_electrum</a>::<wbr><a class="trait" href="#">ElectrumExt</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk_electrum/electrum_ext.rs.html#17-57">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait ElectrumExt {
- fn <a href="#tymethod.full_scan" class="fn">full_scan</a><K: <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/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>>(<br> &self,<br> request: <a class="struct" href="../bdk_chain/spk_client/struct.FullScanRequest.html" title="struct bdk_chain::spk_client::FullScanRequest">FullScanRequest</a><K>,<br> stop_gap: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> batch_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> fetch_prev_txouts: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</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="struct" href="struct.ElectrumFullScanResult.html" title="struct bdk_electrum::ElectrumFullScanResult">ElectrumFullScanResult</a><K>, Error>;
-<span class="item-spacer"></span> fn <a href="#tymethod.sync" class="fn">sync</a>(<br> &self,<br> request: <a class="struct" href="../bdk_chain/spk_client/struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest">SyncRequest</a>,<br> batch_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> fetch_prev_txouts: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</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="struct" href="struct.ElectrumSyncResult.html" title="struct bdk_electrum::ElectrumSyncResult">ElectrumSyncResult</a>, Error>;
+ fn <a href="#tymethod.full_scan" class="fn">full_scan</a><K: <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/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>>(<br> &self,<br> request: FullScanRequest<K>,<br> stop_gap: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> batch_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> fetch_prev_txouts: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</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="struct" href="struct.ElectrumFullScanResult.html" title="struct bdk_electrum::ElectrumFullScanResult">ElectrumFullScanResult</a><K>, Error>;
+<span class="item-spacer"></span> fn <a href="#tymethod.sync" class="fn">sync</a>(<br> &self,<br> request: SyncRequest,<br> batch_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> fetch_prev_txouts: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</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="struct" href="struct.ElectrumSyncResult.html" title="struct bdk_electrum::ElectrumSyncResult">ElectrumSyncResult</a>, Error>;
}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Trait to extend [<code>electrum_client::Client</code>] functionality.</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 method-toggle" open><summary><section id="tymethod.full_scan" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_electrum/electrum_ext.rs.html#29-35">source</a><h4 class="code-header">fn <a href="#tymethod.full_scan" class="fn">full_scan</a><K: <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/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>>(<br> &self,<br> request: <a class="struct" href="../bdk_chain/spk_client/struct.FullScanRequest.html" title="struct bdk_chain::spk_client::FullScanRequest">FullScanRequest</a><K>,<br> stop_gap: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> batch_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> fetch_prev_txouts: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</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="struct" href="struct.ElectrumFullScanResult.html" title="struct bdk_electrum::ElectrumFullScanResult">ElectrumFullScanResult</a><K>, Error></h4></section></summary><div class="docblock"><p>Full scan the keychain scripts specified with the blockchain (via an Electrum client) and
-returns updates for <a href="../bdk_chain/index.html" title="bdk_chain"><code>bdk_chain</code></a> data structures.</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 method-toggle" open><summary><section id="tymethod.full_scan" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_electrum/electrum_ext.rs.html#29-35">source</a><h4 class="code-header">fn <a href="#tymethod.full_scan" class="fn">full_scan</a><K: <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/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>>(<br> &self,<br> request: FullScanRequest<K>,<br> stop_gap: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> batch_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> fetch_prev_txouts: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</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="struct" href="struct.ElectrumFullScanResult.html" title="struct bdk_electrum::ElectrumFullScanResult">ElectrumFullScanResult</a><K>, Error></h4></section></summary><div class="docblock"><p>Full scan the keychain scripts specified with the blockchain (via an Electrum client) and
+returns updates for [<code>bdk_chain</code>] data structures.</p>
<ul>
<li><code>request</code>: struct with data required to perform a spk-based blockchain client full scan,
-see <a href="../bdk_chain/spk_client/struct.FullScanRequest.html" title="FullScanRequest"><code>FullScanRequest</code></a></li>
+see [<code>FullScanRequest</code>]</li>
<li><code>stop_gap</code>: the full scan for each keychain stops after a gap of script pubkeys with no
associated transactions</li>
<li><code>batch_size</code>: specifies the max number of script pubkeys to request for in a single batch
<li><code>fetch_prev_txouts</code>: specifies whether or not we want previous <code>TxOut</code>s for fee
calculation</li>
</ul>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.sync" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_electrum/electrum_ext.rs.html#51-56">source</a><h4 class="code-header">fn <a href="#tymethod.sync" class="fn">sync</a>(<br> &self,<br> request: <a class="struct" href="../bdk_chain/spk_client/struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest">SyncRequest</a>,<br> batch_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> fetch_prev_txouts: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</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="struct" href="struct.ElectrumSyncResult.html" title="struct bdk_electrum::ElectrumSyncResult">ElectrumSyncResult</a>, Error></h4></section></summary><div class="docblock"><p>Sync a set of scripts with the blockchain (via an Electrum client) for the data specified
-and returns updates for <a href="../bdk_chain/index.html" title="bdk_chain"><code>bdk_chain</code></a> data structures.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.sync" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_electrum/electrum_ext.rs.html#51-56">source</a><h4 class="code-header">fn <a href="#tymethod.sync" class="fn">sync</a>(<br> &self,<br> request: SyncRequest,<br> batch_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> fetch_prev_txouts: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</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="struct" href="struct.ElectrumSyncResult.html" title="struct bdk_electrum::ElectrumSyncResult">ElectrumSyncResult</a>, Error></h4></section></summary><div class="docblock"><p>Sync a set of scripts with the blockchain (via an Electrum client) for the data specified
+and returns updates for [<code>bdk_chain</code>] data structures.</p>
<ul>
<li><code>request</code>: struct with data required to perform a spk-based blockchain client sync,
-see <a href="../bdk_chain/spk_client/struct.SyncRequest.html" title="SyncRequest"><code>SyncRequest</code></a></li>
+see [<code>SyncRequest</code>]</li>
<li><code>batch_size</code>: specifies the max number of script pubkeys to request for in a single batch
request</li>
<li><code>fetch_prev_txouts</code>: specifies whether or not we want previous <code>TxOut</code>s for fee
keychain where the range of possibly used scripts is not known. In this case it is necessary to
scan all keychain scripts until a number (the “stop gap”) of unused scripts is discovered. For a
sync or full scan the user receives relevant blockchain data and output updates for <a href="https://docs.rs/bdk-chain/"><code>bdk_chain</code></a>
-via a new <a href="../bdk_chain/tx_graph/struct.TxGraph.html"><code>TxGraph</code></a> to be appended to any existing <a href="../bdk_chain/tx_graph/struct.TxGraph.html"><code>TxGraph</code></a> data.</p>
+via a new <a href="bdk_chain::tx_graph::TxGraph"><code>TxGraph</code></a> to be appended to any existing <a href="bdk_chain::tx_graph::TxGraph"><code>TxGraph</code></a> data.</p>
<p>Refer to <a href="https://github.com/bitcoindevkit/bdk/tree/master/example-crates/example_esplora"><code>example_esplora</code></a> for a complete example.</p>
</div></details><h2 id="reexports" class="small-section-header"><a href="#reexports">Re-exports</a></h2><div class="item-table"><div class="item-row"><div class="item-left import-item" id="reexport.esplora_client"><code>pub use esplora_client;</code></div></div></div><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.EsploraAsyncExt.html" title="bdk_esplora::EsploraAsyncExt trait">EsploraAsyncExt</a></div><div class="item-right docblock-short">Trait to extend the functionality of [<code>esplora_client::AsyncClient</code>].</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.EsploraExt.html" title="bdk_esplora::EsploraExt trait">EsploraExt</a></div><div class="item-right docblock-short">Trait to extend the functionality of [<code>esplora_client::BlockingClient</code>].</div></div></div><h2 id="types" class="small-section-header"><a href="#types">Type Definitions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="type" href="type.Error.html" title="bdk_esplora::Error type">Error</a></div><div class="item-right docblock-short">[<code>esplora_client::Error</code>]</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk_esplora" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
<!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="Trait to extend the functionality of [`esplora_client::AsyncClient`]."><meta name="keywords" content="rust, rustlang, rust-lang, EsploraAsyncExt"><title>EsploraAsyncExt in bdk_esplora - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk_esplora/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk_esplora/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">EsploraAsyncExt</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.full_scan">full_scan</a></li><li><a href="#tymethod.sync">sync</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-EsploraAsyncExt-for-AsyncClient">AsyncClient</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk_esplora</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="index.html">bdk_esplora</a>::<wbr><a class="trait" href="#">EsploraAsyncExt</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk_esplora/async_ext.rs.html#27-72">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait EsploraAsyncExt {
- fn <a href="#tymethod.full_scan" class="fn">full_scan</a><'life0, 'async_trait, K>(<br> &'life0 self,<br> request: <a class="struct" href="../bdk_chain/spk_client/struct.FullScanRequest.html" title="struct bdk_chain::spk_client::FullScanRequest">FullScanRequest</a><K>,<br> stop_gap: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br> ) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../bdk_chain/spk_client/struct.FullScanResult.html" title="struct bdk_chain::spk_client::FullScanResult">FullScanResult</a><K>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><Error>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait>><br> <span class="where">where<br> K: 'async_trait + <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/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,<br> Self: 'async_trait,<br> 'life0: 'async_trait</span>;
-<span class="item-spacer"></span> fn <a href="#tymethod.sync" class="fn">sync</a><'life0, 'async_trait>(<br> &'life0 self,<br> request: <a class="struct" href="../bdk_chain/spk_client/struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest">SyncRequest</a>,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br> ) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../bdk_chain/spk_client/struct.SyncResult.html" title="struct bdk_chain::spk_client::SyncResult">SyncResult</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><Error>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait>><br> <span class="where">where<br> Self: 'async_trait,<br> 'life0: 'async_trait</span>;
+ fn <a href="#tymethod.full_scan" class="fn">full_scan</a><'life0, 'async_trait, K>(<br> &'life0 self,<br> request: FullScanRequest<K>,<br> stop_gap: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br> ) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><FullScanResult<K>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><Error>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait>><br> <span class="where">where<br> K: 'async_trait + <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/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,<br> Self: 'async_trait,<br> 'life0: 'async_trait</span>;
+<span class="item-spacer"></span> fn <a href="#tymethod.sync" class="fn">sync</a><'life0, 'async_trait>(<br> &'life0 self,<br> request: SyncRequest,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br> ) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><SyncResult, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><Error>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait>><br> <span class="where">where<br> Self: 'async_trait,<br> 'life0: 'async_trait</span>;
}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Trait to extend the functionality of [<code>esplora_client::AsyncClient</code>].</p>
<p>Refer to <a href="index.html">crate-level documentation</a> for more.</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 method-toggle" open><summary><section id="tymethod.full_scan" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_esplora/async_ext.rs.html#50-55">source</a><h4 class="code-header">fn <a href="#tymethod.full_scan" class="fn">full_scan</a><'life0, 'async_trait, K>(<br> &'life0 self,<br> request: <a class="struct" href="../bdk_chain/spk_client/struct.FullScanRequest.html" title="struct bdk_chain::spk_client::FullScanRequest">FullScanRequest</a><K>,<br> stop_gap: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../bdk_chain/spk_client/struct.FullScanResult.html" title="struct bdk_chain::spk_client::FullScanResult">FullScanResult</a><K>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><Error>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait>><span class="where fmt-newline">where<br> K: 'async_trait + <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/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,<br> Self: 'async_trait,<br> 'life0: 'async_trait,</span></h4></section></summary><div class="docblock"><p>Scan keychain scripts for transactions against Esplora, returning an update that can be
+</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 method-toggle" open><summary><section id="tymethod.full_scan" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_esplora/async_ext.rs.html#50-55">source</a><h4 class="code-header">fn <a href="#tymethod.full_scan" class="fn">full_scan</a><'life0, 'async_trait, K>(<br> &'life0 self,<br> request: FullScanRequest<K>,<br> stop_gap: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><FullScanResult<K>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><Error>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait>><span class="where fmt-newline">where<br> K: 'async_trait + <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/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,<br> Self: 'async_trait,<br> 'life0: 'async_trait,</span></h4></section></summary><div class="docblock"><p>Scan keychain scripts for transactions against Esplora, returning an update that can be
applied to the receiving structures.</p>
<ul>
<li><code>request</code>: struct with data required to perform a spk-based blockchain client full scan,
-see <a href="../bdk_chain/spk_client/struct.FullScanRequest.html" title="FullScanRequest"><code>FullScanRequest</code></a></li>
+see [<code>FullScanRequest</code>]</li>
</ul>
<p>The full scan for each keychain stops after a gap of <code>stop_gap</code> script pubkeys with no
associated transactions. <code>parallel_requests</code> specifies the max number of HTTP requests to
<a href="https://docs.btcpayserver.org/FAQ/Wallet/#the-gap-limit-problem">BTCPay Server</a>,
and <a href="https://www.sparrowwallet.com/docs/faq.html#ive-restored-my-wallet-but-some-of-my-funds-are-missing">Sparrow</a>.</p>
<p>A <code>stop_gap</code> of 0 will be treated as a <code>stop_gap</code> of 1.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.sync" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_esplora/async_ext.rs.html#67-71">source</a><h4 class="code-header">fn <a href="#tymethod.sync" class="fn">sync</a><'life0, 'async_trait>(<br> &'life0 self,<br> request: <a class="struct" href="../bdk_chain/spk_client/struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest">SyncRequest</a>,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../bdk_chain/spk_client/struct.SyncResult.html" title="struct bdk_chain::spk_client::SyncResult">SyncResult</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><Error>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait>><span class="where fmt-newline">where<br> Self: 'async_trait,<br> 'life0: 'async_trait,</span></h4></section></summary><div class="docblock"><p>Sync a set of scripts with the blockchain (via an Esplora client) for the data
-specified and return a <a href="../bdk_chain/tx_graph/struct.TxGraph.html" title="TxGraph"><code>TxGraph</code></a>.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.sync" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_esplora/async_ext.rs.html#67-71">source</a><h4 class="code-header">fn <a href="#tymethod.sync" class="fn">sync</a><'life0, 'async_trait>(<br> &'life0 self,<br> request: SyncRequest,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><SyncResult, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><Error>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait>><span class="where fmt-newline">where<br> Self: 'async_trait,<br> 'life0: 'async_trait,</span></h4></section></summary><div class="docblock"><p>Sync a set of scripts with the blockchain (via an Esplora client) for the data
+specified and return a [<code>TxGraph</code>].</p>
<ul>
<li><code>request</code>: struct with data required to perform a spk-based blockchain client sync, see
-<a href="../bdk_chain/spk_client/struct.SyncRequest.html" title="SyncRequest"><code>SyncRequest</code></a></li>
+[<code>SyncRequest</code>]</li>
</ul>
<p>If the scripts to sync are unknown, such as when restoring or importing a keychain that
may include scripts that have been used, use <a href="trait.EsploraAsyncExt.html#tymethod.full_scan"><code>full_scan</code></a> with the keychain.</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><section id="impl-EsploraAsyncExt-for-AsyncClient" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_esplora/async_ext.rs.html#76-131">source</a><a href="#impl-EsploraAsyncExt-for-AsyncClient" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.EsploraAsyncExt.html" title="trait bdk_esplora::EsploraAsyncExt">EsploraAsyncExt</a> for AsyncClient</h3></section></summary><div class="impl-items"><section id="method.full_scan" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_esplora/async_ext.rs.html#77-103">source</a><a href="#method.full_scan" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.full_scan" class="fn">full_scan</a><'life0, 'async_trait, K>(<br> &'life0 self,<br> request: <a class="struct" href="../bdk_chain/spk_client/struct.FullScanRequest.html" title="struct bdk_chain::spk_client::FullScanRequest">FullScanRequest</a><K>,<br> stop_gap: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../bdk_chain/spk_client/struct.FullScanResult.html" title="struct bdk_chain::spk_client::FullScanResult">FullScanResult</a><K>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><Error>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait>><span class="where fmt-newline">where<br> K: 'async_trait + <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/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,<br> Self: 'async_trait,<br> 'life0: 'async_trait,</span></h4></section><section id="method.sync" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_esplora/async_ext.rs.html#105-130">source</a><a href="#method.sync" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.sync" class="fn">sync</a><'life0, 'async_trait>(<br> &'life0 self,<br> request: <a class="struct" href="../bdk_chain/spk_client/struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest">SyncRequest</a>,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../bdk_chain/spk_client/struct.SyncResult.html" title="struct bdk_chain::spk_client::SyncResult">SyncResult</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><Error>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait>><span class="where fmt-newline">where<br> Self: 'async_trait,<br> 'life0: 'async_trait,</span></h4></section></div></details><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../implementors/bdk_esplora/async_ext/trait.EsploraAsyncExt.js" data-ignore-extern-crates="esplora_client" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk_esplora" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+</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><section id="impl-EsploraAsyncExt-for-AsyncClient" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_esplora/async_ext.rs.html#76-131">source</a><a href="#impl-EsploraAsyncExt-for-AsyncClient" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.EsploraAsyncExt.html" title="trait bdk_esplora::EsploraAsyncExt">EsploraAsyncExt</a> for AsyncClient</h3></section></summary><div class="impl-items"><section id="method.full_scan" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_esplora/async_ext.rs.html#77-103">source</a><a href="#method.full_scan" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.full_scan" class="fn">full_scan</a><'life0, 'async_trait, K>(<br> &'life0 self,<br> request: FullScanRequest<K>,<br> stop_gap: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><FullScanResult<K>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><Error>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait>><span class="where fmt-newline">where<br> K: 'async_trait + <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/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,<br> Self: 'async_trait,<br> 'life0: 'async_trait,</span></h4></section><section id="method.sync" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_esplora/async_ext.rs.html#105-130">source</a><a href="#method.sync" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.sync" class="fn">sync</a><'life0, 'async_trait>(<br> &'life0 self,<br> request: SyncRequest,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><SyncResult, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><Error>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait>><span class="where fmt-newline">where<br> Self: 'async_trait,<br> 'life0: 'async_trait,</span></h4></section></div></details><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../implementors/bdk_esplora/async_ext/trait.EsploraAsyncExt.js" data-ignore-extern-crates="esplora_client" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk_esplora" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
<!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="Trait to extend the functionality of [`esplora_client::BlockingClient`]."><meta name="keywords" content="rust, rustlang, rust-lang, EsploraExt"><title>EsploraExt in bdk_esplora - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk_esplora/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk_esplora/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">EsploraExt</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.full_scan">full_scan</a></li><li><a href="#tymethod.sync">sync</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-EsploraExt-for-BlockingClient">BlockingClient</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk_esplora</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="index.html">bdk_esplora</a>::<wbr><a class="trait" href="#">EsploraExt</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk_esplora/blocking_ext.rs.html#25-66">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait EsploraExt {
- fn <a href="#tymethod.full_scan" class="fn">full_scan</a><K: <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/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>>(<br> &self,<br> request: <a class="struct" href="../bdk_chain/spk_client/struct.FullScanRequest.html" title="struct bdk_chain::spk_client::FullScanRequest">FullScanRequest</a><K>,<br> stop_gap: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</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="struct" href="../bdk_chain/spk_client/struct.FullScanResult.html" title="struct bdk_chain::spk_client::FullScanResult">FullScanResult</a><K>, <a class="type" href="type.Error.html" title="type bdk_esplora::Error">Error</a>>;
-<span class="item-spacer"></span> fn <a href="#tymethod.sync" class="fn">sync</a>(<br> &self,<br> request: <a class="struct" href="../bdk_chain/spk_client/struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest">SyncRequest</a>,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</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="struct" href="../bdk_chain/spk_client/struct.SyncResult.html" title="struct bdk_chain::spk_client::SyncResult">SyncResult</a>, <a class="type" href="type.Error.html" title="type bdk_esplora::Error">Error</a>>;
+ fn <a href="#tymethod.full_scan" class="fn">full_scan</a><K: <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/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>>(<br> &self,<br> request: FullScanRequest<K>,<br> stop_gap: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br> ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><FullScanResult<K>, <a class="type" href="type.Error.html" title="type bdk_esplora::Error">Error</a>>;
+<span class="item-spacer"></span> fn <a href="#tymethod.sync" class="fn">sync</a>(<br> &self,<br> request: SyncRequest,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br> ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><SyncResult, <a class="type" href="type.Error.html" title="type bdk_esplora::Error">Error</a>>;
}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Trait to extend the functionality of [<code>esplora_client::BlockingClient</code>].</p>
<p>Refer to <a href="index.html">crate-level documentation</a> for more.</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 method-toggle" open><summary><section id="tymethod.full_scan" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_esplora/blocking_ext.rs.html#48-53">source</a><h4 class="code-header">fn <a href="#tymethod.full_scan" class="fn">full_scan</a><K: <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/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>>(<br> &self,<br> request: <a class="struct" href="../bdk_chain/spk_client/struct.FullScanRequest.html" title="struct bdk_chain::spk_client::FullScanRequest">FullScanRequest</a><K>,<br> stop_gap: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</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="struct" href="../bdk_chain/spk_client/struct.FullScanResult.html" title="struct bdk_chain::spk_client::FullScanResult">FullScanResult</a><K>, <a class="type" href="type.Error.html" title="type bdk_esplora::Error">Error</a>></h4></section></summary><div class="docblock"><p>Scan keychain scripts for transactions against Esplora, returning an update that can be
+</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 method-toggle" open><summary><section id="tymethod.full_scan" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_esplora/blocking_ext.rs.html#48-53">source</a><h4 class="code-header">fn <a href="#tymethod.full_scan" class="fn">full_scan</a><K: <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/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>>(<br> &self,<br> request: FullScanRequest<K>,<br> stop_gap: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><FullScanResult<K>, <a class="type" href="type.Error.html" title="type bdk_esplora::Error">Error</a>></h4></section></summary><div class="docblock"><p>Scan keychain scripts for transactions against Esplora, returning an update that can be
applied to the receiving structures.</p>
<ul>
<li><code>request</code>: struct with data required to perform a spk-based blockchain client full scan,
-see <a href="../bdk_chain/spk_client/struct.FullScanRequest.html" title="FullScanRequest"><code>FullScanRequest</code></a></li>
+see [<code>FullScanRequest</code>]</li>
</ul>
<p>The full scan for each keychain stops after a gap of <code>stop_gap</code> script pubkeys with no
associated transactions. <code>parallel_requests</code> specifies the max number of HTTP requests to
<a href="https://docs.btcpayserver.org/FAQ/Wallet/#the-gap-limit-problem">BTCPay Server</a>,
and <a href="https://www.sparrowwallet.com/docs/faq.html#ive-restored-my-wallet-but-some-of-my-funds-are-missing">Sparrow</a>.</p>
<p>A <code>stop_gap</code> of 0 will be treated as a <code>stop_gap</code> of 1.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.sync" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_esplora/blocking_ext.rs.html#65">source</a><h4 class="code-header">fn <a href="#tymethod.sync" class="fn">sync</a>(<br> &self,<br> request: <a class="struct" href="../bdk_chain/spk_client/struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest">SyncRequest</a>,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</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="struct" href="../bdk_chain/spk_client/struct.SyncResult.html" title="struct bdk_chain::spk_client::SyncResult">SyncResult</a>, <a class="type" href="type.Error.html" title="type bdk_esplora::Error">Error</a>></h4></section></summary><div class="docblock"><p>Sync a set of scripts with the blockchain (via an Esplora client) for the data
-specified and return a <a href="../bdk_chain/tx_graph/struct.TxGraph.html" title="TxGraph"><code>TxGraph</code></a>.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.sync" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_esplora/blocking_ext.rs.html#65">source</a><h4 class="code-header">fn <a href="#tymethod.sync" class="fn">sync</a>(<br> &self,<br> request: SyncRequest,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><SyncResult, <a class="type" href="type.Error.html" title="type bdk_esplora::Error">Error</a>></h4></section></summary><div class="docblock"><p>Sync a set of scripts with the blockchain (via an Esplora client) for the data
+specified and return a [<code>TxGraph</code>].</p>
<ul>
<li><code>request</code>: struct with data required to perform a spk-based blockchain client sync, see
-<a href="../bdk_chain/spk_client/struct.SyncRequest.html" title="SyncRequest"><code>SyncRequest</code></a></li>
+[<code>SyncRequest</code>]</li>
</ul>
<p>If the scripts to sync are unknown, such as when restoring or importing a keychain that
may include scripts that have been used, use <a href="trait.EsploraExt.html#tymethod.full_scan"><code>full_scan</code></a> with the keychain.</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><section id="impl-EsploraExt-for-BlockingClient" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_esplora/blocking_ext.rs.html#68-115">source</a><a href="#impl-EsploraExt-for-BlockingClient" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.EsploraExt.html" title="trait bdk_esplora::EsploraExt">EsploraExt</a> for BlockingClient</h3></section></summary><div class="impl-items"><section id="method.full_scan" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_esplora/blocking_ext.rs.html#69-93">source</a><a href="#method.full_scan" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.full_scan" class="fn">full_scan</a><K: <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/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>>(<br> &self,<br> request: <a class="struct" href="../bdk_chain/spk_client/struct.FullScanRequest.html" title="struct bdk_chain::spk_client::FullScanRequest">FullScanRequest</a><K>,<br> stop_gap: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</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="struct" href="../bdk_chain/spk_client/struct.FullScanResult.html" title="struct bdk_chain::spk_client::FullScanResult">FullScanResult</a><K>, <a class="type" href="type.Error.html" title="type bdk_esplora::Error">Error</a>></h4></section><section id="method.sync" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_esplora/blocking_ext.rs.html#95-114">source</a><a href="#method.sync" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.sync" class="fn">sync</a>(<br> &self,<br> request: <a class="struct" href="../bdk_chain/spk_client/struct.SyncRequest.html" title="struct bdk_chain::spk_client::SyncRequest">SyncRequest</a>,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</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="struct" href="../bdk_chain/spk_client/struct.SyncResult.html" title="struct bdk_chain::spk_client::SyncResult">SyncResult</a>, <a class="type" href="type.Error.html" title="type bdk_esplora::Error">Error</a>></h4></section></div></details><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../implementors/bdk_esplora/blocking_ext/trait.EsploraExt.js" data-ignore-extern-crates="esplora_client" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk_esplora" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+</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><section id="impl-EsploraExt-for-BlockingClient" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_esplora/blocking_ext.rs.html#68-115">source</a><a href="#impl-EsploraExt-for-BlockingClient" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.EsploraExt.html" title="trait bdk_esplora::EsploraExt">EsploraExt</a> for BlockingClient</h3></section></summary><div class="impl-items"><section id="method.full_scan" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_esplora/blocking_ext.rs.html#69-93">source</a><a href="#method.full_scan" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.full_scan" class="fn">full_scan</a><K: <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/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>>(<br> &self,<br> request: FullScanRequest<K>,<br> stop_gap: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><FullScanResult<K>, <a class="type" href="type.Error.html" title="type bdk_esplora::Error">Error</a>></h4></section><section id="method.sync" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_esplora/blocking_ext.rs.html#95-114">source</a><a href="#method.sync" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.sync" class="fn">sync</a>(<br> &self,<br> request: SyncRequest,<br> parallel_requests: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><SyncResult, <a class="type" href="type.Error.html" title="type bdk_esplora::Error">Error</a>></h4></section></div></details><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../implementors/bdk_esplora/blocking_ext/trait.EsploraExt.js" data-ignore-extern-crates="esplora_client" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk_esplora" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
<!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="Persists an append-only list of changesets (`C`) to a single file."><meta name="keywords" content="rust, rustlang, rust-lang, Store"><title>Store in bdk_file_store - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk_file_store/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk_file_store/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">Store</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.aggregate_changesets">aggregate_changesets</a></li><li><a href="#method.append_changeset">append_changeset</a></li><li><a href="#method.create_new">create_new</a></li><li><a href="#method.iter_changesets">iter_changesets</a></li><li><a href="#method.open">open</a></li><li><a href="#method.open_or_create_new">open_or_create_new</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-Store%3CC%3E">Debug</a></li><li><a href="#impl-PersistBackend%3CC%3E-for-Store%3CC%3E">PersistBackend<C></a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Store%3CC%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Store%3CC%3E">Send</a></li><li><a href="#impl-Sync-for-Store%3CC%3E">Sync</a></li><li><a href="#impl-Unpin-for-Store%3CC%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Store%3CC%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Store%3CC%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Store%3CC%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Store%3CC%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Store%3CC%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Store%3CC%3E">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-Store%3CC%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Store%3CC%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Store%3CC%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_file_store</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="index.html">bdk_file_store</a>::<wbr><a class="struct" href="#">Store</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk_file_store/store.rs.html#16-23">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Store<C><span class="where fmt-newline">where<br> C: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span>{ /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Persists an append-only list of changesets (<code>C</code>) to a single file.</p>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Store%3CC%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_file_store/store.rs.html#44-204">source</a><a href="#impl-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<C> <a class="struct" href="struct.Store.html" title="struct bdk_file_store::Store">Store</a><C><span class="where fmt-newline">where<br> C: <a class="trait" href="../bdk_chain/tx_data_traits/trait.Append.html" title="trait bdk_chain::tx_data_traits::Append">Append</a> + <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> + <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.create_new" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_file_store/store.rs.html#58-82">source</a><h4 class="code-header">pub fn <a href="#method.create_new" class="fn">create_new</a><P>(magic: &[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>], file_path: P) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, <a class="enum" href="enum.FileError.html" title="enum bdk_file_store::FileError">FileError</a>><span class="where fmt-newline">where<br> P: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a><<a class="struct" href="https://doc.rust-lang.org/nightly/std/path/struct.Path.html" title="struct std::path::Path">Path</a>>,</span></h4></section></summary><div class="docblock"><p>Create a new <a href="struct.Store.html" title="Store"><code>Store</code></a> file in write-only mode; error if the file exists.</p>
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Store%3CC%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_file_store/store.rs.html#44-204">source</a><a href="#impl-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<C> <a class="struct" href="struct.Store.html" title="struct bdk_file_store::Store">Store</a><C><span class="where fmt-newline">where<br> C: Append + <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> + <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.create_new" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_file_store/store.rs.html#58-82">source</a><h4 class="code-header">pub fn <a href="#method.create_new" class="fn">create_new</a><P>(magic: &[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>], file_path: P) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, <a class="enum" href="enum.FileError.html" title="enum bdk_file_store::FileError">FileError</a>><span class="where fmt-newline">where<br> P: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a><<a class="struct" href="https://doc.rust-lang.org/nightly/std/path/struct.Path.html" title="struct std::path::Path">Path</a>>,</span></h4></section></summary><div class="docblock"><p>Create a new <a href="struct.Store.html" title="Store"><code>Store</code></a> file in write-only mode; error if the file exists.</p>
<p><code>magic</code> is the prefixed bytes to write to the new file. This will be checked when opening
the <code>Store</code> in the future with <a href="struct.Store.html#method.open"><code>open</code></a>.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.open" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_file_store/store.rs.html#94-114">source</a><h4 class="code-header">pub fn <a href="#method.open" class="fn">open</a><P>(magic: &[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>], file_path: P) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, <a class="enum" href="enum.FileError.html" title="enum bdk_file_store::FileError">FileError</a>><span class="where fmt-newline">where<br> P: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a><<a class="struct" href="https://doc.rust-lang.org/nightly/std/path/struct.Path.html" title="struct std::path::Path">Path</a>>,</span></h4></section></summary><div class="docblock"><p>Open an existing <a href="struct.Store.html" title="Store"><code>Store</code></a>.</p>
changeset.</p>
<p>The truncation is to avoid the possibility of having a valid but inconsistent changeset
directly after the appended changeset.</p>
-</div></details></div></details></div><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><section id="impl-Debug-for-Store%3CC%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_file_store/store.rs.html#15">source</a><a href="#impl-Debug-for-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<C> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Store.html" title="struct bdk_file_store::Store">Store</a><C><span class="where fmt-newline">where<br> C: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_file_store/store.rs.html#15">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PersistBackend%3CC%3E-for-Store%3CC%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_file_store/store.rs.html#25-42">source</a><a href="#impl-PersistBackend%3CC%3E-for-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<C> PersistBackend<C> for <a class="struct" href="struct.Store.html" title="struct bdk_file_store::Store">Store</a><C><span class="where fmt-newline">where<br> C: <a class="trait" href="../bdk_chain/tx_data_traits/trait.Append.html" title="trait bdk_chain::tx_data_traits::Append">Append</a> + <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> + <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.write_changes" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_file_store/store.rs.html#33-36">source</a><a href="#method.write_changes" class="anchor">§</a><h4 class="code-header">fn <a class="fn">write_changes</a>(&mut self, changeset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>C) -> <a class="type" href="https://docs.rs/anyhow/1.0.83/anyhow/type.Result.html" title="type anyhow::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>></h4></section></summary><div class='docblock'>Writes a changeset to the persistence backend. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.load_from_persistence" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_file_store/store.rs.html#38-41">source</a><a href="#method.load_from_persistence" class="anchor">§</a><h4 class="code-header">fn <a class="fn">load_from_persistence</a>(&mut self) -> <a class="type" href="https://docs.rs/anyhow/1.0.83/anyhow/type.Result.html" title="type anyhow::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><C>></h4></section></summary><div class='docblock'>Return the aggregate changeset <code>C</code> from persistence.</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Store%3CC%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<C> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Store.html" title="struct bdk_file_store::Store">Store</a><C><span class="where fmt-newline">where<br> C: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-Store%3CC%3E" class="impl has-srclink"><a href="#impl-Send-for-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<C> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Store.html" title="struct bdk_file_store::Store">Store</a><C></h3></section><section id="impl-Sync-for-Store%3CC%3E" class="impl has-srclink"><a href="#impl-Sync-for-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<C> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Store.html" title="struct bdk_file_store::Store">Store</a><C></h3></section><section id="impl-Unpin-for-Store%3CC%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<C> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Store.html" title="struct bdk_file_store::Store">Store</a><C><span class="where fmt-newline">where<br> C: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-Store%3CC%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<C> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Store.html" title="struct bdk_file_store::Store">Store</a><C><span class="where fmt-newline">where<br> C: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Store%3CC%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Store%3CC%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Store%3CC%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Store%3CC%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details></div><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><section id="impl-Debug-for-Store%3CC%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_file_store/store.rs.html#15">source</a><a href="#impl-Debug-for-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<C> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Store.html" title="struct bdk_file_store::Store">Store</a><C><span class="where fmt-newline">where<br> C: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_file_store/store.rs.html#15">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PersistBackend%3CC%3E-for-Store%3CC%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_file_store/store.rs.html#25-42">source</a><a href="#impl-PersistBackend%3CC%3E-for-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<C> PersistBackend<C> for <a class="struct" href="struct.Store.html" title="struct bdk_file_store::Store">Store</a><C><span class="where fmt-newline">where<br> C: Append + <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> + <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.write_changes" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_file_store/store.rs.html#33-36">source</a><a href="#method.write_changes" class="anchor">§</a><h4 class="code-header">fn <a class="fn">write_changes</a>(&mut self, changeset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>C) -> <a class="type" href="https://docs.rs/anyhow/1.0.83/anyhow/type.Result.html" title="type anyhow::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>></h4></section></summary><div class='docblock'>Writes a changeset to the persistence backend. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.load_from_persistence" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_file_store/store.rs.html#38-41">source</a><a href="#method.load_from_persistence" class="anchor">§</a><h4 class="code-header">fn <a class="fn">load_from_persistence</a>(&mut self) -> <a class="type" href="https://docs.rs/anyhow/1.0.83/anyhow/type.Result.html" title="type anyhow::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><C>></h4></section></summary><div class='docblock'>Return the aggregate changeset <code>C</code> from persistence.</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Store%3CC%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<C> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Store.html" title="struct bdk_file_store::Store">Store</a><C><span class="where fmt-newline">where<br> C: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-Store%3CC%3E" class="impl has-srclink"><a href="#impl-Send-for-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<C> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Store.html" title="struct bdk_file_store::Store">Store</a><C></h3></section><section id="impl-Sync-for-Store%3CC%3E" class="impl has-srclink"><a href="#impl-Sync-for-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<C> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Store.html" title="struct bdk_file_store::Store">Store</a><C></h3></section><section id="impl-Unpin-for-Store%3CC%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<C> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Store.html" title="struct bdk_file_store::Store">Store</a><C><span class="where fmt-newline">where<br> C: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-Store%3CC%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<C> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Store.html" title="struct bdk_file_store::Store">Store</a><C><span class="where fmt-newline">where<br> C: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Store%3CC%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Store%3CC%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Store%3CC%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Store%3CC%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Store%3CC%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Store%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<p>That is, this conversion is whatever the implementation of
<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
<!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="HWI Signer"><meta name="keywords" content="rust, rustlang, rust-lang, bdk_hwi"><title>bdk_hwi - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk_hwi/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk_hwi/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">Crate bdk_hwi</a></h2><div class="sidebar-elems"><ul class="block"><li class="version">Version 0.2.0</li><li><a id="all-types" href="all.html">All Items</a></li></ul><section><ul class="block"><li><a href="#structs">Structs</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Crate <a class="mod" href="#">bdk_hwi</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk_hwi/lib.rs.html#1-41">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>HWI Signer</p>
-<p>This crate contains HWISigner, an implementation of a <a href="bdk::wallet::signer::TransactionSigner"><code>TransactionSigner</code></a> to be
+<p>This crate contains HWISigner, an implementation of a <a href="bdk_wallet::wallet::signer::TransactionSigner"><code>TransactionSigner</code></a> to be
used with hardware wallets.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>devices = HWIClient::enumerate()<span class="question-mark">?</span>;
<p>Not all changes to the in-memory representation needs to be written to disk right away, so
<a href="struct.Persist.html#method.stage" title="Persist::stage"><code>Persist::stage</code></a> can be used to <em>stage</em> changes first and then <a href="struct.Persist.html#method.commit" title="Persist::commit"><code>Persist::commit</code></a> can be used
to write changes to disk.</p>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Persist%3CC%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_persist/persist.rs.html#24-77">source</a><a href="#impl-Persist%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<C> <a class="struct" href="struct.Persist.html" title="struct bdk_persist::Persist">Persist</a><C><span class="where fmt-newline">where<br> C: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + <a class="trait" href="../bdk_chain/tx_data_traits/trait.Append.html" title="trait bdk_chain::tx_data_traits::Append">Append</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_persist/persist.rs.html#29-35">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(backend: impl <a class="trait" href="trait.PersistBackend.html" title="trait bdk_persist::PersistBackend">PersistBackend</a><C> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static) -> Self</h4></section></summary><div class="docblock"><p>Create a new <a href="struct.Persist.html" title="Persist"><code>Persist</code></a> from <a href="trait.PersistBackend.html" title="PersistBackend"><code>PersistBackend</code></a>.</p>
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Persist%3CC%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_persist/persist.rs.html#24-77">source</a><a href="#impl-Persist%3CC%3E" class="anchor">§</a><h3 class="code-header">impl<C> <a class="struct" href="struct.Persist.html" title="struct bdk_persist::Persist">Persist</a><C><span class="where fmt-newline">where<br> C: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + Append,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_persist/persist.rs.html#29-35">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(backend: impl <a class="trait" href="trait.PersistBackend.html" title="trait bdk_persist::PersistBackend">PersistBackend</a><C> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static) -> Self</h4></section></summary><div class="docblock"><p>Create a new <a href="struct.Persist.html" title="Persist"><code>Persist</code></a> from <a href="trait.PersistBackend.html" title="PersistBackend"><code>PersistBackend</code></a>.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.stage" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_persist/persist.rs.html#40-42">source</a><h4 class="code-header">pub fn <a href="#method.stage" class="fn">stage</a>(&mut self, changeset: C)</h4></section></summary><div class="docblock"><p>Stage a <code>changeset</code> to be committed later with <a href="struct.Persist.html#method.commit"><code>commit</code></a>.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.staged" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_persist/persist.rs.html#45-47">source</a><h4 class="code-header">pub fn <a href="#method.staged" class="fn">staged</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>C</h4></section></summary><div class="docblock"><p>Get the changes that have not been committed yet.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.commit" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_persist/persist.rs.html#56-64">source</a><h4 class="code-header">pub fn <a href="#method.commit" class="fn">commit</a>(&mut self) -> <a class="type" href="https://docs.rs/anyhow/1.0.83/anyhow/type.Result.html" title="type anyhow::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><C>></h4></section></summary><div class="docblock"><p>Commit the staged changes to the underlying persistence backend.</p>
--- /dev/null
+<!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="List of all items in this crate"><meta name="keywords" content="rust, rustlang, rust-lang"><title>List of all items in this crate</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location">Crate bdk_wallet</h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#macros">Macros</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="#functions">Functions</a></li><li><a href="#types">Type Definitions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><h1 class="fqn">List of all items</h1><h3 id="structs">Structs</h3><ul class="all-items"><li><a href="struct.LocalOutput.html">LocalOutput</a></li><li><a href="struct.WeightedUtxo.html">WeightedUtxo</a></li><li><a href="descriptor/struct.Miniscript.html">descriptor::Miniscript</a></li><li><a href="descriptor/policy/struct.Condition.html">descriptor::policy::Condition</a></li><li><a href="descriptor/policy/struct.Policy.html">descriptor::policy::Policy</a></li><li><a href="descriptor/template/struct.Bip44.html">descriptor::template::Bip44</a></li><li><a href="descriptor/template/struct.Bip44Public.html">descriptor::template::Bip44Public</a></li><li><a href="descriptor/template/struct.Bip49.html">descriptor::template::Bip49</a></li><li><a href="descriptor/template/struct.Bip49Public.html">descriptor::template::Bip49Public</a></li><li><a href="descriptor/template/struct.Bip84.html">descriptor::template::Bip84</a></li><li><a href="descriptor/template/struct.Bip84Public.html">descriptor::template::Bip84Public</a></li><li><a href="descriptor/template/struct.Bip86.html">descriptor::template::Bip86</a></li><li><a href="descriptor/template/struct.Bip86Public.html">descriptor::template::Bip86Public</a></li><li><a href="descriptor/template/struct.P2Pkh.html">descriptor::template::P2Pkh</a></li><li><a href="descriptor/template/struct.P2TR.html">descriptor::template::P2TR</a></li><li><a href="descriptor/template/struct.P2Wpkh.html">descriptor::template::P2Wpkh</a></li><li><a href="descriptor/template/struct.P2Wpkh_P2Sh.html">descriptor::template::P2Wpkh_P2Sh</a></li><li><a href="keys/struct.GeneratedKey.html">keys::GeneratedKey</a></li><li><a href="keys/struct.PrivateKeyGenerateOptions.html">keys::PrivateKeyGenerateOptions</a></li><li><a href="keys/struct.SinglePriv.html">keys::SinglePriv</a></li><li><a href="keys/struct.SinglePub.html">keys::SinglePub</a></li><li><a href="keys/struct.SortedMultiVec.html">keys::SortedMultiVec</a></li><li><a href="wallet/struct.AddressInfo.html">wallet::AddressInfo</a></li><li><a href="wallet/struct.Balance.html">wallet::Balance</a></li><li><a href="wallet/struct.ChangeSet.html">wallet::ChangeSet</a></li><li><a href="wallet/struct.Update.html">wallet::Update</a></li><li><a href="wallet/struct.Wallet.html">wallet::Wallet</a></li><li><a href="wallet/coin_selection/struct.BranchAndBoundCoinSelection.html">wallet::coin_selection::BranchAndBoundCoinSelection</a></li><li><a href="wallet/coin_selection/struct.CoinSelectionResult.html">wallet::coin_selection::CoinSelectionResult</a></li><li><a href="wallet/coin_selection/struct.LargestFirstCoinSelection.html">wallet::coin_selection::LargestFirstCoinSelection</a></li><li><a href="wallet/coin_selection/struct.OldestFirstCoinSelection.html">wallet::coin_selection::OldestFirstCoinSelection</a></li><li><a href="wallet/export/struct.FullyNodedExport.html">wallet::export::FullyNodedExport</a></li><li><a href="wallet/signer/struct.SignOptions.html">wallet::signer::SignOptions</a></li><li><a href="wallet/signer/struct.SignerOrdering.html">wallet::signer::SignerOrdering</a></li><li><a href="wallet/signer/struct.SignerWrapper.html">wallet::signer::SignerWrapper</a></li><li><a href="wallet/signer/struct.SignersContainer.html">wallet::signer::SignersContainer</a></li><li><a href="wallet/tx_builder/struct.BumpFee.html">wallet::tx_builder::BumpFee</a></li><li><a href="wallet/tx_builder/struct.CreateTx.html">wallet::tx_builder::CreateTx</a></li><li><a href="wallet/tx_builder/struct.TxBuilder.html">wallet::tx_builder::TxBuilder</a></li></ul><h3 id="enums">Enums</h3><ul class="all-items"><li><a href="enum.KeychainKind.html">KeychainKind</a></li><li><a href="enum.Utxo.html">Utxo</a></li><li><a href="descriptor/enum.Descriptor.html">descriptor::Descriptor</a></li><li><a href="descriptor/enum.DescriptorPublicKey.html">descriptor::DescriptorPublicKey</a></li><li><a href="descriptor/enum.Legacy.html">descriptor::Legacy</a></li><li><a href="descriptor/enum.Segwitv0.html">descriptor::Segwitv0</a></li><li><a href="descriptor/error/enum.Error.html">descriptor::error::Error</a></li><li><a href="descriptor/policy/enum.BuildSatisfaction.html">descriptor::policy::BuildSatisfaction</a></li><li><a href="descriptor/policy/enum.PkOrF.html">descriptor::policy::PkOrF</a></li><li><a href="descriptor/policy/enum.PolicyError.html">descriptor::policy::PolicyError</a></li><li><a href="descriptor/policy/enum.Satisfaction.html">descriptor::policy::Satisfaction</a></li><li><a href="descriptor/policy/enum.SatisfiableItem.html">descriptor::policy::SatisfiableItem</a></li><li><a href="keys/enum.DescriptorKey.html">keys::DescriptorKey</a></li><li><a href="keys/enum.DescriptorPublicKey.html">keys::DescriptorPublicKey</a></li><li><a href="keys/enum.DescriptorSecretKey.html">keys::DescriptorSecretKey</a></li><li><a href="keys/enum.ExtendedKey.html">keys::ExtendedKey</a></li><li><a href="keys/enum.KeyError.html">keys::KeyError</a></li><li><a href="keys/enum.ScriptContextEnum.html">keys::ScriptContextEnum</a></li><li><a href="keys/enum.SinglePubKey.html">keys::SinglePubKey</a></li><li><a href="wallet/enum.ApplyBlockError.html">wallet::ApplyBlockError</a></li><li><a href="wallet/enum.InsertTxError.html">wallet::InsertTxError</a></li><li><a href="wallet/enum.LoadError.html">wallet::LoadError</a></li><li><a href="wallet/enum.NewError.html">wallet::NewError</a></li><li><a href="wallet/enum.NewOrLoadError.html">wallet::NewOrLoadError</a></li><li><a href="wallet/coin_selection/enum.Error.html">wallet::coin_selection::Error</a></li><li><a href="wallet/coin_selection/enum.Excess.html">wallet::coin_selection::Excess</a></li><li><a href="wallet/error/enum.BuildFeeBumpError.html">wallet::error::BuildFeeBumpError</a></li><li><a href="wallet/error/enum.CreateTxError.html">wallet::error::CreateTxError</a></li><li><a href="wallet/error/enum.MiniscriptPsbtError.html">wallet::error::MiniscriptPsbtError</a></li><li><a href="wallet/signer/enum.SignerContext.html">wallet::signer::SignerContext</a></li><li><a href="wallet/signer/enum.SignerError.html">wallet::signer::SignerError</a></li><li><a href="wallet/signer/enum.SignerId.html">wallet::signer::SignerId</a></li><li><a href="wallet/signer/enum.TapLeavesOptions.html">wallet::signer::TapLeavesOptions</a></li><li><a href="wallet/tx_builder/enum.AddForeignUtxoError.html">wallet::tx_builder::AddForeignUtxoError</a></li><li><a href="wallet/tx_builder/enum.AddUtxoError.html">wallet::tx_builder::AddUtxoError</a></li><li><a href="wallet/tx_builder/enum.AllowShrinkingError.html">wallet::tx_builder::AllowShrinkingError</a></li><li><a href="wallet/tx_builder/enum.ChangeSpendPolicy.html">wallet::tx_builder::ChangeSpendPolicy</a></li><li><a href="wallet/tx_builder/enum.TxOrdering.html">wallet::tx_builder::TxOrdering</a></li></ul><h3 id="traits">Traits</h3><ul class="all-items"><li><a href="descriptor/trait.ExtractPolicy.html">descriptor::ExtractPolicy</a></li><li><a href="descriptor/trait.IntoWalletDescriptor.html">descriptor::IntoWalletDescriptor</a></li><li><a href="descriptor/trait.ScriptContext.html">descriptor::ScriptContext</a></li><li><a href="descriptor/template/trait.DescriptorTemplate.html">descriptor::template::DescriptorTemplate</a></li><li><a href="keys/trait.DerivableKey.html">keys::DerivableKey</a></li><li><a href="keys/trait.ExtScriptContext.html">keys::ExtScriptContext</a></li><li><a href="keys/trait.GeneratableDefaultOptions.html">keys::GeneratableDefaultOptions</a></li><li><a href="keys/trait.GeneratableKey.html">keys::GeneratableKey</a></li><li><a href="keys/trait.IntoDescriptorKey.html">keys::IntoDescriptorKey</a></li><li><a href="keys/trait.ScriptContext.html">keys::ScriptContext</a></li><li><a href="psbt/trait.PsbtUtils.html">psbt::PsbtUtils</a></li><li><a href="wallet/trait.IsDust.html">wallet::IsDust</a></li><li><a href="wallet/coin_selection/trait.CoinSelectionAlgorithm.html">wallet::coin_selection::CoinSelectionAlgorithm</a></li><li><a href="wallet/signer/trait.InputSigner.html">wallet::signer::InputSigner</a></li><li><a href="wallet/signer/trait.SignerCommon.html">wallet::signer::SignerCommon</a></li><li><a href="wallet/signer/trait.TransactionSigner.html">wallet::signer::TransactionSigner</a></li><li><a href="wallet/tx_builder/trait.TxBuilderContext.html">wallet::tx_builder::TxBuilderContext</a></li></ul><h3 id="macros">Macros</h3><ul class="all-items"><li><a href="macro.descriptor.html">descriptor</a></li><li><a href="macro.fragment.html">fragment</a></li></ul><h3 id="functions">Functions</h3><ul class="all-items"><li><a href="descriptor/checksum/fn.calc_checksum.html">descriptor::checksum::calc_checksum</a></li><li><a href="descriptor/checksum/fn.calc_checksum_bytes.html">descriptor::checksum::calc_checksum_bytes</a></li><li><a href="keys/fn.any_network.html">keys::any_network</a></li><li><a href="keys/fn.mainnet_network.html">keys::mainnet_network</a></li><li><a href="keys/fn.merge_networks.html">keys::merge_networks</a></li><li><a href="keys/fn.test_networks.html">keys::test_networks</a></li><li><a href="fn.version.html">version</a></li><li><a href="wallet/coin_selection/fn.decide_change.html">wallet::coin_selection::decide_change</a></li><li><a href="wallet/fn.wallet_name_from_descriptor.html">wallet::wallet_name_from_descriptor</a></li></ul><h3 id="types">Type Definitions</h3><ul class="all-items"><li><a href="descriptor/type.DerivedDescriptor.html">descriptor::DerivedDescriptor</a></li><li><a href="descriptor/type.ExtendedDescriptor.html">descriptor::ExtendedDescriptor</a></li><li><a href="descriptor/type.HdKeyPaths.html">descriptor::HdKeyPaths</a></li><li><a href="descriptor/type.TapKeyOrigins.html">descriptor::TapKeyOrigins</a></li><li><a href="descriptor/policy/type.ConditionMap.html">descriptor::policy::ConditionMap</a></li><li><a href="descriptor/policy/type.FoldedConditionMap.html">descriptor::policy::FoldedConditionMap</a></li><li><a href="descriptor/template/type.DescriptorTemplateOut.html">descriptor::template::DescriptorTemplateOut</a></li><li><a href="keys/type.KeyMap.html">keys::KeyMap</a></li><li><a href="keys/type.ValidNetworks.html">keys::ValidNetworks</a></li><li><a href="wallet/coin_selection/type.DefaultCoinSelectionAlgorithm.html">wallet::coin_selection::DefaultCoinSelectionAlgorithm</a></li><li><a href="wallet/export/type.WalletExport.html">wallet::export::WalletExport</a></li></ul></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Compute the checksum of a descriptor, excludes any existing checksum in the descriptor string from the calculation"><meta name="keywords" content="rust, rustlang, rust-lang, calc_checksum"><title>calc_checksum in bdk_wallet::descriptor::checksum - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In bdk_wallet::descriptor::checksum</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">checksum</a>::<wbr><a class="fn" href="#">calc_checksum</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/checksum.rs.html#93-96">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn calc_checksum(desc: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk_wallet::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>Compute the checksum of a descriptor, excludes any existing checksum in the descriptor string from the calculation</p>
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Compute the checksum bytes of a descriptor, excludes any existing checksum in the descriptor string from the calculation"><meta name="keywords" content="rust, rustlang, rust-lang, calc_checksum_bytes"><title>calc_checksum_bytes in bdk_wallet::descriptor::checksum - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In bdk_wallet::descriptor::checksum</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">checksum</a>::<wbr><a class="fn" href="#">calc_checksum_bytes</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/checksum.rs.html#46-90">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn calc_checksum_bytes(desc: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> <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.u8.html">u8</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">8</a>], <a class="enum" href="../error/enum.Error.html" title="enum bdk_wallet::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>Compute the checksum bytes of a descriptor, excludes any existing checksum in the descriptor string from the calculation</p>
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Descriptor checksum"><meta name="keywords" content="rust, rustlang, rust-lang, checksum"><title>bdk_wallet::descriptor::checksum - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module checksum</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#functions">Functions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a class="mod" href="#">checksum</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/checksum.rs.html#12-147">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Descriptor checksum</p>
+<p>This module contains a re-implementation of the function used by Bitcoin Core to calculate the
+checksum of a descriptor</p>
+</div></details><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.calc_checksum.html" title="bdk_wallet::descriptor::checksum::calc_checksum fn">calc_checksum</a></div><div class="item-right docblock-short">Compute the checksum of a descriptor, excludes any existing checksum in the descriptor string from the calculation</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.calc_checksum_bytes.html" title="bdk_wallet::descriptor::checksum::calc_checksum_bytes fn">calc_checksum_bytes</a></div><div class="item-right docblock-short">Compute the checksum bytes of a descriptor, excludes any existing checksum in the descriptor string from the calculation</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+window.SIDEBAR_ITEMS = {"fn":[["calc_checksum","Compute the checksum of a descriptor, excludes any existing checksum in the descriptor string from the calculation"],["calc_checksum_bytes","Compute the checksum bytes of a descriptor, excludes any existing checksum in the descriptor string from the calculation"]]};
\ No newline at end of file
--- /dev/null
+<!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="Script descriptor"><meta name="keywords" content="rust, rustlang, rust-lang, Descriptor"><title>Descriptor in bdk_wallet::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Descriptor</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Bare">Bare</a></li><li><a href="#variant.Pkh">Pkh</a></li><li><a href="#variant.Sh">Sh</a></li><li><a href="#variant.Tr">Tr</a></li><li><a href="#variant.Wpkh">Wpkh</a></li><li><a href="#variant.Wsh">Wsh</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.address">address</a></li><li><a href="#method.at_derivation_index">at_derivation_index</a></li><li><a href="#method.derive">derive</a></li><li><a href="#method.derived_descriptor">derived_descriptor</a></li><li><a href="#method.derived_descriptor-1">derived_descriptor</a></li><li><a href="#method.desc_type">desc_type</a></li><li><a href="#method.explicit_script">explicit_script</a></li><li><a href="#method.find_derivation_index_for_spk">find_derivation_index_for_spk</a></li><li><a href="#method.get_satisfaction">get_satisfaction</a></li><li><a href="#method.get_satisfaction_mall">get_satisfaction_mall</a></li><li><a href="#method.has_wildcard">has_wildcard</a></li><li><a href="#method.into_single_descriptors">into_single_descriptors</a></li><li><a href="#method.is_deriveable">is_deriveable</a></li><li><a href="#method.is_multipath">is_multipath</a></li><li><a href="#method.max_satisfaction_weight">max_satisfaction_weight</a></li><li><a href="#method.max_weight_to_satisfy">max_weight_to_satisfy</a></li><li><a href="#method.new_bare">new_bare</a></li><li><a href="#method.new_pk">new_pk</a></li><li><a href="#method.new_pkh">new_pkh</a></li><li><a href="#method.new_sh">new_sh</a></li><li><a href="#method.new_sh_sortedmulti">new_sh_sortedmulti</a></li><li><a href="#method.new_sh_with_wpkh">new_sh_with_wpkh</a></li><li><a href="#method.new_sh_with_wsh">new_sh_with_wsh</a></li><li><a href="#method.new_sh_wpkh">new_sh_wpkh</a></li><li><a href="#method.new_sh_wsh">new_sh_wsh</a></li><li><a href="#method.new_sh_wsh_sortedmulti">new_sh_wsh_sortedmulti</a></li><li><a href="#method.new_tr">new_tr</a></li><li><a href="#method.new_wpkh">new_wpkh</a></li><li><a href="#method.new_wsh">new_wsh</a></li><li><a href="#method.new_wsh_sortedmulti">new_wsh_sortedmulti</a></li><li><a href="#method.parse_descriptor">parse_descriptor</a></li><li><a href="#method.plan">plan</a></li><li><a href="#method.plan_mall">plan_mall</a></li><li><a href="#method.sanity_check">sanity_check</a></li><li><a href="#method.satisfy">satisfy</a></li><li><a href="#method.script_code">script_code</a></li><li><a href="#method.script_pubkey">script_pubkey</a></li><li><a href="#method.to_string_with_secret">to_string_with_secret</a></li><li><a href="#method.unsigned_script_sig">unsigned_script_sig</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-Descriptor%3CPk%3E">Clone</a></li><li><a href="#impl-Debug-for-Descriptor%3CPk%3E">Debug</a></li><li><a href="#impl-DescriptorExt-for-Descriptor%3CDescriptorPublicKey%3E">DescriptorExt</a></li><li><a href="#impl-Deserialize%3C%27de%3E-for-Descriptor%3CPk%3E">Deserialize<'de></a></li><li><a href="#impl-Display-for-Descriptor%3CPk%3E">Display</a></li><li><a href="#impl-Eq-for-Descriptor%3CPk%3E">Eq</a></li><li><a href="#impl-ExtractPolicy-for-Descriptor%3CDescriptorPublicKey%3E">ExtractPolicy</a></li><li><a href="#impl-ForEachKey%3CPk%3E-for-Descriptor%3CPk%3E">ForEachKey<Pk></a></li><li><a href="#impl-From%3CBare%3CPk%3E%3E-for-Descriptor%3CPk%3E">From<Bare<Pk>></a></li><li><a href="#impl-From%3CPkh%3CPk%3E%3E-for-Descriptor%3CPk%3E">From<Pkh<Pk>></a></li><li><a href="#impl-From%3CSh%3CPk%3E%3E-for-Descriptor%3CPk%3E">From<Sh<Pk>></a></li><li><a href="#impl-From%3CTr%3CPk%3E%3E-for-Descriptor%3CPk%3E">From<Tr<Pk>></a></li><li><a href="#impl-From%3CWpkh%3CPk%3E%3E-for-Descriptor%3CPk%3E">From<Wpkh<Pk>></a></li><li><a href="#impl-From%3CWsh%3CPk%3E%3E-for-Descriptor%3CPk%3E">From<Wsh<Pk>></a></li><li><a href="#impl-FromStr-for-Descriptor%3CPk%3E">FromStr</a></li><li><a href="#impl-FromTree-for-Descriptor%3CPk%3E">FromTree</a></li><li><a href="#impl-Hash-for-Descriptor%3CPk%3E">Hash</a></li><li><a href="#impl-Liftable%3CPk%3E-for-Descriptor%3CPk%3E">Liftable<Pk></a></li><li><a href="#impl-Ord-for-Descriptor%3CPk%3E">Ord</a></li><li><a href="#impl-PartialEq%3CDescriptor%3CPk%3E%3E-for-Descriptor%3CPk%3E">PartialEq<Descriptor<Pk>></a></li><li><a href="#impl-PartialOrd%3CDescriptor%3CPk%3E%3E-for-Descriptor%3CPk%3E">PartialOrd<Descriptor<Pk>></a></li><li><a href="#impl-Serialize-for-Descriptor%3CPk%3E">Serialize</a></li><li><a href="#impl-StructuralEq-for-Descriptor%3CPk%3E">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-Descriptor%3CPk%3E">StructuralPartialEq</a></li><li><a href="#impl-TranslatePk%3CP%2C%20Q%3E-for-Descriptor%3CP%3E">TranslatePk<P, Q></a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Descriptor%3CPk%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Descriptor%3CPk%3E">Send</a></li><li><a href="#impl-Sync-for-Descriptor%3CPk%3E">Sync</a></li><li><a href="#impl-Unpin-for-Descriptor%3CPk%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Descriptor%3CPk%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Descriptor%3CPk%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Descriptor%3CPk%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Descriptor%3CPk%3E">BorrowMut<T></a></li><li><a href="#impl-DeserializeOwned-for-Descriptor%3CPk%3E">DeserializeOwned</a></li><li><a href="#impl-From%3CT%3E-for-Descriptor%3CPk%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Descriptor%3CPk%3E">Into<U></a></li><li><a href="#impl-ToOwned-for-Descriptor%3CPk%3E">ToOwned</a></li><li><a href="#impl-ToString-for-Descriptor%3CPk%3E">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Descriptor%3CPk%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Descriptor%3CPk%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Descriptor%3CPk%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="enum" href="#">Descriptor</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum Descriptor<Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span>{
+ Bare(Bare<Pk>),
+ Pkh(Pkh<Pk>),
+ Wpkh(Wpkh<Pk>),
+ Sh(Sh<Pk>),
+ Wsh(Wsh<Pk>),
+ Tr(Tr<Pk>),
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Script descriptor</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Bare" class="variant"><a href="#variant.Bare" class="anchor">§</a><h3 class="code-header">Bare(Bare<Pk>)</h3></section><div class="docblock"><p>A raw scriptpubkey (including pay-to-pubkey) under Legacy context</p>
+</div><section id="variant.Pkh" class="variant"><a href="#variant.Pkh" class="anchor">§</a><h3 class="code-header">Pkh(Pkh<Pk>)</h3></section><div class="docblock"><p>Pay-to-PubKey-Hash</p>
+</div><section id="variant.Wpkh" class="variant"><a href="#variant.Wpkh" class="anchor">§</a><h3 class="code-header">Wpkh(Wpkh<Pk>)</h3></section><div class="docblock"><p>Pay-to-Witness-PubKey-Hash</p>
+</div><section id="variant.Sh" class="variant"><a href="#variant.Sh" class="anchor">§</a><h3 class="code-header">Sh(Sh<Pk>)</h3></section><div class="docblock"><p>Pay-to-ScriptHash(includes nested wsh/wpkh/sorted multi)</p>
+</div><section id="variant.Wsh" class="variant"><a href="#variant.Wsh" class="anchor">§</a><h3 class="code-header">Wsh(Wsh<Pk>)</h3></section><div class="docblock"><p>Pay-to-Witness-ScriptHash with Segwitv0 context</p>
+</div><section id="variant.Tr" class="variant"><a href="#variant.Tr" class="anchor">§</a><h3 class="code-header">Tr(Tr<Pk>)</h3></section><div class="docblock"><p>Pay-to-Taproot</p>
+</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_pk" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_pk" class="fn">new_pk</a>(pk: Pk) -> <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk></h4></section></summary><div class="docblock"><p>Create a new pk descriptor</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_pkh" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_pkh" class="fn">new_pkh</a>(pk: Pk) -> <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="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Create a new PkH descriptor</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_wpkh" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_wpkh" class="fn">new_wpkh</a>(pk: Pk) -> <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="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Create a new Wpkh descriptor
+Will return Err if uncompressed key is used</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_sh_wpkh" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_sh_wpkh" class="fn">new_sh_wpkh</a>(pk: Pk) -> <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="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Create a new sh wrapped wpkh from <code>Pk</code>.
+Errors when uncompressed keys are supplied</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_sh" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_sh" class="fn">new_sh</a>(ms: <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a>>) -> <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="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Create a new sh for a given redeem script
+Errors when miniscript exceeds resource limits under p2sh context
+or does not type check at the top level</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_wsh" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_wsh" class="fn">new_wsh</a>(ms: <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>>) -> <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="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Create a new wsh descriptor from witness script
+Errors when miniscript exceeds resource limits under p2sh context
+or does not type check at the top level</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_sh_wsh" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_sh_wsh" class="fn">new_sh_wsh</a>(ms: <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>>) -> <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="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Create a new sh wrapped wsh descriptor with witness script
+Errors when miniscript exceeds resource limits under wsh context
+or does not type check at the top level</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_bare" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_bare" class="fn">new_bare</a>(ms: <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, BareCtx>) -> <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="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Create a new bare descriptor from witness script
+Errors when miniscript exceeds resource limits under bare context
+or does not type check at the top level</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_sh_with_wpkh" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_sh_with_wpkh" class="fn">new_sh_with_wpkh</a>(wpkh: Wpkh<Pk>) -> <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk></h4></section></summary><div class="docblock"><p>Create a new sh wrapper for the given wpkh descriptor</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_sh_with_wsh" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_sh_with_wsh" class="fn">new_sh_with_wsh</a>(wsh: Wsh<Pk>) -> <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk></h4></section></summary><div class="docblock"><p>Create a new sh wrapper for the given wsh descriptor</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_sh_sortedmulti" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_sh_sortedmulti" class="fn">new_sh_sortedmulti</a>(<br> k: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> pks: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><Pk, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</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="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Create a new sh sortedmulti descriptor with threshold <code>k</code>
+and Vec of <code>pks</code>.
+Errors when miniscript exceeds resource limits under p2sh context</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_sh_wsh_sortedmulti" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_sh_wsh_sortedmulti" class="fn">new_sh_wsh_sortedmulti</a>(<br> k: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> pks: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><Pk, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</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="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Create a new sh wrapped wsh sortedmulti descriptor from threshold
+<code>k</code> and Vec of <code>pks</code>
+Errors when miniscript exceeds resource limits under segwit context</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_wsh_sortedmulti" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_wsh_sortedmulti" class="fn">new_wsh_sortedmulti</a>(<br> k: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> pks: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><Pk, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</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="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Create a new wsh sorted multi descriptor
+Errors when miniscript exceeds resource limits under p2sh context</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_tr" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new_tr" class="fn">new_tr</a>(<br> key: Pk,<br> script: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><TapTree<Pk>><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="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Create new tr descriptor
+Errors when miniscript exceeds resource limits under Tap context</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.desc_type" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.desc_type" class="fn">desc_type</a>(&self) -> DescriptorType</h4></section></summary><div class="docblock"><p>Get the [DescriptorType] of <a href="enum.Descriptor.html" title="Descriptor">Descriptor</a></p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sanity_check" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.sanity_check" class="fn">sanity_check</a>(&self) -> <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></h4></section></summary><div class="docblock"><p>Checks whether the descriptor is safe.</p>
+<p>Checks whether all the spend paths in the descriptor are possible on the
+bitcoin network under the current standardness and consensus rules. Also
+checks whether the descriptor requires signatures on all spend paths and
+whether the script is malleable.</p>
+<p>In general, all the guarantees of miniscript hold only for safe scripts.
+The signer may not be able to find satisfactions even if one exists.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_weight_to_satisfy" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.max_weight_to_satisfy" class="fn">max_weight_to_satisfy</a>(&self) -> <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.usize.html">usize</a>, Error></h4></section></summary><div class="docblock"><p>Computes an upper bound on the difference between a non-satisfied
+<code>TxIn</code>’s <code>segwit_weight</code> and a satisfied <code>TxIn</code>’s <code>segwit_weight</code></p>
+<p>Since this method uses <code>segwit_weight</code> instead of <code>legacy_weight</code>,
+if you want to include only legacy inputs in your transaction,
+you should remove 1WU from each input’s <code>max_weight_to_satisfy</code>
+for a more accurate estimate.</p>
+<p>In other words, for segwit inputs or legacy inputs included in
+segwit transactions, the following will hold for each input if
+that input was satisfied with the largest possible witness:</p>
+
+<div class="example-wrap ignore"><div class='tooltip'>ⓘ</div><pre class="rust rust-example-rendered"><code><span class="kw">for </span>i <span class="kw">in </span><span class="number">0</span>..transaction.input.len() {
+ <span class="macro">assert_eq!</span>(
+ descriptor_for_input[i].max_weight_to_satisfy(),
+ transaction.input[i].segwit_weight() - TxIn::default().segwit_weight()
+ );
+}</code></pre></div>
+<p>Instead, for legacy transactions, the following will hold for each input
+if that input was satisfied with the largest possible witness:</p>
+
+<div class="example-wrap ignore"><div class='tooltip'>ⓘ</div><pre class="rust rust-example-rendered"><code><span class="kw">for </span>i <span class="kw">in </span><span class="number">0</span>..transaction.input.len() {
+ <span class="macro">assert_eq!</span>(
+ descriptor_for_input[i].max_weight_to_satisfy(),
+ transaction.input[i].legacy_weight() - TxIn::default().legacy_weight()
+ );
+}</code></pre></div>
+<p>Assumes all ECDSA signatures are 73 bytes, including push opcode and
+sighash suffix.
+Assumes all Schnorr signatures are 66 bytes, including push opcode and
+sighash suffix.</p>
+<h5 id="errors"><a href="#errors">Errors</a></h5>
+<p>When the descriptor is impossible to safisfy (ex: sh(OP_FALSE)).</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_satisfaction_weight" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.max_satisfaction_weight" class="fn">max_satisfaction_weight</a>(&self) -> <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.usize.html">usize</a>, Error></h4></section><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: use max_weight_to_satisfy instead</span></div></span></summary><div class="docblock"><p>Computes an upper bound on the weight of a satisfying witness to the
+transaction.</p>
+<p>Assumes all ec-signatures are 73 bytes, including push opcode and
+sighash suffix. Includes the weight of the VarInts encoding the
+scriptSig and witness stack length.</p>
+<h5 id="errors-1"><a href="#errors-1">Errors</a></h5>
+<p>When the descriptor is impossible to safisfy (ex: sh(OP_FALSE)).</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Descriptor%3CPk%3E-1" class="impl has-srclink"><a href="#impl-Descriptor%3CPk%3E-1" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey + ToPublicKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.address" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.address" class="fn">address</a>(&self, network: Network) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Address<NetworkChecked>, Error></h4></section></summary><div class="docblock"><p>Computes the Bitcoin address of the descriptor, if one exists</p>
+<p>Some descriptors like pk() don’t have an address.</p>
+<h5 id="errors-2"><a href="#errors-2">Errors</a></h5>
+<p>For raw/bare descriptors that don’t have an address.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.script_pubkey" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.script_pubkey" class="fn">script_pubkey</a>(&self) -> ScriptBuf</h4></section></summary><div class="docblock"><p>Computes the scriptpubkey of the descriptor.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.unsigned_script_sig" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.unsigned_script_sig" class="fn">unsigned_script_sig</a>(&self) -> ScriptBuf</h4></section></summary><div class="docblock"><p>Computes the scriptSig that will be in place for an unsigned input
+spending an output with this descriptor. For pre-segwit descriptors,
+which use the scriptSig for signatures, this returns the empty script.</p>
+<p>This is used in Segwit transactions to produce an unsigned transaction
+whose txid will not change during signing (since only the witness data
+will change).</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.explicit_script" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.explicit_script" class="fn">explicit_script</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><ScriptBuf, Error></h4></section></summary><div class="docblock"><p>Computes the the underlying script before any hashing is done. For
+<code>Bare</code>, <code>Pkh</code> and <code>Wpkh</code> this is the scriptPubkey; for <code>ShWpkh</code> and <code>Sh</code>
+this is the redeemScript; for the others it is the witness script.</p>
+<h5 id="errors-3"><a href="#errors-3">Errors</a></h5>
+<p>If the descriptor is a taproot descriptor.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.script_code" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.script_code" class="fn">script_code</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><ScriptBuf, Error></h4></section></summary><div class="docblock"><p>Computes the <code>scriptCode</code> of a transaction output.</p>
+<p>The <code>scriptCode</code> is the Script of the previous transaction output being
+serialized in the sighash when evaluating a <code>CHECKSIG</code> & co. OP code.</p>
+<h5 id="errors-4"><a href="#errors-4">Errors</a></h5>
+<p>If the descriptor is a taproot descriptor.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_satisfaction" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.get_satisfaction" class="fn">get_satisfaction</a><S>(<br> &self,<br> satisfier: S<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="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</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="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>>, ScriptBuf), Error><span class="where fmt-newline">where<br> S: Satisfier<Pk>,</span></h4></section></summary><div class="docblock"><p>Returns satisfying non-malleable witness and scriptSig to spend an
+output controlled by the given descriptor if it possible to
+construct one using the satisfier S.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_satisfaction_mall" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.get_satisfaction_mall" class="fn">get_satisfaction_mall</a><S>(<br> &self,<br> satisfier: S<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="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</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="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>>, ScriptBuf), Error><span class="where fmt-newline">where<br> S: Satisfier<Pk>,</span></h4></section></summary><div class="docblock"><p>Returns a possilbly mallable satisfying non-malleable witness and scriptSig to spend an
+output controlled by the given descriptor if it possible to
+construct one using the satisfier S.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.satisfy" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.satisfy" class="fn">satisfy</a><S>(&self, txin: &mut TxIn, satisfier: S) -> <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> S: Satisfier<Pk>,</span></h4></section></summary><div class="docblock"><p>Attempts to produce a non-malleable satisfying witness and scriptSig to spend an
+output controlled by the given descriptor; add the data to a given
+<code>TxIn</code> output.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Descriptor%3CDefiniteDescriptorKey%3E" class="impl has-srclink"><a href="#impl-Descriptor%3CDefiniteDescriptorKey%3E" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><DefiniteDescriptorKey></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.plan" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.plan" class="fn">plan</a><P>(<br> self,<br> provider: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>P<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Plan, <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><DefiniteDescriptorKey>><span class="where fmt-newline">where<br> P: AssetProvider<DefiniteDescriptorKey>,</span></h4></section></summary><div class="docblock"><p>Returns a plan if the provided assets are sufficient to produce a non-malleable satisfaction</p>
+<p>If the assets aren’t sufficient for generating a Plan, the descriptor is returned</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.plan_mall" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.plan_mall" class="fn">plan_mall</a><P>(<br> self,<br> provider: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>P<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Plan, <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><DefiniteDescriptorKey>><span class="where fmt-newline">where<br> P: AssetProvider<DefiniteDescriptorKey>,</span></h4></section></summary><div class="docblock"><p>Returns a plan if the provided assets are sufficient to produce a malleable satisfaction</p>
+<p>If the assets aren’t sufficient for generating a Plan, the descriptor is returned</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Descriptor%3CDescriptorPublicKey%3E" class="impl has-srclink"><a href="#impl-Descriptor%3CDescriptorPublicKey%3E" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_deriveable" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_deriveable" class="fn">is_deriveable</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: use has_wildcards instead</span></div></span></summary><div class="docblock"><p>Whether or not the descriptor has any wildcards</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.has_wildcard" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.has_wildcard" class="fn">has_wildcard</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether or not the descriptor has any wildcards i.e. <code>/*</code>.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.at_derivation_index" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.at_derivation_index" class="fn">at_derivation_index</a>(<br> &self,<br> index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</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="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><DefiniteDescriptorKey>, ConversionError></h4></section></summary><div class="docblock"><p>Replaces all wildcards (i.e. <code>/*</code>) in the descriptor with a particular derivation index,
+turning it into a <em>definite</em> descriptor.</p>
+<h5 id="errors-5"><a href="#errors-5">Errors</a></h5>
+<ul>
+<li>If index ≥ 2^31</li>
+</ul>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.derive" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.derive" class="fn">derive</a>(<br> &self,<br> index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</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="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><DefiniteDescriptorKey>, ConversionError></h4></section><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: use at_derivation_index instead</span></div></span></summary><div class="docblock"><p>Deprecated name for <a href="enum.Descriptor.html#method.at_derivation_index" title="Self::at_derivation_index"><code>Self::at_derivation_index</code></a>.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.derived_descriptor" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.derived_descriptor" class="fn">derived_descriptor</a><C>(<br> &self,<br> secp: &Secp256k1<C>,<br> index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</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="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><PublicKey>, ConversionError><span class="where fmt-newline">where<br> C: Verification,</span></h4></section></summary><div class="docblock"><p>Convert all the public keys in the descriptor to [<code>bitcoin::PublicKey</code>] by deriving them or
+otherwise converting them. All [<code>bitcoin::secp256k1::XOnlyPublicKey</code>]s are converted to by adding a
+default(0x02) y-coordinate.</p>
+<p>This is a shorthand for:</p>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code> .expect(<span class="string">"Valid ranged descriptor"</span>);
+<span class="kw">let </span>derived_descriptor = descriptor.at_derivation_index(index).unwrap().derived_descriptor(<span class="kw-2">&</span>secp).unwrap();</code></pre></div>
+<p>and is only here really here for backwards compatbility.
+See <a href="enum.Descriptor.html#method.at_derivation_index"><code>at_derivation_index</code></a> and <code>[derived_descriptor</code>] for more documentation.</p>
+<h5 id="errors-6"><a href="#errors-6">Errors</a></h5>
+<p>This function will return an error if hardened derivation is attempted.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.parse_descriptor" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.parse_descriptor" class="fn">parse_descriptor</a><C>(<br> secp: &Secp256k1<C>,<br> s: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</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="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>>, <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><<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../keys/enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>>), Error><span class="where fmt-newline">where<br> C: Signing,</span></h4></section></summary><div class="docblock"><p>Parse a descriptor that may contain secret keys</p>
+<p>Internally turns every secret key found into the corresponding public key and then returns a
+a descriptor that only contains public keys and a map to lookup the secret key given a public key.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string_with_secret" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.to_string_with_secret" class="fn">to_string_with_secret</a>(<br> &self,<br> key_map: &<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><<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../keys/enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>><br>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class="docblock"><p>Serialize a descriptor to string with its secret keys</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.find_derivation_index_for_spk" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.find_derivation_index_for_spk" class="fn">find_derivation_index_for_spk</a><C>(<br> &self,<br> secp: &Secp256k1<C>,<br> script_pubkey: &Script,<br> range: <a class="struct" href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range">Range</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</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="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.u32.html">u32</a>, <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><PublicKey>)>, ConversionError><span class="where fmt-newline">where<br> C: Verification,</span></h4></section></summary><div class="docblock"><p>Utility method for deriving the descriptor at each index in a range to find one matching
+<code>script_pubkey</code>.</p>
+<p>If it finds a match then it returns the index it was derived at and the concrete
+descriptor at that index. If the descriptor is non-derivable then it will simply check the
+script pubkey against the descriptor and return it if it matches (in this case the index
+returned will be meaningless).</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_multipath" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_multipath" class="fn">is_multipath</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether this descriptor contains a key that has multiple derivation paths.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_single_descriptors" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.into_single_descriptors" class="fn">into_single_descriptors</a>(<br> self<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="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>>, Error></h4></section></summary><div class="docblock"><p>Get as many descriptors as different paths in this descriptor.</p>
+<p>For multipath descriptors it will return as many descriptors as there is
+“parallel” paths. For regular descriptors it will just return itself.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Descriptor%3CDefiniteDescriptorKey%3E-1" class="impl has-srclink"><a href="#impl-Descriptor%3CDefiniteDescriptorKey%3E-1" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><DefiniteDescriptorKey></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.derived_descriptor-1" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.derived_descriptor-1" class="fn">derived_descriptor</a><C>(<br> &self,<br> secp: &Secp256k1<C><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="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><PublicKey>, ConversionError><span class="where fmt-newline">where<br> C: Verification,</span></h4></section></summary><div class="docblock"><p>Convert all the public keys in the descriptor to [<code>bitcoin::PublicKey</code>] by deriving them or
+otherwise converting them. All [<code>bitcoin::secp256k1::XOnlyPublicKey</code>]s are converted to by adding a
+default(0x02) y-coordinate.</p>
+<h5 id="examples"><a href="#examples">Examples</a></h5>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>miniscript::descriptor::{Descriptor, DescriptorPublicKey};
+<span class="kw">use </span>miniscript::bitcoin::secp256k1;
+<span class="kw">use </span>std::str::FromStr;
+
+<span class="comment">// test from bip 86
+</span><span class="kw">let </span>secp = secp256k1::Secp256k1::verification_only();
+<span class="kw">let </span>descriptor = Descriptor::<DescriptorPublicKey>::from_str(<span class="string">"tr(xpub6BgBgsespWvERF3LHQu6CnqdvfEvtMcQjYrcRzx53QJjSxarj2afYWcLteoGVky7D3UKDP9QyrLprQ3VCECoY49yfdDEHGCtMMj92pReUsQ/0/*)"</span>)
+ .expect(<span class="string">"Valid ranged descriptor"</span>);
+<span class="kw">let </span>result = descriptor.at_derivation_index(<span class="number">0</span>).unwrap().derived_descriptor(<span class="kw-2">&</span>secp).expect(<span class="string">"Non-hardened derivation"</span>);
+<span class="macro">assert_eq!</span>(result.to_string(), <span class="string">"tr(03cc8a4bc64d897bddc5fbc2f670f7a8ba0b386779106cf1223c6fc5d7cd6fc115)#6qm9h8ym"</span>);</code></pre></div>
+<h5 id="errors-7"><a href="#errors-7">Errors</a></h5>
+<p>This function will return an error if hardened derivation is attempted.</p>
+</div></details></div></details></div><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><section id="impl-Clone-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Clone-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Debug-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-DescriptorExt-for-Descriptor%3CDescriptorPublicKey%3E" class="impl has-srclink"><a href="#impl-DescriptorExt-for-Descriptor%3CDescriptorPublicKey%3E" class="anchor">§</a><h3 class="code-header">impl DescriptorExt for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.dust_value" class="method trait-impl has-srclink"><a href="#method.dust_value" class="anchor">§</a><h4 class="code-header">fn <a class="fn">dust_value</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></h4></section></summary><div class='docblock'>Returns the minimum value (in satoshis) at which an output is broadcastable.
+Panics if the descriptor wildcard is hardened. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.descriptor_id" class="method trait-impl has-srclink"><a href="#method.descriptor_id" class="anchor">§</a><h4 class="code-header">fn <a class="fn">descriptor_id</a>(&self) -> DescriptorId</h4></section></summary><div class='docblock'>Returns the descriptor id, calculated as the sha256 of the descriptor, checksum not
+included. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserialize%3C%27de%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Deserialize%3C%27de%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<'de, Pk> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey + <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,<br> <<Pk as MiniscriptKey>::Sha256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,<br> <<Pk as MiniscriptKey>::Hash256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,<br> <<Pk as MiniscriptKey>::Ripemd160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,<br> <<Pk as MiniscriptKey>::Hash160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl has-srclink"><a href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize" class="fn">deserialize</a><D>(<br> deserializer: D<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="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk>, <D as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>><span class="where fmt-newline">where<br> D: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Display-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ExtractPolicy-for-Descriptor%3CDescriptorPublicKey%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/descriptor/policy.rs.html#1077-1158">source</a><a href="#impl-ExtractPolicy-for-Descriptor%3CDescriptorPublicKey%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.ExtractPolicy.html" title="trait bdk_wallet::descriptor::ExtractPolicy">ExtractPolicy</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.extract_policy" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/descriptor/policy.rs.html#1078-1157">source</a><a href="#method.extract_policy" class="anchor">§</a><h4 class="code-header">fn <a href="trait.ExtractPolicy.html#tymethod.extract_policy" class="fn">extract_policy</a>(<br> &self,<br> signers: &<a class="struct" href="../wallet/signer/struct.SignersContainer.html" title="struct bdk_wallet::wallet::signer::SignersContainer">SignersContainer</a>,<br> build_sat: <a class="enum" href="policy/enum.BuildSatisfaction.html" title="enum bdk_wallet::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_wallet::descriptor::policy::Policy">Policy</a>>, <a class="enum" href="error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Extract the spending <a href="policy/index.html" title="policy"><code>policy</code></a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ForEachKey%3CPk%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-ForEachKey%3CPk%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> ForEachKey<Pk> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.for_each_key" class="method trait-impl has-srclink"><a href="#method.for_each_key" class="anchor">§</a><h4 class="code-header">fn <a class="fn">for_each_key</a><'a, F>(&'a self, pred: F) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&'a </a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</span></h4></section></summary><div class='docblock'>Run a predicate on every key in the descriptor, returning whether
+the predicate returned true for every key <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.for_any_key" class="method trait-impl has-srclink"><a href="#method.for_any_key" class="anchor">§</a><h4 class="code-header">fn <a class="fn">for_any_key</a><'a, F>(&'a self, pred: F) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&'a </a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,<br> Pk: 'a,</span></h4></section></summary><div class='docblock'>Run a predicate on every key in the descriptor, returning whether
+the predicate returned true for any key <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CBare%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-From%3CBare%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Bare<Pk>> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(inner: Bare<Pk>) -> <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CPkh%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-From%3CPkh%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Pkh<Pk>> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(inner: Pkh<Pk>) -> <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CSh%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-From%3CSh%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Sh<Pk>> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-3" class="method trait-impl has-srclink"><a href="#method.from-3" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(inner: Sh<Pk>) -> <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CTr%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-From%3CTr%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Tr<Pk>> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-4" class="method trait-impl has-srclink"><a href="#method.from-4" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(inner: Tr<Pk>) -> <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CWpkh%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-From%3CWpkh%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Wpkh<Pk>> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-5" class="method trait-impl has-srclink"><a href="#method.from-5" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(inner: Wpkh<Pk>) -> <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CWsh%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-From%3CWsh%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Wsh<Pk>> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl has-srclink"><a href="#method.from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(inner: Wsh<Pk>) -> <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-FromStr-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-FromStr-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey + <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Sha256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Ripemd160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Err" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Err" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" class="associatedtype">Err</a> = Error</h4></section></summary><div class='docblock'>The associated error which can be returned from parsing.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_str" class="method trait-impl has-srclink"><a href="#method.from_str" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str" class="fn">from_str</a>(s: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> <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="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class='docblock'>Parses a string <code>s</code> to return a value of this type. <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-FromTree-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-FromTree-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> FromTree for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey + <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Sha256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Ripemd160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_tree" class="method trait-impl has-srclink"><a href="#method.from_tree" class="anchor">§</a><h4 class="code-header">fn <a class="fn">from_tree</a>(top: &Tree<'_>) -> <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="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk>, Error></h4></section></summary><div class="docblock"><p>Parse an expression tree into a descriptor.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Hash-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> + MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)<span class="where fmt-newline">where<br> __H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Liftable%3CPk%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Liftable%3CPk%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> Liftable<Pk> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lift" class="method trait-impl has-srclink"><a href="#method.lift" class="anchor">§</a><h4 class="code-header">fn <a class="fn">lift</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Policy<Pk>, Error></h4></section></summary><div class='docblock'>Converts this object into an abstract policy.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Ord-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CDescriptor%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-PartialEq%3CDescriptor%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk>> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><Pk> + MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CDescriptor%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-PartialOrd%3CDescriptor%3CPk%3E%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk>> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Pk> + MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Serialize-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<'de, Pk> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><S>(<br> &self,<br> serializer: S<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<S as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, <S as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-TranslatePk%3CP%2C%20Q%3E-for-Descriptor%3CP%3E" class="impl has-srclink"><a href="#impl-TranslatePk%3CP%2C%20Q%3E-for-Descriptor%3CP%3E" class="anchor">§</a><h3 class="code-header">impl<P, Q> TranslatePk<P, Q> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><P><span class="where fmt-newline">where<br> P: MiniscriptKey,<br> Q: MiniscriptKey,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.translate_pk" class="method trait-impl has-srclink"><a href="#method.translate_pk" class="anchor">§</a><h4 class="code-header">fn <a class="fn">translate_pk</a><T, E>(<br> &self,<br> t: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T<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="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><P> as TranslatePk<P, Q>>::Output, TranslateErr<E>><span class="where fmt-newline">where<br> T: Translator<P, Q, E>,</span></h4></section></summary><div class="docblock"><p>Converts a descriptor using abstract keys to one using specific keys.</p>
+</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Output</a> = <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Q></h4></section></summary><div class='docblock'>The associated output type. This must be <code>Self<Q></code>.</div></details></div></details><section id="impl-Eq-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Eq-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + MiniscriptKey,</span></h3></section><section id="impl-StructuralEq-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-StructuralEq-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section><section id="impl-StructuralPartialEq-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-StructuralPartialEq-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Send-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Sync-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Sync-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<Pk> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><Pk><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Descriptor%3CPk%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-6" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-6" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Descriptor%3CPk%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-Descriptor%3CPk%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Descriptor%3CPk%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details><section id="impl-DeserializeOwned-for-Descriptor%3CPk%3E" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/serde/1.0.201/src/serde/de/mod.rs.html#608">source</a><a href="#impl-DeserializeOwned-for-Descriptor%3CPk%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> for T<span class="where fmt-newline">where<br> T: for<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de>,</span></h3></section></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="The descriptor pubkey, either a single pubkey or an xpub."><meta name="keywords" content="rust, rustlang, rust-lang, DescriptorPublicKey"><title>DescriptorPublicKey in bdk_wallet::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">DescriptorPublicKey</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.MultiXPub">MultiXPub</a></li><li><a href="#variant.Single">Single</a></li><li><a href="#variant.XPub">XPub</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.at_derivation_index">at_derivation_index</a></li><li><a href="#method.derive">derive</a></li><li><a href="#method.full_derivation_path">full_derivation_path</a></li><li><a href="#method.full_derivation_paths">full_derivation_paths</a></li><li><a href="#method.has_wildcard">has_wildcard</a></li><li><a href="#method.into_single_keys">into_single_keys</a></li><li><a href="#method.is_deriveable">is_deriveable</a></li><li><a href="#method.is_multipath">is_multipath</a></li><li><a href="#method.master_fingerprint">master_fingerprint</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-DescriptorPublicKey">Clone</a></li><li><a href="#impl-Debug-for-DescriptorPublicKey">Debug</a></li><li><a href="#impl-Deserialize%3C%27de%3E-for-DescriptorPublicKey">Deserialize<'de></a></li><li><a href="#impl-Display-for-DescriptorPublicKey">Display</a></li><li><a href="#impl-Eq-for-DescriptorPublicKey">Eq</a></li><li><a href="#impl-From%3CDefiniteDescriptorKey%3E-for-DescriptorPublicKey">From<DefiniteDescriptorKey></a></li><li><a href="#impl-FromStr-for-DescriptorPublicKey">FromStr</a></li><li><a href="#impl-Hash-for-DescriptorPublicKey">Hash</a></li><li><a href="#impl-IntoAssets-for-DescriptorPublicKey">IntoAssets</a></li><li><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorPublicKey">IntoDescriptorKey<Ctx></a></li><li><a href="#impl-MiniscriptKey-for-DescriptorPublicKey">MiniscriptKey</a></li><li><a href="#impl-Ord-for-DescriptorPublicKey">Ord</a></li><li><a href="#impl-PartialEq%3CDescriptorPublicKey%3E-for-DescriptorPublicKey">PartialEq<DescriptorPublicKey></a></li><li><a href="#impl-PartialOrd%3CDescriptorPublicKey%3E-for-DescriptorPublicKey">PartialOrd<DescriptorPublicKey></a></li><li><a href="#impl-Serialize-for-DescriptorPublicKey">Serialize</a></li><li><a href="#impl-StructuralEq-for-DescriptorPublicKey">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-DescriptorPublicKey">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-DescriptorPublicKey">RefUnwindSafe</a></li><li><a href="#impl-Send-for-DescriptorPublicKey">Send</a></li><li><a href="#impl-Sync-for-DescriptorPublicKey">Sync</a></li><li><a href="#impl-Unpin-for-DescriptorPublicKey">Unpin</a></li><li><a href="#impl-UnwindSafe-for-DescriptorPublicKey">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-DescriptorPublicKey">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-DescriptorPublicKey">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-DescriptorPublicKey">BorrowMut<T></a></li><li><a href="#impl-DeserializeOwned-for-DescriptorPublicKey">DeserializeOwned</a></li><li><a href="#impl-From%3CT%3E-for-DescriptorPublicKey">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-DescriptorPublicKey">Into<U></a></li><li><a href="#impl-ToOwned-for-DescriptorPublicKey">ToOwned</a></li><li><a href="#impl-ToString-for-DescriptorPublicKey">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-DescriptorPublicKey">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-DescriptorPublicKey">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-DescriptorPublicKey">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="enum" href="#">DescriptorPublicKey</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum DescriptorPublicKey {
+ Single(<a class="struct" href="../keys/struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</a>),
+ XPub(DescriptorXKey<Xpub>),
+ MultiXPub(DescriptorMultiXKey<Xpub>),
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The descriptor pubkey, either a single pubkey or an xpub.</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Single" class="variant"><a href="#variant.Single" class="anchor">§</a><h3 class="code-header">Single(<a class="struct" href="../keys/struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</a>)</h3></section><div class="docblock"><p>Single public key.</p>
+</div><section id="variant.XPub" class="variant"><a href="#variant.XPub" class="anchor">§</a><h3 class="code-header">XPub(DescriptorXKey<Xpub>)</h3></section><div class="docblock"><p>Extended public key (xpub).</p>
+</div><section id="variant.MultiXPub" class="variant"><a href="#variant.MultiXPub" class="anchor">§</a><h3 class="code-header">MultiXPub(DescriptorMultiXKey<Xpub>)</h3></section><div class="docblock"><p>Multiple extended public keys.</p>
+</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.master_fingerprint" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.master_fingerprint" class="fn">master_fingerprint</a>(&self) -> Fingerprint</h4></section></summary><div class="docblock"><p>The fingerprint of the master key associated with this key, <code>0x00000000</code> if none.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.full_derivation_path" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.full_derivation_path" class="fn">full_derivation_path</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><DerivationPath></h4></section></summary><div class="docblock"><p>Full path, from the master key</p>
+<p>For wildcard keys this will return the path up to the wildcard, so you
+can get full paths by appending one additional derivation step, according
+to the wildcard type (hardened or normal).</p>
+<p>For multipath extended keys, this returns <code>None</code>.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.full_derivation_paths" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.full_derivation_paths" class="fn">full_derivation_paths</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><DerivationPath, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>></h4></section></summary><div class="docblock"><p>Returns a vector containing the full derivation paths from the master key.
+The vector will contain just one element for single keys, and multiple elements
+for multipath extended keys.</p>
+<p>For wildcard keys this will return the path up to the wildcard, so you
+can get full paths by appending one additional derivation step, according
+to the wildcard type (hardened or normal).</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_deriveable" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_deriveable" class="fn">is_deriveable</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: use has_wildcard instead</span></div></span></summary><div class="docblock"><p>Whether or not the key has a wildcard</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.has_wildcard" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.has_wildcard" class="fn">has_wildcard</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether or not the key has a wildcard</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.derive" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.derive" class="fn">derive</a>(self, index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><DefiniteDescriptorKey, ConversionError></h4></section><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: use at_derivation_index instead</span></div></span></summary><div class="docblock"><p>Deprecated name for <a href="../keys/enum.DescriptorPublicKey.html#method.at_derivation_index" title="Self::at_derivation_index"><code>Self::at_derivation_index</code></a>.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.at_derivation_index" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.at_derivation_index" class="fn">at_derivation_index</a>(<br> self,<br> index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><DefiniteDescriptorKey, ConversionError></h4></section></summary><div class="docblock"><p>Replaces any wildcard (i.e. <code>/*</code>) in the key with a particular derivation index, turning it into a
+<em>definite</em> key (i.e. one where all the derivation paths are set).</p>
+<h5 id="returns"><a href="#returns">Returns</a></h5>
+<ul>
+<li>If this key is not an xpub, returns <code>self</code>.</li>
+<li>If this key is an xpub but does not have a wildcard, returns <code>self</code>.</li>
+<li>Otherwise, returns the xpub at derivation <code>index</code> (removing the wildcard).</li>
+</ul>
+<h5 id="errors"><a href="#errors">Errors</a></h5>
+<ul>
+<li>If <code>index</code> is hardened.</li>
+</ul>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_multipath" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_multipath" class="fn">is_multipath</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether or not this key has multiple derivation paths.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_single_keys" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.into_single_keys" class="fn">into_single_keys</a>(self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>></h4></section></summary><div class="docblock"><p>Get as many keys as derivation paths in this key.</p>
+<p>For raw public key and single-path extended keys it will return the key itself.
+For multipath extended keys it will return a single-path extended key per derivation
+path.</p>
+</div></details></div></details></div><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><section id="impl-Clone-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Clone-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Debug-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserialize%3C%27de%3E-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Deserialize%3C%27de%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl has-srclink"><a href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize" class="fn">deserialize</a><D>(<br> deserializer: D<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="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <D as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>><span class="where fmt-newline">where<br> D: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Display-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CDefiniteDescriptorKey%3E-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-From%3CDefiniteDescriptorKey%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><DefiniteDescriptorKey> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(d: DefiniteDescriptorKey) -> <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-FromStr-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-FromStr-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Err" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Err" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" class="associatedtype">Err</a> = DescriptorKeyParseError</h4></section></summary><div class='docblock'>The associated error which can be returned from parsing.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_str" class="method trait-impl has-srclink"><a href="#method.from_str" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str" class="fn">from_str</a>(<br> s: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</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="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a> as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>></h4></section></summary><div class='docblock'>Parses a string <code>s</code> to return a value of this type. <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Hash-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)<span class="where fmt-newline">where<br> __H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-IntoAssets-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-IntoAssets-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl IntoAssets for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_assets" class="method trait-impl has-srclink"><a href="#method.into_assets" class="anchor">§</a><h4 class="code-header">fn <a class="fn">into_assets</a>(self) -> Assets</h4></section></summary><div class='docblock'>Convert <code>self</code> into a <code>Assets</code> struct</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#846-860">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="../keys/trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_descriptor_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#847-859">source</a><a href="#method.into_descriptor_key" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.IntoDescriptorKey.html#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="../keys/enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="../keys/enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>></h4></section></summary><div class='docblock'>Turn the key into a <a href="../keys/enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a> within the requested <a href="../keys/trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-MiniscriptKey-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-MiniscriptKey-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl MiniscriptKey for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Sha256" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Sha256" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Sha256</a> = Hash</h4></section></summary><div class='docblock'>The associated [<code>bitcoin::hashes::sha256::Hash</code>] for this [<code>MiniscriptKey</code>], used in the
+sha256 fragment. <a>Read more</a></div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Hash256" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Hash256" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Hash256</a> = Hash</h4></section></summary><div class='docblock'>The associated [<code>miniscript::hash256::Hash</code>] for this [<code>MiniscriptKey</code>], used in the
+hash256 fragment. <a>Read more</a></div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Ripemd160" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Ripemd160" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Ripemd160</a> = Hash</h4></section></summary><div class='docblock'>The associated [<code>bitcoin::hashes::ripemd160::Hash</code>] for this [<code>MiniscriptKey</code>] type, used
+in the ripemd160 fragment. <a>Read more</a></div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Hash160" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Hash160" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Hash160</a> = Hash</h4></section></summary><div class='docblock'>The associated [<code>bitcoin::hashes::hash160::Hash</code>] for this [<code>MiniscriptKey</code>] type, used in
+the hash160 fragment. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_uncompressed" class="method trait-impl has-srclink"><a href="#method.is_uncompressed" class="anchor">§</a><h4 class="code-header">fn <a class="fn">is_uncompressed</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns true if the pubkey is uncompressed. Defaults to <code>false</code>.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_x_only_key" class="method trait-impl has-srclink"><a href="#method.is_x_only_key" class="anchor">§</a><h4 class="code-header">fn <a class="fn">is_x_only_key</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns true if the pubkey is an x-only pubkey. Defaults to <code>false</code>.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.num_der_paths" class="method trait-impl has-srclink"><a href="#method.num_der_paths" class="anchor">§</a><h4 class="code-header">fn <a class="fn">num_der_paths</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class='docblock'>Returns the number of different derivation paths in this key. Only >1 for keys
+in BIP389 multipath descriptors. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Ord-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CDescriptorPublicKey%3E-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-PartialEq%3CDescriptorPublicKey%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CDescriptorPublicKey%3E-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-PartialOrd%3CDescriptorPublicKey%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Serialize-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><S>(<br> &self,<br> serializer: S<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<S as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, <S as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Eq-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-StructuralEq-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-StructuralEq-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-StructuralPartialEq-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-StructuralPartialEq-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-Send-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Send-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-Sync-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Sync-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-Unpin-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Unpin-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-UnwindSafe-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-UnwindSafe-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details><section id="impl-DeserializeOwned-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/serde/1.0.201/src/serde/de/mod.rs.html#608">source</a><a href="#impl-DeserializeOwned-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> for T<span class="where fmt-newline">where<br> T: for<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de>,</span></h3></section></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Legacy ScriptContext To be used as P2SH scripts For creation of Bare scriptpubkeys, construct the Miniscript under `Bare` ScriptContext"><meta name="keywords" content="rust, rustlang, rust-lang, Legacy"><title>Legacy in bdk_wallet::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Legacy</a></h2><div class="sidebar-elems"><section><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-Legacy">Clone</a></li><li><a href="#impl-Debug-for-Legacy">Debug</a></li><li><a href="#impl-Eq-for-Legacy">Eq</a></li><li><a href="#impl-Hash-for-Legacy">Hash</a></li><li><a href="#impl-Ord-for-Legacy">Ord</a></li><li><a href="#impl-PartialEq%3CLegacy%3E-for-Legacy">PartialEq<Legacy></a></li><li><a href="#impl-PartialOrd%3CLegacy%3E-for-Legacy">PartialOrd<Legacy></a></li><li><a href="#impl-ScriptContext-for-Legacy">ScriptContext</a></li><li><a href="#impl-StructuralEq-for-Legacy">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-Legacy">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Legacy">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Legacy">Send</a></li><li><a href="#impl-Sync-for-Legacy">Sync</a></li><li><a href="#impl-Unpin-for-Legacy">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Legacy">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Legacy">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Legacy">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Legacy">BorrowMut<T></a></li><li><a href="#impl-ExtScriptContext-for-Legacy">ExtScriptContext</a></li><li><a href="#impl-From%3CT%3E-for-Legacy">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Legacy">Into<U></a></li><li><a href="#impl-ToOwned-for-Legacy">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Legacy">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Legacy">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Legacy">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="enum" href="#">Legacy</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum Legacy {}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Legacy ScriptContext
+To be used as P2SH scripts
+For creation of Bare scriptpubkeys, construct the Miniscript
+under <code>Bare</code> ScriptContext</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><section id="impl-Clone-for-Legacy" class="impl has-srclink"><a href="#impl-Clone-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Legacy" class="impl has-srclink"><a href="#impl-Debug-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-Legacy" class="impl has-srclink"><a href="#impl-Hash-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)<span class="where fmt-newline">where<br> __H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-Legacy" class="impl has-srclink"><a href="#impl-Ord-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CLegacy%3E-for-Legacy" class="impl has-srclink"><a href="#impl-PartialEq%3CLegacy%3E-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a>> for <a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CLegacy%3E-for-Legacy" class="impl has-srclink"><a href="#impl-PartialOrd%3CLegacy%3E-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a>> for <a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ScriptContext-for-Legacy" class="impl has-srclink"><a href="#impl-ScriptContext-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Key" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Key" class="anchor">§</a><h4 class="code-header">type <a href="../keys/trait.ScriptContext.html#associatedtype.Key" class="associatedtype">Key</a> = PublicKey</h4></section></summary><div class='docblock'>The consensus key associated with the type. Must be a parseable key</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_terminal_non_malleable" class="method trait-impl has-srclink"><a href="#method.check_terminal_non_malleable" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.check_terminal_non_malleable" class="fn">check_terminal_non_malleable</a><Pk>(<br> frag: &Terminal<Pk, <a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Depending on ScriptContext, fragments can be malleable. For Example,
+under Legacy context, PkH is malleable because it is possible to
+estimate the cost of satisfaction because of compressed keys
+This is currently only used in compiler code for removing malleable
+compilations.
+This does NOT recursively check if the children of the fragment are
+valid or not. Since the compilation proceeds in a leaf to root fashion,
+a recursive check is unnecessary. <a href="../keys/trait.ScriptContext.html#tymethod.check_terminal_non_malleable">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_pk" class="method trait-impl has-srclink"><a href="#method.check_pk" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.check_pk" class="fn">check_pk</a><Pk>(pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Each context has slightly different rules on what Pks are allowed in descriptors
+Legacy/Bare does not allow x_only keys
+Segwit does not allow uncompressed keys and x_only keys
+Tapscript does not allow uncompressed keys <a href="../keys/trait.ScriptContext.html#tymethod.check_pk">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_witness" class="method trait-impl has-srclink"><a href="#method.check_witness" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_witness" class="fn">check_witness</a><Pk>(<br> witness: &[<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>>]<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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Check whether the given satisfaction is valid under the ScriptContext
+For example, segwit satisfactions may fail if the witness len is more
+3600 or number of stack elements are more than 100. <a href="../keys/trait.ScriptContext.html#method.check_witness">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_consensus_validity" class="method trait-impl has-srclink"><a href="#method.check_global_consensus_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_global_consensus_validity" class="fn">check_global_consensus_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Depending on script Context, some of the Terminals might not
+be valid under the current consensus rules.
+Or some of the script resource limits may have been exceeded.
+These miniscripts would never be accepted by the Bitcoin network and hence
+it is safe to discard them
+For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey
+uncompressed public keys are non-standard and thus invalid.
+In LegacyP2SH context, scripts above 520 bytes are invalid.
+Post Tapscript upgrade, this would have to consider other nodes.
+This does <em>NOT</em> recursively check the miniscript fragments. <a href="../keys/trait.ScriptContext.html#method.check_global_consensus_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_consensus_validity" class="method trait-impl has-srclink"><a href="#method.check_local_consensus_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_local_consensus_validity" class="fn">check_local_consensus_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Consensus rules at the Miniscript satisfaction time.
+It is possible that some paths of miniscript may exceed resource limits
+and our current satisfier and lifting analysis would not work correctly.
+For example, satisfaction path(Legacy/Segwitv0) may require more than 201 opcodes. <a href="../keys/trait.ScriptContext.html#method.check_local_consensus_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_policy_validity" class="method trait-impl has-srclink"><a href="#method.check_local_policy_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_local_policy_validity" class="fn">check_local_policy_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Policy rules at the Miniscript satisfaction time.
+It is possible that some paths of miniscript may exceed resource limits
+and our current satisfier and lifting analysis would not work correctly.
+For example, satisfaction path in Legacy context scriptSig more
+than 1650 bytes <a href="../keys/trait.ScriptContext.html#method.check_local_policy_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_satisfaction_size" class="method trait-impl has-srclink"><a href="#method.max_satisfaction_size" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.max_satisfaction_size" class="fn">max_satisfaction_size</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Depending on script context, the size of a satifaction witness may slightly differ.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.pk_len" class="method trait-impl has-srclink"><a href="#method.pk_len" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.pk_len" class="fn">pk_len</a><Pk>(pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Get the len of public key when serialized based on context
+Note that this includes the serialization prefix. Returns
+34/66 for Bare/Legacy based on key compressedness
+34 for Segwitv0, 33 for Tap <a href="../keys/trait.ScriptContext.html#tymethod.pk_len">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.name_str" class="method trait-impl has-srclink"><a href="#method.name_str" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.name_str" class="fn">name_str</a>() -> &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><div class='docblock'>Local helper function to display error messages with context</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sig_type" class="method trait-impl has-srclink"><a href="#method.sig_type" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.sig_type" class="fn">sig_type</a>() -> SigType</h4></section></summary><div class='docblock'>The type of signature required for satisfaction</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_policy_validity" class="method trait-impl has-srclink"><a href="#method.check_global_policy_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_global_policy_validity" class="fn">check_global_policy_validity</a><Pk>(<br> _ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Depending on script Context, some of the script resource limits
+may have been exceeded under the current bitcoin core policy rules
+These miniscripts would never be accepted by the Bitcoin network and hence
+it is safe to discard them. (unless explicitly disabled by non-standard flag)
+For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey
+scripts over 3600 bytes are invalid.
+Post Tapscript upgrade, this would have to consider other nodes.
+This does <em>NOT</em> recursively check the miniscript fragments. <a href="../keys/trait.ScriptContext.html#method.check_global_policy_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_validity" class="method trait-impl has-srclink"><a href="#method.check_global_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_global_validity" class="fn">check_global_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Check the consensus + policy(if not disabled) rules that are not based
+satisfaction <a href="../keys/trait.ScriptContext.html#method.check_global_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_validity" class="method trait-impl has-srclink"><a href="#method.check_local_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_local_validity" class="fn">check_local_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Check the consensus + policy(if not disabled) rules including the
+ones for satisfaction <a href="../keys/trait.ScriptContext.html#method.check_local_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.top_level_type_check" class="method trait-impl has-srclink"><a href="#method.top_level_type_check" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.top_level_type_check" class="fn">top_level_type_check</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Check whether the top-level is type B</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.other_top_level_checks" class="method trait-impl has-srclink"><a href="#method.other_top_level_checks" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.other_top_level_checks" class="fn">other_top_level_checks</a><Pk>(_ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Other top level checks that are context specific</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.top_level_checks" class="method trait-impl has-srclink"><a href="#method.top_level_checks" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.top_level_checks" class="fn">top_level_checks</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Check top level consensus rules.</div></details></div></details><section id="impl-Eq-for-Legacy" class="impl has-srclink"><a href="#impl-Eq-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a></h3></section><section id="impl-StructuralEq-for-Legacy" class="impl has-srclink"><a href="#impl-StructuralEq-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a></h3></section><section id="impl-StructuralPartialEq-for-Legacy" class="impl has-srclink"><a href="#impl-StructuralPartialEq-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Legacy" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a></h3></section><section id="impl-Send-for-Legacy" class="impl has-srclink"><a href="#impl-Send-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a></h3></section><section id="impl-Sync-for-Legacy" class="impl has-srclink"><a href="#impl-Sync-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a></h3></section><section id="impl-Unpin-for-Legacy" class="impl has-srclink"><a href="#impl-Unpin-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a></h3></section><section id="impl-UnwindSafe-for-Legacy" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Legacy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Legacy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Legacy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Legacy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Legacy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Legacy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ExtScriptContext-for-Legacy" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#175-184">source</a><a href="#impl-ExtScriptContext-for-Legacy" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="../keys/trait.ExtScriptContext.html" title="trait bdk_wallet::keys::ExtScriptContext">ExtScriptContext</a> for Ctx<span class="where fmt-newline">where<br> Ctx: 'static + <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_enum" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#176-183">source</a><a href="#method.as_enum" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ExtScriptContext.html#tymethod.as_enum" class="fn">as_enum</a>() -> <a class="enum" href="../keys/enum.ScriptContextEnum.html" title="enum bdk_wallet::keys::ScriptContextEnum">ScriptContextEnum</a></h4></section></summary><div class='docblock'>Returns the <a href="../keys/trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a> as a <a href="../keys/enum.ScriptContextEnum.html" title="ScriptContextEnum"><code>ScriptContextEnum</code></a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_legacy" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#160-162">source</a><a href="#method.is_legacy" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ExtScriptContext.html#method.is_legacy" class="fn">is_legacy</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns whether the script context is <a href="enum.Legacy.html"><code>Legacy</code></a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_segwit_v0" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#165-167">source</a><a href="#method.is_segwit_v0" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ExtScriptContext.html#method.is_segwit_v0" class="fn">is_segwit_v0</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns whether the script context is <a href="enum.Segwitv0.html"><code>Segwitv0</code></a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_taproot" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#170-172">source</a><a href="#method.is_taproot" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ExtScriptContext.html#method.is_taproot" class="fn">is_taproot</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns whether the script context is <a href="miniscript::Tap"><code>Tap</code></a>, aka Taproot or Segwit V1</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Legacy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Legacy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Legacy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Legacy" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Legacy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-Legacy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Legacy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Legacy" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Legacy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Legacy" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Legacy" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Legacy" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Segwitv0 ScriptContext"><meta name="keywords" content="rust, rustlang, rust-lang, Segwitv0"><title>Segwitv0 in bdk_wallet::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Segwitv0</a></h2><div class="sidebar-elems"><section><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-Segwitv0">Clone</a></li><li><a href="#impl-Debug-for-Segwitv0">Debug</a></li><li><a href="#impl-Eq-for-Segwitv0">Eq</a></li><li><a href="#impl-Hash-for-Segwitv0">Hash</a></li><li><a href="#impl-Ord-for-Segwitv0">Ord</a></li><li><a href="#impl-PartialEq%3CSegwitv0%3E-for-Segwitv0">PartialEq<Segwitv0></a></li><li><a href="#impl-PartialOrd%3CSegwitv0%3E-for-Segwitv0">PartialOrd<Segwitv0></a></li><li><a href="#impl-ScriptContext-for-Segwitv0">ScriptContext</a></li><li><a href="#impl-StructuralEq-for-Segwitv0">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-Segwitv0">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Segwitv0">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Segwitv0">Send</a></li><li><a href="#impl-Sync-for-Segwitv0">Sync</a></li><li><a href="#impl-Unpin-for-Segwitv0">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Segwitv0">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Segwitv0">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Segwitv0">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Segwitv0">BorrowMut<T></a></li><li><a href="#impl-ExtScriptContext-for-Segwitv0">ExtScriptContext</a></li><li><a href="#impl-From%3CT%3E-for-Segwitv0">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Segwitv0">Into<U></a></li><li><a href="#impl-ToOwned-for-Segwitv0">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Segwitv0">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Segwitv0">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Segwitv0">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="enum" href="#">Segwitv0</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum Segwitv0 {}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Segwitv0 ScriptContext</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><section id="impl-Clone-for-Segwitv0" class="impl has-srclink"><a href="#impl-Clone-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Segwitv0" class="impl has-srclink"><a href="#impl-Debug-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-Segwitv0" class="impl has-srclink"><a href="#impl-Hash-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)<span class="where fmt-newline">where<br> __H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-Segwitv0" class="impl has-srclink"><a href="#impl-Ord-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CSegwitv0%3E-for-Segwitv0" class="impl has-srclink"><a href="#impl-PartialEq%3CSegwitv0%3E-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CSegwitv0%3E-for-Segwitv0" class="impl has-srclink"><a href="#impl-PartialOrd%3CSegwitv0%3E-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ScriptContext-for-Segwitv0" class="impl has-srclink"><a href="#impl-ScriptContext-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Key" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Key" class="anchor">§</a><h4 class="code-header">type <a href="../keys/trait.ScriptContext.html#associatedtype.Key" class="associatedtype">Key</a> = PublicKey</h4></section></summary><div class='docblock'>The consensus key associated with the type. Must be a parseable key</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_terminal_non_malleable" class="method trait-impl has-srclink"><a href="#method.check_terminal_non_malleable" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.check_terminal_non_malleable" class="fn">check_terminal_non_malleable</a><Pk>(<br> _frag: &Terminal<Pk, <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Depending on ScriptContext, fragments can be malleable. For Example,
+under Legacy context, PkH is malleable because it is possible to
+estimate the cost of satisfaction because of compressed keys
+This is currently only used in compiler code for removing malleable
+compilations.
+This does NOT recursively check if the children of the fragment are
+valid or not. Since the compilation proceeds in a leaf to root fashion,
+a recursive check is unnecessary. <a href="../keys/trait.ScriptContext.html#tymethod.check_terminal_non_malleable">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_pk" class="method trait-impl has-srclink"><a href="#method.check_pk" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.check_pk" class="fn">check_pk</a><Pk>(pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Each context has slightly different rules on what Pks are allowed in descriptors
+Legacy/Bare does not allow x_only keys
+Segwit does not allow uncompressed keys and x_only keys
+Tapscript does not allow uncompressed keys <a href="../keys/trait.ScriptContext.html#tymethod.check_pk">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_witness" class="method trait-impl has-srclink"><a href="#method.check_witness" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_witness" class="fn">check_witness</a><Pk>(<br> witness: &[<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>>]<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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Check whether the given satisfaction is valid under the ScriptContext
+For example, segwit satisfactions may fail if the witness len is more
+3600 or number of stack elements are more than 100. <a href="../keys/trait.ScriptContext.html#method.check_witness">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_consensus_validity" class="method trait-impl has-srclink"><a href="#method.check_global_consensus_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_global_consensus_validity" class="fn">check_global_consensus_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Depending on script Context, some of the Terminals might not
+be valid under the current consensus rules.
+Or some of the script resource limits may have been exceeded.
+These miniscripts would never be accepted by the Bitcoin network and hence
+it is safe to discard them
+For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey
+uncompressed public keys are non-standard and thus invalid.
+In LegacyP2SH context, scripts above 520 bytes are invalid.
+Post Tapscript upgrade, this would have to consider other nodes.
+This does <em>NOT</em> recursively check the miniscript fragments. <a href="../keys/trait.ScriptContext.html#method.check_global_consensus_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_consensus_validity" class="method trait-impl has-srclink"><a href="#method.check_local_consensus_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_local_consensus_validity" class="fn">check_local_consensus_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Consensus rules at the Miniscript satisfaction time.
+It is possible that some paths of miniscript may exceed resource limits
+and our current satisfier and lifting analysis would not work correctly.
+For example, satisfaction path(Legacy/Segwitv0) may require more than 201 opcodes. <a href="../keys/trait.ScriptContext.html#method.check_local_consensus_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_policy_validity" class="method trait-impl has-srclink"><a href="#method.check_global_policy_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_global_policy_validity" class="fn">check_global_policy_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Depending on script Context, some of the script resource limits
+may have been exceeded under the current bitcoin core policy rules
+These miniscripts would never be accepted by the Bitcoin network and hence
+it is safe to discard them. (unless explicitly disabled by non-standard flag)
+For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey
+scripts over 3600 bytes are invalid.
+Post Tapscript upgrade, this would have to consider other nodes.
+This does <em>NOT</em> recursively check the miniscript fragments. <a href="../keys/trait.ScriptContext.html#method.check_global_policy_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_policy_validity" class="method trait-impl has-srclink"><a href="#method.check_local_policy_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_local_policy_validity" class="fn">check_local_policy_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Policy rules at the Miniscript satisfaction time.
+It is possible that some paths of miniscript may exceed resource limits
+and our current satisfier and lifting analysis would not work correctly.
+For example, satisfaction path in Legacy context scriptSig more
+than 1650 bytes <a href="../keys/trait.ScriptContext.html#method.check_local_policy_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_satisfaction_size" class="method trait-impl has-srclink"><a href="#method.max_satisfaction_size" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.max_satisfaction_size" class="fn">max_satisfaction_size</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Depending on script context, the size of a satifaction witness may slightly differ.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.pk_len" class="method trait-impl has-srclink"><a href="#method.pk_len" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.pk_len" class="fn">pk_len</a><Pk>(_pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Get the len of public key when serialized based on context
+Note that this includes the serialization prefix. Returns
+34/66 for Bare/Legacy based on key compressedness
+34 for Segwitv0, 33 for Tap <a href="../keys/trait.ScriptContext.html#tymethod.pk_len">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.name_str" class="method trait-impl has-srclink"><a href="#method.name_str" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.name_str" class="fn">name_str</a>() -> &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><div class='docblock'>Local helper function to display error messages with context</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sig_type" class="method trait-impl has-srclink"><a href="#method.sig_type" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#tymethod.sig_type" class="fn">sig_type</a>() -> SigType</h4></section></summary><div class='docblock'>The type of signature required for satisfaction</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_validity" class="method trait-impl has-srclink"><a href="#method.check_global_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_global_validity" class="fn">check_global_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Check the consensus + policy(if not disabled) rules that are not based
+satisfaction <a href="../keys/trait.ScriptContext.html#method.check_global_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_validity" class="method trait-impl has-srclink"><a href="#method.check_local_validity" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.check_local_validity" class="fn">check_local_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Check the consensus + policy(if not disabled) rules including the
+ones for satisfaction <a href="../keys/trait.ScriptContext.html#method.check_local_validity">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.top_level_type_check" class="method trait-impl has-srclink"><a href="#method.top_level_type_check" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.top_level_type_check" class="fn">top_level_type_check</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Check whether the top-level is type B</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.other_top_level_checks" class="method trait-impl has-srclink"><a href="#method.other_top_level_checks" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.other_top_level_checks" class="fn">other_top_level_checks</a><Pk>(_ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Other top level checks that are context specific</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.top_level_checks" class="method trait-impl has-srclink"><a href="#method.top_level_checks" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ScriptContext.html#method.top_level_checks" class="fn">top_level_checks</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class='docblock'>Check top level consensus rules.</div></details></div></details><section id="impl-Eq-for-Segwitv0" class="impl has-srclink"><a href="#impl-Eq-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a></h3></section><section id="impl-StructuralEq-for-Segwitv0" class="impl has-srclink"><a href="#impl-StructuralEq-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a></h3></section><section id="impl-StructuralPartialEq-for-Segwitv0" class="impl has-srclink"><a href="#impl-StructuralPartialEq-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Segwitv0" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a></h3></section><section id="impl-Send-for-Segwitv0" class="impl has-srclink"><a href="#impl-Send-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a></h3></section><section id="impl-Sync-for-Segwitv0" class="impl has-srclink"><a href="#impl-Sync-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a></h3></section><section id="impl-Unpin-for-Segwitv0" class="impl has-srclink"><a href="#impl-Unpin-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a></h3></section><section id="impl-UnwindSafe-for-Segwitv0" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Segwitv0" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Segwitv0" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Segwitv0" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ExtScriptContext-for-Segwitv0" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#175-184">source</a><a href="#impl-ExtScriptContext-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="../keys/trait.ExtScriptContext.html" title="trait bdk_wallet::keys::ExtScriptContext">ExtScriptContext</a> for Ctx<span class="where fmt-newline">where<br> Ctx: 'static + <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_enum" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#176-183">source</a><a href="#method.as_enum" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ExtScriptContext.html#tymethod.as_enum" class="fn">as_enum</a>() -> <a class="enum" href="../keys/enum.ScriptContextEnum.html" title="enum bdk_wallet::keys::ScriptContextEnum">ScriptContextEnum</a></h4></section></summary><div class='docblock'>Returns the <a href="../keys/trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a> as a <a href="../keys/enum.ScriptContextEnum.html" title="ScriptContextEnum"><code>ScriptContextEnum</code></a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_legacy" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#160-162">source</a><a href="#method.is_legacy" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ExtScriptContext.html#method.is_legacy" class="fn">is_legacy</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns whether the script context is <a href="enum.Legacy.html"><code>Legacy</code></a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_segwit_v0" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#165-167">source</a><a href="#method.is_segwit_v0" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ExtScriptContext.html#method.is_segwit_v0" class="fn">is_segwit_v0</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns whether the script context is <a href="enum.Segwitv0.html"><code>Segwitv0</code></a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_taproot" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#170-172">source</a><a href="#method.is_taproot" class="anchor">§</a><h4 class="code-header">fn <a href="../keys/trait.ExtScriptContext.html#method.is_taproot" class="fn">is_taproot</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns whether the script context is <a href="miniscript::Tap"><code>Tap</code></a>, aka Taproot or Segwit V1</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Segwitv0" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Segwitv0" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Segwitv0" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Segwitv0" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Segwitv0" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Segwitv0" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Errors related to the parsing and usage of descriptors"><meta name="keywords" content="rust, rustlang, rust-lang, Error"><title>Error in bdk_wallet::descriptor::error - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Error</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Base58">Base58</a></li><li><a href="#variant.Bip32">Bip32</a></li><li><a href="#variant.HardenedDerivationXpub">HardenedDerivationXpub</a></li><li><a href="#variant.Hex">Hex</a></li><li><a href="#variant.InvalidDescriptorCharacter">InvalidDescriptorCharacter</a></li><li><a href="#variant.InvalidDescriptorChecksum">InvalidDescriptorChecksum</a></li><li><a href="#variant.InvalidHdKeyPath">InvalidHdKeyPath</a></li><li><a href="#variant.Key">Key</a></li><li><a href="#variant.Miniscript">Miniscript</a></li><li><a href="#variant.MultiPath">MultiPath</a></li><li><a href="#variant.Pk">Pk</a></li><li><a href="#variant.Policy">Policy</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-Error">Debug</a></li><li><a href="#impl-Display-for-Error">Display</a></li><li><a href="#impl-Error-for-Error">Error</a></li><li><a href="#impl-From%3CError%3E-for-CreateTxError">From<Error></a></li><li><a href="#impl-From%3CError%3E-for-Error">From<Error></a></li><li><a href="#impl-From%3CError%3E-for-Error-1">From<Error></a></li><li><a href="#impl-From%3CError%3E-for-Error-2">From<Error></a></li><li><a href="#impl-From%3CError%3E-for-Error-3">From<Error></a></li><li><a href="#impl-From%3CHexToBytesError%3E-for-Error">From<HexToBytesError></a></li><li><a href="#impl-From%3CKeyError%3E-for-Error">From<KeyError></a></li><li><a href="#impl-From%3CPolicyError%3E-for-Error">From<PolicyError></a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Error">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Error">Send</a></li><li><a href="#impl-Sync-for-Error">Sync</a></li><li><a href="#impl-Unpin-for-Error">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Error">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Error">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Error">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Error">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Error">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Error">Into<U></a></li><li><a href="#impl-Provider-for-Error">Provider</a></li><li><a href="#impl-ToString-for-Error">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Error">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Error">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Error">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor::error</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">error</a>::<wbr><a class="enum" href="#">Error</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/error.rs.html#17-45">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum Error {
+ InvalidHdKeyPath,
+ InvalidDescriptorChecksum,
+ HardenedDerivationXpub,
+ MultiPath,
+ Key(<a class="enum" href="../../keys/enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>),
+ Policy(<a class="enum" href="../policy/enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a>),
+ InvalidDescriptorCharacter(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>),
+ Bip32(Error),
+ Base58(Error),
+ Pk(Error),
+ Miniscript(Error),
+ Hex(HexToBytesError),
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Errors related to the parsing and usage of descriptors</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.InvalidHdKeyPath" class="variant"><a href="#variant.InvalidHdKeyPath" class="anchor">§</a><h3 class="code-header">InvalidHdKeyPath</h3></section><div class="docblock"><p>Invalid HD Key path, such as having a wildcard but a length != 1</p>
+</div><section id="variant.InvalidDescriptorChecksum" class="variant"><a href="#variant.InvalidDescriptorChecksum" class="anchor">§</a><h3 class="code-header">InvalidDescriptorChecksum</h3></section><div class="docblock"><p>The provided descriptor doesn’t match its checksum</p>
+</div><section id="variant.HardenedDerivationXpub" class="variant"><a href="#variant.HardenedDerivationXpub" class="anchor">§</a><h3 class="code-header">HardenedDerivationXpub</h3></section><div class="docblock"><p>The descriptor contains hardened derivation steps on public extended keys</p>
+</div><section id="variant.MultiPath" class="variant"><a href="#variant.MultiPath" class="anchor">§</a><h3 class="code-header">MultiPath</h3></section><div class="docblock"><p>The descriptor contains multipath keys</p>
+</div><section id="variant.Key" class="variant"><a href="#variant.Key" class="anchor">§</a><h3 class="code-header">Key(<a class="enum" href="../../keys/enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>)</h3></section><div class="docblock"><p>Error thrown while working with <a href="../../keys/index.html"><code>keys</code></a></p>
+</div><section id="variant.Policy" class="variant"><a href="#variant.Policy" class="anchor">§</a><h3 class="code-header">Policy(<a class="enum" href="../policy/enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a>)</h3></section><div class="docblock"><p>Error while extracting and manipulating policies</p>
+</div><section id="variant.InvalidDescriptorCharacter" class="variant"><a href="#variant.InvalidDescriptorCharacter" class="anchor">§</a><h3 class="code-header">InvalidDescriptorCharacter(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>)</h3></section><div class="docblock"><p>Invalid byte found in the descriptor checksum</p>
+</div><section id="variant.Bip32" class="variant"><a href="#variant.Bip32" class="anchor">§</a><h3 class="code-header">Bip32(Error)</h3></section><div class="docblock"><p>BIP32 error</p>
+</div><section id="variant.Base58" class="variant"><a href="#variant.Base58" class="anchor">§</a><h3 class="code-header">Base58(Error)</h3></section><div class="docblock"><p>Error during base58 decoding</p>
+</div><section id="variant.Pk" class="variant"><a href="#variant.Pk" class="anchor">§</a><h3 class="code-header">Pk(Error)</h3></section><div class="docblock"><p>Key-related error</p>
+</div><section id="variant.Miniscript" class="variant"><a href="#variant.Miniscript" class="anchor">§</a><h3 class="code-header">Miniscript(Error)</h3></section><div class="docblock"><p>Miniscript error</p>
+</div><section id="variant.Hex" class="variant"><a href="#variant.Hex" class="anchor">§</a><h3 class="code-header">Hex(HexToBytesError)</h3></section><div class="docblock"><p>Hex decoding error</p>
+</div></div><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><section id="impl-Debug-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/error.rs.html#16">source</a><a href="#impl-Debug-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/error.rs.html#16">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/error.rs.html#57-84">source</a><a href="#impl-Display-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/error.rs.html#58-83">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/error.rs.html#87">source</a><a href="#impl-Error-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#214-218">source</a><a href="#impl-From%3CError%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a>> for <a class="enum" href="../../wallet/error/enum.CreateTxError.html" title="enum bdk_wallet::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-7" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#215-217">source</a><a href="#method.from-7" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="enum" href="enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/error.rs.html#89-93">source</a><a href="#impl-From%3CError%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Error> for <a class="enum" href="enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/error.rs.html#90-92">source</a><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: Error) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-Error-1" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/error.rs.html#95-99">source</a><a href="#impl-From%3CError%3E-for-Error-1" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Error> for <a class="enum" href="enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/error.rs.html#96-98">source</a><a href="#method.from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: Error) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-Error-2" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/error.rs.html#101-105">source</a><a href="#impl-From%3CError%3E-for-Error-2" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Error> for <a class="enum" href="enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-3" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/error.rs.html#102-104">source</a><a href="#method.from-3" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: Error) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-Error-3" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/error.rs.html#107-111">source</a><a href="#impl-From%3CError%3E-for-Error-3" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Error> for <a class="enum" href="enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-4" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/error.rs.html#108-110">source</a><a href="#method.from-4" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: Error) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CHexToBytesError%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/error.rs.html#113-117">source</a><a href="#impl-From%3CHexToBytesError%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><HexToBytesError> for <a class="enum" href="enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-5" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/error.rs.html#114-116">source</a><a href="#method.from-5" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: HexToBytesError) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CKeyError%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/error.rs.html#47-55">source</a><a href="#impl-From%3CKeyError%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="../../keys/enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>> for <a class="enum" href="enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/error.rs.html#48-54">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(key_error: <a class="enum" href="../../keys/enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>) -> <a class="enum" href="enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CPolicyError%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/error.rs.html#119-123">source</a><a href="#impl-From%3CPolicyError%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="../policy/enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a>> for <a class="enum" href="enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-6" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/error.rs.html#120-122">source</a><a href="#method.from-6" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="enum" href="../policy/enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Error" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a></h3></section><section id="impl-Send-for-Error" class="impl has-srclink"><a href="#impl-Send-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a></h3></section><section id="impl-Sync-for-Error" class="impl has-srclink"><a href="#impl-Sync-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a></h3></section><section id="impl-Unpin-for-Error" class="impl has-srclink"><a href="#impl-Unpin-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a></h3></section><section id="impl-UnwindSafe-for-Error" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Error" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-8" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-8" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-Error" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
+provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-Error" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Error" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Descriptor errors"><meta name="keywords" content="rust, rustlang, rust-lang, error"><title>bdk_wallet::descriptor::error - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module error</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#enums">Enums</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a class="mod" href="#">error</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/error.rs.html#12-123">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Descriptor errors</p>
+</div></details><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Error.html" title="bdk_wallet::descriptor::error::Error enum">Error</a></div><div class="item-right docblock-short">Errors related to the parsing and usage of descriptors</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+window.SIDEBAR_ITEMS = {"enum":[["Error","Errors related to the parsing and usage of descriptors"]]};
\ No newline at end of file
--- /dev/null
+<!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="Descriptors"><meta name="keywords" content="rust, rustlang, rust-lang, descriptor"><title>bdk_wallet::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <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"><section><ul class="block"><li><a href="#reexports">Re-exports</a></li><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></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../index.html">bdk_wallet</a>::<wbr><a class="mod" href="#">descriptor</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/descriptor/mod.rs.html#12-900">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></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><div class="item-table"><div class="item-row"><div class="item-left import-item" id="reexport.calc_checksum"><code>pub use self::checksum::<a class="fn" href="checksum/fn.calc_checksum.html" title="fn bdk_wallet::descriptor::checksum::calc_checksum">calc_checksum</a>;</code></div></div><div class="item-row"><div class="item-left import-item" id="reexport.DescriptorError"><code>pub use self::error::<a class="enum" href="error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a> as DescriptorError;</code></div></div><div class="item-row"><div class="item-left import-item" id="reexport.Policy"><code>pub use self::policy::<a class="struct" href="policy/struct.Policy.html" title="struct bdk_wallet::descriptor::policy::Policy">Policy</a>;</code></div></div></div><h2 id="modules" class="small-section-header"><a href="#modules">Modules</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="mod" href="checksum/index.html" title="bdk_wallet::descriptor::checksum mod">checksum</a></div><div class="item-right docblock-short">Descriptor checksum</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="error/index.html" title="bdk_wallet::descriptor::error mod">error</a></div><div class="item-right docblock-short">Descriptor errors</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="policy/index.html" title="bdk_wallet::descriptor::policy mod">policy</a></div><div class="item-right docblock-short">Descriptor policy</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="template/index.html" title="bdk_wallet::descriptor::template mod">template</a></div><div class="item-right docblock-short">Descriptor templates</div></div></div><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Miniscript.html" title="bdk_wallet::descriptor::Miniscript struct">Miniscript</a></div><div class="item-right docblock-short">The top-level miniscript abstract syntax tree (AST).</div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Descriptor.html" title="bdk_wallet::descriptor::Descriptor enum">Descriptor</a></div><div class="item-right docblock-short">Script descriptor</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.DescriptorPublicKey.html" title="bdk_wallet::descriptor::DescriptorPublicKey enum">DescriptorPublicKey</a></div><div class="item-right docblock-short">The descriptor pubkey, either a single pubkey or an xpub.</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Legacy.html" title="bdk_wallet::descriptor::Legacy enum">Legacy</a></div><div class="item-right docblock-short">Legacy ScriptContext
+To be used as P2SH scripts
+For creation of Bare scriptpubkeys, construct the Miniscript
+under <code>Bare</code> ScriptContext</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Segwitv0.html" title="bdk_wallet::descriptor::Segwitv0 enum">Segwitv0</a></div><div class="item-right docblock-short">Segwitv0 ScriptContext</div></div></div><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.ExtractPolicy.html" title="bdk_wallet::descriptor::ExtractPolicy trait">ExtractPolicy</a></div><div class="item-right docblock-short">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></div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.IntoWalletDescriptor.html" title="bdk_wallet::descriptor::IntoWalletDescriptor trait">IntoWalletDescriptor</a></div><div class="item-right docblock-short">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>]</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.ScriptContext.html" title="bdk_wallet::descriptor::ScriptContext trait">ScriptContext</a></div><div class="item-right docblock-short">The ScriptContext for Miniscript. Additional type information associated with
+miniscript that is used for carrying out checks that dependent on the
+context under which the script is used.
+For example, disallowing uncompressed keys in Segwit context</div></div></div><h2 id="types" class="small-section-header"><a href="#types">Type Definitions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="type" href="type.DerivedDescriptor.html" title="bdk_wallet::descriptor::DerivedDescriptor type">DerivedDescriptor</a></div><div class="item-right docblock-short">Alias for a <a href="enum.Descriptor.html" title="Descriptor"><code>Descriptor</code></a> that contains extended <strong>derived</strong> keys</div></div><div class="item-row"><div class="item-left module-item"><a class="type" href="type.ExtendedDescriptor.html" title="bdk_wallet::descriptor::ExtendedDescriptor type">ExtendedDescriptor</a></div><div class="item-right docblock-short">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></div></div><div class="item-row"><div class="item-left module-item"><a class="type" href="type.HdKeyPaths.html" title="bdk_wallet::descriptor::HdKeyPaths type">HdKeyPaths</a></div><div class="item-right docblock-short">Alias for the type of maps that represent derivation paths in a <a href="bitcoin::psbt::Input"><code>psbt::Input</code></a> or
+<a href="bitcoin::psbt::Output"><code>psbt::Output</code></a></div></div><div class="item-row"><div class="item-left module-item"><a class="type" href="type.TapKeyOrigins.html" title="bdk_wallet::descriptor::TapKeyOrigins type">TapKeyOrigins</a></div><div class="item-right docblock-short">Alias for the type of maps that represent taproot key origins in a <a href="bitcoin::psbt::Input"><code>psbt::Input</code></a> or
+<a href="bitcoin::psbt::Output"><code>psbt::Output</code></a></div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Options to build the satisfaction field in the policy"><meta name="keywords" content="rust, rustlang, rust-lang, BuildSatisfaction"><title>BuildSatisfaction in bdk_wallet::descriptor::policy - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">BuildSatisfaction</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.None">None</a></li><li><a href="#variant.Psbt">Psbt</a></li><li><a href="#variant.PsbtTimelocks">PsbtTimelocks</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-BuildSatisfaction%3C%27a%3E">Clone</a></li><li><a href="#impl-Copy-for-BuildSatisfaction%3C%27a%3E">Copy</a></li><li><a href="#impl-Debug-for-BuildSatisfaction%3C%27a%3E">Debug</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-BuildSatisfaction%3C%27a%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-BuildSatisfaction%3C%27a%3E">Send</a></li><li><a href="#impl-Sync-for-BuildSatisfaction%3C%27a%3E">Sync</a></li><li><a href="#impl-Unpin-for-BuildSatisfaction%3C%27a%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-BuildSatisfaction%3C%27a%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-BuildSatisfaction%3C%27a%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-BuildSatisfaction%3C%27a%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-BuildSatisfaction%3C%27a%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-BuildSatisfaction%3C%27a%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-BuildSatisfaction%3C%27a%3E">Into<U></a></li><li><a href="#impl-ToOwned-for-BuildSatisfaction%3C%27a%3E">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-BuildSatisfaction%3C%27a%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-BuildSatisfaction%3C%27a%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-BuildSatisfaction%3C%27a%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor::policy</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">policy</a>::<wbr><a class="enum" href="#">BuildSatisfaction</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/policy.rs.html#1051-1066">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum BuildSatisfaction<'a> {
+ None,
+ Psbt(&'a Psbt),
+ PsbtTimelocks {
+ psbt: &'a Psbt,
+ current_height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
+ input_max_height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
+ },
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Options to build the satisfaction field in the policy</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.None" class="variant"><a href="#variant.None" class="anchor">§</a><h3 class="code-header">None</h3></section><div class="docblock"><p>Don’t generate <code>satisfaction</code> field</p>
+</div><section id="variant.Psbt" class="variant"><a href="#variant.Psbt" class="anchor">§</a><h3 class="code-header">Psbt(&'a Psbt)</h3></section><div class="docblock"><p>Analyze the given PSBT to check for existing signatures</p>
+</div><section id="variant.PsbtTimelocks" class="variant"><a href="#variant.PsbtTimelocks" class="anchor">§</a><h3 class="code-header">PsbtTimelocks</h3></section><div class="sub-variant" id="variant.PsbtTimelocks.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.PsbtTimelocks.field.psbt" class="small-section-header"><a href="#variant.PsbtTimelocks.field.psbt" class="anchor field">§</a><code>psbt: &'a Psbt</code></span><div class="docblock"><p>Given PSBT</p>
+</div></div><div class="sub-variant-field"><span id="variant.PsbtTimelocks.field.current_height" class="small-section-header"><a href="#variant.PsbtTimelocks.field.current_height" class="anchor field">§</a><code>current_height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Current blockchain height</p>
+</div></div><div class="sub-variant-field"><span id="variant.PsbtTimelocks.field.input_max_height" class="small-section-header"><a href="#variant.PsbtTimelocks.field.input_max_height" class="anchor field">§</a><code>input_max_height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>The highest confirmation height between the inputs
+CSV should consider different inputs, but we consider the worst condition for the tx as whole</p>
+</div></div></div><div class="docblock"><p>Like <code>Psbt</code> variant and also check for expired timelocks</p>
+</div></div><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><section id="impl-Clone-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#1050">source</a><a href="#impl-Clone-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<'a> <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.BuildSatisfaction.html" title="enum bdk_wallet::descriptor::policy::BuildSatisfaction">BuildSatisfaction</a><'a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#1050">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.BuildSatisfaction.html" title="enum bdk_wallet::descriptor::policy::BuildSatisfaction">BuildSatisfaction</a><'a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#1050">source</a><a href="#impl-Debug-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<'a> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.BuildSatisfaction.html" title="enum bdk_wallet::descriptor::policy::BuildSatisfaction">BuildSatisfaction</a><'a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#1050">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><section id="impl-Copy-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#1050">source</a><a href="#impl-Copy-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<'a> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum.BuildSatisfaction.html" title="enum bdk_wallet::descriptor::policy::BuildSatisfaction">BuildSatisfaction</a><'a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<'a> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.BuildSatisfaction.html" title="enum bdk_wallet::descriptor::policy::BuildSatisfaction">BuildSatisfaction</a><'a></h3></section><section id="impl-Send-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a href="#impl-Send-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<'a> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.BuildSatisfaction.html" title="enum bdk_wallet::descriptor::policy::BuildSatisfaction">BuildSatisfaction</a><'a></h3></section><section id="impl-Sync-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a href="#impl-Sync-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<'a> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.BuildSatisfaction.html" title="enum bdk_wallet::descriptor::policy::BuildSatisfaction">BuildSatisfaction</a><'a></h3></section><section id="impl-Unpin-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a href="#impl-Unpin-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<'a> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.BuildSatisfaction.html" title="enum bdk_wallet::descriptor::policy::BuildSatisfaction">BuildSatisfaction</a><'a></h3></section><section id="impl-UnwindSafe-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<'a> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.BuildSatisfaction.html" title="enum bdk_wallet::descriptor::policy::BuildSatisfaction">BuildSatisfaction</a><'a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-BuildSatisfaction%3C%27a%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-BuildSatisfaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="A unique identifier for a key"><meta name="keywords" content="rust, rustlang, rust-lang, PkOrF"><title>PkOrF in bdk_wallet::descriptor::policy - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">PkOrF</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Fingerprint">Fingerprint</a></li><li><a href="#variant.Pubkey">Pubkey</a></li><li><a href="#variant.XOnlyPubkey">XOnlyPubkey</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-PkOrF">Clone</a></li><li><a href="#impl-Debug-for-PkOrF">Debug</a></li><li><a href="#impl-Eq-for-PkOrF">Eq</a></li><li><a href="#impl-Hash-for-PkOrF">Hash</a></li><li><a href="#impl-PartialEq%3CPkOrF%3E-for-PkOrF">PartialEq<PkOrF></a></li><li><a href="#impl-Serialize-for-PkOrF">Serialize</a></li><li><a href="#impl-StructuralEq-for-PkOrF">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-PkOrF">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-PkOrF">RefUnwindSafe</a></li><li><a href="#impl-Send-for-PkOrF">Send</a></li><li><a href="#impl-Sync-for-PkOrF">Sync</a></li><li><a href="#impl-Unpin-for-PkOrF">Unpin</a></li><li><a href="#impl-UnwindSafe-for-PkOrF">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-PkOrF">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-PkOrF">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-PkOrF">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-PkOrF">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-PkOrF">Into<U></a></li><li><a href="#impl-ToOwned-for-PkOrF">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-PkOrF">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-PkOrF">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-PkOrF">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor::policy</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">policy</a>::<wbr><a class="enum" href="#">PkOrF</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/policy.rs.html#75-82">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum PkOrF {
+ Pubkey(PublicKey),
+ XOnlyPubkey(XOnlyPublicKey),
+ Fingerprint(Fingerprint),
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A unique identifier for a key</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Pubkey" class="variant"><a href="#variant.Pubkey" class="anchor">§</a><h3 class="code-header">Pubkey(PublicKey)</h3></section><div class="docblock"><p>A legacy public key</p>
+</div><section id="variant.XOnlyPubkey" class="variant"><a href="#variant.XOnlyPubkey" class="anchor">§</a><h3 class="code-header">XOnlyPubkey(XOnlyPublicKey)</h3></section><div class="docblock"><p>A x-only public key</p>
+</div><section id="variant.Fingerprint" class="variant"><a href="#variant.Fingerprint" class="anchor">§</a><h3 class="code-header">Fingerprint(Fingerprint)</h3></section><div class="docblock"><p>An extended key fingerprint</p>
+</div></div><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><section id="impl-Clone-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#73">source</a><a href="#impl-Clone-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk_wallet::descriptor::policy::PkOrF">PkOrF</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#73">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.PkOrF.html" title="enum bdk_wallet::descriptor::policy::PkOrF">PkOrF</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#73">source</a><a href="#impl-Debug-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk_wallet::descriptor::policy::PkOrF">PkOrF</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#73">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#73">source</a><a href="#impl-Hash-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk_wallet::descriptor::policy::PkOrF">PkOrF</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#73">source</a><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)</h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CPkOrF%3E-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#73">source</a><a href="#impl-PartialEq%3CPkOrF%3E-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.PkOrF.html" title="enum bdk_wallet::descriptor::policy::PkOrF">PkOrF</a>> for <a class="enum" href="enum.PkOrF.html" title="enum bdk_wallet::descriptor::policy::PkOrF">PkOrF</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#73">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.PkOrF.html" title="enum bdk_wallet::descriptor::policy::PkOrF">PkOrF</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#73">source</a><a href="#impl-Serialize-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk_wallet::descriptor::policy::PkOrF">PkOrF</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#73">source</a><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><__S>(&self, __serializer: __S) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><__S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, __S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> __S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#73">source</a><a href="#impl-Eq-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk_wallet::descriptor::policy::PkOrF">PkOrF</a></h3></section><section id="impl-StructuralEq-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#73">source</a><a href="#impl-StructuralEq-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk_wallet::descriptor::policy::PkOrF">PkOrF</a></h3></section><section id="impl-StructuralPartialEq-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#73">source</a><a href="#impl-StructuralPartialEq-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk_wallet::descriptor::policy::PkOrF">PkOrF</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-PkOrF" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk_wallet::descriptor::policy::PkOrF">PkOrF</a></h3></section><section id="impl-Send-for-PkOrF" class="impl has-srclink"><a href="#impl-Send-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk_wallet::descriptor::policy::PkOrF">PkOrF</a></h3></section><section id="impl-Sync-for-PkOrF" class="impl has-srclink"><a href="#impl-Sync-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk_wallet::descriptor::policy::PkOrF">PkOrF</a></h3></section><section id="impl-Unpin-for-PkOrF" class="impl has-srclink"><a href="#impl-Unpin-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk_wallet::descriptor::policy::PkOrF">PkOrF</a></h3></section><section id="impl-UnwindSafe-for-PkOrF" class="impl has-srclink"><a href="#impl-UnwindSafe-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.PkOrF.html" title="enum bdk_wallet::descriptor::policy::PkOrF">PkOrF</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-PkOrF" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-PkOrF" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-PkOrF" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Errors that can happen while extracting and manipulating policies"><meta name="keywords" content="rust, rustlang, rust-lang, PolicyError"><title>PolicyError in bdk_wallet::descriptor::policy - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">PolicyError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.AddOnLeaf">AddOnLeaf</a></li><li><a href="#variant.AddOnPartialComplete">AddOnPartialComplete</a></li><li><a href="#variant.IncompatibleConditions">IncompatibleConditions</a></li><li><a href="#variant.IndexOutOfRange">IndexOutOfRange</a></li><li><a href="#variant.MixedTimelockUnits">MixedTimelockUnits</a></li><li><a href="#variant.NotEnoughItemsSelected">NotEnoughItemsSelected</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-PolicyError">Debug</a></li><li><a href="#impl-Display-for-PolicyError">Display</a></li><li><a href="#impl-Eq-for-PolicyError">Eq</a></li><li><a href="#impl-Error-for-PolicyError">Error</a></li><li><a href="#impl-From%3CPolicyError%3E-for-CreateTxError">From<PolicyError></a></li><li><a href="#impl-From%3CPolicyError%3E-for-Error">From<PolicyError></a></li><li><a href="#impl-PartialEq%3CPolicyError%3E-for-PolicyError">PartialEq<PolicyError></a></li><li><a href="#impl-StructuralEq-for-PolicyError">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-PolicyError">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-PolicyError">RefUnwindSafe</a></li><li><a href="#impl-Send-for-PolicyError">Send</a></li><li><a href="#impl-Sync-for-PolicyError">Sync</a></li><li><a href="#impl-Unpin-for-PolicyError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-PolicyError">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-PolicyError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-PolicyError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-PolicyError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-PolicyError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-PolicyError">Into<U></a></li><li><a href="#impl-Provider-for-PolicyError">Provider</a></li><li><a href="#impl-ToString-for-PolicyError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-PolicyError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-PolicyError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-PolicyError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor::policy</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">policy</a>::<wbr><a class="enum" href="#">PolicyError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/policy.rs.html#504-517">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum PolicyError {
+ NotEnoughItemsSelected(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>),
+ IndexOutOfRange(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>),
+ AddOnLeaf,
+ AddOnPartialComplete,
+ MixedTimelockUnits,
+ IncompatibleConditions,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Errors that can happen while extracting and manipulating policies</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.NotEnoughItemsSelected" class="variant"><a href="#variant.NotEnoughItemsSelected" class="anchor">§</a><h3 class="code-header">NotEnoughItemsSelected(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>)</h3></section><div class="docblock"><p>Not enough items are selected to satisfy a <a href="enum.SatisfiableItem.html#variant.Thresh" title="SatisfiableItem::Thresh"><code>SatisfiableItem::Thresh</code></a> or a <a href="enum.SatisfiableItem.html#variant.Multisig" title="SatisfiableItem::Multisig"><code>SatisfiableItem::Multisig</code></a></p>
+</div><section id="variant.IndexOutOfRange" class="variant"><a href="#variant.IndexOutOfRange" class="anchor">§</a><h3 class="code-header">IndexOutOfRange(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h3></section><div class="docblock"><p>Index out of range for an item to satisfy a <a href="enum.SatisfiableItem.html#variant.Thresh" title="SatisfiableItem::Thresh"><code>SatisfiableItem::Thresh</code></a> or a <a href="enum.SatisfiableItem.html#variant.Multisig" title="SatisfiableItem::Multisig"><code>SatisfiableItem::Multisig</code></a></p>
+</div><section id="variant.AddOnLeaf" class="variant"><a href="#variant.AddOnLeaf" class="anchor">§</a><h3 class="code-header">AddOnLeaf</h3></section><div class="docblock"><p>Can not add to an item that is <a href="enum.Satisfaction.html#variant.None" title="Satisfaction::None"><code>Satisfaction::None</code></a> or <a href="enum.Satisfaction.html#variant.Complete" title="Satisfaction::Complete"><code>Satisfaction::Complete</code></a></p>
+</div><section id="variant.AddOnPartialComplete" class="variant"><a href="#variant.AddOnPartialComplete" class="anchor">§</a><h3 class="code-header">AddOnPartialComplete</h3></section><div class="docblock"><p>Can not add to an item that is <a href="enum.Satisfaction.html#variant.PartialComplete" title="Satisfaction::PartialComplete"><code>Satisfaction::PartialComplete</code></a></p>
+</div><section id="variant.MixedTimelockUnits" class="variant"><a href="#variant.MixedTimelockUnits" class="anchor">§</a><h3 class="code-header">MixedTimelockUnits</h3></section><div class="docblock"><p>Can not merge CSV or timelock values unless both are less than or both are equal or greater than 500_000_000</p>
+</div><section id="variant.IncompatibleConditions" class="variant"><a href="#variant.IncompatibleConditions" class="anchor">§</a><h3 class="code-header">IncompatibleConditions</h3></section><div class="docblock"><p>Incompatible conditions (not currently used)</p>
+</div></div><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><section id="impl-Debug-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#503">source</a><a href="#impl-Debug-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#503">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#519-530">source</a><a href="#impl-Display-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#520-529">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#533">source</a><a href="#impl-Error-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CPolicyError%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#220-224">source</a><a href="#impl-From%3CPolicyError%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a>> for <a class="enum" href="../../wallet/error/enum.CreateTxError.html" title="enum bdk_wallet::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#221-223">source</a><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="enum" href="enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CPolicyError%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/error.rs.html#119-123">source</a><a href="#impl-From%3CPolicyError%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a>> for <a class="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/error.rs.html#120-122">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="enum" href="enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CPolicyError%3E-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#503">source</a><a href="#impl-PartialEq%3CPolicyError%3E-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a>> for <a class="enum" href="enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#503">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><section id="impl-Eq-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#503">source</a><a href="#impl-Eq-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a></h3></section><section id="impl-StructuralEq-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#503">source</a><a href="#impl-StructuralEq-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a></h3></section><section id="impl-StructuralPartialEq-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#503">source</a><a href="#impl-StructuralPartialEq-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-PolicyError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a></h3></section><section id="impl-Send-for-PolicyError" class="impl has-srclink"><a href="#impl-Send-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a></h3></section><section id="impl-Sync-for-PolicyError" class="impl has-srclink"><a href="#impl-Sync-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a></h3></section><section id="impl-Unpin-for-PolicyError" class="impl has-srclink"><a href="#impl-Unpin-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a></h3></section><section id="impl-UnwindSafe-for-PolicyError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
+provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-PolicyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-PolicyError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-PolicyError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Represent if and how much a policy item is satisfied by the wallet’s descriptor"><meta name="keywords" content="rust, rustlang, rust-lang, Satisfaction"><title>Satisfaction in bdk_wallet::descriptor::policy - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Satisfaction</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Complete">Complete</a></li><li><a href="#variant.None">None</a></li><li><a href="#variant.Partial">Partial</a></li><li><a href="#variant.PartialComplete">PartialComplete</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.is_leaf">is_leaf</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-Satisfaction">Clone</a></li><li><a href="#impl-Debug-for-Satisfaction">Debug</a></li><li><a href="#impl-Eq-for-Satisfaction">Eq</a></li><li><a href="#impl-From%3Cbool%3E-for-Satisfaction">From<bool></a></li><li><a href="#impl-PartialEq%3CSatisfaction%3E-for-Satisfaction">PartialEq<Satisfaction></a></li><li><a href="#impl-Serialize-for-Satisfaction">Serialize</a></li><li><a href="#impl-StructuralEq-for-Satisfaction">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-Satisfaction">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Satisfaction">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Satisfaction">Send</a></li><li><a href="#impl-Sync-for-Satisfaction">Sync</a></li><li><a href="#impl-Unpin-for-Satisfaction">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Satisfaction">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Satisfaction">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Satisfaction">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Satisfaction">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Satisfaction">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Satisfaction">Into<U></a></li><li><a href="#impl-ToOwned-for-Satisfaction">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Satisfaction">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Satisfaction">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Satisfaction">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor::policy</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">policy</a>::<wbr><a class="enum" href="#">Satisfaction</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/policy.rs.html#260-302">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum Satisfaction {
+ Partial {
+ n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
+ m: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
+ items: <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.usize.html">usize</a>>,
+ sorted: <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.bool.html">bool</a>>,
+ conditions: <a class="type" href="type.ConditionMap.html" title="type bdk_wallet::descriptor::policy::ConditionMap">ConditionMap</a>,
+ },
+ PartialComplete {
+ n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
+ m: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
+ items: <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.usize.html">usize</a>>,
+ sorted: <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.bool.html">bool</a>>,
+ conditions: <a class="type" href="type.FoldedConditionMap.html" title="type bdk_wallet::descriptor::policy::FoldedConditionMap">FoldedConditionMap</a>,
+ },
+ Complete {
+ condition: <a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a>,
+ },
+ None,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Represent if and how much a policy item is satisfied by the wallet’s descriptor</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Partial" class="variant"><a href="#variant.Partial" class="anchor">§</a><h3 class="code-header">Partial</h3></section><div class="sub-variant" id="variant.Partial.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Partial.field.n" class="small-section-header"><a href="#variant.Partial.field.n" class="anchor field">§</a><code>n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code></span><div class="docblock"><p>Total number of items</p>
+</div></div><div class="sub-variant-field"><span id="variant.Partial.field.m" class="small-section-header"><a href="#variant.Partial.field.m" class="anchor field">§</a><code>m: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code></span><div class="docblock"><p>Threshold</p>
+</div></div><div class="sub-variant-field"><span id="variant.Partial.field.items" class="small-section-header"><a href="#variant.Partial.field.items" class="anchor field">§</a><code>items: <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.usize.html">usize</a>></code></span><div class="docblock"><p>The items that can be satisfied by the descriptor or are satisfied in the PSBT</p>
+</div></div><div class="sub-variant-field"><span id="variant.Partial.field.sorted" class="small-section-header"><a href="#variant.Partial.field.sorted" class="anchor field">§</a><code>sorted: <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.bool.html">bool</a>></code></span><div class="docblock"><p>Whether the items are sorted in lexicographic order (used by <code>sortedmulti</code>)</p>
+</div></div><div class="sub-variant-field"><span id="variant.Partial.field.conditions" class="small-section-header"><a href="#variant.Partial.field.conditions" class="anchor field">§</a><code>conditions: <a class="type" href="type.ConditionMap.html" title="type bdk_wallet::descriptor::policy::ConditionMap">ConditionMap</a></code></span><div class="docblock"><p>Extra conditions that also need to be satisfied</p>
+</div></div></div><div class="docblock"><p>Only a partial satisfaction of some kind of threshold policy</p>
+</div><section id="variant.PartialComplete" class="variant"><a href="#variant.PartialComplete" class="anchor">§</a><h3 class="code-header">PartialComplete</h3></section><div class="sub-variant" id="variant.PartialComplete.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.PartialComplete.field.n" class="small-section-header"><a href="#variant.PartialComplete.field.n" class="anchor field">§</a><code>n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code></span><div class="docblock"><p>Total number of items</p>
+</div></div><div class="sub-variant-field"><span id="variant.PartialComplete.field.m" class="small-section-header"><a href="#variant.PartialComplete.field.m" class="anchor field">§</a><code>m: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code></span><div class="docblock"><p>Threshold</p>
+</div></div><div class="sub-variant-field"><span id="variant.PartialComplete.field.items" class="small-section-header"><a href="#variant.PartialComplete.field.items" class="anchor field">§</a><code>items: <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.usize.html">usize</a>></code></span><div class="docblock"><p>The items that can be satisfied by the descriptor</p>
+</div></div><div class="sub-variant-field"><span id="variant.PartialComplete.field.sorted" class="small-section-header"><a href="#variant.PartialComplete.field.sorted" class="anchor field">§</a><code>sorted: <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.bool.html">bool</a>></code></span><div class="docblock"><p>Whether the items are sorted in lexicographic order (used by <code>sortedmulti</code>)</p>
+</div></div><div class="sub-variant-field"><span id="variant.PartialComplete.field.conditions" class="small-section-header"><a href="#variant.PartialComplete.field.conditions" class="anchor field">§</a><code>conditions: <a class="type" href="type.FoldedConditionMap.html" title="type bdk_wallet::descriptor::policy::FoldedConditionMap">FoldedConditionMap</a></code></span><div class="docblock"><p>Extra conditions that also need to be satisfied</p>
+</div></div></div><div class="docblock"><p>Can reach the threshold of some kind of threshold policy</p>
+</div><section id="variant.Complete" class="variant"><a href="#variant.Complete" class="anchor">§</a><h3 class="code-header">Complete</h3></section><div class="sub-variant" id="variant.Complete.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Complete.field.condition" class="small-section-header"><a href="#variant.Complete.field.condition" class="anchor field">§</a><code>condition: <a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a></code></span><div class="docblock"><p>Extra conditions that also need to be satisfied</p>
+</div></div></div><div class="docblock"><p>Can satisfy the policy item</p>
+</div><section id="variant.None" class="variant"><a href="#variant.None" class="anchor">§</a><h3 class="code-header">None</h3></section><div class="docblock"><p>Cannot satisfy or contribute to the policy item</p>
+</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#304-417">source</a><a href="#impl-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.Satisfaction.html" title="enum bdk_wallet::descriptor::policy::Satisfaction">Satisfaction</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_leaf" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#306-311">source</a><h4 class="code-header">pub fn <a href="#method.is_leaf" class="fn">is_leaf</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns whether the <a href="enum.Satisfaction.html" title="Satisfaction"><code>Satisfaction</code></a> is a leaf item</p>
+</div></details></div></details></div><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><section id="impl-Clone-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#258">source</a><a href="#impl-Clone-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk_wallet::descriptor::policy::Satisfaction">Satisfaction</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#258">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.Satisfaction.html" title="enum bdk_wallet::descriptor::policy::Satisfaction">Satisfaction</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#258">source</a><a href="#impl-Debug-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk_wallet::descriptor::policy::Satisfaction">Satisfaction</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#258">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3Cbool%3E-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#419-429">source</a><a href="#impl-From%3Cbool%3E-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk_wallet::descriptor::policy::Satisfaction">Satisfaction</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#420-428">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CSatisfaction%3E-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#258">source</a><a href="#impl-PartialEq%3CSatisfaction%3E-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.Satisfaction.html" title="enum bdk_wallet::descriptor::policy::Satisfaction">Satisfaction</a>> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk_wallet::descriptor::policy::Satisfaction">Satisfaction</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#258">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.Satisfaction.html" title="enum bdk_wallet::descriptor::policy::Satisfaction">Satisfaction</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#258">source</a><a href="#impl-Serialize-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk_wallet::descriptor::policy::Satisfaction">Satisfaction</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#258">source</a><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><__S>(&self, __serializer: __S) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><__S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, __S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> __S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#258">source</a><a href="#impl-Eq-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk_wallet::descriptor::policy::Satisfaction">Satisfaction</a></h3></section><section id="impl-StructuralEq-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#258">source</a><a href="#impl-StructuralEq-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk_wallet::descriptor::policy::Satisfaction">Satisfaction</a></h3></section><section id="impl-StructuralPartialEq-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#258">source</a><a href="#impl-StructuralPartialEq-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk_wallet::descriptor::policy::Satisfaction">Satisfaction</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Satisfaction" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk_wallet::descriptor::policy::Satisfaction">Satisfaction</a></h3></section><section id="impl-Send-for-Satisfaction" class="impl has-srclink"><a href="#impl-Send-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk_wallet::descriptor::policy::Satisfaction">Satisfaction</a></h3></section><section id="impl-Sync-for-Satisfaction" class="impl has-srclink"><a href="#impl-Sync-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk_wallet::descriptor::policy::Satisfaction">Satisfaction</a></h3></section><section id="impl-Unpin-for-Satisfaction" class="impl has-srclink"><a href="#impl-Unpin-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk_wallet::descriptor::policy::Satisfaction">Satisfaction</a></h3></section><section id="impl-UnwindSafe-for-Satisfaction" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.Satisfaction.html" title="enum bdk_wallet::descriptor::policy::Satisfaction">Satisfaction</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Satisfaction" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Satisfaction" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Satisfaction" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="An item that needs to be satisfied"><meta name="keywords" content="rust, rustlang, rust-lang, SatisfiableItem"><title>SatisfiableItem in bdk_wallet::descriptor::policy - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SatisfiableItem</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.AbsoluteTimelock">AbsoluteTimelock</a></li><li><a href="#variant.EcdsaSignature">EcdsaSignature</a></li><li><a href="#variant.Hash160Preimage">Hash160Preimage</a></li><li><a href="#variant.Hash256Preimage">Hash256Preimage</a></li><li><a href="#variant.Multisig">Multisig</a></li><li><a href="#variant.RelativeTimelock">RelativeTimelock</a></li><li><a href="#variant.Ripemd160Preimage">Ripemd160Preimage</a></li><li><a href="#variant.SchnorrSignature">SchnorrSignature</a></li><li><a href="#variant.Sha256Preimage">Sha256Preimage</a></li><li><a href="#variant.Thresh">Thresh</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.id">id</a></li><li><a href="#method.is_leaf">is_leaf</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-SatisfiableItem">Clone</a></li><li><a href="#impl-Debug-for-SatisfiableItem">Debug</a></li><li><a href="#impl-Eq-for-SatisfiableItem">Eq</a></li><li><a href="#impl-From%3CSatisfiableItem%3E-for-Policy">From<SatisfiableItem></a></li><li><a href="#impl-PartialEq%3CSatisfiableItem%3E-for-SatisfiableItem">PartialEq<SatisfiableItem></a></li><li><a href="#impl-Serialize-for-SatisfiableItem">Serialize</a></li><li><a href="#impl-StructuralEq-for-SatisfiableItem">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-SatisfiableItem">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SatisfiableItem">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SatisfiableItem">Send</a></li><li><a href="#impl-Sync-for-SatisfiableItem">Sync</a></li><li><a href="#impl-Unpin-for-SatisfiableItem">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SatisfiableItem">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SatisfiableItem">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SatisfiableItem">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SatisfiableItem">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SatisfiableItem">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SatisfiableItem">Into<U></a></li><li><a href="#impl-ToOwned-for-SatisfiableItem">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SatisfiableItem">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SatisfiableItem">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SatisfiableItem">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor::policy</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">policy</a>::<wbr><a class="enum" href="#">SatisfiableItem</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/policy.rs.html#106-158">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum SatisfiableItem {
+ EcdsaSignature(<a class="enum" href="enum.PkOrF.html" title="enum bdk_wallet::descriptor::policy::PkOrF">PkOrF</a>),
+ SchnorrSignature(<a class="enum" href="enum.PkOrF.html" title="enum bdk_wallet::descriptor::policy::PkOrF">PkOrF</a>),
+ Sha256Preimage {
+ hash: Hash,
+ },
+ Hash256Preimage {
+ hash: Hash,
+ },
+ Ripemd160Preimage {
+ hash: Hash,
+ },
+ Hash160Preimage {
+ hash: Hash,
+ },
+ AbsoluteTimelock {
+ value: LockTime,
+ },
+ RelativeTimelock {
+ value: Sequence,
+ },
+ Multisig {
+ keys: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="enum.PkOrF.html" title="enum bdk_wallet::descriptor::policy::PkOrF">PkOrF</a>>,
+ threshold: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
+ },
+ Thresh {
+ items: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="struct.Policy.html" title="struct bdk_wallet::descriptor::policy::Policy">Policy</a>>,
+ threshold: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
+ },
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An item that needs to be satisfied</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.EcdsaSignature" class="variant"><a href="#variant.EcdsaSignature" class="anchor">§</a><h3 class="code-header">EcdsaSignature(<a class="enum" href="enum.PkOrF.html" title="enum bdk_wallet::descriptor::policy::PkOrF">PkOrF</a>)</h3></section><div class="docblock"><p>ECDSA Signature for a raw public key</p>
+</div><section id="variant.SchnorrSignature" class="variant"><a href="#variant.SchnorrSignature" class="anchor">§</a><h3 class="code-header">SchnorrSignature(<a class="enum" href="enum.PkOrF.html" title="enum bdk_wallet::descriptor::policy::PkOrF">PkOrF</a>)</h3></section><div class="docblock"><p>Schnorr Signature for a raw public key</p>
+</div><section id="variant.Sha256Preimage" class="variant"><a href="#variant.Sha256Preimage" class="anchor">§</a><h3 class="code-header">Sha256Preimage</h3></section><div class="sub-variant" id="variant.Sha256Preimage.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Sha256Preimage.field.hash" class="small-section-header"><a href="#variant.Sha256Preimage.field.hash" class="anchor field">§</a><code>hash: Hash</code></span><div class="docblock"><p>The digest value</p>
+</div></div></div><div class="docblock"><p>SHA256 preimage hash</p>
+</div><section id="variant.Hash256Preimage" class="variant"><a href="#variant.Hash256Preimage" class="anchor">§</a><h3 class="code-header">Hash256Preimage</h3></section><div class="sub-variant" id="variant.Hash256Preimage.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Hash256Preimage.field.hash" class="small-section-header"><a href="#variant.Hash256Preimage.field.hash" class="anchor field">§</a><code>hash: Hash</code></span><div class="docblock"><p>The digest value</p>
+</div></div></div><div class="docblock"><p>Double SHA256 preimage hash</p>
+</div><section id="variant.Ripemd160Preimage" class="variant"><a href="#variant.Ripemd160Preimage" class="anchor">§</a><h3 class="code-header">Ripemd160Preimage</h3></section><div class="sub-variant" id="variant.Ripemd160Preimage.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Ripemd160Preimage.field.hash" class="small-section-header"><a href="#variant.Ripemd160Preimage.field.hash" class="anchor field">§</a><code>hash: Hash</code></span><div class="docblock"><p>The digest value</p>
+</div></div></div><div class="docblock"><p>RIPEMD160 preimage hash</p>
+</div><section id="variant.Hash160Preimage" class="variant"><a href="#variant.Hash160Preimage" class="anchor">§</a><h3 class="code-header">Hash160Preimage</h3></section><div class="sub-variant" id="variant.Hash160Preimage.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Hash160Preimage.field.hash" class="small-section-header"><a href="#variant.Hash160Preimage.field.hash" class="anchor field">§</a><code>hash: Hash</code></span><div class="docblock"><p>The digest value</p>
+</div></div></div><div class="docblock"><p>SHA256 then RIPEMD160 preimage hash</p>
+</div><section id="variant.AbsoluteTimelock" class="variant"><a href="#variant.AbsoluteTimelock" class="anchor">§</a><h3 class="code-header">AbsoluteTimelock</h3></section><div class="sub-variant" id="variant.AbsoluteTimelock.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.AbsoluteTimelock.field.value" class="small-section-header"><a href="#variant.AbsoluteTimelock.field.value" class="anchor field">§</a><code>value: LockTime</code></span><div class="docblock"><p>The timelock value</p>
+</div></div></div><div class="docblock"><p>Absolute timeclock timestamp</p>
+</div><section id="variant.RelativeTimelock" class="variant"><a href="#variant.RelativeTimelock" class="anchor">§</a><h3 class="code-header">RelativeTimelock</h3></section><div class="sub-variant" id="variant.RelativeTimelock.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.RelativeTimelock.field.value" class="small-section-header"><a href="#variant.RelativeTimelock.field.value" class="anchor field">§</a><code>value: Sequence</code></span><div class="docblock"><p>The timelock value</p>
+</div></div></div><div class="docblock"><p>Relative timelock locktime</p>
+</div><section id="variant.Multisig" class="variant"><a href="#variant.Multisig" class="anchor">§</a><h3 class="code-header">Multisig</h3></section><div class="sub-variant" id="variant.Multisig.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Multisig.field.keys" class="small-section-header"><a href="#variant.Multisig.field.keys" class="anchor field">§</a><code>keys: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="enum.PkOrF.html" title="enum bdk_wallet::descriptor::policy::PkOrF">PkOrF</a>></code></span><div class="docblock"><p>The raw public key or extended key fingerprint</p>
+</div></div><div class="sub-variant-field"><span id="variant.Multisig.field.threshold" class="small-section-header"><a href="#variant.Multisig.field.threshold" class="anchor field">§</a><code>threshold: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code></span><div class="docblock"><p>The required threshold count</p>
+</div></div></div><div class="docblock"><p>Multi-signature public keys with threshold count</p>
+</div><section id="variant.Thresh" class="variant"><a href="#variant.Thresh" class="anchor">§</a><h3 class="code-header">Thresh</h3></section><div class="sub-variant" id="variant.Thresh.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Thresh.field.items" class="small-section-header"><a href="#variant.Thresh.field.items" class="anchor field">§</a><code>items: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="struct.Policy.html" title="struct bdk_wallet::descriptor::policy::Policy">Policy</a>></code></span><div class="docblock"><p>The policy items</p>
+</div></div><div class="sub-variant-field"><span id="variant.Thresh.field.threshold" class="small-section-header"><a href="#variant.Thresh.field.threshold" class="anchor field">§</a><code>threshold: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code></span><div class="docblock"><p>The required threshold count</p>
+</div></div></div><div class="docblock"><p>Threshold items with threshold count</p>
+</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#160-177">source</a><a href="#impl-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk_wallet::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_leaf" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#162-170">source</a><h4 class="code-header">pub fn <a href="#method.is_leaf" class="fn">is_leaf</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns whether the <a href="enum.SatisfiableItem.html" title="SatisfiableItem"><code>SatisfiableItem</code></a> is a leaf item</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.id" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#173-176">source</a><h4 class="code-header">pub fn <a href="#method.id" class="fn">id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class="docblock"><p>Returns a unique id for the <a href="enum.SatisfiableItem.html" title="SatisfiableItem"><code>SatisfiableItem</code></a></p>
+</div></details></div></details></div><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><section id="impl-Clone-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#104">source</a><a href="#impl-Clone-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk_wallet::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#104">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk_wallet::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#104">source</a><a href="#impl-Debug-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk_wallet::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#104">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CSatisfiableItem%3E-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#736-740">source</a><a href="#impl-From%3CSatisfiableItem%3E-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="enum.SatisfiableItem.html" title="enum bdk_wallet::descriptor::policy::SatisfiableItem">SatisfiableItem</a>> for <a class="struct" href="struct.Policy.html" title="struct bdk_wallet::descriptor::policy::Policy">Policy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#737-739">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(other: <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk_wallet::descriptor::policy::SatisfiableItem">SatisfiableItem</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CSatisfiableItem%3E-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#104">source</a><a href="#impl-PartialEq%3CSatisfiableItem%3E-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.SatisfiableItem.html" title="enum bdk_wallet::descriptor::policy::SatisfiableItem">SatisfiableItem</a>> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk_wallet::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#104">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.SatisfiableItem.html" title="enum bdk_wallet::descriptor::policy::SatisfiableItem">SatisfiableItem</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#104">source</a><a href="#impl-Serialize-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk_wallet::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#104">source</a><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><__S>(&self, __serializer: __S) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><__S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, __S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> __S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#104">source</a><a href="#impl-Eq-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk_wallet::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section><section id="impl-StructuralEq-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#104">source</a><a href="#impl-StructuralEq-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk_wallet::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section><section id="impl-StructuralPartialEq-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#104">source</a><a href="#impl-StructuralPartialEq-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk_wallet::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SatisfiableItem" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk_wallet::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section><section id="impl-Send-for-SatisfiableItem" class="impl has-srclink"><a href="#impl-Send-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk_wallet::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section><section id="impl-Sync-for-SatisfiableItem" class="impl has-srclink"><a href="#impl-Sync-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk_wallet::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section><section id="impl-Unpin-for-SatisfiableItem" class="impl has-srclink"><a href="#impl-Unpin-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk_wallet::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section><section id="impl-UnwindSafe-for-SatisfiableItem" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk_wallet::descriptor::policy::SatisfiableItem">SatisfiableItem</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SatisfiableItem" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SatisfiableItem" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SatisfiableItem" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Descriptor policy"><meta name="keywords" content="rust, rustlang, rust-lang, policy"><title>bdk_wallet::descriptor::policy - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module policy</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#types">Type Definitions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a class="mod" href="#">policy</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/policy.rs.html#12-1905">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Descriptor policy</p>
+<p>This module implements the logic to extract and represent the spending policies of a descriptor
+in a more human-readable format.</p>
+<p>This is an <strong>EXPERIMENTAL</strong> feature, API and other major changes are expected.</p>
+<h3 id="example"><a href="#example">Example</a></h3>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk_wallet::descriptor::policy::BuildSatisfaction;
+<span class="kw">let </span>secp = Secp256k1::new();
+<span class="kw">let </span>desc = <span class="string">"wsh(and_v(v:pk(cV3oCth6zxZ1UVsHLnGothsWNsaoxRhC6aeNi5VbSdFpwUkgkEci),or_d(pk(cVMTy7uebJgvFaSBwcgvwk8qn8xSLc97dKow4MBetjrrahZoimm2),older(12960))))"</span>;
+
+<span class="kw">let </span>(extended_desc, key_map) = ExtendedDescriptor::parse_descriptor(<span class="kw-2">&</span>secp, desc)<span class="question-mark">?</span>;
+<span class="macro">println!</span>(<span class="string">"{:?}"</span>, extended_desc);
+
+<span class="kw">let </span>signers = Arc::new(SignersContainer::build(key_map, <span class="kw-2">&</span>extended_desc, <span class="kw-2">&</span>secp));
+<span class="kw">let </span>policy = extended_desc.extract_policy(<span class="kw-2">&</span>signers, BuildSatisfaction::None, <span class="kw-2">&</span>secp)<span class="question-mark">?</span>;
+<span class="macro">println!</span>(<span class="string">"policy: {}"</span>, serde_json::to_string(<span class="kw-2">&</span>policy).unwrap());</code></pre></div>
+</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Condition.html" title="bdk_wallet::descriptor::policy::Condition struct">Condition</a></div><div class="item-right docblock-short">An extra condition that must be satisfied but that is out of control of the user
+TODO: use <code>bitcoin::LockTime</code> and <code>bitcoin::Sequence</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Policy.html" title="bdk_wallet::descriptor::policy::Policy struct">Policy</a></div><div class="item-right docblock-short">Descriptor spending policy</div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.BuildSatisfaction.html" title="bdk_wallet::descriptor::policy::BuildSatisfaction enum">BuildSatisfaction</a></div><div class="item-right docblock-short">Options to build the satisfaction field in the policy</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.PkOrF.html" title="bdk_wallet::descriptor::policy::PkOrF enum">PkOrF</a></div><div class="item-right docblock-short">A unique identifier for a key</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.PolicyError.html" title="bdk_wallet::descriptor::policy::PolicyError enum">PolicyError</a></div><div class="item-right docblock-short">Errors that can happen while extracting and manipulating policies</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Satisfaction.html" title="bdk_wallet::descriptor::policy::Satisfaction enum">Satisfaction</a></div><div class="item-right docblock-short">Represent if and how much a policy item is satisfied by the wallet’s descriptor</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.SatisfiableItem.html" title="bdk_wallet::descriptor::policy::SatisfiableItem enum">SatisfiableItem</a></div><div class="item-right docblock-short">An item that needs to be satisfied</div></div></div><h2 id="types" class="small-section-header"><a href="#types">Type Definitions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="type" href="type.ConditionMap.html" title="bdk_wallet::descriptor::policy::ConditionMap type">ConditionMap</a></div><div class="item-right docblock-short">Type for a map of sets of <a href="struct.Condition.html" title="Condition"><code>Condition</code></a> items keyed by each set’s index</div></div><div class="item-row"><div class="item-left module-item"><a class="type" href="type.FoldedConditionMap.html" title="bdk_wallet::descriptor::policy::FoldedConditionMap type">FoldedConditionMap</a></div><div class="item-right docblock-short">Type for a map of folded sets of <a href="struct.Condition.html" title="Condition"><code>Condition</code></a> items keyed by a vector of the combined set’s indexes</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+window.SIDEBAR_ITEMS = {"enum":[["BuildSatisfaction","Options to build the satisfaction field in the policy"],["PkOrF","A unique identifier for a key"],["PolicyError","Errors that can happen while extracting and manipulating policies"],["Satisfaction","Represent if and how much a policy item is satisfied by the wallet’s descriptor"],["SatisfiableItem","An item that needs to be satisfied"]],"struct":[["Condition","An extra condition that must be satisfied but that is out of control of the user TODO: use `bitcoin::LockTime` and `bitcoin::Sequence`"],["Policy","Descriptor spending policy"]],"type":[["ConditionMap","Type for a map of sets of [`Condition`] items keyed by each set’s index"],["FoldedConditionMap","Type for a map of folded sets of [`Condition`] items keyed by a vector of the combined set’s indexes"]]};
\ No newline at end of file
--- /dev/null
+<!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="An extra condition that must be satisfied but that is out of control of the user TODO: use `bitcoin::LockTime` and `bitcoin::Sequence`"><meta name="keywords" content="rust, rustlang, rust-lang, Condition"><title>Condition in bdk_wallet::descriptor::policy - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Condition</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.csv">csv</a></li><li><a href="#structfield.timelock">timelock</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.is_null">is_null</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-Condition">Clone</a></li><li><a href="#impl-Copy-for-Condition">Copy</a></li><li><a href="#impl-Debug-for-Condition">Debug</a></li><li><a href="#impl-Default-for-Condition">Default</a></li><li><a href="#impl-Eq-for-Condition">Eq</a></li><li><a href="#impl-Hash-for-Condition">Hash</a></li><li><a href="#impl-PartialEq%3CCondition%3E-for-Condition">PartialEq<Condition></a></li><li><a href="#impl-PartialOrd%3CCondition%3E-for-Condition">PartialOrd<Condition></a></li><li><a href="#impl-Serialize-for-Condition">Serialize</a></li><li><a href="#impl-StructuralEq-for-Condition">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-Condition">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Condition">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Condition">Send</a></li><li><a href="#impl-Sync-for-Condition">Sync</a></li><li><a href="#impl-Unpin-for-Condition">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Condition">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Condition">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Condition">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Condition">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Condition">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Condition">Into<U></a></li><li><a href="#impl-ToOwned-for-Condition">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Condition">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Condition">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Condition">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor::policy</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">policy</a>::<wbr><a class="struct" href="#">Condition</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/policy.rs.html#449-456">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Condition {
+ pub csv: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Sequence>,
+ pub timelock: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><LockTime>,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An extra condition that must be satisfied but that is out of control of the user
+TODO: use <code>bitcoin::LockTime</code> and <code>bitcoin::Sequence</code></p>
+</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.csv" class="structfield small-section-header"><a href="#structfield.csv" class="anchor field">§</a><code>csv: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Sequence></code></span><div class="docblock"><p>Optional CheckSequenceVerify condition</p>
+</div><span id="structfield.timelock" class="structfield small-section-header"><a href="#structfield.timelock" class="anchor field">§</a><code>timelock: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><LockTime></code></span><div class="docblock"><p>Optional timelock condition</p>
+</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#458-500">source</a><a href="#impl-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_null" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#497-499">source</a><h4 class="code-header">pub fn <a href="#method.is_null" class="fn">is_null</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns <code>true</code> if there are no extra conditions to verify</p>
+</div></details></div></details></div><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><section id="impl-Clone-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#448">source</a><a href="#impl-Clone-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#448">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#448">source</a><a href="#impl-Debug-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#448">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#448">source</a><a href="#impl-Default-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#448">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#448">source</a><a href="#impl-Hash-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#448">source</a><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)</h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CCondition%3E-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#448">source</a><a href="#impl-PartialEq%3CCondition%3E-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a>> for <a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#448">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CCondition%3E-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#448">source</a><a href="#impl-PartialOrd%3CCondition%3E-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a>> for <a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#448">source</a><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#448">source</a><a href="#impl-Serialize-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#448">source</a><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><__S>(&self, __serializer: __S) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><__S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, __S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> __S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Copy-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#448">source</a><a href="#impl-Copy-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a></h3></section><section id="impl-Eq-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#448">source</a><a href="#impl-Eq-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a></h3></section><section id="impl-StructuralEq-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#448">source</a><a href="#impl-StructuralEq-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a></h3></section><section id="impl-StructuralPartialEq-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#448">source</a><a href="#impl-StructuralPartialEq-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Condition" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a></h3></section><section id="impl-Send-for-Condition" class="impl has-srclink"><a href="#impl-Send-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a></h3></section><section id="impl-Sync-for-Condition" class="impl has-srclink"><a href="#impl-Sync-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a></h3></section><section id="impl-Unpin-for-Condition" class="impl has-srclink"><a href="#impl-Unpin-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a></h3></section><section id="impl-UnwindSafe-for-Condition" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Condition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Condition" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Condition" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Condition" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Condition" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Condition" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-Condition" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Condition" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Condition" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Condition" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Condition" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Condition" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Descriptor spending policy"><meta name="keywords" content="rust, rustlang, rust-lang, Policy"><title>Policy in bdk_wallet::descriptor::policy - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Policy</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.contribution">contribution</a></li><li><a href="#structfield.id">id</a></li><li><a href="#structfield.item">item</a></li><li><a href="#structfield.satisfaction">satisfaction</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.get_condition">get_condition</a></li><li><a href="#method.requires_path">requires_path</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-Policy">Clone</a></li><li><a href="#impl-Debug-for-Policy">Debug</a></li><li><a href="#impl-Eq-for-Policy">Eq</a></li><li><a href="#impl-From%3CSatisfiableItem%3E-for-Policy">From<SatisfiableItem></a></li><li><a href="#impl-PartialEq%3CPolicy%3E-for-Policy">PartialEq<Policy></a></li><li><a href="#impl-Serialize-for-Policy">Serialize</a></li><li><a href="#impl-StructuralEq-for-Policy">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-Policy">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Policy">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Policy">Send</a></li><li><a href="#impl-Sync-for-Policy">Sync</a></li><li><a href="#impl-Unpin-for-Policy">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Policy">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Policy">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Policy">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Policy">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Policy">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Policy">Into<U></a></li><li><a href="#impl-ToOwned-for-Policy">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Policy">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Policy">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Policy">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor::policy</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">policy</a>::<wbr><a class="struct" href="#">Policy</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/policy.rs.html#433-444">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Policy {
+ pub id: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
+ pub item: <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk_wallet::descriptor::policy::SatisfiableItem">SatisfiableItem</a>,
+ pub satisfaction: <a class="enum" href="enum.Satisfaction.html" title="enum bdk_wallet::descriptor::policy::Satisfaction">Satisfaction</a>,
+ pub contribution: <a class="enum" href="enum.Satisfaction.html" title="enum bdk_wallet::descriptor::policy::Satisfaction">Satisfaction</a>,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Descriptor spending policy</p>
+</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.id" class="structfield small-section-header"><a href="#structfield.id" class="anchor field">§</a><code>id: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></code></span><div class="docblock"><p>Identifier for this policy node</p>
+</div><span id="structfield.item" class="structfield small-section-header"><a href="#structfield.item" class="anchor field">§</a><code>item: <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk_wallet::descriptor::policy::SatisfiableItem">SatisfiableItem</a></code></span><div class="docblock"><p>Type of this policy node</p>
+</div><span id="structfield.satisfaction" class="structfield small-section-header"><a href="#structfield.satisfaction" class="anchor field">§</a><code>satisfaction: <a class="enum" href="enum.Satisfaction.html" title="enum bdk_wallet::descriptor::policy::Satisfaction">Satisfaction</a></code></span><div class="docblock"><p>How much a given PSBT already satisfies this policy node in terms of signatures</p>
+</div><span id="structfield.contribution" class="structfield small-section-header"><a href="#structfield.contribution" class="anchor field">§</a><code>contribution: <a class="enum" href="enum.Satisfaction.html" title="enum bdk_wallet::descriptor::policy::Satisfaction">Satisfaction</a></code></span><div class="docblock"><p>How the wallet’s descriptor can satisfy this policy node</p>
+</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Policy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#535-734">source</a><a href="#impl-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Policy.html" title="struct bdk_wallet::descriptor::policy::Policy">Policy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.requires_path" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#653-655">source</a><h4 class="code-header">pub fn <a href="#method.requires_path" class="fn">requires_path</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Return whether or not a specific path in the policy tree is required to unambiguously
+create a transaction</p>
+<p>What this means is that for some spending policies the user should select which paths in
+the tree it intends to satisfy while signing, because the transaction must be created differently based
+on that.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_condition" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#659-733">source</a><h4 class="code-header">pub fn <a href="#method.get_condition" class="fn">get_condition</a>(<br> &self,<br> path: &<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><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</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.usize.html">usize</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="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a>, <a class="enum" href="enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a>></h4></section></summary><div class="docblock"><p>Return the conditions that are set by the spending policy for a given path in the
+policy tree</p>
+</div></details></div></details></div><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><section id="impl-Clone-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#432">source</a><a href="#impl-Clone-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.Policy.html" title="struct bdk_wallet::descriptor::policy::Policy">Policy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#432">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.Policy.html" title="struct bdk_wallet::descriptor::policy::Policy">Policy</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#432">source</a><a href="#impl-Debug-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Policy.html" title="struct bdk_wallet::descriptor::policy::Policy">Policy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#432">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CSatisfiableItem%3E-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#736-740">source</a><a href="#impl-From%3CSatisfiableItem%3E-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="enum.SatisfiableItem.html" title="enum bdk_wallet::descriptor::policy::SatisfiableItem">SatisfiableItem</a>> for <a class="struct" href="struct.Policy.html" title="struct bdk_wallet::descriptor::policy::Policy">Policy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#737-739">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(other: <a class="enum" href="enum.SatisfiableItem.html" title="enum bdk_wallet::descriptor::policy::SatisfiableItem">SatisfiableItem</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CPolicy%3E-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#432">source</a><a href="#impl-PartialEq%3CPolicy%3E-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.Policy.html" title="struct bdk_wallet::descriptor::policy::Policy">Policy</a>> for <a class="struct" href="struct.Policy.html" title="struct bdk_wallet::descriptor::policy::Policy">Policy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#432">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.Policy.html" title="struct bdk_wallet::descriptor::policy::Policy">Policy</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#432">source</a><a href="#impl-Serialize-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="struct" href="struct.Policy.html" title="struct bdk_wallet::descriptor::policy::Policy">Policy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#432">source</a><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><__S>(&self, __serializer: __S) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><__S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, __S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> __S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#432">source</a><a href="#impl-Eq-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.Policy.html" title="struct bdk_wallet::descriptor::policy::Policy">Policy</a></h3></section><section id="impl-StructuralEq-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#432">source</a><a href="#impl-StructuralEq-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="struct" href="struct.Policy.html" title="struct bdk_wallet::descriptor::policy::Policy">Policy</a></h3></section><section id="impl-StructuralPartialEq-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/policy.rs.html#432">source</a><a href="#impl-StructuralPartialEq-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.Policy.html" title="struct bdk_wallet::descriptor::policy::Policy">Policy</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Policy" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Policy.html" title="struct bdk_wallet::descriptor::policy::Policy">Policy</a></h3></section><section id="impl-Send-for-Policy" class="impl has-srclink"><a href="#impl-Send-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Policy.html" title="struct bdk_wallet::descriptor::policy::Policy">Policy</a></h3></section><section id="impl-Sync-for-Policy" class="impl has-srclink"><a href="#impl-Sync-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Policy.html" title="struct bdk_wallet::descriptor::policy::Policy">Policy</a></h3></section><section id="impl-Unpin-for-Policy" class="impl has-srclink"><a href="#impl-Unpin-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Policy.html" title="struct bdk_wallet::descriptor::policy::Policy">Policy</a></h3></section><section id="impl-UnwindSafe-for-Policy" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Policy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Policy.html" title="struct bdk_wallet::descriptor::policy::Policy">Policy</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Policy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Policy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Policy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Policy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Policy" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-Policy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Policy" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Policy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Policy" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Policy" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Policy" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Type for a map of sets of [`Condition`] items keyed by each set’s index"><meta name="keywords" content="rust, rustlang, rust-lang, ConditionMap"><title>ConditionMap in bdk_wallet::descriptor::policy - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">ConditionMap</a></h2><div class="sidebar-elems"><h2><a href="index.html">In bdk_wallet::descriptor::policy</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">policy</a>::<wbr><a class="type" href="#">ConditionMap</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/policy.rs.html#238">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub type ConditionMap = <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><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/set/struct.HashSet.html" title="struct std::collections::hash::set::HashSet">HashSet</a><<a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a>>>;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Type for a map of sets of <a href="struct.Condition.html" title="Condition"><code>Condition</code></a> items keyed by each set’s index</p>
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Type for a map of folded sets of [`Condition`] items keyed by a vector of the combined set’s indexes"><meta name="keywords" content="rust, rustlang, rust-lang, FoldedConditionMap"><title>FoldedConditionMap in bdk_wallet::descriptor::policy - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">FoldedConditionMap</a></h2><div class="sidebar-elems"><h2><a href="index.html">In bdk_wallet::descriptor::policy</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">policy</a>::<wbr><a class="type" href="#">FoldedConditionMap</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/policy.rs.html#240">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub type FoldedConditionMap = <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><<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.usize.html">usize</a>>, <a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/set/struct.HashSet.html" title="struct std::collections::hash::set::HashSet">HashSet</a><<a class="struct" href="struct.Condition.html" title="struct bdk_wallet::descriptor::policy::Condition">Condition</a>>>;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Type for a map of folded sets of <a href="struct.Condition.html" title="Condition"><code>Condition</code></a> items keyed by a vector of the combined set’s indexes</p>
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+window.SIDEBAR_ITEMS = {"enum":[["Descriptor","Script descriptor"],["DescriptorPublicKey","The descriptor pubkey, either a single pubkey or an xpub."],["Legacy","Legacy ScriptContext To be used as P2SH scripts For creation of Bare scriptpubkeys, construct the Miniscript under `Bare` ScriptContext"],["Segwitv0","Segwitv0 ScriptContext"]],"mod":[["checksum","Descriptor checksum"],["error","Descriptor errors"],["policy","Descriptor policy"],["template","Descriptor templates"]],"struct":[["Miniscript","The top-level miniscript abstract syntax tree (AST)."]],"trait":[["ExtractPolicy","Trait implemented on [`Descriptor`]s to add a method to extract the spending [`policy`]"],["IntoWalletDescriptor","Trait for types which can be converted into an [`ExtendedDescriptor`] and a [`KeyMap`] usable by a wallet in a specific [`Network`]"],["ScriptContext","The ScriptContext for Miniscript. Additional type information associated with miniscript that is used for carrying out checks that dependent on the context under which the script is used. For example, disallowing uncompressed keys in Segwit context"]],"type":[["DerivedDescriptor","Alias for a [`Descriptor`] that contains extended derived keys"],["ExtendedDescriptor","Alias for a [`Descriptor`] that can contain extended keys using [`DescriptorPublicKey`]"],["HdKeyPaths","Alias for the type of maps that represent derivation paths in a `psbt::Input` or `psbt::Output`"],["TapKeyOrigins","Alias for the type of maps that represent taproot key origins in a `psbt::Input` or `psbt::Output`"]]};
\ No newline at end of file
--- /dev/null
+<!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="The top-level miniscript abstract syntax tree (AST)."><meta name="keywords" content="rust, rustlang, rust-lang, Miniscript"><title>Miniscript in bdk_wallet::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Miniscript</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.ext">ext</a></li><li><a href="#structfield.node">node</a></li><li><a href="#structfield.ty">ty</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.as_inner">as_inner</a></li><li><a href="#method.branches">branches</a></li><li><a href="#method.build_template">build_template</a></li><li><a href="#method.build_template_mall">build_template_mall</a></li><li><a href="#method.contains_raw_pkh">contains_raw_pkh</a></li><li><a href="#method.encode">encode</a></li><li><a href="#method.ext_check">ext_check</a></li><li><a href="#method.from_ast">from_ast</a></li><li><a href="#method.from_components_unchecked">from_components_unchecked</a></li><li><a href="#method.from_str_ext">from_str_ext</a></li><li><a href="#method.from_str_insane">from_str_insane</a></li><li><a href="#method.get_nth_child">get_nth_child</a></li><li><a href="#method.get_nth_pk">get_nth_pk</a></li><li><a href="#method.has_mixed_timelocks">has_mixed_timelocks</a></li><li><a href="#method.has_repeated_keys">has_repeated_keys</a></li><li><a href="#method.into_inner">into_inner</a></li><li><a href="#method.is_non_malleable">is_non_malleable</a></li><li><a href="#method.iter">iter</a></li><li><a href="#method.iter_pk">iter_pk</a></li><li><a href="#method.lift_check">lift_check</a></li><li><a href="#method.max_satisfaction_size">max_satisfaction_size</a></li><li><a href="#method.max_satisfaction_witness_elements">max_satisfaction_witness_elements</a></li><li><a href="#method.parse">parse</a></li><li><a href="#method.parse_insane">parse_insane</a></li><li><a href="#method.parse_with_ext">parse_with_ext</a></li><li><a href="#method.requires_sig">requires_sig</a></li><li><a href="#method.sanity_check">sanity_check</a></li><li><a href="#method.satisfy">satisfy</a></li><li><a href="#method.satisfy_malleable">satisfy_malleable</a></li><li><a href="#method.script_size">script_size</a></li><li><a href="#method.substitute_raw_pkh">substitute_raw_pkh</a></li><li><a href="#method.within_resource_limits">within_resource_limits</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-Miniscript%3CPk%2C%20Ctx%3E">Clone</a></li><li><a href="#impl-Debug-for-Miniscript%3CPk%2C%20Ctx%3E">Debug</a></li><li><a href="#impl-Deserialize%3C%27de%3E-for-Miniscript%3CPk%2C%20Ctx%3E">Deserialize<'de></a></li><li><a href="#impl-Display-for-Miniscript%3CPk%2C%20Ctx%3E">Display</a></li><li><a href="#impl-Eq-for-Miniscript%3CPk%2C%20Ctx%3E">Eq</a></li><li><a href="#impl-ExtractPolicy-for-Miniscript%3CDescriptorPublicKey%2C%20Ctx%3E">ExtractPolicy</a></li><li><a href="#impl-ForEachKey%3CPk%3E-for-Miniscript%3CPk%2C%20Ctx%3E">ForEachKey<Pk></a></li><li><a href="#impl-FromStr-for-Miniscript%3CPk%2C%20Ctx%3E">FromStr</a></li><li><a href="#impl-FromTree-for-Miniscript%3CPk%2C%20Ctx%3E">FromTree</a></li><li><a href="#impl-Hash-for-Miniscript%3CPk%2C%20Ctx%3E">Hash</a></li><li><a href="#impl-Liftable%3CPk%3E-for-Miniscript%3CPk%2C%20Ctx%3E">Liftable<Pk></a></li><li><a href="#impl-Ord-for-Miniscript%3CPk%2C%20Ctx%3E">Ord</a></li><li><a href="#impl-PartialEq%3CMiniscript%3CPk%2C%20Ctx%3E%3E-for-Miniscript%3CPk%2C%20Ctx%3E">PartialEq<Miniscript<Pk, Ctx>></a></li><li><a href="#impl-PartialOrd%3CMiniscript%3CPk%2C%20Ctx%3E%3E-for-Miniscript%3CPk%2C%20Ctx%3E">PartialOrd<Miniscript<Pk, Ctx>></a></li><li><a href="#impl-Serialize-for-Miniscript%3CPk%2C%20Ctx%3E">Serialize</a></li><li><a href="#impl-TranslatePk%3CPk%2C%20Q%3E-for-Miniscript%3CPk%2C%20Ctx%3E">TranslatePk<Pk, Q></a></li><li><a href="#impl-TreeLike-for-%26%27a%20Miniscript%3CPk%2C%20Ctx%3E">TreeLike</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Miniscript%3CPk%2C%20Ctx%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Miniscript%3CPk%2C%20Ctx%3E">Send</a></li><li><a href="#impl-Sync-for-Miniscript%3CPk%2C%20Ctx%3E">Sync</a></li><li><a href="#impl-Unpin-for-Miniscript%3CPk%2C%20Ctx%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Miniscript%3CPk%2C%20Ctx%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Miniscript%3CPk%2C%20Ctx%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Miniscript%3CPk%2C%20Ctx%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Miniscript%3CPk%2C%20Ctx%3E">BorrowMut<T></a></li><li><a href="#impl-DeserializeOwned-for-Miniscript%3CPk%2C%20Ctx%3E">DeserializeOwned</a></li><li><a href="#impl-From%3CT%3E-for-Miniscript%3CPk%2C%20Ctx%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Miniscript%3CPk%2C%20Ctx%3E">Into<U></a></li><li><a href="#impl-ToOwned-for-Miniscript%3CPk%2C%20Ctx%3E">ToOwned</a></li><li><a href="#impl-ToString-for-Miniscript%3CPk%2C%20Ctx%3E">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Miniscript%3CPk%2C%20Ctx%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Miniscript%3CPk%2C%20Ctx%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Miniscript%3CPk%2C%20Ctx%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="struct" href="#">Miniscript</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Miniscript<Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span>{
+ pub node: Terminal<Pk, Ctx>,
+ pub ty: Type,
+ pub ext: ExtData,
+ /* private fields */
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The top-level miniscript abstract syntax tree (AST).</p>
+</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.node" class="structfield small-section-header"><a href="#structfield.node" class="anchor field">§</a><code>node: Terminal<Pk, Ctx></code></span><div class="docblock"><p>A node in the AST.</p>
+</div><span id="structfield.ty" class="structfield small-section-header"><a href="#structfield.ty" class="anchor field">§</a><code>ty: Type</code></span><div class="docblock"><p>The correctness and malleability type information for the AST node.</p>
+</div><span id="structfield.ext" class="structfield small-section-header"><a href="#structfield.ext" class="anchor field">§</a><code>ext: ExtData</code></span><div class="docblock"><p>Additional information helpful for extra analysis.</p>
+</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.requires_sig" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.requires_sig" class="fn">requires_sig</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether all spend paths of miniscript require a signature</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_non_malleable" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_non_malleable" class="fn">is_non_malleable</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether the miniscript is malleable</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.within_resource_limits" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.within_resource_limits" class="fn">within_resource_limits</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether the miniscript can exceed the resource limits(Opcodes, Stack limit etc)</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.has_mixed_timelocks" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.has_mixed_timelocks" class="fn">has_mixed_timelocks</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether the miniscript contains a combination of timelocks</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.has_repeated_keys" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.has_repeated_keys" class="fn">has_repeated_keys</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether the miniscript has repeated Pk or Pkh</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.contains_raw_pkh" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.contains_raw_pkh" class="fn">contains_raw_pkh</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether the given miniscript contains a raw pkh fragment</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sanity_check" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.sanity_check" class="fn">sanity_check</a>(&self) -> <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>, AnalysisError></h4></section></summary><div class="docblock"><p>Check whether the underlying Miniscript is safe under the current context
+Lifting these polices would create a semantic representation that does
+not represent the underlying semantics when miniscript is spent.
+Signing logic may not find satisfaction even if one exists.</p>
+<p>For most cases, users should be dealing with safe scripts.
+Use this function to check whether the guarantees of library hold.
+Most functions of the library like would still
+work, but results cannot be relied upon</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ext_check" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.ext_check" class="fn">ext_check</a>(&self, ext: &ExtParams) -> <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>, AnalysisError></h4></section></summary><div class="docblock"><p>Check whether the miniscript follows the given Extra policy [<code>ExtParams</code>]</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Miniscript%3CPk%2C%20Ctx%3E-1" class="impl has-srclink"><a href="#impl-Miniscript%3CPk%2C%20Ctx%3E-1" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="docblock"><p>Iterator-related extensions for <a href="struct.Miniscript.html" title="Miniscript">Miniscript</a></p>
+</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.iter" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.iter" class="fn">iter</a>(&self) -> Iter<'_, Pk, Ctx></h4></section></summary><div class="docblock"><p>Creates a new [Iter] iterator that will iterate over all <a href="struct.Miniscript.html" title="Miniscript">Miniscript</a> items within
+AST by traversing its branches. For the specific algorithm please see
+[Iter::next] function.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.iter_pk" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.iter_pk" class="fn">iter_pk</a>(&self) -> PkIter<'_, Pk, Ctx></h4></section></summary><div class="docblock"><p>Creates a new [PkIter] iterator that will iterate over all plain public keys (and not
+key hash values) present in <a href="struct.Miniscript.html" title="Miniscript">Miniscript</a> items within AST by traversing all its branches.
+For the specific algorithm please see [PkIter::next] function.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.branches" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.branches" class="fn">branches</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><&<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>></h4></section></summary><div class="docblock"><p>Enumerates all child nodes of the current AST node (<code>self</code>) and returns a <code>Vec</code> referencing
+them.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_nth_child" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.get_nth_child" class="fn">get_nth_child</a>(&self, n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</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="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx>></h4></section></summary><div class="docblock"><p>Returns child node with given index, if any</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_nth_pk" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.get_nth_pk" class="fn">get_nth_pk</a>(&self, n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Pk></h4></section></summary><div class="docblock"><p>Returns <code>Option::Some</code> with cloned n’th public key from the current miniscript item,
+if any. Otherwise returns <code>Option::None</code>.</p>
+<p>NB: The function analyzes only single miniscript item and not any of its descendants in AST.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Miniscript%3CPk%2C%20Ctx%3E-2" class="impl has-srclink"><a href="#impl-Miniscript%3CPk%2C%20Ctx%3E-2" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_ast" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.from_ast" class="fn">from_ast</a>(t: Terminal<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="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx>, Error></h4></section></summary><div class="docblock"><p>Add type information(Type and Extdata) to Miniscript based on
+<code>AstElem</code> fragment. Dependent on display and clone because of Error
+Display code of type_check.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_components_unchecked" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.from_components_unchecked" class="fn">from_components_unchecked</a>(<br> node: Terminal<Pk, Ctx>,<br> ty: Type,<br> ext: ExtData<br>) -> <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx></h4></section></summary><div class="docblock"><p>Create a new <code>Miniscript</code> from a <code>Terminal</code> node and a <code>Type</code> annotation
+This does not check the typing rules. The user is responsible for ensuring
+that the type provided is correct.</p>
+<p>You should almost always use <code>Miniscript::from_ast</code> instead of this function.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_inner" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.into_inner" class="fn">into_inner</a>(self) -> Terminal<Pk, Ctx></h4></section></summary><div class="docblock"><p>Extracts the <code>AstElem</code> representing the root of the miniscript</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_inner" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.as_inner" class="fn">as_inner</a>(&self) -> &Terminal<Pk, Ctx></h4></section></summary><div class="docblock"><p>Get a reference to the inner <code>AstElem</code> representing the root of miniscript</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.encode" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.encode" class="fn">encode</a>(&self) -> ScriptBuf<span class="where fmt-newline">where<br> Pk: ToPublicKey,</span></h4></section></summary><div class="docblock"><p>Encode as a Bitcoin script</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.script_size" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.script_size" class="fn">script_size</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Size, in bytes of the script-pubkey. If this Miniscript is used outside
+of segwit (e.g. in a bare or P2SH descriptor), this quantity should be
+multiplied by 4 to compute the weight.</p>
+<p>In general, it is not recommended to use this function directly, but
+to instead call the corresponding function on a <code>Descriptor</code>, which
+will handle the segwit/non-segwit technicalities for you.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_satisfaction_witness_elements" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.max_satisfaction_witness_elements" class="fn">max_satisfaction_witness_elements</a>(&self) -> <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.usize.html">usize</a>, Error></h4></section></summary><div class="docblock"><p>Maximum number of witness elements used to satisfy the Miniscript
+fragment, including the witness script itself. Used to estimate
+the weight of the <code>VarInt</code> that specifies this number in a serialized
+transaction.</p>
+<p>This function may returns Error when the Miniscript is
+impossible to satisfy</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_satisfaction_size" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.max_satisfaction_size" class="fn">max_satisfaction_size</a>(&self) -> <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.usize.html">usize</a>, Error></h4></section></summary><div class="docblock"><p>Maximum size, in bytes, of a satisfying witness. For Segwit outputs
+<code>one_cost</code> should be set to 2, since the number <code>1</code> requires two
+bytes to encode. For non-segwit outputs <code>one_cost</code> should be set to
+1, since <code>OP_1</code> is available in scriptSigs.</p>
+<p>In general, it is not recommended to use this function directly, but
+to instead call the corresponding function on a <code>Descriptor</code>, which
+will handle the segwit/non-segwit technicalities for you.</p>
+<p>All signatures are assumed to be 73 bytes in size, including the
+length prefix (segwit) or push opcode (pre-segwit) and sighash
+postfix.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.satisfy" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.satisfy" class="fn">satisfy</a><S>(<br> &self,<br> satisfier: S<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="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</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="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>>, Error><span class="where fmt-newline">where<br> S: Satisfier<Pk>,<br> Pk: ToPublicKey,</span></h4></section></summary><div class="docblock"><p>Attempt to produce non-malleable satisfying witness for the
+witness script represented by the parse tree</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.satisfy_malleable" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.satisfy_malleable" class="fn">satisfy_malleable</a><S>(<br> &self,<br> satisfier: S<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="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</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="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>>, Error><span class="where fmt-newline">where<br> S: Satisfier<Pk>,<br> Pk: ToPublicKey,</span></h4></section></summary><div class="docblock"><p>Attempt to produce a malleable satisfying witness for the
+witness script represented by the parse tree</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build_template" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.build_template" class="fn">build_template</a><P>(&self, provider: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>P) -> Satisfaction<Placeholder<Pk>><span class="where fmt-newline">where<br> P: AssetProvider<Pk>,<br> Pk: ToPublicKey,</span></h4></section></summary><div class="docblock"><p>Attempt to produce a non-malleable witness template given the assets available</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build_template_mall" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.build_template_mall" class="fn">build_template_mall</a><P>(<br> &self,<br> provider: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>P<br>) -> Satisfaction<Placeholder<Pk>><span class="where fmt-newline">where<br> P: AssetProvider<Pk>,<br> Pk: ToPublicKey,</span></h4></section></summary><div class="docblock"><p>Attempt to produce a malleable witness template given the assets available</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Miniscript%3C%3CCtx%20as%20ScriptContext%3E%3A%3AKey%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Miniscript%3C%3CCtx%20as%20ScriptContext%3E%3A%3AKey%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><<Ctx as <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>>::<a class="associatedtype" href="../keys/trait.ScriptContext.html#associatedtype.Key" title="type bdk_wallet::keys::ScriptContext::Key">Key</a>, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.parse_insane" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.parse_insane" class="fn">parse_insane</a>(<br> script: &Script<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="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><<Ctx as <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>>::<a class="associatedtype" href="../keys/trait.ScriptContext.html#associatedtype.Key" title="type bdk_wallet::keys::ScriptContext::Key">Key</a>, Ctx>, Error></h4></section></summary><div class="docblock"><p>Attempt to parse an insane(scripts don’t clear sanity checks)
+script into a Miniscript representation.
+Use this to parse scripts with repeated pubkeys, timelock mixing, malleable
+scripts without sig or scripts that can exceed resource limits.
+Some of the analysis guarantees of miniscript are lost when dealing with
+insane scripts. In general, in a multi-party setting users should only
+accept sane scripts.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.parse_with_ext" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.parse_with_ext" class="fn">parse_with_ext</a>(<br> script: &Script,<br> ext: &ExtParams<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="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><<Ctx as <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>>::<a class="associatedtype" href="../keys/trait.ScriptContext.html#associatedtype.Key" title="type bdk_wallet::keys::ScriptContext::Key">Key</a>, Ctx>, Error></h4></section></summary><div class="docblock"><p>Attempt to parse an miniscript with extra features that not yet specified in the spec.
+Users should not use this function unless they scripts can/will change in the future.
+Currently, this function supports the following features:
+- Parsing all insane scripts
+- Parsing miniscripts with raw pubkey hashes</p>
+<p>Allowed extra features can be specified by the ext [<code>ExtParams</code>] argument.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.parse" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.parse" class="fn">parse</a>(<br> script: &Script<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="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><<Ctx as <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>>::<a class="associatedtype" href="../keys/trait.ScriptContext.html#associatedtype.Key" title="type bdk_wallet::keys::ScriptContext::Key">Key</a>, Ctx>, Error></h4></section></summary><div class="docblock"><p>Attempt to parse a Script into Miniscript representation.</p>
+<p>This function will fail parsing for scripts that do not clear the
+<a href="struct.Miniscript.html#method.sanity_check" title="Miniscript::sanity_check"><code>Miniscript::sanity_check</code></a> checks. Use <a href="struct.Miniscript.html#method.parse_insane" title="Miniscript::parse_insane"><code>Miniscript::parse_insane</code></a> to
+parse such scripts.</p>
+<h6 id="decodeparse-a-miniscript-from-script-hex"><a href="#decodeparse-a-miniscript-from-script-hex">Decode/Parse a miniscript from script hex</a></h6>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>miniscript::{Miniscript, Segwitv0, Tap};
+<span class="kw">use </span>miniscript::bitcoin::secp256k1::XOnlyPublicKey;
+<span class="kw">use </span>miniscript::bitcoin::hashes::hex::FromHex;
+
+<span class="kw">type </span>Segwitv0Script = Miniscript<bitcoin::PublicKey, Segwitv0>;
+<span class="kw">type </span>TapScript = Miniscript<XOnlyPublicKey, Tap>;
+
+<span class="comment">// parse x-only miniscript in Taproot context
+</span><span class="kw">let </span>tapscript_ms = TapScript::parse(<span class="kw-2">&</span>bitcoin::ScriptBuf::from_hex(
+ <span class="string">"202788ee41e76f4f3af603da5bc8fa22997bc0344bb0f95666ba6aaff0242baa99ac"</span>,
+).expect(<span class="string">"Even length hex"</span>))
+ .expect(<span class="string">"Xonly keys are valid only in taproot context"</span>);
+<span class="comment">// tapscript fails decoding when we use them with compressed keys
+</span><span class="kw">let </span>err = TapScript::parse(<span class="kw-2">&</span>bitcoin::ScriptBuf::from_hex(
+ <span class="string">"21022788ee41e76f4f3af603da5bc8fa22997bc0344bb0f95666ba6aaff0242baa99ac"</span>,
+).expect(<span class="string">"Even length hex"</span>))
+ .expect_err(<span class="string">"Compressed keys cannot be used in Taproot context"</span>);
+<span class="comment">// Segwitv0 succeeds decoding with full keys.
+</span>Segwitv0Script::parse(<span class="kw-2">&</span>bitcoin::ScriptBuf::from_hex(
+ <span class="string">"21022788ee41e76f4f3af603da5bc8fa22997bc0344bb0f95666ba6aaff0242baa99ac"</span>,
+).expect(<span class="string">"Even length hex"</span>))
+ .expect(<span class="string">"Compressed keys are allowed in Segwit context"</span>);
+</code></pre></div>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Miniscript%3CPk%2C%20Ctx%3E-3" class="impl has-srclink"><a href="#impl-Miniscript%3CPk%2C%20Ctx%3E-3" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.substitute_raw_pkh" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.substitute_raw_pkh" class="fn">substitute_raw_pkh</a>(<br> &self,<br> pk_map: &<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><Hash, Pk, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>><br>) -> <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx></h4></section></summary><div class="docblock"><p>Substitutes raw public keys hashes with the public keys as provided by map.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Miniscript%3CPk%2C%20Ctx%3E-4" class="impl has-srclink"><a href="#impl-Miniscript%3CPk%2C%20Ctx%3E-4" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey + <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Sha256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Ripemd160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_str_insane" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.from_str_insane" class="fn">from_str_insane</a>(s: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx>, Error></h4></section></summary><div class="docblock"><p>Attempt to parse an insane(scripts don’t clear sanity checks)
+from string into a Miniscript representation.
+Use this to parse scripts with repeated pubkeys, timelock mixing, malleable
+scripts without sig or scripts that can exceed resource limits.
+Some of the analysis guarantees of miniscript are lost when dealing with
+insane scripts. In general, in a multi-party setting users should only
+accept sane scripts.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Miniscript%3CPk%2C%20Ctx%3E-5" class="impl has-srclink"><a href="#impl-Miniscript%3CPk%2C%20Ctx%3E-5" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey + <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Sha256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Ripemd160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_str_ext" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.from_str_ext" class="fn">from_str_ext</a>(<br> s: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,<br> ext: &ExtParams<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="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx>, Error></h4></section></summary><div class="docblock"><p>Attempt to parse an Miniscripts that don’t follow the spec.
+Use this to parse scripts with repeated pubkeys, timelock mixing, malleable
+scripts, raw pubkey hashes without sig or scripts that can exceed resource limits.</p>
+<p>Use [<code>ExtParams</code>] builder to specify the types of non-sane rules to allow while parsing.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Miniscript%3CPk%2C%20Ctx%3E-6" class="impl has-srclink"><a href="#impl-Miniscript%3CPk%2C%20Ctx%3E-6" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lift_check" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.lift_check" class="fn">lift_check</a>(&self) -> <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>, LiftError></h4></section></summary><div class="docblock"><p>Lifting corresponds to conversion of a miniscript into a [<code>Semantic</code>]
+policy for human readable or machine analysis. However, naively lifting
+miniscripts can result in incorrect interpretations that don’t
+correspond to the underlying semantics when we try to spend them on
+bitcoin network. This can occur if the miniscript contains:</p>
+<ol>
+<li>A combination of timelocks</li>
+<li>A spend that exceeds resource limits</li>
+</ol>
+</div></details></div></details></div><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><section id="impl-Clone-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Clone-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + MiniscriptKey,<br> Ctx: <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="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Debug-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserialize%3C%27de%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Deserialize%3C%27de%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<'de, Pk, Ctx> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> for <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey + <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,<br> <<Pk as MiniscriptKey>::Sha256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,<br> <<Pk as MiniscriptKey>::Hash256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,<br> <<Pk as MiniscriptKey>::Ripemd160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,<br> <<Pk as MiniscriptKey>::Hash160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl has-srclink"><a href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize" class="fn">deserialize</a><D>(<br> deserializer: D<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="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx>, <D as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>><span class="where fmt-newline">where<br> D: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Display-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ExtractPolicy-for-Miniscript%3CDescriptorPublicKey%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/descriptor/policy.rs.html#910-1043">source</a><a href="#impl-ExtractPolicy-for-Miniscript%3CDescriptorPublicKey%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a> + 'static> <a class="trait" href="trait.ExtractPolicy.html" title="trait bdk_wallet::descriptor::ExtractPolicy">ExtractPolicy</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.extract_policy" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/descriptor/policy.rs.html#911-1042">source</a><a href="#method.extract_policy" class="anchor">§</a><h4 class="code-header">fn <a href="trait.ExtractPolicy.html#tymethod.extract_policy" class="fn">extract_policy</a>(<br> &self,<br> signers: &<a class="struct" href="../wallet/signer/struct.SignersContainer.html" title="struct bdk_wallet::wallet::signer::SignersContainer">SignersContainer</a>,<br> build_sat: <a class="enum" href="policy/enum.BuildSatisfaction.html" title="enum bdk_wallet::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_wallet::descriptor::policy::Policy">Policy</a>>, <a class="enum" href="error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Extract the spending <a href="policy/index.html" title="policy"><code>policy</code></a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ForEachKey%3CPk%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-ForEachKey%3CPk%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> ForEachKey<Pk> for <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.for_each_key" class="method trait-impl has-srclink"><a href="#method.for_each_key" class="anchor">§</a><h4 class="code-header">fn <a class="fn">for_each_key</a><'a, F>(&'a self, pred: F) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&'a </a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</span></h4></section></summary><div class='docblock'>Run a predicate on every key in the descriptor, returning whether
+the predicate returned true for every key <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.for_any_key" class="method trait-impl has-srclink"><a href="#method.for_any_key" class="anchor">§</a><h4 class="code-header">fn <a class="fn">for_any_key</a><'a, F>(&'a self, pred: F) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&'a </a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,<br> Pk: 'a,</span></h4></section></summary><div class='docblock'>Run a predicate on every key in the descriptor, returning whether
+the predicate returned true for any key <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-FromStr-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-FromStr-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey + <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Sha256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Ripemd160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_str" class="method trait-impl has-srclink"><a href="#method.from_str" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str" class="fn">from_str</a>(s: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx>, Error></h4></section></summary><div class="docblock"><p>Parse a Miniscript from string and perform sanity checks
+See <a href="struct.Miniscript.html#method.from_str_insane" title="Miniscript::from_str_insane">Miniscript::from_str_insane</a> to parse scripts from string that
+do not clear the <a href="struct.Miniscript.html#method.sanity_check" title="Miniscript::sanity_check">Miniscript::sanity_check</a> checks.</p>
+</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Err" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Err" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" class="associatedtype">Err</a> = Error</h4></section></summary><div class='docblock'>The associated error which can be returned from parsing.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-FromTree-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-FromTree-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> FromTree for <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey + <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Sha256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash256 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Ripemd160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> <<Pk as MiniscriptKey>::Hash160 as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_tree" class="method trait-impl has-srclink"><a href="#method.from_tree" class="anchor">§</a><h4 class="code-header">fn <a class="fn">from_tree</a>(top: &Tree<'_>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx>, Error></h4></section></summary><div class="docblock"><p>Parse an expression tree into a Miniscript. As a general rule, this
+should not be called directly; rather go through the descriptor API.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Hash-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="docblock"><p><code>Hash</code> of <code>Miniscript</code> must depend only on node and not the type information.</p>
+<p>The type information and extra properties are implied by the AST.</p>
+</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><H>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Liftable%3CPk%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Liftable%3CPk%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> Liftable<Pk> for <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lift" class="method trait-impl has-srclink"><a href="#method.lift" class="anchor">§</a><h4 class="code-header">fn <a class="fn">lift</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Policy<Pk>, Error></h4></section></summary><div class='docblock'>Converts this object into an abstract policy.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Ord-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="docblock"><p><code>Ord</code> of <code>Miniscript</code> must depend only on node and not the type information.</p>
+<p>The type information and extra properties are implied by the AST.</p>
+</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CMiniscript%3CPk%2C%20Ctx%3E%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-PartialEq%3CMiniscript%3CPk%2C%20Ctx%3E%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx>> for <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="docblock"><p><code>PartialEq</code> of <code>Miniscript</code> must depend only on node and not the type information.</p>
+<p>The type information and extra properties are implied by the AST.</p>
+</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CMiniscript%3CPk%2C%20Ctx%3E%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-PartialOrd%3CMiniscript%3CPk%2C%20Ctx%3E%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx>> for <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="docblock"><p><code>PartialOrd</code> of <code>Miniscript</code> must depend only on node and not the type information.</p>
+<p>The type information and extra properties are implied by the AST.</p>
+</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Serialize-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<'de, Pk, Ctx> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><S>(<br> &self,<br> serializer: S<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<S as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, <S as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-TranslatePk%3CPk%2C%20Q%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-TranslatePk%3CPk%2C%20Q%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Q, Ctx> TranslatePk<Pk, Q> for <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Q: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.translate_pk" class="method trait-impl has-srclink"><a href="#method.translate_pk" class="anchor">§</a><h4 class="code-header">fn <a class="fn">translate_pk</a><T, E>(<br> &self,<br> t: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T<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="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx> as TranslatePk<Pk, Q>>::Output, TranslateErr<E>><span class="where fmt-newline">where<br> T: Translator<Pk, Q, E>,</span></h4></section></summary><div class="docblock"><p>Translates a struct from one generic to another where the translation
+for Pk is provided by [<code>Translator</code>]</p>
+</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Output</a> = <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Q, Ctx></h4></section></summary><div class='docblock'>The associated output type. This must be <code>Self<Q></code>.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-TreeLike-for-%26%27a%20Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-TreeLike-for-%26%27a%20Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<'a, Pk, Ctx> TreeLike for &'a <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_node" class="method trait-impl has-srclink"><a href="#method.as_node" class="anchor">§</a><h4 class="code-header">fn <a class="fn">as_node</a>(&self) -> Tree<&'a <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx>></h4></section></summary><div class='docblock'>Interpret the node as an abstract node.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.n_children" class="method trait-impl has-srclink"><a href="#method.n_children" class="anchor">§</a><h4 class="code-header">fn <a class="fn">n_children</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class='docblock'>Accessor for the number of children this node has.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.nth_child" class="method trait-impl has-srclink"><a href="#method.nth_child" class="anchor">§</a><h4 class="code-header">fn <a class="fn">nth_child</a>(&self, n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self></h4></section></summary><div class='docblock'>Accessor for the nth child of the node, if a child with that index exists.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.pre_order_iter" class="method trait-impl has-srclink"><a href="#method.pre_order_iter" class="anchor">§</a><h4 class="code-header">fn <a class="fn">pre_order_iter</a>(self) -> PreOrderIter<Self></h4></section></summary><div class='docblock'>Obtains an iterator of all the nodes rooted at the node, in pre-order.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.verbose_pre_order_iter" class="method trait-impl has-srclink"><a href="#method.verbose_pre_order_iter" class="anchor">§</a><h4 class="code-header">fn <a class="fn">verbose_pre_order_iter</a>(self) -> VerbosePreOrderIter<Self></h4></section></summary><div class='docblock'>Obtains a verbose iterator of all the nodes rooted at the DAG, in pre-order. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.post_order_iter" class="method trait-impl has-srclink"><a href="#method.post_order_iter" class="anchor">§</a><h4 class="code-header">fn <a class="fn">post_order_iter</a>(self) -> PostOrderIter<Self></h4></section></summary><div class='docblock'>Obtains an iterator of all the nodes rooted at the DAG, in post order. <a>Read more</a></div></details></div></details><section id="impl-Eq-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Eq-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section><div class="docblock"><p><code>Eq</code> of <code>Miniscript</code> must depend only on node and not the type information.</p>
+<p>The type information and extra properties are implied by the AST.</p>
+</div></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Send-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Sync-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Sync-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Hash160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Hash256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Ripemd160: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> <Pk as MiniscriptKey>::Sha256: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details><section id="impl-DeserializeOwned-for-Miniscript%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/serde/1.0.201/src/serde/de/mod.rs.html#608">source</a><a href="#impl-DeserializeOwned-for-Miniscript%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> for T<span class="where fmt-newline">where<br> T: for<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de>,</span></h3></section></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Descriptor templates"><meta name="keywords" content="rust, rustlang, rust-lang, template"><title>bdk_wallet::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module template</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#traits">Traits</a></li><li><a href="#types">Type Definitions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a class="mod" href="#">template</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/template.rs.html#12-985">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Descriptor templates</p>
+<p>This module contains the definition of various common script templates that are ready to be
+used. See the documentation of each template for an example.</p>
+</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Bip44.html" title="bdk_wallet::descriptor::template::Bip44 struct">Bip44</a></div><div class="item-right docblock-short">BIP44 template. Expands to <code>pkh(key/44'/{0,1}'/0'/{0,1}/*)</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Bip44Public.html" title="bdk_wallet::descriptor::template::Bip44Public struct">Bip44Public</a></div><div class="item-right docblock-short">BIP44 public template. Expands to <code>pkh(key/{0,1}/*)</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Bip49.html" title="bdk_wallet::descriptor::template::Bip49 struct">Bip49</a></div><div class="item-right docblock-short">BIP49 template. Expands to <code>sh(wpkh(key/49'/{0,1}'/0'/{0,1}/*))</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Bip49Public.html" title="bdk_wallet::descriptor::template::Bip49Public struct">Bip49Public</a></div><div class="item-right docblock-short">BIP49 public template. Expands to <code>sh(wpkh(key/{0,1}/*))</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Bip84.html" title="bdk_wallet::descriptor::template::Bip84 struct">Bip84</a></div><div class="item-right docblock-short">BIP84 template. Expands to <code>wpkh(key/84'/{0,1}'/0'/{0,1}/*)</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Bip84Public.html" title="bdk_wallet::descriptor::template::Bip84Public struct">Bip84Public</a></div><div class="item-right docblock-short">BIP84 public template. Expands to <code>wpkh(key/{0,1}/*)</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Bip86.html" title="bdk_wallet::descriptor::template::Bip86 struct">Bip86</a></div><div class="item-right docblock-short">BIP86 template. Expands to <code>tr(key/86'/{0,1}'/0'/{0,1}/*)</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Bip86Public.html" title="bdk_wallet::descriptor::template::Bip86Public struct">Bip86Public</a></div><div class="item-right docblock-short">BIP86 public template. Expands to <code>tr(key/{0,1}/*)</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.P2Pkh.html" title="bdk_wallet::descriptor::template::P2Pkh struct">P2Pkh</a></div><div class="item-right docblock-short">P2PKH template. Expands to a descriptor <code>pkh(key)</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.P2TR.html" title="bdk_wallet::descriptor::template::P2TR struct">P2TR</a></div><div class="item-right docblock-short">P2TR template. Expands to a descriptor <code>tr(key)</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.P2Wpkh.html" title="bdk_wallet::descriptor::template::P2Wpkh struct">P2Wpkh</a></div><div class="item-right docblock-short">P2WPKH template. Expands to a descriptor <code>wpkh(key)</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.P2Wpkh_P2Sh.html" title="bdk_wallet::descriptor::template::P2Wpkh_P2Sh struct">P2Wpkh_P2Sh</a></div><div class="item-right docblock-short">P2WPKH-P2SH template. Expands to a descriptor <code>sh(wpkh(key))</code></div></div></div><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.DescriptorTemplate.html" title="bdk_wallet::descriptor::template::DescriptorTemplate trait">DescriptorTemplate</a></div><div class="item-right docblock-short">Trait for descriptor templates that can be built into a full descriptor</div></div></div><h2 id="types" class="small-section-header"><a href="#types">Type Definitions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="type" href="type.DescriptorTemplateOut.html" title="bdk_wallet::descriptor::template::DescriptorTemplateOut type">DescriptorTemplateOut</a></div><div class="item-right docblock-short">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</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+window.SIDEBAR_ITEMS = {"struct":[["Bip44","BIP44 template. Expands to `pkh(key/44'/{0,1}'/0'/{0,1}/*)`"],["Bip44Public","BIP44 public template. Expands to `pkh(key/{0,1}/*)`"],["Bip49","BIP49 template. Expands to `sh(wpkh(key/49'/{0,1}'/0'/{0,1}/*))`"],["Bip49Public","BIP49 public template. Expands to `sh(wpkh(key/{0,1}/*))`"],["Bip84","BIP84 template. Expands to `wpkh(key/84'/{0,1}'/0'/{0,1}/*)`"],["Bip84Public","BIP84 public template. Expands to `wpkh(key/{0,1}/*)`"],["Bip86","BIP86 template. Expands to `tr(key/86'/{0,1}'/0'/{0,1}/*)`"],["Bip86Public","BIP86 public template. Expands to `tr(key/{0,1}/*)`"],["P2Pkh","P2PKH template. Expands to a descriptor `pkh(key)`"],["P2TR","P2TR template. Expands to a descriptor `tr(key)`"],["P2Wpkh","P2WPKH template. Expands to a descriptor `wpkh(key)`"],["P2Wpkh_P2Sh","P2WPKH-P2SH template. Expands to a descriptor `sh(wpkh(key))`"]],"trait":[["DescriptorTemplate","Trait for descriptor templates that can be built into a full descriptor"]],"type":[["DescriptorTemplateOut","Type alias for the return type of [`DescriptorTemplate`], `descriptor!` and others"]]};
\ No newline at end of file
--- /dev/null
+<!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="BIP44 template. Expands to `pkh(key/44'/{0,1}'/0'/{0,1}/*)`"><meta name="keywords" content="rust, rustlang, rust-lang, Bip44"><title>Bip44 in bdk_wallet::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Bip44</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-Bip44%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Bip44%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Bip44%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-Bip44%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-Bip44%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Bip44%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Bip44%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Bip44%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Bip44%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Bip44%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Bip44%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-Bip44%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Bip44%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Bip44%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Bip44%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">Bip44</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/template.rs.html#216">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Bip44<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a>>>(pub K, pub <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>BIP44 template. Expands to <code>pkh(key/44'/{0,1}'/0'/{0,1}/*)</code></p>
+<p>Since there are hardened derivation steps, this template requires a private derivable key (generally a <code>xprv</code>/<code>tprv</code>).</p>
+<p>See <a href="struct.Bip44Public.html" title="Bip44Public"><code>Bip44Public</code></a> for a template that can work with a <code>xpub</code>/<code>tpub</code>.</p>
+<h3 id="example"><a href="#example">Example</a></h3>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk_wallet::template::Bip44;
+
+<span class="kw">let </span>key = bitcoin::bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m"</span>)<span class="question-mark">?</span>;
+<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(
+ Bip44(key.clone(), KeychainKind::External),
+ <span class="prelude-val">Some</span>(Bip44(key, KeychainKind::Internal)),
+ Network::Testnet,
+)<span class="question-mark">?</span>;
+
+<span class="macro">assert_eq!</span>(wallet.next_unused_address(KeychainKind::External)<span class="question-mark">?</span>.to_string(), <span class="string">"mmogjc7HJEZkrLqyQYqJmxUqFaC7i4uf89"</span>);
+<span class="macro">assert_eq!</span>(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), <span class="string">"pkh([c55b303f/44'/1'/0']tpubDCuorCpzvYS2LCD75BR46KHE8GdDeg1wsAgNZeNr6DaB5gQK1o14uErKwKLuFmeemkQ6N2m3rNgvctdJLyr7nwu2yia7413Hhg8WWE44cgT/0/*)#5wrnv0xt"</span>);</code></pre></div>
+</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><span id="structfield.1" class="structfield small-section-header"><a href="#structfield.1" class="anchor field">§</a><code>1: <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></code></span><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><section id="impl-DescriptorTemplate-for-Bip44%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#218-222">source</a><a href="#impl-DescriptorTemplate-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip44.html" title="struct bdk_wallet::descriptor::template::Bip44">Bip44</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#219-221">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk_wallet::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Bip44%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Bip44.html" title="struct bdk_wallet::descriptor::template::Bip44">Bip44</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-Bip44%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Bip44.html" title="struct bdk_wallet::descriptor::template::Bip44">Bip44</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-Bip44%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Bip44.html" title="struct bdk_wallet::descriptor::template::Bip44">Bip44</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-Bip44%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Bip44.html" title="struct bdk_wallet::descriptor::template::Bip44">Bip44</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-Bip44%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Bip44.html" title="struct bdk_wallet::descriptor::template::Bip44">Bip44</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Bip44%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Bip44%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Bip44%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Bip44%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Bip44%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-Bip44%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="enum" href="../enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Bip44%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Bip44%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Bip44%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="BIP44 public template. Expands to `pkh(key/{0,1}/*)`"><meta name="keywords" content="rust, rustlang, rust-lang, Bip44Public"><title>Bip44Public in bdk_wallet::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Bip44Public</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-Bip44Public%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Bip44Public%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Bip44Public%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-Bip44Public%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-Bip44Public%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Bip44Public%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Bip44Public%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Bip44Public%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Bip44Public%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Bip44Public%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Bip44Public%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-Bip44Public%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Bip44Public%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Bip44Public%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Bip44Public%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">Bip44Public</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/template.rs.html#253">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Bip44Public<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a>>>(pub K, pub Fingerprint, pub <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>BIP44 public template. Expands to <code>pkh(key/{0,1}/*)</code></p>
+<p>This assumes that the key used has already been derived with <code>m/44'/0'/0'</code> for Mainnet or <code>m/44'/1'/0'</code> for Testnet.</p>
+<p>This template requires the parent fingerprint to populate correctly the metadata of PSBTs.</p>
+<p>See <a href="struct.Bip44.html" title="Bip44"><code>Bip44</code></a> for a template that does the full derivation, but requires private data
+for the key.</p>
+<h3 id="example"><a href="#example">Example</a></h3>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk_wallet::template::Bip44Public;
+
+<span class="kw">let </span>key = bitcoin::bip32::Xpub::from_str(<span class="string">"tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU"</span>)<span class="question-mark">?</span>;
+<span class="kw">let </span>fingerprint = bitcoin::bip32::Fingerprint::from_str(<span class="string">"c55b303f"</span>)<span class="question-mark">?</span>;
+<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(
+ Bip44Public(key.clone(), fingerprint, KeychainKind::External),
+ <span class="prelude-val">Some</span>(Bip44Public(key, fingerprint, KeychainKind::Internal)),
+ Network::Testnet,
+)<span class="question-mark">?</span>;
+
+<span class="macro">assert_eq!</span>(wallet.next_unused_address(KeychainKind::External)<span class="question-mark">?</span>.to_string(), <span class="string">"miNG7dJTzJqNbFS19svRdTCisC65dsubtR"</span>);
+<span class="macro">assert_eq!</span>(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), <span class="string">"pkh([c55b303f/44'/1'/0']tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU/0/*)#cfhumdqz"</span>);</code></pre></div>
+</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><span id="structfield.1" class="structfield small-section-header"><a href="#structfield.1" class="anchor field">§</a><code>1: Fingerprint</code></span><span id="structfield.2" class="structfield small-section-header"><a href="#structfield.2" class="anchor field">§</a><code>2: <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></code></span><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><section id="impl-DescriptorTemplate-for-Bip44Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#255-262">source</a><a href="#impl-DescriptorTemplate-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip44Public.html" title="struct bdk_wallet::descriptor::template::Bip44Public">Bip44Public</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#256-261">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk_wallet::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Bip44Public%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Bip44Public.html" title="struct bdk_wallet::descriptor::template::Bip44Public">Bip44Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-Bip44Public%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Bip44Public.html" title="struct bdk_wallet::descriptor::template::Bip44Public">Bip44Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-Bip44Public%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Bip44Public.html" title="struct bdk_wallet::descriptor::template::Bip44Public">Bip44Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-Bip44Public%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Bip44Public.html" title="struct bdk_wallet::descriptor::template::Bip44Public">Bip44Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-Bip44Public%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Bip44Public.html" title="struct bdk_wallet::descriptor::template::Bip44Public">Bip44Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Bip44Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Bip44Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Bip44Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Bip44Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Bip44Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-Bip44Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="enum" href="../enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Bip44Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Bip44Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Bip44Public%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="BIP49 template. Expands to `sh(wpkh(key/49'/{0,1}'/0'/{0,1}/*))`"><meta name="keywords" content="rust, rustlang, rust-lang, Bip49"><title>Bip49 in bdk_wallet::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Bip49</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-Bip49%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Bip49%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Bip49%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-Bip49%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-Bip49%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Bip49%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Bip49%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Bip49%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Bip49%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Bip49%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Bip49%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-Bip49%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Bip49%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Bip49%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Bip49%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">Bip49</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/template.rs.html#289">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Bip49<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>>>(pub K, pub <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>BIP49 template. Expands to <code>sh(wpkh(key/49'/{0,1}'/0'/{0,1}/*))</code></p>
+<p>Since there are hardened derivation steps, this template requires a private derivable key (generally a <code>xprv</code>/<code>tprv</code>).</p>
+<p>See <a href="struct.Bip49Public.html" title="Bip49Public"><code>Bip49Public</code></a> for a template that can work with a <code>xpub</code>/<code>tpub</code>.</p>
+<h3 id="example"><a href="#example">Example</a></h3>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk_wallet::template::Bip49;
+
+<span class="kw">let </span>key = bitcoin::bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m"</span>)<span class="question-mark">?</span>;
+<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(
+ Bip49(key.clone(), KeychainKind::External),
+ <span class="prelude-val">Some</span>(Bip49(key, KeychainKind::Internal)),
+ Network::Testnet,
+)<span class="question-mark">?</span>;
+
+<span class="macro">assert_eq!</span>(wallet.next_unused_address(KeychainKind::External)<span class="question-mark">?</span>.to_string(), <span class="string">"2N4zkWAoGdUv4NXhSsU8DvS5MB36T8nKHEB"</span>);
+<span class="macro">assert_eq!</span>(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), <span class="string">"sh(wpkh([c55b303f/49'/1'/0']tpubDDYr4kdnZgjjShzYNjZUZXUUtpXaofdkMaipyS8ThEh45qFmhT4hKYways7UXmg6V7het1QiFo9kf4kYUXyDvV4rHEyvSpys9pjCB3pukxi/0/*))#s9vxlc8e"</span>);</code></pre></div>
+</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><span id="structfield.1" class="structfield small-section-header"><a href="#structfield.1" class="anchor field">§</a><code>1: <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></code></span><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><section id="impl-DescriptorTemplate-for-Bip49%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#291-295">source</a><a href="#impl-DescriptorTemplate-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip49.html" title="struct bdk_wallet::descriptor::template::Bip49">Bip49</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#292-294">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk_wallet::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Bip49%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Bip49.html" title="struct bdk_wallet::descriptor::template::Bip49">Bip49</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-Bip49%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Bip49.html" title="struct bdk_wallet::descriptor::template::Bip49">Bip49</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-Bip49%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Bip49.html" title="struct bdk_wallet::descriptor::template::Bip49">Bip49</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-Bip49%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Bip49.html" title="struct bdk_wallet::descriptor::template::Bip49">Bip49</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-Bip49%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Bip49.html" title="struct bdk_wallet::descriptor::template::Bip49">Bip49</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Bip49%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Bip49%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Bip49%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Bip49%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Bip49%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-Bip49%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="enum" href="../enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Bip49%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Bip49%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Bip49%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="BIP49 public template. Expands to `sh(wpkh(key/{0,1}/*))`"><meta name="keywords" content="rust, rustlang, rust-lang, Bip49Public"><title>Bip49Public in bdk_wallet::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Bip49Public</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-Bip49Public%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Bip49Public%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Bip49Public%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-Bip49Public%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-Bip49Public%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Bip49Public%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Bip49Public%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Bip49Public%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Bip49Public%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Bip49Public%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Bip49Public%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-Bip49Public%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Bip49Public%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Bip49Public%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Bip49Public%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">Bip49Public</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/template.rs.html#326">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Bip49Public<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>>>(pub K, pub Fingerprint, pub <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>BIP49 public template. Expands to <code>sh(wpkh(key/{0,1}/*))</code></p>
+<p>This assumes that the key used has already been derived with <code>m/49'/0'/0'</code> for Mainnet or <code>m/49'/1'/0'</code> for Testnet.</p>
+<p>This template requires the parent fingerprint to populate correctly the metadata of PSBTs.</p>
+<p>See <a href="struct.Bip49.html" title="Bip49"><code>Bip49</code></a> for a template that does the full derivation, but requires private data
+for the key.</p>
+<h3 id="example"><a href="#example">Example</a></h3>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk_wallet::template::Bip49Public;
+
+<span class="kw">let </span>key = bitcoin::bip32::Xpub::from_str(<span class="string">"tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L"</span>)<span class="question-mark">?</span>;
+<span class="kw">let </span>fingerprint = bitcoin::bip32::Fingerprint::from_str(<span class="string">"c55b303f"</span>)<span class="question-mark">?</span>;
+<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(
+ Bip49Public(key.clone(), fingerprint, KeychainKind::External),
+ <span class="prelude-val">Some</span>(Bip49Public(key, fingerprint, KeychainKind::Internal)),
+ Network::Testnet,
+)<span class="question-mark">?</span>;
+
+<span class="macro">assert_eq!</span>(wallet.next_unused_address(KeychainKind::External)<span class="question-mark">?</span>.to_string(), <span class="string">"2N3K4xbVAHoiTQSwxkZjWDfKoNC27pLkYnt"</span>);
+<span class="macro">assert_eq!</span>(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), <span class="string">"sh(wpkh([c55b303f/49'/1'/0']tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L/0/*))#3tka9g0q"</span>);</code></pre></div>
+</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><span id="structfield.1" class="structfield small-section-header"><a href="#structfield.1" class="anchor field">§</a><code>1: Fingerprint</code></span><span id="structfield.2" class="structfield small-section-header"><a href="#structfield.2" class="anchor field">§</a><code>2: <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></code></span><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><section id="impl-DescriptorTemplate-for-Bip49Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#328-335">source</a><a href="#impl-DescriptorTemplate-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip49Public.html" title="struct bdk_wallet::descriptor::template::Bip49Public">Bip49Public</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#329-334">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk_wallet::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Bip49Public%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Bip49Public.html" title="struct bdk_wallet::descriptor::template::Bip49Public">Bip49Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-Bip49Public%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Bip49Public.html" title="struct bdk_wallet::descriptor::template::Bip49Public">Bip49Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-Bip49Public%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Bip49Public.html" title="struct bdk_wallet::descriptor::template::Bip49Public">Bip49Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-Bip49Public%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Bip49Public.html" title="struct bdk_wallet::descriptor::template::Bip49Public">Bip49Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-Bip49Public%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Bip49Public.html" title="struct bdk_wallet::descriptor::template::Bip49Public">Bip49Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Bip49Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Bip49Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Bip49Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Bip49Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Bip49Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-Bip49Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="enum" href="../enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Bip49Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Bip49Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Bip49Public%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="BIP84 template. Expands to `wpkh(key/84'/{0,1}'/0'/{0,1}/*)`"><meta name="keywords" content="rust, rustlang, rust-lang, Bip84"><title>Bip84 in bdk_wallet::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Bip84</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-Bip84%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Bip84%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Bip84%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-Bip84%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-Bip84%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Bip84%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Bip84%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Bip84%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Bip84%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Bip84%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Bip84%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-Bip84%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Bip84%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Bip84%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Bip84%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">Bip84</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/template.rs.html#362">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Bip84<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>>>(pub K, pub <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>BIP84 template. Expands to <code>wpkh(key/84'/{0,1}'/0'/{0,1}/*)</code></p>
+<p>Since there are hardened derivation steps, this template requires a private derivable key (generally a <code>xprv</code>/<code>tprv</code>).</p>
+<p>See <a href="struct.Bip84Public.html" title="Bip84Public"><code>Bip84Public</code></a> for a template that can work with a <code>xpub</code>/<code>tpub</code>.</p>
+<h3 id="example"><a href="#example">Example</a></h3>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk_wallet::template::Bip84;
+
+<span class="kw">let </span>key = bitcoin::bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m"</span>)<span class="question-mark">?</span>;
+<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(
+ Bip84(key.clone(), KeychainKind::External),
+ <span class="prelude-val">Some</span>(Bip84(key, KeychainKind::Internal)),
+ Network::Testnet,
+)<span class="question-mark">?</span>;
+
+<span class="macro">assert_eq!</span>(wallet.next_unused_address(KeychainKind::External)<span class="question-mark">?</span>.to_string(), <span class="string">"tb1qhl85z42h7r4su5u37rvvw0gk8j2t3n9y7zsg4n"</span>);
+<span class="macro">assert_eq!</span>(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), <span class="string">"wpkh([c55b303f/84'/1'/0']tpubDDc5mum24DekpNw92t6fHGp8Gr2JjF9J7i4TZBtN6Vp8xpAULG5CFaKsfugWa5imhrQQUZKXe261asP5koDHo5bs3qNTmf3U3o4v9SaB8gg/0/*)#6kfecsmr"</span>);</code></pre></div>
+</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><span id="structfield.1" class="structfield small-section-header"><a href="#structfield.1" class="anchor field">§</a><code>1: <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></code></span><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><section id="impl-DescriptorTemplate-for-Bip84%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#364-368">source</a><a href="#impl-DescriptorTemplate-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip84.html" title="struct bdk_wallet::descriptor::template::Bip84">Bip84</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#365-367">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk_wallet::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Bip84%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Bip84.html" title="struct bdk_wallet::descriptor::template::Bip84">Bip84</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-Bip84%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Bip84.html" title="struct bdk_wallet::descriptor::template::Bip84">Bip84</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-Bip84%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Bip84.html" title="struct bdk_wallet::descriptor::template::Bip84">Bip84</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-Bip84%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Bip84.html" title="struct bdk_wallet::descriptor::template::Bip84">Bip84</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-Bip84%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Bip84.html" title="struct bdk_wallet::descriptor::template::Bip84">Bip84</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Bip84%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Bip84%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Bip84%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Bip84%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Bip84%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-Bip84%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="enum" href="../enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Bip84%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Bip84%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Bip84%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="BIP84 public template. Expands to `wpkh(key/{0,1}/*)`"><meta name="keywords" content="rust, rustlang, rust-lang, Bip84Public"><title>Bip84Public in bdk_wallet::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Bip84Public</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-Bip84Public%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Bip84Public%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Bip84Public%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-Bip84Public%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-Bip84Public%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Bip84Public%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Bip84Public%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Bip84Public%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Bip84Public%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Bip84Public%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Bip84Public%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-Bip84Public%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Bip84Public%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Bip84Public%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Bip84Public%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">Bip84Public</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/template.rs.html#399">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Bip84Public<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>>>(pub K, pub Fingerprint, pub <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>BIP84 public template. Expands to <code>wpkh(key/{0,1}/*)</code></p>
+<p>This assumes that the key used has already been derived with <code>m/84'/0'/0'</code> for Mainnet or <code>m/84'/1'/0'</code> for Testnet.</p>
+<p>This template requires the parent fingerprint to populate correctly the metadata of PSBTs.</p>
+<p>See <a href="struct.Bip84.html" title="Bip84"><code>Bip84</code></a> for a template that does the full derivation, but requires private data
+for the key.</p>
+<h3 id="example"><a href="#example">Example</a></h3>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk_wallet::template::Bip84Public;
+
+<span class="kw">let </span>key = bitcoin::bip32::Xpub::from_str(<span class="string">"tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q"</span>)<span class="question-mark">?</span>;
+<span class="kw">let </span>fingerprint = bitcoin::bip32::Fingerprint::from_str(<span class="string">"c55b303f"</span>)<span class="question-mark">?</span>;
+<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(
+ Bip84Public(key.clone(), fingerprint, KeychainKind::External),
+ <span class="prelude-val">Some</span>(Bip84Public(key, fingerprint, KeychainKind::Internal)),
+ Network::Testnet,
+)<span class="question-mark">?</span>;
+
+<span class="macro">assert_eq!</span>(wallet.next_unused_address(KeychainKind::External)<span class="question-mark">?</span>.to_string(), <span class="string">"tb1qedg9fdlf8cnnqfd5mks6uz5w4kgpk2pr6y4qc7"</span>);
+<span class="macro">assert_eq!</span>(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), <span class="string">"wpkh([c55b303f/84'/1'/0']tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q/0/*)#dhu402yv"</span>);</code></pre></div>
+</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><span id="structfield.1" class="structfield small-section-header"><a href="#structfield.1" class="anchor field">§</a><code>1: Fingerprint</code></span><span id="structfield.2" class="structfield small-section-header"><a href="#structfield.2" class="anchor field">§</a><code>2: <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></code></span><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><section id="impl-DescriptorTemplate-for-Bip84Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#401-408">source</a><a href="#impl-DescriptorTemplate-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip84Public.html" title="struct bdk_wallet::descriptor::template::Bip84Public">Bip84Public</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#402-407">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk_wallet::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Bip84Public%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Bip84Public.html" title="struct bdk_wallet::descriptor::template::Bip84Public">Bip84Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-Bip84Public%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Bip84Public.html" title="struct bdk_wallet::descriptor::template::Bip84Public">Bip84Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-Bip84Public%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Bip84Public.html" title="struct bdk_wallet::descriptor::template::Bip84Public">Bip84Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-Bip84Public%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Bip84Public.html" title="struct bdk_wallet::descriptor::template::Bip84Public">Bip84Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-Bip84Public%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Bip84Public.html" title="struct bdk_wallet::descriptor::template::Bip84Public">Bip84Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Bip84Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Bip84Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Bip84Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Bip84Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Bip84Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-Bip84Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="enum" href="../enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Bip84Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Bip84Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Bip84Public%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="BIP86 template. Expands to `tr(key/86'/{0,1}'/0'/{0,1}/*)`"><meta name="keywords" content="rust, rustlang, rust-lang, Bip86"><title>Bip86 in bdk_wallet::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Bip86</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-Bip86%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Bip86%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Bip86%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-Bip86%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-Bip86%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Bip86%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Bip86%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Bip86%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Bip86%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Bip86%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Bip86%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-Bip86%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Bip86%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Bip86%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Bip86%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">Bip86</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/template.rs.html#435">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Bip86<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><Tap>>(pub K, pub <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>BIP86 template. Expands to <code>tr(key/86'/{0,1}'/0'/{0,1}/*)</code></p>
+<p>Since there are hardened derivation steps, this template requires a private derivable key (generally a <code>xprv</code>/<code>tprv</code>).</p>
+<p>See <a href="struct.Bip86Public.html" title="Bip86Public"><code>Bip86Public</code></a> for a template that can work with a <code>xpub</code>/<code>tpub</code>.</p>
+<h3 id="example"><a href="#example">Example</a></h3>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk_wallet::template::Bip86;
+
+<span class="kw">let </span>key = bitcoin::bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m"</span>)<span class="question-mark">?</span>;
+<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(
+ Bip86(key.clone(), KeychainKind::External),
+ <span class="prelude-val">Some</span>(Bip86(key, KeychainKind::Internal)),
+ Network::Testnet,
+)<span class="question-mark">?</span>;
+
+<span class="macro">assert_eq!</span>(wallet.next_unused_address(KeychainKind::External)<span class="question-mark">?</span>.to_string(), <span class="string">"tb1p5unlj09djx8xsjwe97269kqtxqpwpu2epeskgqjfk4lnf69v4tnqpp35qu"</span>);
+<span class="macro">assert_eq!</span>(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), <span class="string">"tr([c55b303f/86'/1'/0']tpubDCiHofpEs47kx358bPdJmTZHmCDqQ8qw32upCSxHrSEdeeBs2T5Mq6QMB2ukeMqhNBiyhosBvJErteVhfURPGXPv3qLJPw5MVpHUewsbP2m/0/*)#dkgvr5hm"</span>);</code></pre></div>
+</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><span id="structfield.1" class="structfield small-section-header"><a href="#structfield.1" class="anchor field">§</a><code>1: <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></code></span><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><section id="impl-DescriptorTemplate-for-Bip86%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#437-441">source</a><a href="#impl-DescriptorTemplate-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><Tap>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip86.html" title="struct bdk_wallet::descriptor::template::Bip86">Bip86</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#438-440">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk_wallet::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Bip86%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Bip86.html" title="struct bdk_wallet::descriptor::template::Bip86">Bip86</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-Bip86%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Bip86.html" title="struct bdk_wallet::descriptor::template::Bip86">Bip86</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-Bip86%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Bip86.html" title="struct bdk_wallet::descriptor::template::Bip86">Bip86</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-Bip86%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Bip86.html" title="struct bdk_wallet::descriptor::template::Bip86">Bip86</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-Bip86%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Bip86.html" title="struct bdk_wallet::descriptor::template::Bip86">Bip86</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Bip86%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Bip86%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Bip86%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Bip86%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Bip86%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-Bip86%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="enum" href="../enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Bip86%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Bip86%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Bip86%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="BIP86 public template. Expands to `tr(key/{0,1}/*)`"><meta name="keywords" content="rust, rustlang, rust-lang, Bip86Public"><title>Bip86Public in bdk_wallet::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Bip86Public</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-Bip86Public%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Bip86Public%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Bip86Public%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-Bip86Public%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-Bip86Public%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Bip86Public%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Bip86Public%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Bip86Public%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Bip86Public%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Bip86Public%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Bip86Public%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-Bip86Public%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Bip86Public%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Bip86Public%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Bip86Public%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">Bip86Public</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/template.rs.html#472">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Bip86Public<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><Tap>>(pub K, pub Fingerprint, pub <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>BIP86 public template. Expands to <code>tr(key/{0,1}/*)</code></p>
+<p>This assumes that the key used has already been derived with <code>m/86'/0'/0'</code> for Mainnet or <code>m/86'/1'/0'</code> for Testnet.</p>
+<p>This template requires the parent fingerprint to populate correctly the metadata of PSBTs.</p>
+<p>See <a href="struct.Bip86.html" title="Bip86"><code>Bip86</code></a> for a template that does the full derivation, but requires private data
+for the key.</p>
+<h3 id="example"><a href="#example">Example</a></h3>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk_wallet::template::Bip86Public;
+
+<span class="kw">let </span>key = bitcoin::bip32::Xpub::from_str(<span class="string">"tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q"</span>)<span class="question-mark">?</span>;
+<span class="kw">let </span>fingerprint = bitcoin::bip32::Fingerprint::from_str(<span class="string">"c55b303f"</span>)<span class="question-mark">?</span>;
+<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(
+ Bip86Public(key.clone(), fingerprint, KeychainKind::External),
+ <span class="prelude-val">Some</span>(Bip86Public(key, fingerprint, KeychainKind::Internal)),
+ Network::Testnet,
+)<span class="question-mark">?</span>;
+
+<span class="macro">assert_eq!</span>(wallet.next_unused_address(KeychainKind::External)<span class="question-mark">?</span>.to_string(), <span class="string">"tb1pwjp9f2k5n0xq73ecuu0c5njvgqr3vkh7yaylmpqvsuuaafymh0msvcmh37"</span>);
+<span class="macro">assert_eq!</span>(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), <span class="string">"tr([c55b303f/86'/1'/0']tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q/0/*)#2p65srku"</span>);</code></pre></div>
+</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><span id="structfield.1" class="structfield small-section-header"><a href="#structfield.1" class="anchor field">§</a><code>1: Fingerprint</code></span><span id="structfield.2" class="structfield small-section-header"><a href="#structfield.2" class="anchor field">§</a><code>2: <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></code></span><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><section id="impl-DescriptorTemplate-for-Bip86Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#474-481">source</a><a href="#impl-DescriptorTemplate-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><Tap>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip86Public.html" title="struct bdk_wallet::descriptor::template::Bip86Public">Bip86Public</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#475-480">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk_wallet::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Bip86Public%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Bip86Public.html" title="struct bdk_wallet::descriptor::template::Bip86Public">Bip86Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-Bip86Public%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Bip86Public.html" title="struct bdk_wallet::descriptor::template::Bip86Public">Bip86Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-Bip86Public%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Bip86Public.html" title="struct bdk_wallet::descriptor::template::Bip86Public">Bip86Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-Bip86Public%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Bip86Public.html" title="struct bdk_wallet::descriptor::template::Bip86Public">Bip86Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-Bip86Public%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Bip86Public.html" title="struct bdk_wallet::descriptor::template::Bip86Public">Bip86Public</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Bip86Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Bip86Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Bip86Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Bip86Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Bip86Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-Bip86Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="enum" href="../enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Bip86Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Bip86Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Bip86Public%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="P2PKH template. Expands to a descriptor `pkh(key)`"><meta name="keywords" content="rust, rustlang, rust-lang, P2Pkh"><title>P2Pkh in bdk_wallet::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">P2Pkh</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-P2Pkh%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-P2Pkh%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-P2Pkh%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-P2Pkh%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-P2Pkh%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-P2Pkh%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-P2Pkh%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-P2Pkh%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-P2Pkh%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-P2Pkh%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-P2Pkh%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-P2Pkh%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-P2Pkh%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-P2Pkh%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-P2Pkh%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">P2Pkh</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/template.rs.html#92">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct P2Pkh<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><<a class="enum" href="../enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a>>>(pub K);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>P2PKH template. Expands to a descriptor <code>pkh(key)</code></p>
+<h3 id="example"><a href="#example">Example</a></h3>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk_wallet::template::P2Pkh;
+
+<span class="kw">let </span>key =
+ bitcoin::PrivateKey::from_wif(<span class="string">"cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um"</span>)<span class="question-mark">?</span>;
+<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(P2Pkh(key), <span class="prelude-val">None</span>, Network::Testnet)<span class="question-mark">?</span>;
+
+<span class="macro">assert_eq!</span>(
+ wallet
+ .next_unused_address(KeychainKind::External)<span class="question-mark">?
+ </span>.to_string(),
+ <span class="string">"mwJ8hxFYW19JLuc65RCTaP4v1rzVU8cVMT"
+</span>);</code></pre></div>
+</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><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><section id="impl-DescriptorTemplate-for-P2Pkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#94-98">source</a><a href="#impl-DescriptorTemplate-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><<a class="enum" href="../enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.P2Pkh.html" title="struct bdk_wallet::descriptor::template::P2Pkh">P2Pkh</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#95-97">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk_wallet::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-P2Pkh%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.P2Pkh.html" title="struct bdk_wallet::descriptor::template::P2Pkh">P2Pkh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-P2Pkh%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.P2Pkh.html" title="struct bdk_wallet::descriptor::template::P2Pkh">P2Pkh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-P2Pkh%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.P2Pkh.html" title="struct bdk_wallet::descriptor::template::P2Pkh">P2Pkh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-P2Pkh%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.P2Pkh.html" title="struct bdk_wallet::descriptor::template::P2Pkh">P2Pkh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-P2Pkh%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.P2Pkh.html" title="struct bdk_wallet::descriptor::template::P2Pkh">P2Pkh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-P2Pkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-P2Pkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-P2Pkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-P2Pkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-P2Pkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-P2Pkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="enum" href="../enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-P2Pkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-P2Pkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-P2Pkh%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="P2TR template. Expands to a descriptor `tr(key)`"><meta name="keywords" content="rust, rustlang, rust-lang, P2TR"><title>P2TR in bdk_wallet::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">P2TR</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-P2TR%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-P2TR%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-P2TR%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-P2TR%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-P2TR%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-P2TR%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-P2TR%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-P2TR%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-P2TR%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-P2TR%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-P2TR%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-P2TR%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-P2TR%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-P2TR%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-P2TR%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">P2TR</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/template.rs.html#183">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct P2TR<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><Tap>>(pub K);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>P2TR template. Expands to a descriptor <code>tr(key)</code></p>
+<h3 id="example"><a href="#example">Example</a></h3>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk_wallet::template::P2TR;
+
+<span class="kw">let </span>key =
+ bitcoin::PrivateKey::from_wif(<span class="string">"cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um"</span>)<span class="question-mark">?</span>;
+<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(P2TR(key), <span class="prelude-val">None</span>, Network::Testnet)<span class="question-mark">?</span>;
+
+<span class="macro">assert_eq!</span>(
+ wallet
+ .next_unused_address(KeychainKind::External)<span class="question-mark">?
+ </span>.to_string(),
+ <span class="string">"tb1pvjf9t34fznr53u5tqhejz4nr69luzkhlvsdsdfq9pglutrpve2xq7hps46"
+</span>);</code></pre></div>
+</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><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><section id="impl-DescriptorTemplate-for-P2TR%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#185-189">source</a><a href="#impl-DescriptorTemplate-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><Tap>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.P2TR.html" title="struct bdk_wallet::descriptor::template::P2TR">P2TR</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#186-188">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk_wallet::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-P2TR%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.P2TR.html" title="struct bdk_wallet::descriptor::template::P2TR">P2TR</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-P2TR%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.P2TR.html" title="struct bdk_wallet::descriptor::template::P2TR">P2TR</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-P2TR%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.P2TR.html" title="struct bdk_wallet::descriptor::template::P2TR">P2TR</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-P2TR%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.P2TR.html" title="struct bdk_wallet::descriptor::template::P2TR">P2TR</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-P2TR%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.P2TR.html" title="struct bdk_wallet::descriptor::template::P2TR">P2TR</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-P2TR%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-P2TR%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-P2TR%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-P2TR%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-P2TR%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-P2TR%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="enum" href="../enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-P2TR%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-P2TR%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-P2TR%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="P2WPKH template. Expands to a descriptor `wpkh(key)`"><meta name="keywords" content="rust, rustlang, rust-lang, P2Wpkh"><title>P2Wpkh in bdk_wallet::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">P2Wpkh</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-P2Wpkh%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-P2Wpkh%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-P2Wpkh%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-P2Wpkh%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-P2Wpkh%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-P2Wpkh%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-P2Wpkh%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-P2Wpkh%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-P2Wpkh%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-P2Wpkh%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-P2Wpkh%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-P2Wpkh%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-P2Wpkh%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-P2Wpkh%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-P2Wpkh%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">P2Wpkh</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/template.rs.html#153">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct P2Wpkh<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>>>(pub K);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>P2WPKH template. Expands to a descriptor <code>wpkh(key)</code></p>
+<h3 id="example"><a href="#example">Example</a></h3>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk_wallet::template::P2Wpkh;
+
+<span class="kw">let </span>key =
+ bitcoin::PrivateKey::from_wif(<span class="string">"cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um"</span>)<span class="question-mark">?</span>;
+<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(P2Wpkh(key), <span class="prelude-val">None</span>, Network::Testnet)<span class="question-mark">?</span>;
+
+<span class="macro">assert_eq!</span>(
+ wallet
+ .next_unused_address(KeychainKind::External)<span class="question-mark">?
+ </span>.to_string(),
+ <span class="string">"tb1q4525hmgw265tl3drrl8jjta7ayffu6jf68ltjd"
+</span>);</code></pre></div>
+</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><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><section id="impl-DescriptorTemplate-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#155-159">source</a><a href="#impl-DescriptorTemplate-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.P2Wpkh.html" title="struct bdk_wallet::descriptor::template::P2Wpkh">P2Wpkh</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#156-158">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk_wallet::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.P2Wpkh.html" title="struct bdk_wallet::descriptor::template::P2Wpkh">P2Wpkh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.P2Wpkh.html" title="struct bdk_wallet::descriptor::template::P2Wpkh">P2Wpkh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.P2Wpkh.html" title="struct bdk_wallet::descriptor::template::P2Wpkh">P2Wpkh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.P2Wpkh.html" title="struct bdk_wallet::descriptor::template::P2Wpkh">P2Wpkh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.P2Wpkh.html" title="struct bdk_wallet::descriptor::template::P2Wpkh">P2Wpkh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="enum" href="../enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="P2WPKH-P2SH template. Expands to a descriptor `sh(wpkh(key))`"><meta name="keywords" content="rust, rustlang, rust-lang, P2Wpkh_P2Sh"><title>P2Wpkh_P2Sh in bdk_wallet::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">P2Wpkh_P2Sh</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DescriptorTemplate-for-P2Wpkh_P2Sh%3CK%3E">DescriptorTemplate</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-P2Wpkh_P2Sh%3CK%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-P2Wpkh_P2Sh%3CK%3E">Send</a></li><li><a href="#impl-Sync-for-P2Wpkh_P2Sh%3CK%3E">Sync</a></li><li><a href="#impl-Unpin-for-P2Wpkh_P2Sh%3CK%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-P2Wpkh_P2Sh%3CK%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-P2Wpkh_P2Sh%3CK%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-P2Wpkh_P2Sh%3CK%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-P2Wpkh_P2Sh%3CK%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-P2Wpkh_P2Sh%3CK%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-P2Wpkh_P2Sh%3CK%3E">Into<U></a></li><li><a href="#impl-IntoWalletDescriptor-for-P2Wpkh_P2Sh%3CK%3E">IntoWalletDescriptor</a></li><li><a href="#impl-TryFrom%3CU%3E-for-P2Wpkh_P2Sh%3CK%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-P2Wpkh_P2Sh%3CK%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-P2Wpkh_P2Sh%3CK%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="struct" href="#">P2Wpkh_P2Sh</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/template.rs.html#123">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct P2Wpkh_P2Sh<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>>>(pub K);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>P2WPKH-P2SH template. Expands to a descriptor <code>sh(wpkh(key))</code></p>
+<h3 id="example"><a href="#example">Example</a></h3>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk_wallet::template::P2Wpkh_P2Sh;
+
+<span class="kw">let </span>key =
+ bitcoin::PrivateKey::from_wif(<span class="string">"cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um"</span>)<span class="question-mark">?</span>;
+<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(P2Wpkh_P2Sh(key), <span class="prelude-val">None</span>, Network::Testnet)<span class="question-mark">?</span>;
+
+<span class="macro">assert_eq!</span>(
+ wallet
+ .next_unused_address(KeychainKind::External)<span class="question-mark">?
+ </span>.to_string(),
+ <span class="string">"2NB4ox5VDRw1ecUv6SnT3VQHPXveYztRqk5"
+</span>);</code></pre></div>
+</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: K</code></span><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><section id="impl-DescriptorTemplate-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#125-129">source</a><a href="#impl-DescriptorTemplate-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.P2Wpkh_P2Sh.html" title="struct bdk_wallet::descriptor::template::P2Wpkh_P2Sh">P2Wpkh_P2Sh</a><K></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#126-128">source</a><a href="#method.build" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DescriptorTemplate.html#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk_wallet::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Build the complete descriptor</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.P2Wpkh_P2Sh.html" title="struct bdk_wallet::descriptor::template::P2Wpkh_P2Sh">P2Wpkh_P2Sh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a href="#impl-Send-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.P2Wpkh_P2Sh.html" title="struct bdk_wallet::descriptor::template::P2Wpkh_P2Sh">P2Wpkh_P2Sh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a href="#impl-Sync-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.P2Wpkh_P2Sh.html" title="struct bdk_wallet::descriptor::template::P2Wpkh_P2Sh">P2Wpkh_P2Sh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a href="#impl-Unpin-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.P2Wpkh_P2Sh.html" title="struct bdk_wallet::descriptor::template::P2Wpkh_P2Sh">P2Wpkh_P2Sh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.P2Wpkh_P2Sh.html" title="struct bdk_wallet::descriptor::template::P2Wpkh_P2Sh">P2Wpkh_P2Sh</a><K><span class="where fmt-newline">where<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#61-67">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="enum" href="../enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>>, <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><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</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="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Trait for descriptor templates that can be built into a full descriptor"><meta name="keywords" content="rust, rustlang, rust-lang, DescriptorTemplate"><title>DescriptorTemplate in bdk_wallet::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">DescriptorTemplate</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.build">build</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk_wallet::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="trait" href="#">DescriptorTemplate</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/template.rs.html#53-56">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait DescriptorTemplate {
+ fn <a href="#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk_wallet::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk_wallet::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 descriptor templates that can be built into a full descriptor</p>
+<p>Since <a href="../trait.IntoWalletDescriptor.html" title="IntoWalletDescriptor"><code>IntoWalletDescriptor</code></a> is implemented for any <a href="trait.DescriptorTemplate.html" title="DescriptorTemplate"><code>DescriptorTemplate</code></a>, they can also be
+passed directly to the <a href="../../wallet/struct.Wallet.html"><code>Wallet</code></a> constructor.</p>
+<h3 id="example"><a href="#example">Example</a></h3>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk_wallet::descriptor::error::Error <span class="kw">as </span>DescriptorError;
+<span class="kw">use </span>bdk_wallet::keys::{IntoDescriptorKey, KeyError};
+<span class="kw">use </span>bdk_wallet::miniscript::Legacy;
+<span class="kw">use </span>bdk_wallet::template::{DescriptorTemplate, DescriptorTemplateOut};
+<span class="kw">use </span>bitcoin::Network;
+
+<span class="kw">struct </span>MyP2PKH<K: IntoDescriptorKey<Legacy>>(K);
+
+<span class="kw">impl</span><K: IntoDescriptorKey<Legacy>> DescriptorTemplate <span class="kw">for </span>MyP2PKH<K> {
+ <span class="kw">fn </span>build(<span class="self">self</span>, network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
+ <span class="prelude-val">Ok</span>(<span class="macro">bdk_wallet::descriptor!</span>(pkh(<span class="self">self</span>.<span class="number">0</span>))<span class="question-mark">?</span>)
+ }
+}</code></pre></div>
+</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 method-toggle" open><summary><section id="tymethod.build" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#55">source</a><h4 class="code-header">fn <a href="#tymethod.build" class="fn">build</a>(<br> self,<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="type" href="type.DescriptorTemplateOut.html" title="type bdk_wallet::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class="docblock"><p>Build the complete descriptor</p>
+</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-DescriptorTemplate-for-Bip44%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#218-222">source</a><a href="#impl-DescriptorTemplate-for-Bip44%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip44.html" title="struct bdk_wallet::descriptor::template::Bip44">Bip44</a><K></h3></section><section id="impl-DescriptorTemplate-for-Bip44Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#255-262">source</a><a href="#impl-DescriptorTemplate-for-Bip44Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip44Public.html" title="struct bdk_wallet::descriptor::template::Bip44Public">Bip44Public</a><K></h3></section><section id="impl-DescriptorTemplate-for-Bip49%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#291-295">source</a><a href="#impl-DescriptorTemplate-for-Bip49%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip49.html" title="struct bdk_wallet::descriptor::template::Bip49">Bip49</a><K></h3></section><section id="impl-DescriptorTemplate-for-Bip49Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#328-335">source</a><a href="#impl-DescriptorTemplate-for-Bip49Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip49Public.html" title="struct bdk_wallet::descriptor::template::Bip49Public">Bip49Public</a><K></h3></section><section id="impl-DescriptorTemplate-for-Bip84%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#364-368">source</a><a href="#impl-DescriptorTemplate-for-Bip84%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip84.html" title="struct bdk_wallet::descriptor::template::Bip84">Bip84</a><K></h3></section><section id="impl-DescriptorTemplate-for-Bip84Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#401-408">source</a><a href="#impl-DescriptorTemplate-for-Bip84Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip84Public.html" title="struct bdk_wallet::descriptor::template::Bip84Public">Bip84Public</a><K></h3></section><section id="impl-DescriptorTemplate-for-Bip86%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#437-441">source</a><a href="#impl-DescriptorTemplate-for-Bip86%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><Tap>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip86.html" title="struct bdk_wallet::descriptor::template::Bip86">Bip86</a><K></h3></section><section id="impl-DescriptorTemplate-for-Bip86Public%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#474-481">source</a><a href="#impl-DescriptorTemplate-for-Bip86Public%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><Tap>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.Bip86Public.html" title="struct bdk_wallet::descriptor::template::Bip86Public">Bip86Public</a><K></h3></section><section id="impl-DescriptorTemplate-for-P2Pkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#94-98">source</a><a href="#impl-DescriptorTemplate-for-P2Pkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><<a class="enum" href="../enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.P2Pkh.html" title="struct bdk_wallet::descriptor::template::P2Pkh">P2Pkh</a><K></h3></section><section id="impl-DescriptorTemplate-for-P2Wpkh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#155-159">source</a><a href="#impl-DescriptorTemplate-for-P2Wpkh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.P2Wpkh.html" title="struct bdk_wallet::descriptor::template::P2Wpkh">P2Wpkh</a><K></h3></section><section id="impl-DescriptorTemplate-for-P2Wpkh_P2Sh%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#125-129">source</a><a href="#impl-DescriptorTemplate-for-P2Wpkh_P2Sh%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><<a class="enum" href="../enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a>>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.P2Wpkh_P2Sh.html" title="struct bdk_wallet::descriptor::template::P2Wpkh_P2Sh">P2Wpkh_P2Sh</a><K></h3></section><section id="impl-DescriptorTemplate-for-P2TR%3CK%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/template.rs.html#185-189">source</a><a href="#impl-DescriptorTemplate-for-P2TR%3CK%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="../../keys/trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><Tap>> <a class="trait" href="trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a> for <a class="struct" href="struct.P2TR.html" title="struct bdk_wallet::descriptor::template::P2TR">P2TR</a><K></h3></section></div><script src="../../../implementors/bdk_wallet/descriptor/template/trait.DescriptorTemplate.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Type alias for the return type of [`DescriptorTemplate`], `descriptor!` and others"><meta name="keywords" content="rust, rustlang, rust-lang, DescriptorTemplateOut"><title>DescriptorTemplateOut in bdk_wallet::descriptor::template - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">DescriptorTemplateOut</a></h2><div class="sidebar-elems"><section><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-IntoWalletDescriptor-for-DescriptorTemplateOut">IntoWalletDescriptor</a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor::template</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="../../index.html">bdk_wallet</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="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/descriptor/template.rs.html#29">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub type DescriptorTemplateOut = (<a class="type" href="../type.ExtendedDescriptor.html" title="type bdk_wallet::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../../keys/type.KeyMap.html" title="type bdk_wallet::keys::KeyMap">KeyMap</a>, <a class="type" href="../../keys/type.ValidNetworks.html" title="type bdk_wallet::keys::ValidNetworks">ValidNetworks</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><section id="impl-IntoWalletDescriptor-for-DescriptorTemplateOut" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/mod.rs.html#207-282">source</a><a href="#impl-IntoWalletDescriptor-for-DescriptorTemplateOut" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for <a class="type" href="type.DescriptorTemplateOut.html" title="type bdk_wallet::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/descriptor/mod.rs.html#208-281">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="type" href="../type.ExtendedDescriptor.html" title="type bdk_wallet::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../../keys/type.KeyMap.html" title="type bdk_wallet::keys::KeyMap">KeyMap</a>), <a class="enum" href="../error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Trait implemented on [`Descriptor`]s to add a method to extract the spending [`policy`]"><meta name="keywords" content="rust, rustlang, rust-lang, ExtractPolicy"><title>ExtractPolicy in bdk_wallet::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <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"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.extract_policy">extract_policy</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk_wallet::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../index.html">bdk_wallet</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="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/descriptor/mod.rs.html#339-347">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait ExtractPolicy {
+ fn <a href="#tymethod.extract_policy" class="fn">extract_policy</a>(<br> &self,<br> signers: &<a class="struct" href="../wallet/signer/struct.SignersContainer.html" title="struct bdk_wallet::wallet::signer::SignersContainer">SignersContainer</a>,<br> psbt: <a class="enum" href="policy/enum.BuildSatisfaction.html" title="enum bdk_wallet::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_wallet::descriptor::policy::Policy">Policy</a>>, <a class="enum" href="error/enum.Error.html" title="enum bdk_wallet::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 method-toggle" open><summary><section id="tymethod.extract_policy" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/descriptor/mod.rs.html#341-346">source</a><h4 class="code-header">fn <a href="#tymethod.extract_policy" class="fn">extract_policy</a>(<br> &self,<br> signers: &<a class="struct" href="../wallet/signer/struct.SignersContainer.html" title="struct bdk_wallet::wallet::signer::SignersContainer">SignersContainer</a>,<br> psbt: <a class="enum" href="policy/enum.BuildSatisfaction.html" title="enum bdk_wallet::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_wallet::descriptor::policy::Policy">Policy</a>>, <a class="enum" href="error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>></h4></section></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 id="implementors-list"><section id="impl-ExtractPolicy-for-Descriptor%3CDescriptorPublicKey%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/descriptor/policy.rs.html#1077-1158">source</a><a href="#impl-ExtractPolicy-for-Descriptor%3CDescriptorPublicKey%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.ExtractPolicy.html" title="trait bdk_wallet::descriptor::ExtractPolicy">ExtractPolicy</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>></h3></section><section id="impl-ExtractPolicy-for-Miniscript%3CDescriptorPublicKey%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/descriptor/policy.rs.html#910-1043">source</a><a href="#impl-ExtractPolicy-for-Miniscript%3CDescriptorPublicKey%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a> + 'static> <a class="trait" href="trait.ExtractPolicy.html" title="trait bdk_wallet::descriptor::ExtractPolicy">ExtractPolicy</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, Ctx></h3></section></div><script src="../../implementors/bdk_wallet/descriptor/trait.ExtractPolicy.js" data-ignore-extern-crates="miniscript" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Trait for types which can be converted into an [`ExtendedDescriptor`] and a [`KeyMap`] usable by a wallet in a specific [`Network`]"><meta name="keywords" content="rust, rustlang, rust-lang, IntoWalletDescriptor"><title>IntoWalletDescriptor in bdk_wallet::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <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"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.into_wallet_descriptor">into_wallet_descriptor</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-IntoWalletDescriptor-for-%26String">&String</a></li><li><a href="#impl-IntoWalletDescriptor-for-%26str">&str</a></li><li><a href="#impl-IntoWalletDescriptor-for-(ExtendedDescriptor%2C%20KeyMap)">(ExtendedDescriptor, KeyMap)</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk_wallet::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../index.html">bdk_wallet</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="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/descriptor/mod.rs.html#74-81">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait IntoWalletDescriptor {
+ fn <a href="#tymethod.into_wallet_descriptor" class="fn">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="type" href="type.ExtendedDescriptor.html" title="type bdk_wallet::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../keys/type.KeyMap.html" title="type bdk_wallet::keys::KeyMap">KeyMap</a>), <a class="enum" href="error/enum.Error.html" title="enum bdk_wallet::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 method-toggle" open><summary><section id="tymethod.into_wallet_descriptor" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/descriptor/mod.rs.html#76-80">source</a><h4 class="code-header">fn <a href="#tymethod.into_wallet_descriptor" class="fn">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="type" href="type.ExtendedDescriptor.html" title="type bdk_wallet::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../keys/type.KeyMap.html" title="type bdk_wallet::keys::KeyMap">KeyMap</a>), <a class="enum" href="error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>></h4></section></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><section id="impl-IntoWalletDescriptor-for-%26str" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/descriptor/mod.rs.html#83-103">source</a><a href="#impl-IntoWalletDescriptor-for-%26str" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h3></section></summary><div class="impl-items"><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/descriptor/mod.rs.html#84-102">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.into_wallet_descriptor" class="fn">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="type" href="type.ExtendedDescriptor.html" title="type bdk_wallet::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../keys/type.KeyMap.html" title="type bdk_wallet::keys::KeyMap">KeyMap</a>), <a class="enum" href="error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>></h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-%26String" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/descriptor/mod.rs.html#105-113">source</a><a href="#impl-IntoWalletDescriptor-for-%26String" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.IntoWalletDescriptor.html" title="trait bdk_wallet::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></section></summary><div class="impl-items"><section id="method.into_wallet_descriptor-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/descriptor/mod.rs.html#106-112">source</a><a href="#method.into_wallet_descriptor-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.into_wallet_descriptor" class="fn">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="type" href="type.ExtendedDescriptor.html" title="type bdk_wallet::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../keys/type.KeyMap.html" title="type bdk_wallet::keys::KeyMap">KeyMap</a>), <a class="enum" href="error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>></h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoWalletDescriptor-for-(ExtendedDescriptor%2C%20KeyMap)" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/descriptor/mod.rs.html#125-205">source</a><a href="#impl-IntoWalletDescriptor-for-(ExtendedDescriptor%2C%20KeyMap)" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for (<a class="type" href="type.ExtendedDescriptor.html" title="type bdk_wallet::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../keys/type.KeyMap.html" title="type bdk_wallet::keys::KeyMap">KeyMap</a>)</h3></section></summary><div class="impl-items"><section id="method.into_wallet_descriptor-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/descriptor/mod.rs.html#126-204">source</a><a href="#method.into_wallet_descriptor-2" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.into_wallet_descriptor" class="fn">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="type" href="type.ExtendedDescriptor.html" title="type bdk_wallet::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../keys/type.KeyMap.html" title="type bdk_wallet::keys::KeyMap">KeyMap</a>), <a class="enum" href="error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>></h4></section></div></details><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-IntoWalletDescriptor-for-DescriptorTemplateOut" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/descriptor/mod.rs.html#207-282">source</a><a href="#impl-IntoWalletDescriptor-for-DescriptorTemplateOut" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for <a class="type" href="template/type.DescriptorTemplateOut.html" title="type bdk_wallet::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a></h3></section><section id="impl-IntoWalletDescriptor-for-ExtendedDescriptor" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/descriptor/mod.rs.html#115-123">source</a><a href="#impl-IntoWalletDescriptor-for-ExtendedDescriptor" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for <a class="type" href="type.ExtendedDescriptor.html" title="type bdk_wallet::descriptor::ExtendedDescriptor">ExtendedDescriptor</a></h3></section><section id="impl-IntoWalletDescriptor-for-T" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/descriptor/template.rs.html#60-68">source</a><a href="#impl-IntoWalletDescriptor-for-T" class="anchor">§</a><h3 class="code-header">impl<T: <a class="trait" href="template/trait.DescriptorTemplate.html" title="trait bdk_wallet::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>> <a class="trait" href="trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T</h3></section><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 src="../../implementors/bdk_wallet/descriptor/trait.IntoWalletDescriptor.js" data-ignore-extern-crates="std,alloc" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="The ScriptContext for Miniscript. Additional type information associated with miniscript that is used for carrying out checks that dependent on the context under which the script is used. For example, disallowing uncompressed keys in Segwit context"><meta name="keywords" content="rust, rustlang, rust-lang, ScriptContext"><title>ScriptContext in bdk_wallet::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">ScriptContext</a></h2><div class="sidebar-elems"><section><h3><a href="#required-associated-types">Required Associated Types</a></h3><ul class="block"><li><a href="#associatedtype.Key">Key</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.check_pk">check_pk</a></li><li><a href="#tymethod.check_terminal_non_malleable">check_terminal_non_malleable</a></li><li><a href="#tymethod.max_satisfaction_size">max_satisfaction_size</a></li><li><a href="#tymethod.name_str">name_str</a></li><li><a href="#tymethod.pk_len">pk_len</a></li><li><a href="#tymethod.sig_type">sig_type</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.check_global_consensus_validity">check_global_consensus_validity</a></li><li><a href="#method.check_global_policy_validity">check_global_policy_validity</a></li><li><a href="#method.check_global_validity">check_global_validity</a></li><li><a href="#method.check_local_consensus_validity">check_local_consensus_validity</a></li><li><a href="#method.check_local_policy_validity">check_local_policy_validity</a></li><li><a href="#method.check_local_validity">check_local_validity</a></li><li><a href="#method.check_witness">check_witness</a></li><li><a href="#method.other_top_level_checks">other_top_level_checks</a></li><li><a href="#method.top_level_checks">top_level_checks</a></li><li><a href="#method.top_level_type_check">top_level_type_check</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk_wallet::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="trait" href="#">ScriptContext</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait ScriptContext: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <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.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/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</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/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> + Sealed {
+ type <a href="#associatedtype.Key" class="associatedtype">Key</a>: ParseableKey<Sha256 = Hash, Hash256 = Hash, Ripemd160 = Hash, Hash160 = Hash> + MiniscriptKey;
+
+<details class="rustdoc-toggle type-contents-toggle"><summary class="hideme"><span>Show 16 methods</span></summary> fn <a href="#tymethod.check_terminal_non_malleable" class="fn">check_terminal_non_malleable</a><Pk>(<br> _frag: &Terminal<Pk, Self><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> Pk: MiniscriptKey</span>;
+<span class="item-spacer"></span> fn <a href="#tymethod.check_pk" class="fn">check_pk</a><Pk>(pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <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> Pk: MiniscriptKey</span>;
+<span class="item-spacer"></span> fn <a href="#tymethod.max_satisfaction_size" class="fn">max_satisfaction_size</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey</span>;
+<span class="item-spacer"></span> fn <a href="#tymethod.sig_type" class="fn">sig_type</a>() -> SigType;
+<span class="item-spacer"></span> fn <a href="#tymethod.pk_len" class="fn">pk_len</a><Pk>(pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br> <span class="where">where<br> Pk: MiniscriptKey</span>;
+<span class="item-spacer"></span> fn <a href="#tymethod.name_str" class="fn">name_str</a>() -> &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>;
+
+ fn <a href="#method.check_witness" class="fn">check_witness</a><Pk>(<br> _witness: &[<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>>]<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> Pk: MiniscriptKey</span>,
+ { ... }
+<span class="item-spacer"></span> fn <a href="#method.check_global_consensus_validity" class="fn">check_global_consensus_validity</a><Pk>(<br> _ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
+ { ... }
+<span class="item-spacer"></span> fn <a href="#method.check_global_policy_validity" class="fn">check_global_policy_validity</a><Pk>(<br> _ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
+ { ... }
+<span class="item-spacer"></span> fn <a href="#method.check_local_consensus_validity" class="fn">check_local_consensus_validity</a><Pk>(<br> _ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
+ { ... }
+<span class="item-spacer"></span> fn <a href="#method.check_local_policy_validity" class="fn">check_local_policy_validity</a><Pk>(<br> _ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
+ { ... }
+<span class="item-spacer"></span> fn <a href="#method.check_global_validity" class="fn">check_global_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
+ { ... }
+<span class="item-spacer"></span> fn <a href="#method.check_local_validity" class="fn">check_local_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
+ { ... }
+<span class="item-spacer"></span> fn <a href="#method.top_level_type_check" class="fn">top_level_type_check</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey</span>,
+ { ... }
+<span class="item-spacer"></span> fn <a href="#method.other_top_level_checks" class="fn">other_top_level_checks</a><Pk>(<br> _ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
+ { ... }
+<span class="item-spacer"></span> fn <a href="#method.top_level_checks" class="fn">top_level_checks</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey</span>,
+ { ... }
+</details>}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The ScriptContext for Miniscript. Additional type information associated with
+miniscript that is used for carrying out checks that dependent on the
+context under which the script is used.
+For example, disallowing uncompressed keys in Segwit context</p>
+</div></details><h2 id="required-associated-types" class="small-section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Key" class="method has-srclink"><h4 class="code-header">type <a href="#associatedtype.Key" class="associatedtype">Key</a>: ParseableKey<Sha256 = Hash, Hash256 = Hash, Ripemd160 = Hash, Hash160 = Hash> + MiniscriptKey</h4></section></summary><div class="docblock"><p>The consensus key associated with the type. Must be a parseable key</p>
+</div></details></div><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 method-toggle" open><summary><section id="tymethod.check_terminal_non_malleable" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.check_terminal_non_malleable" class="fn">check_terminal_non_malleable</a><Pk>(<br> _frag: &Terminal<Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Depending on ScriptContext, fragments can be malleable. For Example,
+under Legacy context, PkH is malleable because it is possible to
+estimate the cost of satisfaction because of compressed keys
+This is currently only used in compiler code for removing malleable
+compilations.
+This does NOT recursively check if the children of the fragment are
+valid or not. Since the compilation proceeds in a leaf to root fashion,
+a recursive check is unnecessary.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.check_pk" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.check_pk" class="fn">check_pk</a><Pk>(pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Each context has slightly different rules on what Pks are allowed in descriptors
+Legacy/Bare does not allow x_only keys
+Segwit does not allow uncompressed keys and x_only keys
+Tapscript does not allow uncompressed keys</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.max_satisfaction_size" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.max_satisfaction_size" class="fn">max_satisfaction_size</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Depending on script context, the size of a satifaction witness may slightly differ.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.sig_type" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.sig_type" class="fn">sig_type</a>() -> SigType</h4></section></summary><div class="docblock"><p>The type of signature required for satisfaction</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.pk_len" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.pk_len" class="fn">pk_len</a><Pk>(pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Get the len of public key when serialized based on context
+Note that this includes the serialization prefix. Returns
+34/66 for Bare/Legacy based on key compressedness
+34 for Segwitv0, 33 for Tap</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.name_str" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.name_str" class="fn">name_str</a>() -> &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Local helper function to display error messages with context</p>
+</div></details></div><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_witness" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_witness" class="fn">check_witness</a><Pk>(<br> _witness: &[<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>>]<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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Check whether the given satisfaction is valid under the ScriptContext
+For example, segwit satisfactions may fail if the witness len is more
+3600 or number of stack elements are more than 100.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_consensus_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_global_consensus_validity" class="fn">check_global_consensus_validity</a><Pk>(<br> _ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Depending on script Context, some of the Terminals might not
+be valid under the current consensus rules.
+Or some of the script resource limits may have been exceeded.
+These miniscripts would never be accepted by the Bitcoin network and hence
+it is safe to discard them
+For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey
+uncompressed public keys are non-standard and thus invalid.
+In LegacyP2SH context, scripts above 520 bytes are invalid.
+Post Tapscript upgrade, this would have to consider other nodes.
+This does <em>NOT</em> recursively check the miniscript fragments.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_policy_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_global_policy_validity" class="fn">check_global_policy_validity</a><Pk>(<br> _ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Depending on script Context, some of the script resource limits
+may have been exceeded under the current bitcoin core policy rules
+These miniscripts would never be accepted by the Bitcoin network and hence
+it is safe to discard them. (unless explicitly disabled by non-standard flag)
+For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey
+scripts over 3600 bytes are invalid.
+Post Tapscript upgrade, this would have to consider other nodes.
+This does <em>NOT</em> recursively check the miniscript fragments.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_consensus_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_local_consensus_validity" class="fn">check_local_consensus_validity</a><Pk>(<br> _ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Consensus rules at the Miniscript satisfaction time.
+It is possible that some paths of miniscript may exceed resource limits
+and our current satisfier and lifting analysis would not work correctly.
+For example, satisfaction path(Legacy/Segwitv0) may require more than 201 opcodes.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_policy_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_local_policy_validity" class="fn">check_local_policy_validity</a><Pk>(<br> _ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Policy rules at the Miniscript satisfaction time.
+It is possible that some paths of miniscript may exceed resource limits
+and our current satisfier and lifting analysis would not work correctly.
+For example, satisfaction path in Legacy context scriptSig more
+than 1650 bytes</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_global_validity" class="fn">check_global_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Check the consensus + policy(if not disabled) rules that are not based
+satisfaction</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_local_validity" class="fn">check_local_validity</a><Pk>(<br> ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Check the consensus + policy(if not disabled) rules including the
+ones for satisfaction</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.top_level_type_check" class="method has-srclink"><h4 class="code-header">fn <a href="#method.top_level_type_check" class="fn">top_level_type_check</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Check whether the top-level is type B</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.other_top_level_checks" class="method has-srclink"><h4 class="code-header">fn <a href="#method.other_top_level_checks" class="fn">other_top_level_checks</a><Pk>(_ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Other top level checks that are context specific</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.top_level_checks" class="method has-srclink"><h4 class="code-header">fn <a href="#method.top_level_checks" class="fn">top_level_checks</a><Pk>(ms: &<a class="struct" href="struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Check top level consensus rules.</p>
+</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ScriptContext-for-Legacy" class="impl has-srclink"><a href="#impl-ScriptContext-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a> for <a class="enum" href="enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Key-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Key-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Key" class="associatedtype">Key</a> = PublicKey</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ScriptContext-for-Segwitv0" class="impl has-srclink"><a href="#impl-ScriptContext-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a> for <a class="enum" href="enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Key-2" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Key-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Key" class="associatedtype">Key</a> = PublicKey</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ScriptContext-for-BareCtx" class="impl has-srclink"><a href="#impl-ScriptContext-for-BareCtx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a> for BareCtx</h3></section></summary><div class="impl-items"><section id="associatedtype.Key-3" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Key-3" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Key" class="associatedtype">Key</a> = PublicKey</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ScriptContext-for-Tap" class="impl has-srclink"><a href="#impl-ScriptContext-for-Tap" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a> for Tap</h3></section></summary><div class="impl-items"><section id="associatedtype.Key-4" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Key-4" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Key" class="associatedtype">Key</a> = XOnlyPublicKey</h4></section></div></details></div><script src="../../implementors/miniscript/miniscript/context/trait.ScriptContext.js" data-ignore-extern-crates="miniscript" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Alias for a [`Descriptor`] that contains extended derived keys"><meta name="keywords" content="rust, rustlang, rust-lang, DerivedDescriptor"><title>DerivedDescriptor in bdk_wallet::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <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><a href="index.html">In bdk_wallet::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="../index.html">bdk_wallet</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="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/descriptor/mod.rs.html#57">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub type DerivedDescriptor = <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::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></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Alias for a [`Descriptor`] that can contain extended keys using [`DescriptorPublicKey`]"><meta name="keywords" content="rust, rustlang, rust-lang, ExtendedDescriptor"><title>ExtendedDescriptor in bdk_wallet::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <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"><section><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-IntoWalletDescriptor-for-ExtendedDescriptor">IntoWalletDescriptor</a></li></ul></section><h2><a href="index.html">In bdk_wallet::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="../index.html">bdk_wallet</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="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/descriptor/mod.rs.html#54">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub type ExtendedDescriptor = <a class="enum" href="enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::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><section id="impl-IntoWalletDescriptor-for-ExtendedDescriptor" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/descriptor/mod.rs.html#115-123">source</a><a href="#impl-IntoWalletDescriptor-for-ExtendedDescriptor" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for <a class="type" href="type.ExtendedDescriptor.html" title="type bdk_wallet::descriptor::ExtendedDescriptor">ExtendedDescriptor</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/descriptor/mod.rs.html#116-122">source</a><a href="#method.into_wallet_descriptor" class="anchor">§</a><h4 class="code-header">fn <a href="trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fn">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="type" href="type.ExtendedDescriptor.html" title="type bdk_wallet::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../keys/type.KeyMap.html" title="type bdk_wallet::keys::KeyMap">KeyMap</a>), <a class="enum" href="error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class='docblock'>Convert to wallet descriptor</div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Alias for the type of maps that represent derivation paths in a `psbt::Input` or `psbt::Output`"><meta name="keywords" content="rust, rustlang, rust-lang, HdKeyPaths"><title>HdKeyPaths in bdk_wallet::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <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><a href="index.html">In bdk_wallet::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="../index.html">bdk_wallet</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="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/descriptor/mod.rs.html#64">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="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::psbt::Input"><code>psbt::Input</code></a> or
+<a href="bitcoin::psbt::Output"><code>psbt::Output</code></a></p>
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Alias for the type of maps that represent taproot key origins in a `psbt::Input` or `psbt::Output`"><meta name="keywords" content="rust, rustlang, rust-lang, TapKeyOrigins"><title>TapKeyOrigins in bdk_wallet::descriptor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <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><a href="index.html">In bdk_wallet::descriptor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="../index.html">bdk_wallet</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="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/descriptor/mod.rs.html#71">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="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="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><TapLeafHash>, 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 taproot key origins in a <a href="bitcoin::psbt::Input"><code>psbt::Input</code></a> or
+<a href="bitcoin::psbt::Output"><code>psbt::Output</code></a></p>
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Types of keychains"><meta name="keywords" content="rust, rustlang, rust-lang, KeychainKind"><title>KeychainKind in bdk_wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">KeychainKind</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.External">External</a></li><li><a href="#variant.Internal">Internal</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.as_byte">as_byte</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-AsRef%3C%5Bu8%5D%3E-for-KeychainKind">AsRef<[u8]></a></li><li><a href="#impl-Clone-for-KeychainKind">Clone</a></li><li><a href="#impl-Copy-for-KeychainKind">Copy</a></li><li><a href="#impl-Debug-for-KeychainKind">Debug</a></li><li><a href="#impl-Deserialize%3C%27de%3E-for-KeychainKind">Deserialize<'de></a></li><li><a href="#impl-Eq-for-KeychainKind">Eq</a></li><li><a href="#impl-Hash-for-KeychainKind">Hash</a></li><li><a href="#impl-Ord-for-KeychainKind">Ord</a></li><li><a href="#impl-PartialEq%3CKeychainKind%3E-for-KeychainKind">PartialEq<KeychainKind></a></li><li><a href="#impl-PartialOrd%3CKeychainKind%3E-for-KeychainKind">PartialOrd<KeychainKind></a></li><li><a href="#impl-Serialize-for-KeychainKind">Serialize</a></li><li><a href="#impl-StructuralEq-for-KeychainKind">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-KeychainKind">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-KeychainKind">RefUnwindSafe</a></li><li><a href="#impl-Send-for-KeychainKind">Send</a></li><li><a href="#impl-Sync-for-KeychainKind">Sync</a></li><li><a href="#impl-Unpin-for-KeychainKind">Unpin</a></li><li><a href="#impl-UnwindSafe-for-KeychainKind">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-KeychainKind">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-KeychainKind">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-KeychainKind">BorrowMut<T></a></li><li><a href="#impl-DeserializeOwned-for-KeychainKind">DeserializeOwned</a></li><li><a href="#impl-From%3CT%3E-for-KeychainKind">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-KeychainKind">Into<U></a></li><li><a href="#impl-ToOwned-for-KeychainKind">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-KeychainKind">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-KeychainKind">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-KeychainKind">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="index.html">bdk_wallet</a>::<wbr><a class="enum" href="#">KeychainKind</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk_wallet/types.rs.html#23-28">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum KeychainKind {
+ External,
+ Internal,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Types of keychains</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.External" class="variant"><a href="#variant.External" class="anchor">§</a><h3 class="code-header">External</h3></section><div class="docblock"><p>External keychain, used for deriving recipient addresses.</p>
+</div><section id="variant.Internal" class="variant"><a href="#variant.Internal" class="anchor">§</a><h3 class="code-header">Internal</h3></section><div class="docblock"><p>Internal keychain, used for deriving change addresses.</p>
+</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#30-38">source</a><a href="#impl-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_byte" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#32-37">source</a><h4 class="code-header">pub fn <a href="#method.as_byte" class="fn">as_byte</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a></h4></section></summary><div class="docblock"><p>Return <a href="enum.KeychainKind.html" title="KeychainKind"><code>KeychainKind</code></a> as a byte</p>
+</div></details></div></details></div><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><section id="impl-AsRef%3C%5Bu8%5D%3E-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#40-47">source</a><a href="#impl-AsRef%3C%5Bu8%5D%3E-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a><[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_ref" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#41-46">source</a><a href="#method.as_ref" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html#tymethod.as_ref" class="fn">as_ref</a>(&self) -> &[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>] <a href="#" class="notable-traits" data-ty="&[u8]">ⓘ</a></h4></section></summary><div class='docblock'>Converts this type into a shared reference of the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Clone-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#22">source</a><a href="#impl-Clone-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#22">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#22">source</a><a href="#impl-Debug-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#22">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserialize%3C%27de%3E-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#22">source</a><a href="#impl-Deserialize%3C%27de%3E-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#22">source</a><a href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize" class="fn">deserialize</a><__D>(__deserializer: __D) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, __D::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>><span class="where fmt-newline">where<br> __D: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#22">source</a><a href="#impl-Hash-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#22">source</a><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)</h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#22">source</a><a href="#impl-Ord-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#22">source</a><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CKeychainKind%3E-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#22">source</a><a href="#impl-PartialEq%3CKeychainKind%3E-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#22">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CKeychainKind%3E-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#22">source</a><a href="#impl-PartialOrd%3CKeychainKind%3E-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#22">source</a><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#22">source</a><a href="#impl-Serialize-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#22">source</a><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><__S>(&self, __serializer: __S) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><__S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, __S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> __S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Copy-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#22">source</a><a href="#impl-Copy-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></h3></section><section id="impl-Eq-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#22">source</a><a href="#impl-Eq-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></h3></section><section id="impl-StructuralEq-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#22">source</a><a href="#impl-StructuralEq-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></h3></section><section id="impl-StructuralPartialEq-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#22">source</a><a href="#impl-StructuralPartialEq-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-KeychainKind" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></h3></section><section id="impl-Send-for-KeychainKind" class="impl has-srclink"><a href="#impl-Send-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></h3></section><section id="impl-Sync-for-KeychainKind" class="impl has-srclink"><a href="#impl-Sync-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></h3></section><section id="impl-Unpin-for-KeychainKind" class="impl has-srclink"><a href="#impl-Unpin-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></h3></section><section id="impl-UnwindSafe-for-KeychainKind" class="impl has-srclink"><a href="#impl-UnwindSafe-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-KeychainKind" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details><section id="impl-DeserializeOwned-for-KeychainKind" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/serde/1.0.201/src/serde/de/mod.rs.html#608">source</a><a href="#impl-DeserializeOwned-for-KeychainKind" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> for T<span class="where fmt-newline">where<br> T: for<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de>,</span></h3></section></div><script type="text/json" id="notable-traits-data">{"&[u8]":"<h3>Notable traits for <code>&mut [<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>]</code></h3><pre class=\"content\"><code><span class=\"where fmt-newline\">impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/std/io/trait.Write.html\" title=\"trait std::io::Write\">Write</a> for &mut [<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>]</span><span class=\"where fmt-newline\">impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/std/io/trait.Read.html\" title=\"trait std::io::Read\">Read</a> for &[<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>]</span>"}</script></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="An unspent transaction output (UTXO)."><meta name="keywords" content="rust, rustlang, rust-lang, Utxo"><title>Utxo in bdk_wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Utxo</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Foreign">Foreign</a></li><li><a href="#variant.Local">Local</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.outpoint">outpoint</a></li><li><a href="#method.sequence">sequence</a></li><li><a href="#method.txout">txout</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-Utxo">Clone</a></li><li><a href="#impl-Debug-for-Utxo">Debug</a></li><li><a href="#impl-Eq-for-Utxo">Eq</a></li><li><a href="#impl-PartialEq%3CUtxo%3E-for-Utxo">PartialEq<Utxo></a></li><li><a href="#impl-StructuralEq-for-Utxo">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-Utxo">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Utxo">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Utxo">Send</a></li><li><a href="#impl-Sync-for-Utxo">Sync</a></li><li><a href="#impl-Unpin-for-Utxo">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Utxo">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Utxo">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Utxo">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Utxo">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Utxo">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Utxo">Into<U></a></li><li><a href="#impl-ToOwned-for-Utxo">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Utxo">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Utxo">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Utxo">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="index.html">bdk_wallet</a>::<wbr><a class="enum" href="#">Utxo</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk_wallet/types.rs.html#82-95">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum Utxo {
+ Local(<a class="struct" href="struct.LocalOutput.html" title="struct bdk_wallet::LocalOutput">LocalOutput</a>),
+ Foreign {
+ outpoint: OutPoint,
+ sequence: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Sequence>,
+ psbt_input: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><Input>,
+ },
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An unspent transaction output (UTXO).</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Local" class="variant"><a href="#variant.Local" class="anchor">§</a><h3 class="code-header">Local(<a class="struct" href="struct.LocalOutput.html" title="struct bdk_wallet::LocalOutput">LocalOutput</a>)</h3></section><div class="docblock"><p>A UTXO owned by the local wallet.</p>
+</div><section id="variant.Foreign" class="variant"><a href="#variant.Foreign" class="anchor">§</a><h3 class="code-header">Foreign</h3></section><div class="sub-variant" id="variant.Foreign.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Foreign.field.outpoint" class="small-section-header"><a href="#variant.Foreign.field.outpoint" class="anchor field">§</a><code>outpoint: OutPoint</code></span><div class="docblock"><p>The location of the output.</p>
+</div></div><div class="sub-variant-field"><span id="variant.Foreign.field.sequence" class="small-section-header"><a href="#variant.Foreign.field.sequence" class="anchor field">§</a><code>sequence: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Sequence></code></span><div class="docblock"><p>The nSequence value to set for this input.</p>
+</div></div><div class="sub-variant-field"><span id="variant.Foreign.field.psbt_input" class="small-section-header"><a href="#variant.Foreign.field.psbt_input" class="anchor field">§</a><code>psbt_input: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><Input></code></span><div class="docblock"><p>The information about the input we require to add it to a PSBT.</p>
+</div></div></div><div class="docblock"><p>A UTXO owned by another wallet.</p>
+</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Utxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#97-135">source</a><a href="#impl-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.Utxo.html" title="enum bdk_wallet::Utxo">Utxo</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.outpoint" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#99-104">source</a><h4 class="code-header">pub fn <a href="#method.outpoint" class="fn">outpoint</a>(&self) -> OutPoint</h4></section></summary><div class="docblock"><p>Get the location of the UTXO</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.txout" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#107-126">source</a><h4 class="code-header">pub fn <a href="#method.txout" class="fn">txout</a>(&self) -> &TxOut</h4></section></summary><div class="docblock"><p>Get the <code>TxOut</code> of the UTXO</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sequence" class="method has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#129-134">source</a><h4 class="code-header">pub fn <a href="#method.sequence" class="fn">sequence</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Sequence></h4></section></summary><div class="docblock"><p>Get the sequence number if an explicit sequence number has to be set for this input.</p>
+</div></details></div></details></div><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><section id="impl-Clone-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#80">source</a><a href="#impl-Clone-for-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.Utxo.html" title="enum bdk_wallet::Utxo">Utxo</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#80">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.Utxo.html" title="enum bdk_wallet::Utxo">Utxo</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#80">source</a><a href="#impl-Debug-for-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.Utxo.html" title="enum bdk_wallet::Utxo">Utxo</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#80">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CUtxo%3E-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#80">source</a><a href="#impl-PartialEq%3CUtxo%3E-for-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.Utxo.html" title="enum bdk_wallet::Utxo">Utxo</a>> for <a class="enum" href="enum.Utxo.html" title="enum bdk_wallet::Utxo">Utxo</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#80">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.Utxo.html" title="enum bdk_wallet::Utxo">Utxo</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><section id="impl-Eq-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#80">source</a><a href="#impl-Eq-for-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.Utxo.html" title="enum bdk_wallet::Utxo">Utxo</a></h3></section><section id="impl-StructuralEq-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#80">source</a><a href="#impl-StructuralEq-for-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.Utxo.html" title="enum bdk_wallet::Utxo">Utxo</a></h3></section><section id="impl-StructuralPartialEq-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#80">source</a><a href="#impl-StructuralPartialEq-for-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.Utxo.html" title="enum bdk_wallet::Utxo">Utxo</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Utxo" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.Utxo.html" title="enum bdk_wallet::Utxo">Utxo</a></h3></section><section id="impl-Send-for-Utxo" class="impl has-srclink"><a href="#impl-Send-for-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.Utxo.html" title="enum bdk_wallet::Utxo">Utxo</a></h3></section><section id="impl-Sync-for-Utxo" class="impl has-srclink"><a href="#impl-Sync-for-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.Utxo.html" title="enum bdk_wallet::Utxo">Utxo</a></h3></section><section id="impl-Unpin-for-Utxo" class="impl has-srclink"><a href="#impl-Unpin-for-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.Utxo.html" title="enum bdk_wallet::Utxo">Utxo</a></h3></section><section id="impl-UnwindSafe-for-Utxo" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Utxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.Utxo.html" title="enum bdk_wallet::Utxo">Utxo</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Utxo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Utxo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Utxo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Utxo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Utxo" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-Utxo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Utxo" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Utxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Utxo" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Utxo" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Utxo" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Get the version of BDK at runtime"><meta name="keywords" content="rust, rustlang, rust-lang, version"><title>version in bdk_wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In bdk_wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="index.html">bdk_wallet</a>::<wbr><a class="fn" href="#">version</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk_wallet/lib.rs.html#42-44">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn version() -> &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Get the version of BDK at runtime</p>
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="BDK Wallet"><meta name="keywords" content="rust, rustlang, rust-lang, bdk_wallet"><title>bdk_wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Crate bdk_wallet</a></h2><div class="sidebar-elems"><ul class="block"><li class="version">Version 1.0.0-alpha.11</li><li><a id="all-types" href="all.html">All Items</a></li></ul><section><ul class="block"><li><a href="#reexports">Re-exports</a></li><li><a href="#modules">Modules</a></li><li><a href="#macros">Macros</a></li><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#functions">Functions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Crate <a class="mod" href="#">bdk_wallet</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk_wallet/lib.rs.html#1-47">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><div align="center">
+ <h1>BDK</h1>
+<img src="https://raw.githubusercontent.com/bitcoindevkit/bdk/master/static/bdk.png" width="220" />
+<p>
+ <strong>A modern, lightweight, descriptor-based wallet library written in Rust!</strong>
+ </p>
+<p>
+ <a href="https://crates.io/crates/bdk_wallet"><img alt="Crate Info" src="https://img.shields.io/crates/v/bdk_wallet.svg"/></a>
+ <a href="https://github.com/bitcoindevkit/bdk/blob/master/LICENSE"><img alt="MIT or Apache-2.0 Licensed" src="https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg"/></a>
+ <a href="https://github.com/bitcoindevkit/bdk/actions?query=workflow%3ACI"><img alt="CI Status" src="https://github.com/bitcoindevkit/bdk/workflows/CI/badge.svg"></a>
+ <a href="https://coveralls.io/github/bitcoindevkit/bdk?branch=master"><img src="https://coveralls.io/repos/github/bitcoindevkit/bdk/badge.svg?branch=master"/></a>
+ <a href="https://docs.rs/bdk_wallet"><img alt="API Docs" src="https://img.shields.io/badge/docs.rs-bdk_wallet-green"/></a>
+ <a href="https://blog.rust-lang.org/2022/08/11/Rust-1.63.0.html"><img alt="Rustc Version 1.63.0+" src="https://img.shields.io/badge/rustc-1.63.0%2B-lightgrey.svg"/></a>
+ <a href="https://discord.gg/d7NkDKm"><img alt="Chat on Discord" src="https://img.shields.io/discord/753336465005608961?logo=discord"></a>
+ </p>
+<h4>
+ <a href="https://bitcoindevkit.org">Project Homepage</a>
+ <span> | </span>
+ <a href="https://docs.rs/bdk_wallet">Documentation</a>
+ </h4>
+</div>
+<h2 id="bdk-wallet"><a href="#bdk-wallet">BDK Wallet</a></h2>
+<p>The <code>bdk_wallet</code> crate provides the <a href="https://docs.rs/bdk_wallet/latest/bdk_wallet/wallet/struct.Wallet.html"><code>Wallet</code></a> type which is a simple, high-level
+interface built from the low-level components of <a href="https://docs.rs/bdk_chain/latest"><code>bdk_chain</code></a>. <code>Wallet</code> is a good starting point
+for many simple applications as well as a good demonstration of how to use the other mechanisms to
+construct a wallet. It has two keychains (external and internal) which are defined by
+<a href="https://docs.rs/miniscript/latest/miniscript/index.html">miniscript descriptors</a> and uses them to generate addresses. When you give it
+chain data it also uses the descriptors to find transaction outputs owned by them. From there, you
+can create and sign transactions.</p>
+<p>For details about the API of <code>Wallet</code> see the <a href="https://docs.rs/bdk_wallet/latest/bdk_wallet/wallet/struct.Wallet.html">module-level documentation</a>.</p>
+<h3 id="blockchain-data"><a href="#blockchain-data">Blockchain data</a></h3>
+<p>In order to get blockchain data for <code>Wallet</code> to consume, you should configure a client from
+an available chain source. Typically you make a request to the chain source and get a response
+that the <code>Wallet</code> can use to update its view of the chain.</p>
+<p><strong>Blockchain Data Sources</strong></p>
+<ul>
+<li><a href="https://docs.rs/bdk_esplora/latest"><code>bdk_esplora</code></a>: Grabs blockchain data from Esplora for updating BDK structures.</li>
+<li><a href="https://docs.rs/bdk_electrum/latest"><code>bdk_electrum</code></a>: Grabs blockchain data from Electrum for updating BDK structures.</li>
+<li><a href="https://docs.rs/bdk_bitcoind_rpc/latest"><code>bdk_bitcoind_rpc</code></a>: Grabs blockchain data from Bitcoin Core for updating BDK structures.</li>
+</ul>
+<p><strong>Examples</strong></p>
+<ul>
+<li><a href="https://github.com/bitcoindevkit/bdk/tree/master/example-crates/wallet_esplora_async"><code>example-crates/wallet_esplora_async</code></a></li>
+<li><a href="https://github.com/bitcoindevkit/bdk/tree/master/example-crates/wallet_esplora_blocking"><code>example-crates/wallet_esplora_blocking</code></a></li>
+<li><a href="https://github.com/bitcoindevkit/bdk/tree/master/example-crates/wallet_electrum"><code>example-crates/wallet_electrum</code></a></li>
+<li><a href="https://github.com/bitcoindevkit/bdk/tree/master/example-crates/wallet_rpc"><code>example-crates/wallet_rpc</code></a></li>
+</ul>
+<h3 id="persistence"><a href="#persistence">Persistence</a></h3>
+<p>To persist the <code>Wallet</code> on disk, it must be constructed with a <a href="https://docs.rs/bdk_chain/latest/bdk_chain/trait.PersistBackend.html"><code>PersistBackend</code></a> implementation.</p>
+<p><strong>Implementations</strong></p>
+<ul>
+<li><a href="https://docs.rs/bdk_file_store/latest"><code>bdk_file_store</code></a>: A simple flat-file implementation of <a href="https://docs.rs/bdk_chain/latest/bdk_chain/trait.PersistBackend.html"><code>PersistBackend</code></a>.</li>
+</ul>
+<p><strong>Example</strong></p>
+<!-- compile_fail because outpoint and txout are fake variables -->
+
+<div class="example-wrap compile_fail"><div class='tooltip'>ⓘ</div><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk_wallet::{bitcoin::Network, wallet::{ChangeSet, Wallet}};
+
+<span class="kw">fn </span>main() {
+ <span class="comment">// Create a new file `Store`.
+ </span><span class="kw">let </span>db = bdk_file_store::Store::<ChangeSet>::open_or_create_new(<span class="string">b"magic_bytes"</span>, <span class="string">"path/to/my_wallet.db"</span>).expect(<span class="string">"create store"</span>);
+
+ <span class="kw">let </span>descriptor = <span class="string">"wpkh(tprv8ZgxMBicQKsPdcAqYBpzAFwU5yxBUo88ggoBqu1qPcHUfSbKK1sKMLmC7EAk438btHQrSdu3jGGQa6PA71nvH5nkDexhLteJqkM4dQmWF9g/84'/1'/0'/0/*)"</span>;
+ <span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_or_load(descriptor, <span class="prelude-val">None</span>, db, Network::Testnet).expect(<span class="string">"create or load wallet"</span>);
+
+ <span class="comment">// Insert a single `TxOut` at `OutPoint` into the wallet.
+ </span><span class="kw">let _ </span>= wallet.insert_txout(outpoint, txout);
+ wallet.commit().expect(<span class="string">"must write to database"</span>);
+}</code></pre></div>
+<!-- ### Sync the balance of a descriptor -->
+<!-- ```rust,no_run -->
+<!-- use bdk_wallet::Wallet; -->
+<!-- use bdk_wallet::blockchain::ElectrumBlockchain; -->
+<!-- use bdk_wallet::SyncOptions; -->
+<!-- use bdk_wallet::electrum_client::Client; -->
+<!-- use bdk_wallet::bitcoin::Network; -->
+<!-- fn main() -> Result<(), bdk_wallet::Error> { -->
+<!-- let blockchain = ElectrumBlockchain::from(Client::new("ssl://electrum.blockstream.info:60002")?); -->
+<!-- let wallet = Wallet::new( -->
+<!-- "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)", -->
+<!-- Some("wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/1/*)"), -->
+<!-- Network::Testnet, -->
+<!-- )?; -->
+<!-- wallet.sync(&blockchain, SyncOptions::default())?; -->
+<!-- println!("Descriptor balance: {} SAT", wallet.get_balance()?); -->
+<!-- Ok(()) -->
+<!-- } -->
+<!-- ``` -->
+<!-- ### Generate a few addresses -->
+<!-- ```rust -->
+<!-- use bdk_wallet::Wallet; -->
+<!-- use bdk_wallet::wallet::AddressIndex::New; -->
+<!-- use bdk_wallet::bitcoin::Network; -->
+<!-- fn main() -> Result<(), bdk_wallet::Error> { -->
+<!-- let wallet = Wallet::new_no_persist( -->
+<!-- "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)", -->
+<!-- Some("wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/1/*)"), -->
+<!-- Network::Testnet, -->
+<!-- )?; -->
+<!-- println!("Address #0: {}", wallet.get_address(New)); -->
+<!-- println!("Address #1: {}", wallet.get_address(New)); -->
+<!-- println!("Address #2: {}", wallet.get_address(New)); -->
+<!-- Ok(()) -->
+<!-- } -->
+<!-- ``` -->
+<!-- ### Create a transaction -->
+<!-- ```rust,no_run -->
+<!-- use bdk_wallet::{FeeRate, Wallet, SyncOptions}; -->
+<!-- use bdk_wallet::blockchain::ElectrumBlockchain; -->
+<!-- use bdk_wallet::electrum_client::Client; -->
+<!-- use bdk_wallet::wallet::AddressIndex::New; -->
+<!-- use bitcoin::base64; -->
+<!-- use bdk_wallet::bitcoin::consensus::serialize; -->
+<!-- use bdk_wallet::bitcoin::Network; -->
+<!-- fn main() -> Result<(), bdk_wallet::Error> { -->
+<!-- let blockchain = ElectrumBlockchain::from(Client::new("ssl://electrum.blockstream.info:60002")?); -->
+<!-- let wallet = Wallet::new_no_persist( -->
+<!-- "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)", -->
+<!-- Some("wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/1/*)"), -->
+<!-- Network::Testnet, -->
+<!-- )?; -->
+<!-- wallet.sync(&blockchain, SyncOptions::default())?; -->
+<!-- let send_to = wallet.get_address(New); -->
+<!-- let (psbt, details) = { -->
+<!-- let mut builder = wallet.build_tx(); -->
+<!-- builder -->
+<!-- .add_recipient(send_to.script_pubkey(), 50_000) -->
+<!-- .enable_rbf() -->
+<!-- .do_not_spend_change() -->
+<!-- .fee_rate(FeeRate::from_sat_per_vb(5.0)); -->
+<!-- builder.finish()? -->
+<!-- }; -->
+<!-- println!("Transaction details: {:#?}", details); -->
+<!-- println!("Unsigned PSBT: {}", base64::encode(&serialize(&psbt))); -->
+<!-- Ok(()) -->
+<!-- } -->
+<!-- ``` -->
+<!-- ### Sign a transaction -->
+<!-- ```rust,no_run -->
+<!-- use bdk_wallet::{Wallet, SignOptions}; -->
+<!-- use bitcoin::base64; -->
+<!-- use bdk_wallet::bitcoin::consensus::deserialize; -->
+<!-- use bdk_wallet::bitcoin::Network; -->
+<!-- fn main() -> Result<(), bdk_wallet::Error> { -->
+<!-- let wallet = Wallet::new_no_persist( -->
+<!-- "wpkh([c258d2e4/84h/1h/0h]tprv8griRPhA7342zfRyB6CqeKF8CJDXYu5pgnj1cjL1u2ngKcJha5jjTRimG82ABzJQ4MQe71CV54xfn25BbhCNfEGGJZnxvCDQCd6JkbvxW6h/0/*)", -->
+<!-- Some("wpkh([c258d2e4/84h/1h/0h]tprv8griRPhA7342zfRyB6CqeKF8CJDXYu5pgnj1cjL1u2ngKcJha5jjTRimG82ABzJQ4MQe71CV54xfn25BbhCNfEGGJZnxvCDQCd6JkbvxW6h/1/*)"), -->
+<!-- Network::Testnet, -->
+<!-- )?; -->
+<!-- let psbt = "..."; -->
+<!-- let mut psbt = deserialize(&base64::decode(psbt).unwrap())?; -->
+<!-- let _finalized = wallet.sign(&mut psbt, SignOptions::default())?; -->
+<!-- Ok(()) -->
+<!-- } -->
+<!-- ``` -->
+<h3 id="testing"><a href="#testing">Testing</a></h3><h4 id="unit-testing"><a href="#unit-testing">Unit testing</a></h4><div class="example-wrap"><pre class="language-bash"><code>cargo test
+</code></pre></div><h2 id="license"><a href="#license">License</a></h2>
+<p>Licensed under either of</p>
+<ul>
+<li>Apache License, Version 2.0, (<a href="../../LICENSE-APACHE">LICENSE-APACHE</a> or <a href="https://www.apache.org/licenses/LICENSE-2.0">https://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+<li>MIT license (<a href="../../LICENSE-MIT">LICENSE-MIT</a> or <a href="https://opensource.org/licenses/MIT">https://opensource.org/licenses/MIT</a>)</li>
+</ul>
+<p>at your option.</p>
+<h2 id="contribution"><a href="#contribution">Contribution</a></h2>
+<p>Unless you explicitly state otherwise, any contribution intentionally
+submitted for inclusion in the work by you, as defined in the Apache-2.0
+license, shall be dual licensed as above, without any additional terms or
+conditions.</p>
+</div></details><h2 id="reexports" class="small-section-header"><a href="#reexports">Re-exports</a></h2><div class="item-table"><div class="item-row"><div class="item-left"><code>pub extern crate bitcoin;</code></div></div><div class="item-row"><div class="item-left"><code>pub extern crate miniscript;</code></div></div><div class="item-row"><div class="item-left import-item" id="reexport.template"><code>pub use descriptor::<a class="mod" href="descriptor/template/index.html" title="mod bdk_wallet::descriptor::template">template</a>;</code></div></div><div class="item-row"><div class="item-left import-item" id="reexport.HdKeyPaths"><code>pub use descriptor::<a class="type" href="descriptor/type.HdKeyPaths.html" title="type bdk_wallet::descriptor::HdKeyPaths">HdKeyPaths</a>;</code></div></div><div class="item-row"><div class="item-left import-item" id="reexport.signer"><code>pub use wallet::<a class="mod" href="wallet/signer/index.html" title="mod bdk_wallet::wallet::signer">signer</a>;</code></div></div><div class="item-row"><div class="item-left import-item" id="reexport.SignOptions"><code>pub use wallet::signer::<a class="struct" href="wallet/signer/struct.SignOptions.html" title="struct bdk_wallet::wallet::signer::SignOptions">SignOptions</a>;</code></div></div><div class="item-row"><div class="item-left import-item" id="reexport.TxBuilder"><code>pub use wallet::tx_builder::<a class="struct" href="wallet/tx_builder/struct.TxBuilder.html" title="struct bdk_wallet::wallet::tx_builder::TxBuilder">TxBuilder</a>;</code></div></div><div class="item-row"><div class="item-left import-item" id="reexport.Wallet"><code>pub use wallet::<a class="struct" href="wallet/struct.Wallet.html" title="struct bdk_wallet::wallet::Wallet">Wallet</a>;</code></div></div><div class="item-row"><div class="item-left import-item" id="reexport.chain"><code>pub use bdk_chain as chain;</code></div></div></div><h2 id="modules" class="small-section-header"><a href="#modules">Modules</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="mod" href="descriptor/index.html" title="bdk_wallet::descriptor mod">descriptor</a></div><div class="item-right docblock-short">Descriptors</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="keys/index.html" title="bdk_wallet::keys mod">keys</a></div><div class="item-right docblock-short">Key formats</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="psbt/index.html" title="bdk_wallet::psbt mod">psbt</a></div><div class="item-right docblock-short">Additional functions on the <code>rust-bitcoin</code> <code>Psbt</code> structure.</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="wallet/index.html" title="bdk_wallet::wallet mod">wallet</a></div><div class="item-right docblock-short">Wallet</div></div></div><h2 id="macros" class="small-section-header"><a href="#macros">Macros</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="macro" href="macro.descriptor.html" title="bdk_wallet::descriptor macro">descriptor</a></div><div class="item-right docblock-short">Macro to write full descriptors with code</div></div><div class="item-row"><div class="item-left module-item"><a class="macro" href="macro.fragment.html" title="bdk_wallet::fragment macro">fragment</a></div><div class="item-right docblock-short">Macro to write descriptor fragments with code</div></div></div><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.LocalOutput.html" title="bdk_wallet::LocalOutput struct">LocalOutput</a></div><div class="item-right docblock-short">An unspent output owned by a <a href="wallet/struct.Wallet.html"><code>Wallet</code></a>.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.WeightedUtxo.html" title="bdk_wallet::WeightedUtxo struct">WeightedUtxo</a></div><div class="item-right docblock-short">A <a href="enum.Utxo.html" title="Utxo"><code>Utxo</code></a> with its <code>satisfaction_weight</code>.</div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.KeychainKind.html" title="bdk_wallet::KeychainKind enum">KeychainKind</a></div><div class="item-right docblock-short">Types of keychains</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Utxo.html" title="bdk_wallet::Utxo enum">Utxo</a></div><div class="item-right docblock-short">An unspent transaction output (UTXO).</div></div></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.version.html" title="bdk_wallet::version fn">version</a></div><div class="item-right docblock-short">Get the version of BDK at runtime</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Container for public or secret keys"><meta name="keywords" content="rust, rustlang, rust-lang, DescriptorKey"><title>DescriptorKey in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">DescriptorKey</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.from_public">from_public</a></li><li><a href="#method.from_secret">from_secret</a></li><li><a href="#method.override_valid_networks">override_valid_networks</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-DescriptorKey%3CCtx%3E">Debug</a></li><li><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorKey%3CCtx%3E">IntoDescriptorKey<Ctx></a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-DescriptorKey%3CCtx%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-DescriptorKey%3CCtx%3E">Send</a></li><li><a href="#impl-Sync-for-DescriptorKey%3CCtx%3E">Sync</a></li><li><a href="#impl-Unpin-for-DescriptorKey%3CCtx%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-DescriptorKey%3CCtx%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-DescriptorKey%3CCtx%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-DescriptorKey%3CCtx%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-DescriptorKey%3CCtx%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-DescriptorKey%3CCtx%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-DescriptorKey%3CCtx%3E">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-DescriptorKey%3CCtx%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-DescriptorKey%3CCtx%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-DescriptorKey%3CCtx%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="enum" href="#">DescriptorKey</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/keys/mod.rs.html#74-79">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum DescriptorKey<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> {
+ // some variants omitted
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Container for public or secret keys</p>
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#81-124">source</a><a href="#impl-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="enum" href="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_public" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#83-85">source</a><h4 class="code-header">pub fn <a href="#method.from_public" class="fn">from_public</a>(public: <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, networks: <a class="type" href="type.ValidNetworks.html" title="type bdk_wallet::keys::ValidNetworks">ValidNetworks</a>) -> Self</h4></section></summary><div class="docblock"><p>Create an instance given a public key and a set of valid networks</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_secret" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#88-90">source</a><h4 class="code-header">pub fn <a href="#method.from_secret" class="fn">from_secret</a>(secret: <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a>, networks: <a class="type" href="type.ValidNetworks.html" title="type bdk_wallet::keys::ValidNetworks">ValidNetworks</a>) -> Self</h4></section></summary><div class="docblock"><p>Create an instance given a secret key and a set of valid networks</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.override_valid_networks" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#93-98">source</a><h4 class="code-header">pub fn <a href="#method.override_valid_networks" class="fn">override_valid_networks</a>(self, networks: <a class="type" href="type.ValidNetworks.html" title="type bdk_wallet::keys::ValidNetworks">ValidNetworks</a>) -> Self</h4></section></summary><div class="docblock"><p>Override the computed set of valid networks</p>
+</div></details></div></details></div><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><section id="impl-Debug-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#73">source</a><a href="#impl-Debug-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#73">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#840-844">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for <a class="enum" href="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx></h3></section></summary><div class="docblock"><p>The “identity” conversion is used internally by some <code>bdk_wallet::fragment</code>s</p>
+</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_descriptor_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#841-843">source</a><a href="#method.into_descriptor_key" class="anchor">§</a><h4 class="code-header">fn <a href="trait.IntoDescriptorKey.html#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>></h4></section></summary><div class='docblock'>Turn the key into a <a href="enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a> within the requested <a href="trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-Send-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-Sync-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-Unpin-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="The descriptor pubkey, either a single pubkey or an xpub."><meta name="keywords" content="rust, rustlang, rust-lang, DescriptorPublicKey"><title>DescriptorPublicKey in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">DescriptorPublicKey</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.MultiXPub">MultiXPub</a></li><li><a href="#variant.Single">Single</a></li><li><a href="#variant.XPub">XPub</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.at_derivation_index">at_derivation_index</a></li><li><a href="#method.derive">derive</a></li><li><a href="#method.full_derivation_path">full_derivation_path</a></li><li><a href="#method.full_derivation_paths">full_derivation_paths</a></li><li><a href="#method.has_wildcard">has_wildcard</a></li><li><a href="#method.into_single_keys">into_single_keys</a></li><li><a href="#method.is_deriveable">is_deriveable</a></li><li><a href="#method.is_multipath">is_multipath</a></li><li><a href="#method.master_fingerprint">master_fingerprint</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-DescriptorPublicKey">Clone</a></li><li><a href="#impl-Debug-for-DescriptorPublicKey">Debug</a></li><li><a href="#impl-Deserialize%3C%27de%3E-for-DescriptorPublicKey">Deserialize<'de></a></li><li><a href="#impl-Display-for-DescriptorPublicKey">Display</a></li><li><a href="#impl-Eq-for-DescriptorPublicKey">Eq</a></li><li><a href="#impl-From%3CDefiniteDescriptorKey%3E-for-DescriptorPublicKey">From<DefiniteDescriptorKey></a></li><li><a href="#impl-FromStr-for-DescriptorPublicKey">FromStr</a></li><li><a href="#impl-Hash-for-DescriptorPublicKey">Hash</a></li><li><a href="#impl-IntoAssets-for-DescriptorPublicKey">IntoAssets</a></li><li><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorPublicKey">IntoDescriptorKey<Ctx></a></li><li><a href="#impl-MiniscriptKey-for-DescriptorPublicKey">MiniscriptKey</a></li><li><a href="#impl-Ord-for-DescriptorPublicKey">Ord</a></li><li><a href="#impl-PartialEq%3CDescriptorPublicKey%3E-for-DescriptorPublicKey">PartialEq<DescriptorPublicKey></a></li><li><a href="#impl-PartialOrd%3CDescriptorPublicKey%3E-for-DescriptorPublicKey">PartialOrd<DescriptorPublicKey></a></li><li><a href="#impl-Serialize-for-DescriptorPublicKey">Serialize</a></li><li><a href="#impl-StructuralEq-for-DescriptorPublicKey">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-DescriptorPublicKey">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-DescriptorPublicKey">RefUnwindSafe</a></li><li><a href="#impl-Send-for-DescriptorPublicKey">Send</a></li><li><a href="#impl-Sync-for-DescriptorPublicKey">Sync</a></li><li><a href="#impl-Unpin-for-DescriptorPublicKey">Unpin</a></li><li><a href="#impl-UnwindSafe-for-DescriptorPublicKey">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-DescriptorPublicKey">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-DescriptorPublicKey">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-DescriptorPublicKey">BorrowMut<T></a></li><li><a href="#impl-DeserializeOwned-for-DescriptorPublicKey">DeserializeOwned</a></li><li><a href="#impl-From%3CT%3E-for-DescriptorPublicKey">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-DescriptorPublicKey">Into<U></a></li><li><a href="#impl-ToOwned-for-DescriptorPublicKey">ToOwned</a></li><li><a href="#impl-ToString-for-DescriptorPublicKey">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-DescriptorPublicKey">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-DescriptorPublicKey">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-DescriptorPublicKey">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="enum" href="#">DescriptorPublicKey</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum DescriptorPublicKey {
+ Single(<a class="struct" href="struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</a>),
+ XPub(DescriptorXKey<Xpub>),
+ MultiXPub(DescriptorMultiXKey<Xpub>),
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The descriptor pubkey, either a single pubkey or an xpub.</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Single" class="variant"><a href="#variant.Single" class="anchor">§</a><h3 class="code-header">Single(<a class="struct" href="struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</a>)</h3></section><div class="docblock"><p>Single public key.</p>
+</div><section id="variant.XPub" class="variant"><a href="#variant.XPub" class="anchor">§</a><h3 class="code-header">XPub(DescriptorXKey<Xpub>)</h3></section><div class="docblock"><p>Extended public key (xpub).</p>
+</div><section id="variant.MultiXPub" class="variant"><a href="#variant.MultiXPub" class="anchor">§</a><h3 class="code-header">MultiXPub(DescriptorMultiXKey<Xpub>)</h3></section><div class="docblock"><p>Multiple extended public keys.</p>
+</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.master_fingerprint" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.master_fingerprint" class="fn">master_fingerprint</a>(&self) -> Fingerprint</h4></section></summary><div class="docblock"><p>The fingerprint of the master key associated with this key, <code>0x00000000</code> if none.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.full_derivation_path" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.full_derivation_path" class="fn">full_derivation_path</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><DerivationPath></h4></section></summary><div class="docblock"><p>Full path, from the master key</p>
+<p>For wildcard keys this will return the path up to the wildcard, so you
+can get full paths by appending one additional derivation step, according
+to the wildcard type (hardened or normal).</p>
+<p>For multipath extended keys, this returns <code>None</code>.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.full_derivation_paths" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.full_derivation_paths" class="fn">full_derivation_paths</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><DerivationPath, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>></h4></section></summary><div class="docblock"><p>Returns a vector containing the full derivation paths from the master key.
+The vector will contain just one element for single keys, and multiple elements
+for multipath extended keys.</p>
+<p>For wildcard keys this will return the path up to the wildcard, so you
+can get full paths by appending one additional derivation step, according
+to the wildcard type (hardened or normal).</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_deriveable" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_deriveable" class="fn">is_deriveable</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: use has_wildcard instead</span></div></span></summary><div class="docblock"><p>Whether or not the key has a wildcard</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.has_wildcard" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.has_wildcard" class="fn">has_wildcard</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether or not the key has a wildcard</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.derive" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.derive" class="fn">derive</a>(self, index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><DefiniteDescriptorKey, ConversionError></h4></section><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: use at_derivation_index instead</span></div></span></summary><div class="docblock"><p>Deprecated name for <a href="enum.DescriptorPublicKey.html#method.at_derivation_index" title="Self::at_derivation_index"><code>Self::at_derivation_index</code></a>.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.at_derivation_index" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.at_derivation_index" class="fn">at_derivation_index</a>(<br> self,<br> index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><DefiniteDescriptorKey, ConversionError></h4></section></summary><div class="docblock"><p>Replaces any wildcard (i.e. <code>/*</code>) in the key with a particular derivation index, turning it into a
+<em>definite</em> key (i.e. one where all the derivation paths are set).</p>
+<h5 id="returns"><a href="#returns">Returns</a></h5>
+<ul>
+<li>If this key is not an xpub, returns <code>self</code>.</li>
+<li>If this key is an xpub but does not have a wildcard, returns <code>self</code>.</li>
+<li>Otherwise, returns the xpub at derivation <code>index</code> (removing the wildcard).</li>
+</ul>
+<h5 id="errors"><a href="#errors">Errors</a></h5>
+<ul>
+<li>If <code>index</code> is hardened.</li>
+</ul>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_multipath" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_multipath" class="fn">is_multipath</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether or not this key has multiple derivation paths.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_single_keys" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.into_single_keys" class="fn">into_single_keys</a>(self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>></h4></section></summary><div class="docblock"><p>Get as many keys as derivation paths in this key.</p>
+<p>For raw public key and single-path extended keys it will return the key itself.
+For multipath extended keys it will return a single-path extended key per derivation
+path.</p>
+</div></details></div></details></div><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><section id="impl-Clone-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Clone-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Debug-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserialize%3C%27de%3E-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Deserialize%3C%27de%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl has-srclink"><a href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize" class="fn">deserialize</a><D>(<br> deserializer: D<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="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <D as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>><span class="where fmt-newline">where<br> D: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Display-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CDefiniteDescriptorKey%3E-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-From%3CDefiniteDescriptorKey%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><DefiniteDescriptorKey> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(d: DefiniteDescriptorKey) -> <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-FromStr-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-FromStr-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Err" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Err" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" class="associatedtype">Err</a> = DescriptorKeyParseError</h4></section></summary><div class='docblock'>The associated error which can be returned from parsing.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_str" class="method trait-impl has-srclink"><a href="#method.from_str" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str" class="fn">from_str</a>(<br> s: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</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="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <<a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a> as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>></h4></section></summary><div class='docblock'>Parses a string <code>s</code> to return a value of this type. <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Hash-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)<span class="where fmt-newline">where<br> __H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-IntoAssets-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-IntoAssets-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl IntoAssets for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_assets" class="method trait-impl has-srclink"><a href="#method.into_assets" class="anchor">§</a><h4 class="code-header">fn <a class="fn">into_assets</a>(self) -> Assets</h4></section></summary><div class='docblock'>Convert <code>self</code> into a <code>Assets</code> struct</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#846-860">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_descriptor_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#847-859">source</a><a href="#method.into_descriptor_key" class="anchor">§</a><h4 class="code-header">fn <a href="trait.IntoDescriptorKey.html#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>></h4></section></summary><div class='docblock'>Turn the key into a <a href="enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a> within the requested <a href="trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-MiniscriptKey-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-MiniscriptKey-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl MiniscriptKey for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Sha256" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Sha256" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Sha256</a> = Hash</h4></section></summary><div class='docblock'>The associated [<code>bitcoin::hashes::sha256::Hash</code>] for this [<code>MiniscriptKey</code>], used in the
+sha256 fragment. <a>Read more</a></div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Hash256" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Hash256" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Hash256</a> = Hash</h4></section></summary><div class='docblock'>The associated [<code>miniscript::hash256::Hash</code>] for this [<code>MiniscriptKey</code>], used in the
+hash256 fragment. <a>Read more</a></div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Ripemd160" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Ripemd160" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Ripemd160</a> = Hash</h4></section></summary><div class='docblock'>The associated [<code>bitcoin::hashes::ripemd160::Hash</code>] for this [<code>MiniscriptKey</code>] type, used
+in the ripemd160 fragment. <a>Read more</a></div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Hash160" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Hash160" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Hash160</a> = Hash</h4></section></summary><div class='docblock'>The associated [<code>bitcoin::hashes::hash160::Hash</code>] for this [<code>MiniscriptKey</code>] type, used in
+the hash160 fragment. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_uncompressed" class="method trait-impl has-srclink"><a href="#method.is_uncompressed" class="anchor">§</a><h4 class="code-header">fn <a class="fn">is_uncompressed</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns true if the pubkey is uncompressed. Defaults to <code>false</code>.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_x_only_key" class="method trait-impl has-srclink"><a href="#method.is_x_only_key" class="anchor">§</a><h4 class="code-header">fn <a class="fn">is_x_only_key</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns true if the pubkey is an x-only pubkey. Defaults to <code>false</code>.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.num_der_paths" class="method trait-impl has-srclink"><a href="#method.num_der_paths" class="anchor">§</a><h4 class="code-header">fn <a class="fn">num_der_paths</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class='docblock'>Returns the number of different derivation paths in this key. Only >1 for keys
+in BIP389 multipath descriptors. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Ord-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CDescriptorPublicKey%3E-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-PartialEq%3CDescriptorPublicKey%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CDescriptorPublicKey%3E-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-PartialOrd%3CDescriptorPublicKey%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Serialize-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><S>(<br> &self,<br> serializer: S<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<S as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, <S as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Eq-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-StructuralEq-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-StructuralEq-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-StructuralPartialEq-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-StructuralPartialEq-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-Send-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Send-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-Sync-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Sync-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-Unpin-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-Unpin-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-UnwindSafe-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-UnwindSafe-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-DescriptorPublicKey" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details><section id="impl-DeserializeOwned-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/serde/1.0.201/src/serde/de/mod.rs.html#608">source</a><a href="#impl-DeserializeOwned-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> for T<span class="where fmt-newline">where<br> T: for<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de>,</span></h3></section></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="The descriptor secret key, either a single private key or an xprv."><meta name="keywords" content="rust, rustlang, rust-lang, DescriptorSecretKey"><title>DescriptorSecretKey in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">DescriptorSecretKey</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.MultiXPrv">MultiXPrv</a></li><li><a href="#variant.Single">Single</a></li><li><a href="#variant.XPrv">XPrv</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.into_single_keys">into_single_keys</a></li><li><a href="#method.is_multipath">is_multipath</a></li><li><a href="#method.to_public">to_public</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-DescriptorSecretKey">Clone</a></li><li><a href="#impl-Debug-for-DescriptorSecretKey">Debug</a></li><li><a href="#impl-Display-for-DescriptorSecretKey">Display</a></li><li><a href="#impl-Eq-for-DescriptorSecretKey">Eq</a></li><li><a href="#impl-FromStr-for-DescriptorSecretKey">FromStr</a></li><li><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorSecretKey">IntoDescriptorKey<Ctx></a></li><li><a href="#impl-PartialEq%3CDescriptorSecretKey%3E-for-DescriptorSecretKey">PartialEq<DescriptorSecretKey></a></li><li><a href="#impl-StructuralEq-for-DescriptorSecretKey">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-DescriptorSecretKey">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-DescriptorSecretKey">RefUnwindSafe</a></li><li><a href="#impl-Send-for-DescriptorSecretKey">Send</a></li><li><a href="#impl-Sync-for-DescriptorSecretKey">Sync</a></li><li><a href="#impl-Unpin-for-DescriptorSecretKey">Unpin</a></li><li><a href="#impl-UnwindSafe-for-DescriptorSecretKey">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-DescriptorSecretKey">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-DescriptorSecretKey">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-DescriptorSecretKey">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-DescriptorSecretKey">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-DescriptorSecretKey">Into<U></a></li><li><a href="#impl-ToOwned-for-DescriptorSecretKey">ToOwned</a></li><li><a href="#impl-ToString-for-DescriptorSecretKey">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-DescriptorSecretKey">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-DescriptorSecretKey">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-DescriptorSecretKey">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="enum" href="#">DescriptorSecretKey</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum DescriptorSecretKey {
+ Single(<a class="struct" href="struct.SinglePriv.html" title="struct bdk_wallet::keys::SinglePriv">SinglePriv</a>),
+ XPrv(DescriptorXKey<Xpriv>),
+ MultiXPrv(DescriptorMultiXKey<Xpriv>),
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The descriptor secret key, either a single private key or an xprv.</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Single" class="variant"><a href="#variant.Single" class="anchor">§</a><h3 class="code-header">Single(<a class="struct" href="struct.SinglePriv.html" title="struct bdk_wallet::keys::SinglePriv">SinglePriv</a>)</h3></section><div class="docblock"><p>Single private key.</p>
+</div><section id="variant.XPrv" class="variant"><a href="#variant.XPrv" class="anchor">§</a><h3 class="code-header">XPrv(DescriptorXKey<Xpriv>)</h3></section><div class="docblock"><p>Extended private key (xpriv).</p>
+</div><section id="variant.MultiXPrv" class="variant"><a href="#variant.MultiXPrv" class="anchor">§</a><h3 class="code-header">MultiXPrv(DescriptorMultiXKey<Xpriv>)</h3></section><div class="docblock"><p>Multiple extended private keys.</p>
+</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_public" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.to_public" class="fn">to_public</a><C>(<br> &self,<br> secp: &Secp256k1<C><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="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, DescriptorKeyParseError><span class="where fmt-newline">where<br> C: Signing,</span></h4></section></summary><div class="docblock"><p>Returns the public version of this key.</p>
+<p>If the key is an “XPrv”, the hardened derivation steps will be applied
+before converting it to a public key.</p>
+<p>It will return an error if the key is a “multi-xpriv”, as we wouldn’t
+always be able to apply hardened derivation steps if there are multiple
+paths.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_multipath" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_multipath" class="fn">is_multipath</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether or not this key has multiple derivation paths.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_single_keys" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.into_single_keys" class="fn">into_single_keys</a>(self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>></h4></section></summary><div class="docblock"><p>Get as many keys as derivation paths in this key.</p>
+<p>For raw keys and single-path extended keys it will return the key itself.
+For multipath extended keys it will return a single-path extended key per derivation
+path.</p>
+</div></details></div></details></div><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><section id="impl-Clone-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-Clone-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-Debug-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-Display-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-FromStr-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-FromStr-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Err" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Err" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" class="associatedtype">Err</a> = DescriptorKeyParseError</h4></section></summary><div class='docblock'>The associated error which can be returned from parsing.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_str" class="method trait-impl has-srclink"><a href="#method.from_str" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str" class="fn">from_str</a>(<br> s: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</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="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a>, <<a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a> as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>></h4></section></summary><div class='docblock'>Parses a string <code>s</code> to return a value of this type. <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorSecretKey" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#882-898">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_descriptor_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#883-897">source</a><a href="#method.into_descriptor_key" class="anchor">§</a><h4 class="code-header">fn <a href="trait.IntoDescriptorKey.html#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>></h4></section></summary><div class='docblock'>Turn the key into a <a href="enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a> within the requested <a href="trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CDescriptorSecretKey%3E-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-PartialEq%3CDescriptorSecretKey%3E-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a>> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><section id="impl-Eq-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-Eq-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section><section id="impl-StructuralEq-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-StructuralEq-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section><section id="impl-StructuralPartialEq-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-StructuralPartialEq-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section><section id="impl-Send-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-Send-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section><section id="impl-Sync-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-Sync-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section><section id="impl-Unpin-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-Unpin-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section><section id="impl-UnwindSafe-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-UnwindSafe-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-DescriptorSecretKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-DescriptorSecretKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-DescriptorSecretKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-DescriptorSecretKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-DescriptorSecretKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-DescriptorSecretKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-DescriptorSecretKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-DescriptorSecretKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-DescriptorSecretKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-DescriptorSecretKey" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Enum for extended keys that can be either `xprv` or `xpub`"><meta name="keywords" content="rust, rustlang, rust-lang, ExtendedKey"><title>ExtendedKey in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">ExtendedKey</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Private">Private</a></li><li><a href="#variant.Public">Public</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.has_secret">has_secret</a></li><li><a href="#method.into_xprv">into_xprv</a></li><li><a href="#method.into_xpub">into_xpub</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-DerivableKey%3CCtx%3E-for-ExtendedKey%3CCtx%3E">DerivableKey<Ctx></a></li><li><a href="#impl-From%3CXpriv%3E-for-ExtendedKey%3CCtx%3E">From<Xpriv></a></li><li><a href="#impl-From%3CXpub%3E-for-ExtendedKey%3CCtx%3E">From<Xpub></a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-ExtendedKey%3CCtx%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-ExtendedKey%3CCtx%3E">Send</a></li><li><a href="#impl-Sync-for-ExtendedKey%3CCtx%3E">Sync</a></li><li><a href="#impl-Unpin-for-ExtendedKey%3CCtx%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-ExtendedKey%3CCtx%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-ExtendedKey%3CCtx%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-ExtendedKey%3CCtx%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-ExtendedKey%3CCtx%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-ExtendedKey%3CCtx%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-ExtendedKey%3CCtx%3E">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-ExtendedKey%3CCtx%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-ExtendedKey%3CCtx%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-ExtendedKey%3CCtx%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="enum" href="#">ExtendedKey</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/keys/mod.rs.html#318-323">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum ExtendedKey<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a> = <a class="enum" href="../descriptor/enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a>> {
+ Private((Xpriv, <a class="struct" href="https://doc.rust-lang.org/nightly/core/marker/struct.PhantomData.html" title="struct core::marker::PhantomData">PhantomData</a><Ctx>)),
+ Public((Xpub, <a class="struct" href="https://doc.rust-lang.org/nightly/core/marker/struct.PhantomData.html" title="struct core::marker::PhantomData">PhantomData</a><Ctx>)),
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Enum for extended keys that can be either <code>xprv</code> or <code>xpub</code></p>
+<p>An instance of <a href="enum.ExtendedKey.html" title="ExtendedKey"><code>ExtendedKey</code></a> can be constructed from an <a href="bip32::Xpriv"><code>Xpriv</code></a>
+or an <a href="bip32::Xpub"><code>Xpub</code></a> by using the <code>From</code> trait.</p>
+<p>Defaults to the <a href="../descriptor/enum.Legacy.html"><code>Legacy</code></a> context.</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Private" class="variant"><a href="#variant.Private" class="anchor">§</a><h3 class="code-header">Private((Xpriv, <a class="struct" href="https://doc.rust-lang.org/nightly/core/marker/struct.PhantomData.html" title="struct core::marker::PhantomData">PhantomData</a><Ctx>))</h3></section><div class="docblock"><p>A private extended key, aka an <code>xprv</code></p>
+</div><section id="variant.Public" class="variant"><a href="#variant.Public" class="anchor">§</a><h3 class="code-header">Public((Xpub, <a class="struct" href="https://doc.rust-lang.org/nightly/core/marker/struct.PhantomData.html" title="struct core::marker::PhantomData">PhantomData</a><Ctx>))</h3></section><div class="docblock"><p>A public extended key, aka an <code>xpub</code></p>
+</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#325-361">source</a><a href="#impl-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="enum" href="enum.ExtendedKey.html" title="enum bdk_wallet::keys::ExtendedKey">ExtendedKey</a><Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.has_secret" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#327-332">source</a><h4 class="code-header">pub fn <a href="#method.has_secret" class="fn">has_secret</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Return whether or not the key contains the private data</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_xprv" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#336-344">source</a><h4 class="code-header">pub fn <a href="#method.into_xprv" class="fn">into_xprv</a>(self, network: Network) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Xpriv></h4></section></summary><div class="docblock"><p>Transform the <a href="enum.ExtendedKey.html" title="ExtendedKey"><code>ExtendedKey</code></a> into an <a href="bip32::Xpriv"><code>Xpriv</code></a> for the
+given [<code>Network</code>], if the key contains the private data</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_xpub" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#348-360">source</a><h4 class="code-header">pub fn <a href="#method.into_xpub" class="fn">into_xpub</a><C: Signing>(self, network: Network, secp: &Secp256k1<C>) -> Xpub</h4></section></summary><div class="docblock"><p>Transform the <a href="enum.ExtendedKey.html" title="ExtendedKey"><code>ExtendedKey</code></a> into an <a href="bip32::Xpub"><code>Xpub</code></a> for the
+given [<code>Network</code>]</p>
+</div></details></div></details></div><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><section id="impl-DerivableKey%3CCtx%3E-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#519-523">source</a><a href="#impl-DerivableKey%3CCtx%3E-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><Ctx> for <a class="enum" href="enum.ExtendedKey.html" title="enum bdk_wallet::keys::ExtendedKey">ExtendedKey</a><Ctx></h3></section></summary><div class="docblock"><p>Identity conversion</p>
+</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_extended_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#520-522">source</a><a href="#method.into_extended_key" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DerivableKey.html#tymethod.into_extended_key" class="fn">into_extended_key</a>(self) -> <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="enum.ExtendedKey.html" title="enum bdk_wallet::keys::ExtendedKey">ExtendedKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>></h4></section></summary><div class='docblock'>Consume <code>self</code> and turn it into an <a href="enum.ExtendedKey.html" title="ExtendedKey"><code>ExtendedKey</code></a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_descriptor_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#494-515">source</a><a href="#method.into_descriptor_key" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DerivableKey.html#method.into_descriptor_key" class="fn">into_descriptor_key</a>(<br> self,<br> origin: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><KeySource>,<br> derivation_path: DerivationPath<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="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>></h4></section></summary><div class='docblock'>Consume <code>self</code> and turn it into a <a href="enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a> by adding the extra metadata, such as
+key origin and derivation path <a href="trait.DerivableKey.html#method.into_descriptor_key">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CXpriv%3E-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#369-373">source</a><a href="#impl-From%3CXpriv%3E-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Xpriv> for <a class="enum" href="enum.ExtendedKey.html" title="enum bdk_wallet::keys::ExtendedKey">ExtendedKey</a><Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#370-372">source</a><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(xprv: Xpriv) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CXpub%3E-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#363-367">source</a><a href="#impl-From%3CXpub%3E-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Xpub> for <a class="enum" href="enum.ExtendedKey.html" title="enum bdk_wallet::keys::ExtendedKey">ExtendedKey</a><Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#364-366">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(xpub: Xpub) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.ExtendedKey.html" title="enum bdk_wallet::keys::ExtendedKey">ExtendedKey</a><Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-Send-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.ExtendedKey.html" title="enum bdk_wallet::keys::ExtendedKey">ExtendedKey</a><Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-Sync-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.ExtendedKey.html" title="enum bdk_wallet::keys::ExtendedKey">ExtendedKey</a><Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-Unpin-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.ExtendedKey.html" title="enum bdk_wallet::keys::ExtendedKey">ExtendedKey</a><Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.ExtendedKey.html" title="enum bdk_wallet::keys::ExtendedKey">ExtendedKey</a><Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Errors thrown while working with `keys`"><meta name="keywords" content="rust, rustlang, rust-lang, KeyError"><title>KeyError in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">KeyError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Bip32">Bip32</a></li><li><a href="#variant.InvalidChecksum">InvalidChecksum</a></li><li><a href="#variant.InvalidNetwork">InvalidNetwork</a></li><li><a href="#variant.InvalidScriptContext">InvalidScriptContext</a></li><li><a href="#variant.Message">Message</a></li><li><a href="#variant.Miniscript">Miniscript</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-KeyError">Debug</a></li><li><a href="#impl-Display-for-KeyError">Display</a></li><li><a href="#impl-Error-for-KeyError">Error</a></li><li><a href="#impl-From%3CError%3E-for-KeyError">From<Error></a></li><li><a href="#impl-From%3CError%3E-for-KeyError-1">From<Error></a></li><li><a href="#impl-From%3CKeyError%3E-for-Error">From<KeyError></a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-KeyError">RefUnwindSafe</a></li><li><a href="#impl-Send-for-KeyError">Send</a></li><li><a href="#impl-Sync-for-KeyError">Sync</a></li><li><a href="#impl-Unpin-for-KeyError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-KeyError">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-KeyError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-KeyError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-KeyError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-KeyError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-KeyError">Into<U></a></li><li><a href="#impl-Provider-for-KeyError">Provider</a></li><li><a href="#impl-ToString-for-KeyError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-KeyError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-KeyError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-KeyError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="enum" href="#">KeyError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/keys/mod.rs.html#920-935">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum KeyError {
+ InvalidScriptContext,
+ InvalidNetwork,
+ InvalidChecksum,
+ Message(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>),
+ Bip32(Error),
+ Miniscript(Error),
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Errors thrown while working with <a href="index.html"><code>keys</code></a></p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.InvalidScriptContext" class="variant"><a href="#variant.InvalidScriptContext" class="anchor">§</a><h3 class="code-header">InvalidScriptContext</h3></section><div class="docblock"><p>The key cannot exist in the given script context</p>
+</div><section id="variant.InvalidNetwork" class="variant"><a href="#variant.InvalidNetwork" class="anchor">§</a><h3 class="code-header">InvalidNetwork</h3></section><div class="docblock"><p>The key is not valid for the given network</p>
+</div><section id="variant.InvalidChecksum" class="variant"><a href="#variant.InvalidChecksum" class="anchor">§</a><h3 class="code-header">InvalidChecksum</h3></section><div class="docblock"><p>The key has an invalid checksum</p>
+</div><section id="variant.Message" class="variant"><a href="#variant.Message" class="anchor">§</a><h3 class="code-header">Message(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>)</h3></section><div class="docblock"><p>Custom error message</p>
+</div><section id="variant.Bip32" class="variant"><a href="#variant.Bip32" class="anchor">§</a><h3 class="code-header">Bip32(Error)</h3></section><div class="docblock"><p>BIP32 error</p>
+</div><section id="variant.Miniscript" class="variant"><a href="#variant.Miniscript" class="anchor">§</a><h3 class="code-header">Miniscript(Error)</h3></section><div class="docblock"><p>Miniscript error</p>
+</div></div><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><section id="impl-Debug-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#919">source</a><a href="#impl-Debug-for-KeyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#919">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#949-960">source</a><a href="#impl-Display-for-KeyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#950-959">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#963">source</a><a href="#impl-Error-for-KeyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#937-941">source</a><a href="#impl-From%3CError%3E-for-KeyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Error> for <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#938-940">source</a><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: Error) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-KeyError-1" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#943-947">source</a><a href="#impl-From%3CError%3E-for-KeyError-1" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Error> for <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#944-946">source</a><a href="#method.from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: Error) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CKeyError%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/descriptor/error.rs.html#47-55">source</a><a href="#impl-From%3CKeyError%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>> for <a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/descriptor/error.rs.html#48-54">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(key_error: <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>) -> <a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-KeyError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-KeyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a></h3></section><section id="impl-Send-for-KeyError" class="impl has-srclink"><a href="#impl-Send-for-KeyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a></h3></section><section id="impl-Sync-for-KeyError" class="impl has-srclink"><a href="#impl-Sync-for-KeyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a></h3></section><section id="impl-Unpin-for-KeyError" class="impl has-srclink"><a href="#impl-Unpin-for-KeyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a></h3></section><section id="impl-UnwindSafe-for-KeyError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-KeyError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-KeyError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-KeyError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-KeyError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-KeyError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-3" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-3" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-KeyError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-KeyError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
+provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-KeyError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-KeyError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-KeyError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-KeyError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-KeyError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-KeyError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Enum representation of the known valid [`ScriptContext`]s"><meta name="keywords" content="rust, rustlang, rust-lang, ScriptContextEnum"><title>ScriptContextEnum in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">ScriptContextEnum</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Legacy">Legacy</a></li><li><a href="#variant.Segwitv0">Segwitv0</a></li><li><a href="#variant.Tap">Tap</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.is_legacy">is_legacy</a></li><li><a href="#method.is_segwit_v0">is_segwit_v0</a></li><li><a href="#method.is_taproot">is_taproot</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-ScriptContextEnum">Clone</a></li><li><a href="#impl-Copy-for-ScriptContextEnum">Copy</a></li><li><a href="#impl-Debug-for-ScriptContextEnum">Debug</a></li><li><a href="#impl-Eq-for-ScriptContextEnum">Eq</a></li><li><a href="#impl-PartialEq%3CScriptContextEnum%3E-for-ScriptContextEnum">PartialEq<ScriptContextEnum></a></li><li><a href="#impl-StructuralEq-for-ScriptContextEnum">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-ScriptContextEnum">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-ScriptContextEnum">RefUnwindSafe</a></li><li><a href="#impl-Send-for-ScriptContextEnum">Send</a></li><li><a href="#impl-Sync-for-ScriptContextEnum">Sync</a></li><li><a href="#impl-Unpin-for-ScriptContextEnum">Unpin</a></li><li><a href="#impl-UnwindSafe-for-ScriptContextEnum">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-ScriptContextEnum">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-ScriptContextEnum">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-ScriptContextEnum">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-ScriptContextEnum">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-ScriptContextEnum">Into<U></a></li><li><a href="#impl-ToOwned-for-ScriptContextEnum">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-ScriptContextEnum">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-ScriptContextEnum">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-ScriptContextEnum">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="enum" href="#">ScriptContextEnum</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/keys/mod.rs.html#128-135">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum ScriptContextEnum {
+ Legacy,
+ Segwitv0,
+ Tap,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Enum representation of the known valid <a href="trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a>s</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Legacy" class="variant"><a href="#variant.Legacy" class="anchor">§</a><h3 class="code-header">Legacy</h3></section><div class="docblock"><p>Legacy scripts</p>
+</div><section id="variant.Segwitv0" class="variant"><a href="#variant.Segwitv0" class="anchor">§</a><h3 class="code-header">Segwitv0</h3></section><div class="docblock"><p>Segwitv0 scripts</p>
+</div><section id="variant.Tap" class="variant"><a href="#variant.Tap" class="anchor">§</a><h3 class="code-header">Tap</h3></section><div class="docblock"><p>Taproot scripts</p>
+</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#137-152">source</a><a href="#impl-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk_wallet::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_legacy" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#139-141">source</a><h4 class="code-header">pub fn <a href="#method.is_legacy" class="fn">is_legacy</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns whether the script context is <a href="enum.ScriptContextEnum.html#variant.Legacy" title="ScriptContextEnum::Legacy"><code>ScriptContextEnum::Legacy</code></a></p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_segwit_v0" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#144-146">source</a><h4 class="code-header">pub fn <a href="#method.is_segwit_v0" class="fn">is_segwit_v0</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns whether the script context is <a href="enum.ScriptContextEnum.html#variant.Segwitv0" title="ScriptContextEnum::Segwitv0"><code>ScriptContextEnum::Segwitv0</code></a></p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_taproot" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#149-151">source</a><h4 class="code-header">pub fn <a href="#method.is_taproot" class="fn">is_taproot</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns whether the script context is <a href="enum.ScriptContextEnum.html#variant.Tap" title="ScriptContextEnum::Tap"><code>ScriptContextEnum::Tap</code></a></p>
+</div></details></div></details></div><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><section id="impl-Clone-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#127">source</a><a href="#impl-Clone-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk_wallet::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#127">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk_wallet::keys::ScriptContextEnum">ScriptContextEnum</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#127">source</a><a href="#impl-Debug-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk_wallet::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#127">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CScriptContextEnum%3E-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#127">source</a><a href="#impl-PartialEq%3CScriptContextEnum%3E-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk_wallet::keys::ScriptContextEnum">ScriptContextEnum</a>> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk_wallet::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#127">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk_wallet::keys::ScriptContextEnum">ScriptContextEnum</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><section id="impl-Copy-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#127">source</a><a href="#impl-Copy-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk_wallet::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section><section id="impl-Eq-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#127">source</a><a href="#impl-Eq-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk_wallet::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section><section id="impl-StructuralEq-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#127">source</a><a href="#impl-StructuralEq-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk_wallet::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section><section id="impl-StructuralPartialEq-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#127">source</a><a href="#impl-StructuralPartialEq-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk_wallet::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-ScriptContextEnum" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk_wallet::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section><section id="impl-Send-for-ScriptContextEnum" class="impl has-srclink"><a href="#impl-Send-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk_wallet::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section><section id="impl-Sync-for-ScriptContextEnum" class="impl has-srclink"><a href="#impl-Sync-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk_wallet::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section><section id="impl-Unpin-for-ScriptContextEnum" class="impl has-srclink"><a href="#impl-Unpin-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk_wallet::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section><section id="impl-UnwindSafe-for-ScriptContextEnum" class="impl has-srclink"><a href="#impl-UnwindSafe-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk_wallet::keys::ScriptContextEnum">ScriptContextEnum</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-ScriptContextEnum" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-ScriptContextEnum" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-ScriptContextEnum" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Single public key without any origin or range information."><meta name="keywords" content="rust, rustlang, rust-lang, SinglePubKey"><title>SinglePubKey in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SinglePubKey</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.FullKey">FullKey</a></li><li><a href="#variant.XOnly">XOnly</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-SinglePubKey">Clone</a></li><li><a href="#impl-Debug-for-SinglePubKey">Debug</a></li><li><a href="#impl-Eq-for-SinglePubKey">Eq</a></li><li><a href="#impl-Hash-for-SinglePubKey">Hash</a></li><li><a href="#impl-Ord-for-SinglePubKey">Ord</a></li><li><a href="#impl-PartialEq%3CSinglePubKey%3E-for-SinglePubKey">PartialEq<SinglePubKey></a></li><li><a href="#impl-PartialOrd%3CSinglePubKey%3E-for-SinglePubKey">PartialOrd<SinglePubKey></a></li><li><a href="#impl-StructuralEq-for-SinglePubKey">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-SinglePubKey">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SinglePubKey">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SinglePubKey">Send</a></li><li><a href="#impl-Sync-for-SinglePubKey">Sync</a></li><li><a href="#impl-Unpin-for-SinglePubKey">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SinglePubKey">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SinglePubKey">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SinglePubKey">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SinglePubKey">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SinglePubKey">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SinglePubKey">Into<U></a></li><li><a href="#impl-ToOwned-for-SinglePubKey">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SinglePubKey">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SinglePubKey">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SinglePubKey">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="enum" href="#">SinglePubKey</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum SinglePubKey {
+ FullKey(PublicKey),
+ XOnly(XOnlyPublicKey),
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Single public key without any origin or range information.</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.FullKey" class="variant"><a href="#variant.FullKey" class="anchor">§</a><h3 class="code-header">FullKey(PublicKey)</h3></section><div class="docblock"><p>A bitcoin public key (compressed or uncompressed).</p>
+</div><section id="variant.XOnly" class="variant"><a href="#variant.XOnly" class="anchor">§</a><h3 class="code-header">XOnly(XOnlyPublicKey)</h3></section><div class="docblock"><p>An xonly public key.</p>
+</div></div><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><section id="impl-Clone-for-SinglePubKey" class="impl has-srclink"><a href="#impl-Clone-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk_wallet::keys::SinglePubKey">SinglePubKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.SinglePubKey.html" title="enum bdk_wallet::keys::SinglePubKey">SinglePubKey</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-SinglePubKey" class="impl has-srclink"><a href="#impl-Debug-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk_wallet::keys::SinglePubKey">SinglePubKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-SinglePubKey" class="impl has-srclink"><a href="#impl-Hash-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk_wallet::keys::SinglePubKey">SinglePubKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)<span class="where fmt-newline">where<br> __H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-SinglePubKey" class="impl has-srclink"><a href="#impl-Ord-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk_wallet::keys::SinglePubKey">SinglePubKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="enum" href="enum.SinglePubKey.html" title="enum bdk_wallet::keys::SinglePubKey">SinglePubKey</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CSinglePubKey%3E-for-SinglePubKey" class="impl has-srclink"><a href="#impl-PartialEq%3CSinglePubKey%3E-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.SinglePubKey.html" title="enum bdk_wallet::keys::SinglePubKey">SinglePubKey</a>> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk_wallet::keys::SinglePubKey">SinglePubKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.SinglePubKey.html" title="enum bdk_wallet::keys::SinglePubKey">SinglePubKey</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CSinglePubKey%3E-for-SinglePubKey" class="impl has-srclink"><a href="#impl-PartialOrd%3CSinglePubKey%3E-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="enum" href="enum.SinglePubKey.html" title="enum bdk_wallet::keys::SinglePubKey">SinglePubKey</a>> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk_wallet::keys::SinglePubKey">SinglePubKey</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="enum" href="enum.SinglePubKey.html" title="enum bdk_wallet::keys::SinglePubKey">SinglePubKey</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><section id="impl-Eq-for-SinglePubKey" class="impl has-srclink"><a href="#impl-Eq-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk_wallet::keys::SinglePubKey">SinglePubKey</a></h3></section><section id="impl-StructuralEq-for-SinglePubKey" class="impl has-srclink"><a href="#impl-StructuralEq-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk_wallet::keys::SinglePubKey">SinglePubKey</a></h3></section><section id="impl-StructuralPartialEq-for-SinglePubKey" class="impl has-srclink"><a href="#impl-StructuralPartialEq-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk_wallet::keys::SinglePubKey">SinglePubKey</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SinglePubKey" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk_wallet::keys::SinglePubKey">SinglePubKey</a></h3></section><section id="impl-Send-for-SinglePubKey" class="impl has-srclink"><a href="#impl-Send-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk_wallet::keys::SinglePubKey">SinglePubKey</a></h3></section><section id="impl-Sync-for-SinglePubKey" class="impl has-srclink"><a href="#impl-Sync-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk_wallet::keys::SinglePubKey">SinglePubKey</a></h3></section><section id="impl-Unpin-for-SinglePubKey" class="impl has-srclink"><a href="#impl-Unpin-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk_wallet::keys::SinglePubKey">SinglePubKey</a></h3></section><section id="impl-UnwindSafe-for-SinglePubKey" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.SinglePubKey.html" title="enum bdk_wallet::keys::SinglePubKey">SinglePubKey</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SinglePubKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SinglePubKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SinglePubKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SinglePubKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SinglePubKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-SinglePubKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SinglePubKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SinglePubKey" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SinglePubKey" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SinglePubKey" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Create a set containing mainnet, testnet, signet, and regtest"><meta name="keywords" content="rust, rustlang, rust-lang, any_network"><title>any_network in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="fn" href="#">any_network</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/keys/mod.rs.html#47-56">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn any_network() -> <a class="type" href="type.ValidNetworks.html" title="type bdk_wallet::keys::ValidNetworks">ValidNetworks</a></code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Create a set containing mainnet, testnet, signet, and regtest</p>
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Create a set only containing mainnet"><meta name="keywords" content="rust, rustlang, rust-lang, mainnet_network"><title>mainnet_network in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="fn" href="#">mainnet_network</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/keys/mod.rs.html#58-60">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn mainnet_network() -> <a class="type" href="type.ValidNetworks.html" title="type bdk_wallet::keys::ValidNetworks">ValidNetworks</a></code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Create a set only containing mainnet</p>
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Compute the intersection of two sets"><meta name="keywords" content="rust, rustlang, rust-lang, merge_networks"><title>merge_networks in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="fn" href="#">merge_networks</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/keys/mod.rs.html#68-70">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn merge_networks(a: &<a class="type" href="type.ValidNetworks.html" title="type bdk_wallet::keys::ValidNetworks">ValidNetworks</a>, b: &<a class="type" href="type.ValidNetworks.html" title="type bdk_wallet::keys::ValidNetworks">ValidNetworks</a>) -> <a class="type" href="type.ValidNetworks.html" title="type bdk_wallet::keys::ValidNetworks">ValidNetworks</a></code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Compute the intersection of two sets</p>
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Create a set containing testnet and regtest"><meta name="keywords" content="rust, rustlang, rust-lang, test_networks"><title>test_networks in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="fn" href="#">test_networks</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/keys/mod.rs.html#62-66">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn test_networks() -> <a class="type" href="type.ValidNetworks.html" title="type bdk_wallet::keys::ValidNetworks">ValidNetworks</a></code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Create a set containing testnet and regtest</p>
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Key formats"><meta name="keywords" content="rust, rustlang, rust-lang, keys"><title>bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module keys</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#traits">Traits</a></li><li><a href="#functions">Functions</a></li><li><a href="#types">Type Definitions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../index.html">bdk_wallet</a>::<wbr><a class="mod" href="#">keys</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/keys/mod.rs.html#12-1008">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Key formats</p>
+</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.GeneratedKey.html" title="bdk_wallet::keys::GeneratedKey struct">GeneratedKey</a></div><div class="item-right docblock-short">Output of a <a href="trait.GeneratableKey.html" title="GeneratableKey"><code>GeneratableKey</code></a> key generation</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="bdk_wallet::keys::PrivateKeyGenerateOptions struct">PrivateKeyGenerateOptions</a></div><div class="item-right docblock-short">Options for generating a [<code>PrivateKey</code>]</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.SinglePriv.html" title="bdk_wallet::keys::SinglePriv struct">SinglePriv</a></div><div class="item-right docblock-short">A descriptor [<code>bitcoin::PrivateKey</code>] with optional origin information.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.SinglePub.html" title="bdk_wallet::keys::SinglePub struct">SinglePub</a></div><div class="item-right docblock-short">A descriptor <a href="enum.SinglePubKey.html" title="SinglePubKey"><code>SinglePubKey</code></a> with optional origin information.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.SortedMultiVec.html" title="bdk_wallet::keys::SortedMultiVec struct">SortedMultiVec</a></div><div class="item-right docblock-short">Contents of a “sortedmulti” descriptor</div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.DescriptorKey.html" title="bdk_wallet::keys::DescriptorKey enum">DescriptorKey</a></div><div class="item-right docblock-short">Container for public or secret keys</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.DescriptorPublicKey.html" title="bdk_wallet::keys::DescriptorPublicKey enum">DescriptorPublicKey</a></div><div class="item-right docblock-short">The descriptor pubkey, either a single pubkey or an xpub.</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.DescriptorSecretKey.html" title="bdk_wallet::keys::DescriptorSecretKey enum">DescriptorSecretKey</a></div><div class="item-right docblock-short">The descriptor secret key, either a single private key or an xprv.</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.ExtendedKey.html" title="bdk_wallet::keys::ExtendedKey enum">ExtendedKey</a></div><div class="item-right docblock-short">Enum for extended keys that can be either <code>xprv</code> or <code>xpub</code></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.KeyError.html" title="bdk_wallet::keys::KeyError enum">KeyError</a></div><div class="item-right docblock-short">Errors thrown while working with <a href="index.html"><code>keys</code></a></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.ScriptContextEnum.html" title="bdk_wallet::keys::ScriptContextEnum enum">ScriptContextEnum</a></div><div class="item-right docblock-short">Enum representation of the known valid <a href="trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a>s</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.SinglePubKey.html" title="bdk_wallet::keys::SinglePubKey enum">SinglePubKey</a></div><div class="item-right docblock-short">Single public key without any origin or range information.</div></div></div><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.DerivableKey.html" title="bdk_wallet::keys::DerivableKey trait">DerivableKey</a></div><div class="item-right docblock-short">Trait for keys that can be derived.</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.ExtScriptContext.html" title="bdk_wallet::keys::ExtScriptContext trait">ExtScriptContext</a></div><div class="item-right docblock-short">Trait that adds extra useful methods to <a href="trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a>s</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.GeneratableDefaultOptions.html" title="bdk_wallet::keys::GeneratableDefaultOptions trait">GeneratableDefaultOptions</a></div><div class="item-right docblock-short">Trait that allows generating a key with the default options</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.GeneratableKey.html" title="bdk_wallet::keys::GeneratableKey trait">GeneratableKey</a></div><div class="item-right docblock-short">Trait for keys that can be generated</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.IntoDescriptorKey.html" title="bdk_wallet::keys::IntoDescriptorKey trait">IntoDescriptorKey</a></div><div class="item-right docblock-short">Trait for objects that can be turned into a public or secret <a href="enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a></div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.ScriptContext.html" title="bdk_wallet::keys::ScriptContext trait">ScriptContext</a></div><div class="item-right docblock-short">The ScriptContext for Miniscript. Additional type information associated with
+miniscript that is used for carrying out checks that dependent on the
+context under which the script is used.
+For example, disallowing uncompressed keys in Segwit context</div></div></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.any_network.html" title="bdk_wallet::keys::any_network fn">any_network</a></div><div class="item-right docblock-short">Create a set containing mainnet, testnet, signet, and regtest</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.mainnet_network.html" title="bdk_wallet::keys::mainnet_network fn">mainnet_network</a></div><div class="item-right docblock-short">Create a set only containing mainnet</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.merge_networks.html" title="bdk_wallet::keys::merge_networks fn">merge_networks</a></div><div class="item-right docblock-short">Compute the intersection of two sets</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.test_networks.html" title="bdk_wallet::keys::test_networks fn">test_networks</a></div><div class="item-right docblock-short">Create a set containing testnet and regtest</div></div></div><h2 id="types" class="small-section-header"><a href="#types">Type Definitions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="type" href="type.KeyMap.html" title="bdk_wallet::keys::KeyMap type">KeyMap</a></div><div class="item-right docblock-short">Alias type for a map of public key to secret key</div></div><div class="item-row"><div class="item-left module-item"><a class="type" href="type.ValidNetworks.html" title="bdk_wallet::keys::ValidNetworks type">ValidNetworks</a></div><div class="item-right docblock-short">Set of valid networks for a key</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+window.SIDEBAR_ITEMS = {"enum":[["DescriptorKey","Container for public or secret keys"],["DescriptorPublicKey","The descriptor pubkey, either a single pubkey or an xpub."],["DescriptorSecretKey","The descriptor secret key, either a single private key or an xprv."],["ExtendedKey","Enum for extended keys that can be either `xprv` or `xpub`"],["KeyError","Errors thrown while working with `keys`"],["ScriptContextEnum","Enum representation of the known valid [`ScriptContext`]s"],["SinglePubKey","Single public key without any origin or range information."]],"fn":[["any_network","Create a set containing mainnet, testnet, signet, and regtest"],["mainnet_network","Create a set only containing mainnet"],["merge_networks","Compute the intersection of two sets"],["test_networks","Create a set containing testnet and regtest"]],"struct":[["GeneratedKey","Output of a [`GeneratableKey`] key generation"],["PrivateKeyGenerateOptions","Options for generating a [`PrivateKey`]"],["SinglePriv","A descriptor [`bitcoin::PrivateKey`] with optional origin information."],["SinglePub","A descriptor [`SinglePubKey`] with optional origin information."],["SortedMultiVec","Contents of a “sortedmulti” descriptor"]],"trait":[["DerivableKey","Trait for keys that can be derived."],["ExtScriptContext","Trait that adds extra useful methods to [`ScriptContext`]s"],["GeneratableDefaultOptions","Trait that allows generating a key with the default options"],["GeneratableKey","Trait for keys that can be generated"],["IntoDescriptorKey","Trait for objects that can be turned into a public or secret [`DescriptorKey`]"],["ScriptContext","The ScriptContext for Miniscript. Additional type information associated with miniscript that is used for carrying out checks that dependent on the context under which the script is used. For example, disallowing uncompressed keys in Segwit context"]],"type":[["KeyMap","Alias type for a map of public key to secret key"],["ValidNetworks","Set of valid networks for a key"]]};
\ No newline at end of file
--- /dev/null
+<!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="Output of a [`GeneratableKey`] key generation"><meta name="keywords" content="rust, rustlang, rust-lang, GeneratedKey"><title>GeneratedKey in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">GeneratedKey</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.into_key">into_key</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-GeneratedKey%3CK%2C%20Ctx%3E">Clone</a></li><li><a href="#impl-Deref-for-GeneratedKey%3CK%2C%20Ctx%3E">Deref</a></li><li><a href="#impl-DerivableKey%3CCtx%3E-for-GeneratedKey%3CK%2C%20Ctx%3E">DerivableKey<Ctx></a></li><li><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-GeneratedKey%3CK%2C%20Ctx%3E">IntoDescriptorKey<Ctx></a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-GeneratedKey%3CK%2C%20Ctx%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-GeneratedKey%3CK%2C%20Ctx%3E">Send</a></li><li><a href="#impl-Sync-for-GeneratedKey%3CK%2C%20Ctx%3E">Sync</a></li><li><a href="#impl-Unpin-for-GeneratedKey%3CK%2C%20Ctx%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-GeneratedKey%3CK%2C%20Ctx%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-GeneratedKey%3CK%2C%20Ctx%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-GeneratedKey%3CK%2C%20Ctx%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-GeneratedKey%3CK%2C%20Ctx%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-GeneratedKey%3CK%2C%20Ctx%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-GeneratedKey%3CK%2C%20Ctx%3E">Into<U></a></li><li><a href="#impl-ToOwned-for-GeneratedKey%3CK%2C%20Ctx%3E">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-GeneratedKey%3CK%2C%20Ctx%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-GeneratedKey%3CK%2C%20Ctx%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-GeneratedKey%3CK%2C%20Ctx%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="struct" href="#">GeneratedKey</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/keys/mod.rs.html#538-542">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct GeneratedKey<K, Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Output of a <a href="trait.GeneratableKey.html" title="GeneratableKey"><code>GeneratableKey</code></a> key generation</p>
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#544-557">source</a><a href="#impl-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<K, Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="struct" href="struct.GeneratedKey.html" title="struct bdk_wallet::keys::GeneratedKey">GeneratedKey</a><K, Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_key" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#554-556">source</a><h4 class="code-header">pub fn <a href="#method.into_key" class="fn">into_key</a>(self) -> K</h4></section></summary><div class="docblock"><p>Consumes <code>self</code> and returns the key</p>
+</div></details></div></details></div><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><section id="impl-Clone-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#567-575">source</a><a href="#impl-Clone-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.GeneratedKey.html" title="struct bdk_wallet::keys::GeneratedKey">GeneratedKey</a><K, Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#568-574">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.GeneratedKey.html" title="struct bdk_wallet::keys::GeneratedKey">GeneratedKey</a><K, Ctx></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deref-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#559-565">source</a><a href="#impl-Deref-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<K, Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a> for <a class="struct" href="struct.GeneratedKey.html" title="struct bdk_wallet::keys::GeneratedKey">GeneratedKey</a><K, Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Target" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Target" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#associatedtype.Target" class="associatedtype">Target</a> = K</h4></section></summary><div class='docblock'>The resulting type after dereferencing.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deref" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#562-564">source</a><a href="#method.deref" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#tymethod.deref" class="fn">deref</a>(&self) -> &Self::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#associatedtype.Target" title="type core::ops::deref::Deref::Target">Target</a></h4></section></summary><div class='docblock'>Dereferences the value.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-DerivableKey%3CCtx%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#579-596">source</a><a href="#impl-DerivableKey%3CCtx%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx, K> <a class="trait" href="trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><Ctx> for <a class="struct" href="struct.GeneratedKey.html" title="struct bdk_wallet::keys::GeneratedKey">GeneratedKey</a><K, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,<br> K: <a class="trait" href="trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><Ctx>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_extended_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#584-586">source</a><a href="#method.into_extended_key" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DerivableKey.html#tymethod.into_extended_key" class="fn">into_extended_key</a>(self) -> <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="enum.ExtendedKey.html" title="enum bdk_wallet::keys::ExtendedKey">ExtendedKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>></h4></section></summary><div class='docblock'>Consume <code>self</code> and turn it into an <a href="enum.ExtendedKey.html" title="ExtendedKey"><code>ExtendedKey</code></a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_descriptor_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#588-595">source</a><a href="#method.into_descriptor_key" class="anchor">§</a><h4 class="code-header">fn <a href="trait.DerivableKey.html#method.into_descriptor_key" class="fn">into_descriptor_key</a>(<br> self,<br> origin: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><KeySource>,<br> derivation_path: DerivationPath<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="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>></h4></section></summary><div class='docblock'>Consume <code>self</code> and turn it into a <a href="enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a> by adding the extra metadata, such as
+key origin and derivation path <a href="trait.DerivableKey.html#method.into_descriptor_key">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-IntoDescriptorKey%3CCtx%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#600-609">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx, K> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for <a class="struct" href="struct.GeneratedKey.html" title="struct bdk_wallet::keys::GeneratedKey">GeneratedKey</a><K, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,<br> K: <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_descriptor_key-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#605-608">source</a><a href="#method.into_descriptor_key-1" class="anchor">§</a><h4 class="code-header">fn <a href="trait.IntoDescriptorKey.html#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>></h4></section></summary><div class='docblock'>Turn the key into a <a href="enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a> within the requested <a href="trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<K, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.GeneratedKey.html" title="struct bdk_wallet::keys::GeneratedKey">GeneratedKey</a><K, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Send-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<K, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.GeneratedKey.html" title="struct bdk_wallet::keys::GeneratedKey">GeneratedKey</a><K, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Sync-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<K, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.GeneratedKey.html" title="struct bdk_wallet::keys::GeneratedKey">GeneratedKey</a><K, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Unpin-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<K, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.GeneratedKey.html" title="struct bdk_wallet::keys::GeneratedKey">GeneratedKey</a><K, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<K, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.GeneratedKey.html" title="struct bdk_wallet::keys::GeneratedKey">GeneratedKey</a><K, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,<br> K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Options for generating a [`PrivateKey`]"><meta name="keywords" content="rust, rustlang, rust-lang, PrivateKeyGenerateOptions"><title>PrivateKeyGenerateOptions in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">PrivateKeyGenerateOptions</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.compressed">compressed</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-PrivateKeyGenerateOptions">Clone</a></li><li><a href="#impl-Copy-for-PrivateKeyGenerateOptions">Copy</a></li><li><a href="#impl-Debug-for-PrivateKeyGenerateOptions">Debug</a></li><li><a href="#impl-Default-for-PrivateKeyGenerateOptions">Default</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-PrivateKeyGenerateOptions">RefUnwindSafe</a></li><li><a href="#impl-Send-for-PrivateKeyGenerateOptions">Send</a></li><li><a href="#impl-Sync-for-PrivateKeyGenerateOptions">Sync</a></li><li><a href="#impl-Unpin-for-PrivateKeyGenerateOptions">Unpin</a></li><li><a href="#impl-UnwindSafe-for-PrivateKeyGenerateOptions">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-PrivateKeyGenerateOptions">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-PrivateKeyGenerateOptions">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-PrivateKeyGenerateOptions">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-PrivateKeyGenerateOptions">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-PrivateKeyGenerateOptions">Into<U></a></li><li><a href="#impl-ToOwned-for-PrivateKeyGenerateOptions">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-PrivateKeyGenerateOptions">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-PrivateKeyGenerateOptions">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-PrivateKeyGenerateOptions">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="struct" href="#">PrivateKeyGenerateOptions</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/keys/mod.rs.html#695-698">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct PrivateKeyGenerateOptions {
+ pub compressed: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Options for generating a [<code>PrivateKey</code>]</p>
+<p>Defaults to creating compressed keys, which save on-chain bytes and fees</p>
+</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.compressed" class="structfield small-section-header"><a href="#structfield.compressed" class="anchor field">§</a><code>compressed: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether the generated key should be “compressed” or not</p>
+</div><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><section id="impl-Clone-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#694">source</a><a href="#impl-Clone-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="struct bdk_wallet::keys::PrivateKeyGenerateOptions">PrivateKeyGenerateOptions</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#694">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="struct bdk_wallet::keys::PrivateKeyGenerateOptions">PrivateKeyGenerateOptions</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#694">source</a><a href="#impl-Debug-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="struct bdk_wallet::keys::PrivateKeyGenerateOptions">PrivateKeyGenerateOptions</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#694">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#700-704">source</a><a href="#impl-Default-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="struct bdk_wallet::keys::PrivateKeyGenerateOptions">PrivateKeyGenerateOptions</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#701-703">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> Self</h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><section id="impl-Copy-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#694">source</a><a href="#impl-Copy-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="struct bdk_wallet::keys::PrivateKeyGenerateOptions">PrivateKeyGenerateOptions</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="struct bdk_wallet::keys::PrivateKeyGenerateOptions">PrivateKeyGenerateOptions</a></h3></section><section id="impl-Send-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a href="#impl-Send-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="struct bdk_wallet::keys::PrivateKeyGenerateOptions">PrivateKeyGenerateOptions</a></h3></section><section id="impl-Sync-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a href="#impl-Sync-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="struct bdk_wallet::keys::PrivateKeyGenerateOptions">PrivateKeyGenerateOptions</a></h3></section><section id="impl-Unpin-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a href="#impl-Unpin-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="struct bdk_wallet::keys::PrivateKeyGenerateOptions">PrivateKeyGenerateOptions</a></h3></section><section id="impl-UnwindSafe-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a href="#impl-UnwindSafe-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="struct bdk_wallet::keys::PrivateKeyGenerateOptions">PrivateKeyGenerateOptions</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-PrivateKeyGenerateOptions" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-PrivateKeyGenerateOptions" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="A descriptor [`bitcoin::PrivateKey`] with optional origin information."><meta name="keywords" content="rust, rustlang, rust-lang, SinglePriv"><title>SinglePriv in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SinglePriv</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.key">key</a></li><li><a href="#structfield.origin">origin</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-SinglePriv">Clone</a></li><li><a href="#impl-Debug-for-SinglePriv">Debug</a></li><li><a href="#impl-Eq-for-SinglePriv">Eq</a></li><li><a href="#impl-PartialEq%3CSinglePriv%3E-for-SinglePriv">PartialEq<SinglePriv></a></li><li><a href="#impl-StructuralEq-for-SinglePriv">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-SinglePriv">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SinglePriv">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SinglePriv">Send</a></li><li><a href="#impl-Sync-for-SinglePriv">Sync</a></li><li><a href="#impl-Unpin-for-SinglePriv">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SinglePriv">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SinglePriv">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SinglePriv">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SinglePriv">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SinglePriv">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SinglePriv">Into<U></a></li><li><a href="#impl-ToOwned-for-SinglePriv">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SinglePriv">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SinglePriv">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SinglePriv">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="struct" href="#">SinglePriv</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct SinglePriv {
+ pub origin: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(Fingerprint, DerivationPath)>,
+ pub key: PrivateKey,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A descriptor [<code>bitcoin::PrivateKey</code>] with optional origin information.</p>
+</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.origin" class="structfield small-section-header"><a href="#structfield.origin" class="anchor field">§</a><code>origin: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(Fingerprint, DerivationPath)></code></span><div class="docblock"><p>Origin information (fingerprint and derivation path).</p>
+</div><span id="structfield.key" class="structfield small-section-header"><a href="#structfield.key" class="anchor field">§</a><code>key: PrivateKey</code></span><div class="docblock"><p>The private key.</p>
+</div><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><section id="impl-Clone-for-SinglePriv" class="impl has-srclink"><a href="#impl-Clone-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.SinglePriv.html" title="struct bdk_wallet::keys::SinglePriv">SinglePriv</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.SinglePriv.html" title="struct bdk_wallet::keys::SinglePriv">SinglePriv</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-SinglePriv" class="impl has-srclink"><a href="#impl-Debug-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.SinglePriv.html" title="struct bdk_wallet::keys::SinglePriv">SinglePriv</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CSinglePriv%3E-for-SinglePriv" class="impl has-srclink"><a href="#impl-PartialEq%3CSinglePriv%3E-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.SinglePriv.html" title="struct bdk_wallet::keys::SinglePriv">SinglePriv</a>> for <a class="struct" href="struct.SinglePriv.html" title="struct bdk_wallet::keys::SinglePriv">SinglePriv</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.SinglePriv.html" title="struct bdk_wallet::keys::SinglePriv">SinglePriv</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><section id="impl-Eq-for-SinglePriv" class="impl has-srclink"><a href="#impl-Eq-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.SinglePriv.html" title="struct bdk_wallet::keys::SinglePriv">SinglePriv</a></h3></section><section id="impl-StructuralEq-for-SinglePriv" class="impl has-srclink"><a href="#impl-StructuralEq-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="struct" href="struct.SinglePriv.html" title="struct bdk_wallet::keys::SinglePriv">SinglePriv</a></h3></section><section id="impl-StructuralPartialEq-for-SinglePriv" class="impl has-srclink"><a href="#impl-StructuralPartialEq-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.SinglePriv.html" title="struct bdk_wallet::keys::SinglePriv">SinglePriv</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SinglePriv" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.SinglePriv.html" title="struct bdk_wallet::keys::SinglePriv">SinglePriv</a></h3></section><section id="impl-Send-for-SinglePriv" class="impl has-srclink"><a href="#impl-Send-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.SinglePriv.html" title="struct bdk_wallet::keys::SinglePriv">SinglePriv</a></h3></section><section id="impl-Sync-for-SinglePriv" class="impl has-srclink"><a href="#impl-Sync-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.SinglePriv.html" title="struct bdk_wallet::keys::SinglePriv">SinglePriv</a></h3></section><section id="impl-Unpin-for-SinglePriv" class="impl has-srclink"><a href="#impl-Unpin-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.SinglePriv.html" title="struct bdk_wallet::keys::SinglePriv">SinglePriv</a></h3></section><section id="impl-UnwindSafe-for-SinglePriv" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.SinglePriv.html" title="struct bdk_wallet::keys::SinglePriv">SinglePriv</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SinglePriv" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SinglePriv" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SinglePriv" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SinglePriv" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SinglePriv" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-SinglePriv" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SinglePriv" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SinglePriv" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SinglePriv" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SinglePriv" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="A descriptor [`SinglePubKey`] with optional origin information."><meta name="keywords" content="rust, rustlang, rust-lang, SinglePub"><title>SinglePub in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SinglePub</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.key">key</a></li><li><a href="#structfield.origin">origin</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-SinglePub">Clone</a></li><li><a href="#impl-Debug-for-SinglePub">Debug</a></li><li><a href="#impl-Eq-for-SinglePub">Eq</a></li><li><a href="#impl-Hash-for-SinglePub">Hash</a></li><li><a href="#impl-Ord-for-SinglePub">Ord</a></li><li><a href="#impl-PartialEq%3CSinglePub%3E-for-SinglePub">PartialEq<SinglePub></a></li><li><a href="#impl-PartialOrd%3CSinglePub%3E-for-SinglePub">PartialOrd<SinglePub></a></li><li><a href="#impl-StructuralEq-for-SinglePub">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-SinglePub">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SinglePub">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SinglePub">Send</a></li><li><a href="#impl-Sync-for-SinglePub">Sync</a></li><li><a href="#impl-Unpin-for-SinglePub">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SinglePub">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SinglePub">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SinglePub">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SinglePub">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SinglePub">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SinglePub">Into<U></a></li><li><a href="#impl-ToOwned-for-SinglePub">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SinglePub">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SinglePub">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SinglePub">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="struct" href="#">SinglePub</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct SinglePub {
+ pub origin: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(Fingerprint, DerivationPath)>,
+ pub key: <a class="enum" href="enum.SinglePubKey.html" title="enum bdk_wallet::keys::SinglePubKey">SinglePubKey</a>,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A descriptor <a href="enum.SinglePubKey.html" title="SinglePubKey"><code>SinglePubKey</code></a> with optional origin information.</p>
+</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.origin" class="structfield small-section-header"><a href="#structfield.origin" class="anchor field">§</a><code>origin: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(Fingerprint, DerivationPath)></code></span><div class="docblock"><p>Origin information (fingerprint and derivation path).</p>
+</div><span id="structfield.key" class="structfield small-section-header"><a href="#structfield.key" class="anchor field">§</a><code>key: <a class="enum" href="enum.SinglePubKey.html" title="enum bdk_wallet::keys::SinglePubKey">SinglePubKey</a></code></span><div class="docblock"><p>The public key.</p>
+</div><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><section id="impl-Clone-for-SinglePub" class="impl has-srclink"><a href="#impl-Clone-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-SinglePub" class="impl has-srclink"><a href="#impl-Debug-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-SinglePub" class="impl has-srclink"><a href="#impl-Hash-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)<span class="where fmt-newline">where<br> __H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-SinglePub" class="impl has-srclink"><a href="#impl-Ord-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="struct" href="struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CSinglePub%3E-for-SinglePub" class="impl has-srclink"><a href="#impl-PartialEq%3CSinglePub%3E-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</a>> for <a class="struct" href="struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CSinglePub%3E-for-SinglePub" class="impl has-srclink"><a href="#impl-PartialOrd%3CSinglePub%3E-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="struct" href="struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</a>> for <a class="struct" href="struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="struct" href="struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><section id="impl-Eq-for-SinglePub" class="impl has-srclink"><a href="#impl-Eq-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</a></h3></section><section id="impl-StructuralEq-for-SinglePub" class="impl has-srclink"><a href="#impl-StructuralEq-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</a></h3></section><section id="impl-StructuralPartialEq-for-SinglePub" class="impl has-srclink"><a href="#impl-StructuralPartialEq-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SinglePub" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</a></h3></section><section id="impl-Send-for-SinglePub" class="impl has-srclink"><a href="#impl-Send-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</a></h3></section><section id="impl-Sync-for-SinglePub" class="impl has-srclink"><a href="#impl-Sync-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</a></h3></section><section id="impl-Unpin-for-SinglePub" class="impl has-srclink"><a href="#impl-Unpin-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</a></h3></section><section id="impl-UnwindSafe-for-SinglePub" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.SinglePub.html" title="struct bdk_wallet::keys::SinglePub">SinglePub</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SinglePub" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SinglePub" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SinglePub" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SinglePub" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SinglePub" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-SinglePub" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SinglePub" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SinglePub" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SinglePub" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SinglePub" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Contents of a “sortedmulti” descriptor"><meta name="keywords" content="rust, rustlang, rust-lang, SortedMultiVec"><title>SortedMultiVec in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SortedMultiVec</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.k">k</a></li><li><a href="#structfield.pks">pks</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.build_template">build_template</a></li><li><a href="#method.encode">encode</a></li><li><a href="#method.from_tree">from_tree</a></li><li><a href="#method.max_satisfaction_size">max_satisfaction_size</a></li><li><a href="#method.max_satisfaction_witness_elements">max_satisfaction_witness_elements</a></li><li><a href="#method.new">new</a></li><li><a href="#method.sanity_check">sanity_check</a></li><li><a href="#method.satisfy">satisfy</a></li><li><a href="#method.script_size">script_size</a></li><li><a href="#method.sorted_node">sorted_node</a></li><li><a href="#method.translate_pk">translate_pk</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Clone</a></li><li><a href="#impl-Debug-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Debug</a></li><li><a href="#impl-Display-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Display</a></li><li><a href="#impl-Eq-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Eq</a></li><li><a href="#impl-ForEachKey%3CPk%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E">ForEachKey<Pk></a></li><li><a href="#impl-Hash-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Hash</a></li><li><a href="#impl-Liftable%3CPk%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Liftable<Pk></a></li><li><a href="#impl-Ord-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Ord</a></li><li><a href="#impl-PartialEq%3CSortedMultiVec%3CPk%2C%20Ctx%3E%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E">PartialEq<SortedMultiVec<Pk, Ctx>></a></li><li><a href="#impl-PartialOrd%3CSortedMultiVec%3CPk%2C%20Ctx%3E%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E">PartialOrd<SortedMultiVec<Pk, Ctx>></a></li><li><a href="#impl-StructuralEq-for-SortedMultiVec%3CPk%2C%20Ctx%3E">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-SortedMultiVec%3CPk%2C%20Ctx%3E">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SortedMultiVec%3CPk%2C%20Ctx%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Send</a></li><li><a href="#impl-Sync-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Sync</a></li><li><a href="#impl-Unpin-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SortedMultiVec%3CPk%2C%20Ctx%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E">Into<U></a></li><li><a href="#impl-ToOwned-for-SortedMultiVec%3CPk%2C%20Ctx%3E">ToOwned</a></li><li><a href="#impl-ToString-for-SortedMultiVec%3CPk%2C%20Ctx%3E">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="struct" href="#">SortedMultiVec</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct SortedMultiVec<Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span>{
+ pub k: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
+ pub pks: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><Pk, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>>,
+ /* private fields */
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Contents of a “sortedmulti” descriptor</p>
+</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.k" class="structfield small-section-header"><a href="#structfield.k" class="anchor field">§</a><code>k: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code></span><div class="docblock"><p>signatures required</p>
+</div><span id="structfield.pks" class="structfield small-section-header"><a href="#structfield.pks" class="anchor field">§</a><code>pks: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><Pk, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>></code></span><div class="docblock"><p>public keys inside sorted Multi</p>
+</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(<br> k: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> pks: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><Pk, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</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="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx>, Error></h4></section></summary><div class="docblock"><p>Create a new instance of <code>SortedMultiVec</code> given a list of keys and the threshold</p>
+<p>Internally checks all the applicable size limits and pubkey types limitations according to the current <code>Ctx</code>.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_tree" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.from_tree" class="fn">from_tree</a>(tree: &Tree<'_>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx>, Error><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>,<br> <Pk as <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a>,</span></h4></section></summary><div class="docblock"><p>Parse an expression tree into a SortedMultiVec</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.translate_pk" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.translate_pk" class="fn">translate_pk</a><T, Q, FuncError>(<br> &self,<br> t: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T<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="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Q, Ctx>, TranslateErr<FuncError>><span class="where fmt-newline">where<br> T: Translator<Pk, Q, FuncError>,<br> Q: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>This will panic if fpk returns an uncompressed key when
+converting to a Segwit descriptor. To prevent this panic, ensure
+fpk returns an error in this case instead.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-SortedMultiVec%3CPk%2C%20Ctx%3E-1" class="impl has-srclink"><a href="#impl-SortedMultiVec%3CPk%2C%20Ctx%3E-1" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sanity_check" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.sanity_check" class="fn">sanity_check</a>(&self) -> <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></h4></section></summary><div class="docblock"><p>utility function to sanity a sorted multi vec</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-SortedMultiVec%3CPk%2C%20Ctx%3E-2" class="impl has-srclink"><a href="#impl-SortedMultiVec%3CPk%2C%20Ctx%3E-2" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sorted_node" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.sorted_node" class="fn">sorted_node</a>(&self) -> Terminal<Pk, Ctx><span class="where fmt-newline">where<br> Pk: ToPublicKey,</span></h4></section></summary><div class="docblock"><p>Create Terminal::Multi containing sorted pubkeys</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.encode" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.encode" class="fn">encode</a>(&self) -> ScriptBuf<span class="where fmt-newline">where<br> Pk: ToPublicKey,</span></h4></section></summary><div class="docblock"><p>Encode as a Bitcoin script</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.satisfy" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.satisfy" class="fn">satisfy</a><S>(<br> &self,<br> satisfier: S<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="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</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="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>>, Error><span class="where fmt-newline">where<br> Pk: ToPublicKey,<br> S: Satisfier<Pk>,</span></h4></section></summary><div class="docblock"><p>Attempt to produce a satisfying witness for the
+witness script represented by the parse tree</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build_template" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.build_template" class="fn">build_template</a><P>(&self, provider: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>P) -> Satisfaction<Placeholder<Pk>><span class="where fmt-newline">where<br> Pk: ToPublicKey,<br> P: AssetProvider<Pk>,</span></h4></section></summary><div class="docblock"><p>Attempt to produce a witness template given the assets available</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.script_size" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.script_size" class="fn">script_size</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Size, in bytes of the script-pubkey. If this Miniscript is used outside
+of segwit (e.g. in a bare or P2SH descriptor), this quantity should be
+multiplied by 4 to compute the weight.</p>
+<p>In general, it is not recommended to use this function directly, but
+to instead call the corresponding function on a <code>Descriptor</code>, which
+will handle the segwit/non-segwit technicalities for you.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_satisfaction_witness_elements" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.max_satisfaction_witness_elements" class="fn">max_satisfaction_witness_elements</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Maximum number of witness elements used to satisfy the Miniscript
+fragment, including the witness script itself. Used to estimate
+the weight of the <code>VarInt</code> that specifies this number in a serialized
+transaction.</p>
+<p>This function may panic on malformed <code>Miniscript</code> objects which do
+not correspond to semantically sane Scripts. (Such scripts should be
+rejected at parse time. Any exceptions are bugs.)</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_satisfaction_size" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.max_satisfaction_size" class="fn">max_satisfaction_size</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Maximum size, in bytes, of a satisfying witness.
+In general, it is not recommended to use this function directly, but
+to instead call the corresponding function on a <code>Descriptor</code>, which
+will handle the segwit/non-segwit technicalities for you.</p>
+<p>All signatures are assumed to be 73 bytes in size, including the
+length prefix (segwit) or push opcode (pre-segwit) and sighash
+postfix.</p>
+</div></details></div></details></div><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><section id="impl-Clone-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Clone-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + MiniscriptKey,<br> Ctx: <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="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Debug-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Display-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ForEachKey%3CPk%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-ForEachKey%3CPk%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> ForEachKey<Pk> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.for_each_key" class="method trait-impl has-srclink"><a href="#method.for_each_key" class="anchor">§</a><h4 class="code-header">fn <a class="fn">for_each_key</a><'a, F>(&'a self, pred: F) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&'a </a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</span></h4></section></summary><div class='docblock'>Run a predicate on every key in the descriptor, returning whether
+the predicate returned true for every key <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.for_any_key" class="method trait-impl has-srclink"><a href="#method.for_any_key" class="anchor">§</a><h4 class="code-header">fn <a class="fn">for_any_key</a><'a, F>(&'a self, pred: F) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&'a </a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,<br> Pk: 'a,</span></h4></section></summary><div class='docblock'>Run a predicate on every key in the descriptor, returning whether
+the predicate returned true for any key <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Hash-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> + MiniscriptKey,<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> + <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)<span class="where fmt-newline">where<br> __H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Liftable%3CPk%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Liftable%3CPk%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> Liftable<Pk> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lift" class="method trait-impl has-srclink"><a href="#method.lift" class="anchor">§</a><h4 class="code-header">fn <a class="fn">lift</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Policy<Pk>, Error></h4></section></summary><div class='docblock'>Converts this object into an abstract policy.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Ord-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + MiniscriptKey,<br> Ctx: <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="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CSortedMultiVec%3CPk%2C%20Ctx%3E%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-PartialEq%3CSortedMultiVec%3CPk%2C%20Ctx%3E%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx>> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><Pk> + MiniscriptKey,<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><Ctx> + <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CSortedMultiVec%3CPk%2C%20Ctx%3E%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-PartialOrd%3CSortedMultiVec%3CPk%2C%20Ctx%3E%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx>> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Pk> + MiniscriptKey,<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Ctx> + <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><section id="impl-Eq-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Eq-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + MiniscriptKey,<br> Ctx: <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="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section><section id="impl-StructuralEq-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-StructuralEq-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section><section id="impl-StructuralPartialEq-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-StructuralPartialEq-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Pk: MiniscriptKey,<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,</span></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Send-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Sync-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Unpin-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Pk, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.SortedMultiVec.html" title="struct bdk_wallet::keys::SortedMultiVec">SortedMultiVec</a><Pk, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,<br> Pk: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SortedMultiVec%3CPk%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Trait for keys that can be derived."><meta name="keywords" content="rust, rustlang, rust-lang, DerivableKey"><title>DerivableKey in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">DerivableKey</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.into_extended_key">into_extended_key</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.into_descriptor_key">into_descriptor_key</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-DerivableKey%3CCtx%3E-for-Xpriv">Xpriv</a></li><li><a href="#impl-DerivableKey%3CCtx%3E-for-Xpub">Xpub</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="trait" href="#">DerivableKey</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/keys/mod.rs.html#466-516">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait DerivableKey<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a> = <a class="enum" href="../descriptor/enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a>>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> {
+ fn <a href="#tymethod.into_extended_key" class="fn">into_extended_key</a>(self) -> <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="enum.ExtendedKey.html" title="enum bdk_wallet::keys::ExtendedKey">ExtendedKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>>;
+
+ fn <a href="#method.into_descriptor_key" class="fn">into_descriptor_key</a>(<br> self,<br> origin: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><KeySource>,<br> derivation_path: DerivationPath<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="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</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 keys that can be derived.</p>
+<p>When extra metadata are provided, a <a href="trait.DerivableKey.html" title="DerivableKey"><code>DerivableKey</code></a> can be transformed into a
+<a href="enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a>: the trait <a href="trait.IntoDescriptorKey.html" title="IntoDescriptorKey"><code>IntoDescriptorKey</code></a> is automatically implemented
+for <code>(DerivableKey, DerivationPath)</code> and
+<code>(DerivableKey, KeySource, DerivationPath)</code> tuples.</p>
+<p>For key types that don’t encode any indication about the path to use (like bip39), it’s
+generally recommended to implement this trait instead of <a href="trait.IntoDescriptorKey.html" title="IntoDescriptorKey"><code>IntoDescriptorKey</code></a>. The same
+rules regarding script context and valid networks apply.</p>
+<h3 id="examples"><a href="#examples">Examples</a></h3>
+<p>Key types that can be directly converted into an <a href="(bip32::Xpriv)"><code>Xpriv</code></a> or
+an <a href="(bip32::Xpub)"><code>Xpub</code></a> can implement only the required <code>into_extended_key()</code> method.</p>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk_wallet::bitcoin;
+<span class="kw">use </span>bdk_wallet::bitcoin::bip32;
+<span class="kw">use </span>bdk_wallet::keys::{DerivableKey, ExtendedKey, KeyError, ScriptContext};
+
+<span class="kw">struct </span>MyCustomKeyType {
+ key_data: bitcoin::PrivateKey,
+ chain_code: [u8; <span class="number">32</span>],
+ network: bitcoin::Network,
+}
+
+<span class="kw">impl</span><Ctx: ScriptContext> DerivableKey<Ctx> <span class="kw">for </span>MyCustomKeyType {
+ <span class="kw">fn </span>into_extended_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><ExtendedKey<Ctx>, KeyError> {
+ <span class="kw">let </span>xprv = bip32::Xpriv {
+ network: <span class="self">self</span>.network,
+ depth: <span class="number">0</span>,
+ parent_fingerprint: bip32::Fingerprint::default(),
+ private_key: <span class="self">self</span>.key_data.inner,
+ chain_code: bip32::ChainCode::from(<span class="kw-2">&</span><span class="self">self</span>.chain_code),
+ child_number: bip32::ChildNumber::Normal { index: <span class="number">0 </span>},
+ };
+
+ xprv.into_extended_key()
+ }
+}</code></pre></div>
+<p>Types that don’t internally encode the [<code>Network</code>] in which they are valid need some extra
+steps to override the set of valid networks, otherwise only the network specified in the
+<a href="(bip32::Xpriv)"><code>Xpriv</code></a> or <a href="(bip32::Xpub)"><code>Xpub</code></a> will be considered valid.</p>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk_wallet::bitcoin;
+<span class="kw">use </span>bdk_wallet::bitcoin::bip32;
+<span class="kw">use </span>bdk_wallet::keys::{
+ any_network, DerivableKey, DescriptorKey, ExtendedKey, KeyError, ScriptContext,
+};
+
+<span class="kw">struct </span>MyCustomKeyType {
+ key_data: bitcoin::PrivateKey,
+ chain_code: [u8; <span class="number">32</span>],
+}
+
+<span class="kw">impl</span><Ctx: ScriptContext> DerivableKey<Ctx> <span class="kw">for </span>MyCustomKeyType {
+ <span class="kw">fn </span>into_extended_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><ExtendedKey<Ctx>, KeyError> {
+ <span class="kw">let </span>xprv = bip32::Xpriv {
+ network: bitcoin::Network::Bitcoin, <span class="comment">// pick an arbitrary network here
+ </span>depth: <span class="number">0</span>,
+ parent_fingerprint: bip32::Fingerprint::default(),
+ private_key: <span class="self">self</span>.key_data.inner,
+ chain_code: bip32::ChainCode::from(<span class="kw-2">&</span><span class="self">self</span>.chain_code),
+ child_number: bip32::ChildNumber::Normal { index: <span class="number">0 </span>},
+ };
+
+ xprv.into_extended_key()
+ }
+
+ <span class="kw">fn </span>into_descriptor_key(
+ <span class="self">self</span>,
+ source: <span class="prelude-ty">Option</span><bip32::KeySource>,
+ derivation_path: bip32::DerivationPath,
+ ) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
+ <span class="kw">let </span>descriptor_key = <span class="self">self
+ </span>.into_extended_key()<span class="question-mark">?
+ </span>.into_descriptor_key(source, derivation_path)<span class="question-mark">?</span>;
+
+ <span class="comment">// Override the set of valid networks here
+ </span><span class="prelude-val">Ok</span>(descriptor_key.override_valid_networks(any_network()))
+ }
+}</code></pre></div>
+</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 method-toggle" open><summary><section id="tymethod.into_extended_key" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#490">source</a><h4 class="code-header">fn <a href="#tymethod.into_extended_key" class="fn">into_extended_key</a>(self) -> <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="enum.ExtendedKey.html" title="enum bdk_wallet::keys::ExtendedKey">ExtendedKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>></h4></section></summary><div class="docblock"><p>Consume <code>self</code> and turn it into an <a href="enum.ExtendedKey.html" title="ExtendedKey"><code>ExtendedKey</code></a></p>
+</div></details></div><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_descriptor_key" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#494-515">source</a><h4 class="code-header">fn <a href="#method.into_descriptor_key" class="fn">into_descriptor_key</a>(<br> self,<br> origin: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><KeySource>,<br> derivation_path: DerivationPath<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="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>></h4></section></summary><div class="docblock"><p>Consume <code>self</code> and turn it into a <a href="enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a> by adding the extra metadata, such as
+key origin and derivation path</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><section id="impl-DerivableKey%3CCtx%3E-for-Xpub" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#525-529">source</a><a href="#impl-DerivableKey%3CCtx%3E-for-Xpub" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><Ctx> for Xpub</h3></section></summary><div class="impl-items"><section id="method.into_extended_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#526-528">source</a><a href="#method.into_extended_key" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.into_extended_key" class="fn">into_extended_key</a>(self) -> <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="enum.ExtendedKey.html" title="enum bdk_wallet::keys::ExtendedKey">ExtendedKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>></h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-DerivableKey%3CCtx%3E-for-Xpriv" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#531-535">source</a><a href="#impl-DerivableKey%3CCtx%3E-for-Xpriv" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><Ctx> for Xpriv</h3></section></summary><div class="impl-items"><section id="method.into_extended_key-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#532-534">source</a><a href="#method.into_extended_key-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.into_extended_key" class="fn">into_extended_key</a>(self) -> <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="enum.ExtendedKey.html" title="enum bdk_wallet::keys::ExtendedKey">ExtendedKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>></h4></section></div></details><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-DerivableKey%3CCtx%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#579-596">source</a><a href="#impl-DerivableKey%3CCtx%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx, K> <a class="trait" href="trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><Ctx> for <a class="struct" href="struct.GeneratedKey.html" title="struct bdk_wallet::keys::GeneratedKey">GeneratedKey</a><K, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,<br> K: <a class="trait" href="trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><Ctx>,</span></h3></section><section id="impl-DerivableKey%3CCtx%3E-for-ExtendedKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#519-523">source</a><a href="#impl-DerivableKey%3CCtx%3E-for-ExtendedKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><Ctx> for <a class="enum" href="enum.ExtendedKey.html" title="enum bdk_wallet::keys::ExtendedKey">ExtendedKey</a><Ctx></h3></section><div class="docblock"><p>Identity conversion</p>
+</div></div><script src="../../implementors/bdk_wallet/keys/trait.DerivableKey.js" data-ignore-extern-crates="bitcoin" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Trait that adds extra useful methods to [`ScriptContext`]s"><meta name="keywords" content="rust, rustlang, rust-lang, ExtScriptContext"><title>ExtScriptContext in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">ExtScriptContext</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.as_enum">as_enum</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.is_legacy">is_legacy</a></li><li><a href="#method.is_segwit_v0">is_segwit_v0</a></li><li><a href="#method.is_taproot">is_taproot</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="trait" href="#">ExtScriptContext</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/keys/mod.rs.html#155-173">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait ExtScriptContext: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a> {
+ fn <a href="#tymethod.as_enum" class="fn">as_enum</a>() -> <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk_wallet::keys::ScriptContextEnum">ScriptContextEnum</a>;
+
+ fn <a href="#method.is_legacy" class="fn">is_legacy</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a> { ... }
+<span class="item-spacer"></span> fn <a href="#method.is_segwit_v0" class="fn">is_segwit_v0</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a> { ... }
+<span class="item-spacer"></span> fn <a href="#method.is_taproot" class="fn">is_taproot</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a> { ... }
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Trait that adds extra useful methods to <a href="trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a>s</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 method-toggle" open><summary><section id="tymethod.as_enum" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#157">source</a><h4 class="code-header">fn <a href="#tymethod.as_enum" class="fn">as_enum</a>() -> <a class="enum" href="enum.ScriptContextEnum.html" title="enum bdk_wallet::keys::ScriptContextEnum">ScriptContextEnum</a></h4></section></summary><div class="docblock"><p>Returns the <a href="trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a> as a <a href="enum.ScriptContextEnum.html" title="ScriptContextEnum"><code>ScriptContextEnum</code></a></p>
+</div></details></div><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_legacy" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#160-162">source</a><h4 class="code-header">fn <a href="#method.is_legacy" class="fn">is_legacy</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns whether the script context is <a href="../descriptor/enum.Legacy.html"><code>Legacy</code></a></p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_segwit_v0" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#165-167">source</a><h4 class="code-header">fn <a href="#method.is_segwit_v0" class="fn">is_segwit_v0</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns whether the script context is <a href="../descriptor/enum.Segwitv0.html"><code>Segwitv0</code></a></p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_taproot" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#170-172">source</a><h4 class="code-header">fn <a href="#method.is_taproot" class="fn">is_taproot</a>() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns whether the script context is <a href="miniscript::Tap"><code>Tap</code></a>, aka Taproot or Segwit V1</p>
+</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-ExtScriptContext-for-Ctx" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#175-184">source</a><a href="#impl-ExtScriptContext-for-Ctx" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a> + 'static> <a class="trait" href="trait.ExtScriptContext.html" title="trait bdk_wallet::keys::ExtScriptContext">ExtScriptContext</a> for Ctx</h3></section></div><script src="../../implementors/bdk_wallet/keys/trait.ExtScriptContext.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Trait that allows generating a key with the default options"><meta name="keywords" content="rust, rustlang, rust-lang, GeneratableDefaultOptions"><title>GeneratableDefaultOptions in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">GeneratableDefaultOptions</a></h2><div class="sidebar-elems"><section><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.generate_default">generate_default</a></li><li><a href="#method.generate_with_entropy_default">generate_with_entropy_default</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="trait" href="#">GeneratableDefaultOptions</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/keys/mod.rs.html#647-663">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait GeneratableDefaultOptions<Ctx>: <a class="trait" href="trait.GeneratableKey.html" title="trait bdk_wallet::keys::GeneratableKey">GeneratableKey</a><Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,<br> <Self as <a class="trait" href="trait.GeneratableKey.html" title="trait bdk_wallet::keys::GeneratableKey">GeneratableKey</a><Ctx>>::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Options" title="type bdk_wallet::keys::GeneratableKey::Options">Options</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a>,</span>{
+ fn <a href="#method.generate_with_entropy_default" class="fn">generate_with_entropy_default</a>(<br> entropy: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Entropy" title="type bdk_wallet::keys::GeneratableKey::Entropy">Entropy</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="struct" href="struct.GeneratedKey.html" title="struct bdk_wallet::keys::GeneratedKey">GeneratedKey</a><Self, Ctx>, Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Error" title="type bdk_wallet::keys::GeneratableKey::Error">Error</a>> { ... }
+<span class="item-spacer"></span> fn <a href="#method.generate_default" class="fn">generate_default</a>() -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.GeneratedKey.html" title="struct bdk_wallet::keys::GeneratedKey">GeneratedKey</a><Self, Ctx>, Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Error" title="type bdk_wallet::keys::GeneratableKey::Error">Error</a>> { ... }
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Trait that allows generating a key with the default options</p>
+<p>This trait is automatically implemented if the <a href="trait.GeneratableKey.html#associatedtype.Options" title="GeneratableKey::Options"><code>GeneratableKey::Options</code></a> implements <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="Default"><code>Default</code></a>.</p>
+</div></details><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.generate_with_entropy_default" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#653-657">source</a><h4 class="code-header">fn <a href="#method.generate_with_entropy_default" class="fn">generate_with_entropy_default</a>(<br> entropy: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Entropy" title="type bdk_wallet::keys::GeneratableKey::Entropy">Entropy</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="struct" href="struct.GeneratedKey.html" title="struct bdk_wallet::keys::GeneratedKey">GeneratedKey</a><Self, Ctx>, Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Error" title="type bdk_wallet::keys::GeneratableKey::Error">Error</a>></h4></section></summary><div class="docblock"><p>Generate a key with the default options and a given entropy</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.generate_default" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#660-662">source</a><h4 class="code-header">fn <a href="#method.generate_default" class="fn">generate_default</a>() -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.GeneratedKey.html" title="struct bdk_wallet::keys::GeneratedKey">GeneratedKey</a><Self, Ctx>, Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Error" title="type bdk_wallet::keys::GeneratableKey::Error">Error</a>></h4></section></summary><div class="docblock"><p>Generate a key with the default options and a random entropy</p>
+</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-GeneratableDefaultOptions%3CCtx%3E-for-K" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#667-673">source</a><a href="#impl-GeneratableDefaultOptions%3CCtx%3E-for-K" class="anchor">§</a><h3 class="code-header">impl<Ctx, K> <a class="trait" href="trait.GeneratableDefaultOptions.html" title="trait bdk_wallet::keys::GeneratableDefaultOptions">GeneratableDefaultOptions</a><Ctx> for K<span class="where fmt-newline">where<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,<br> K: <a class="trait" href="trait.GeneratableKey.html" title="trait bdk_wallet::keys::GeneratableKey">GeneratableKey</a><Ctx>,<br> <K as <a class="trait" href="trait.GeneratableKey.html" title="trait bdk_wallet::keys::GeneratableKey">GeneratableKey</a><Ctx>>::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Options" title="type bdk_wallet::keys::GeneratableKey::Options">Options</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a>,</span></h3></section><div class="docblock"><p>Automatic implementation of <a href="trait.GeneratableDefaultOptions.html" title="GeneratableDefaultOptions"><code>GeneratableDefaultOptions</code></a> for <a href="trait.GeneratableKey.html" title="GeneratableKey"><code>GeneratableKey</code></a>s where
+<code>Options</code> implements <code>Default</code></p>
+</div></div><script src="../../implementors/bdk_wallet/keys/trait.GeneratableDefaultOptions.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Trait for keys that can be generated"><meta name="keywords" content="rust, rustlang, rust-lang, GeneratableKey"><title>GeneratableKey in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">GeneratableKey</a></h2><div class="sidebar-elems"><section><h3><a href="#required-associated-types">Required Associated Types</a></h3><ul class="block"><li><a href="#associatedtype.Entropy">Entropy</a></li><li><a href="#associatedtype.Error">Error</a></li><li><a href="#associatedtype.Options">Options</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.generate_with_entropy">generate_with_entropy</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.generate">generate</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-GeneratableKey%3CCtx%3E-for-PrivateKey">PrivateKey</a></li><li><a href="#impl-GeneratableKey%3CCtx%3E-for-Xpriv">Xpriv</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="trait" href="#">GeneratableKey</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/keys/mod.rs.html#619-642">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait GeneratableKey<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> {
+ type <a href="#associatedtype.Entropy" class="associatedtype">Entropy</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a><[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a>;
+ type <a href="#associatedtype.Options" class="associatedtype">Options</a>;
+ type <a href="#associatedtype.Error" class="associatedtype">Error</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>;
+
+ fn <a href="#tymethod.generate_with_entropy" class="fn">generate_with_entropy</a>(<br> options: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Options" title="type bdk_wallet::keys::GeneratableKey::Options">Options</a>,<br> entropy: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Entropy" title="type bdk_wallet::keys::GeneratableKey::Entropy">Entropy</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="struct" href="struct.GeneratedKey.html" title="struct bdk_wallet::keys::GeneratedKey">GeneratedKey</a><Self, Ctx>, Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Error" title="type bdk_wallet::keys::GeneratableKey::Error">Error</a>>;
+
+ fn <a href="#method.generate" class="fn">generate</a>(<br> options: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Options" title="type bdk_wallet::keys::GeneratableKey::Options">Options</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="struct" href="struct.GeneratedKey.html" title="struct bdk_wallet::keys::GeneratedKey">GeneratedKey</a><Self, Ctx>, Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Error" title="type bdk_wallet::keys::GeneratableKey::Error">Error</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 keys that can be generated</p>
+<p>The same rules about <a href="trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a> and <a href="type.ValidNetworks.html" title="ValidNetworks"><code>ValidNetworks</code></a> from <a href="trait.IntoDescriptorKey.html" title="IntoDescriptorKey"><code>IntoDescriptorKey</code></a> apply.</p>
+<p>This trait is particularly useful when combined with <a href="trait.DerivableKey.html" title="DerivableKey"><code>DerivableKey</code></a>: if <code>Self</code>
+implements it, the returned <a href="struct.GeneratedKey.html" title="GeneratedKey"><code>GeneratedKey</code></a> will also implement it. The same is true for
+<a href="trait.IntoDescriptorKey.html" title="IntoDescriptorKey"><code>IntoDescriptorKey</code></a>: the generated keys can be directly used in descriptors if <code>Self</code> is also
+<a href="trait.IntoDescriptorKey.html" title="IntoDescriptorKey"><code>IntoDescriptorKey</code></a>.</p>
+</div></details><h2 id="required-associated-types" class="small-section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Entropy" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#621">source</a><h4 class="code-header">type <a href="#associatedtype.Entropy" class="associatedtype">Entropy</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a><[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a></h4></section></summary><div class="docblock"><p>Type specifying the amount of entropy required e.g. <code>[u8;32]</code></p>
+</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Options" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#624">source</a><h4 class="code-header">type <a href="#associatedtype.Options" class="associatedtype">Options</a></h4></section></summary><div class="docblock"><p>Extra options required by the <code>generate_with_entropy</code></p>
+</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#626">source</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a></h4></section></summary><div class="docblock"><p>Returned error in case of failure</p>
+</div></details></div><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 method-toggle" open><summary><section id="tymethod.generate_with_entropy" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#629-632">source</a><h4 class="code-header">fn <a href="#tymethod.generate_with_entropy" class="fn">generate_with_entropy</a>(<br> options: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Options" title="type bdk_wallet::keys::GeneratableKey::Options">Options</a>,<br> entropy: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Entropy" title="type bdk_wallet::keys::GeneratableKey::Entropy">Entropy</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="struct" href="struct.GeneratedKey.html" title="struct bdk_wallet::keys::GeneratedKey">GeneratedKey</a><Self, Ctx>, Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Error" title="type bdk_wallet::keys::GeneratableKey::Error">Error</a>></h4></section></summary><div class="docblock"><p>Generate a key given the extra options and the entropy</p>
+</div></details></div><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.generate" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#635-641">source</a><h4 class="code-header">fn <a href="#method.generate" class="fn">generate</a>(<br> options: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Options" title="type bdk_wallet::keys::GeneratableKey::Options">Options</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="struct" href="struct.GeneratedKey.html" title="struct bdk_wallet::keys::GeneratedKey">GeneratedKey</a><Self, Ctx>, Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Error" title="type bdk_wallet::keys::GeneratableKey::Error">Error</a>></h4></section></summary><div class="docblock"><p>Generate a key given the options with a random entropy</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><section id="impl-GeneratableKey%3CCtx%3E-for-Xpriv" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#675-689">source</a><a href="#impl-GeneratableKey%3CCtx%3E-for-Xpriv" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.GeneratableKey.html" title="trait bdk_wallet::keys::GeneratableKey">GeneratableKey</a><Ctx> for Xpriv</h3></section></summary><div class="impl-items"><section id="associatedtype.Entropy-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Entropy-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Entropy" class="associatedtype">Entropy</a> = [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">32</a>]</h4></section><section id="associatedtype.Options-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Options-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Options" class="associatedtype">Options</a> = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></h4></section><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = Error</h4></section><section id="method.generate_with_entropy" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#681-688">source</a><a href="#method.generate_with_entropy" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.generate_with_entropy" class="fn">generate_with_entropy</a>(<br> _: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Options" title="type bdk_wallet::keys::GeneratableKey::Options">Options</a>,<br> entropy: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Entropy" title="type bdk_wallet::keys::GeneratableKey::Entropy">Entropy</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="struct" href="struct.GeneratedKey.html" title="struct bdk_wallet::keys::GeneratedKey">GeneratedKey</a><Self, Ctx>, Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Error" title="type bdk_wallet::keys::GeneratableKey::Error">Error</a>></h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-GeneratableKey%3CCtx%3E-for-PrivateKey" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#706-726">source</a><a href="#impl-GeneratableKey%3CCtx%3E-for-PrivateKey" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.GeneratableKey.html" title="trait bdk_wallet::keys::GeneratableKey">GeneratableKey</a><Ctx> for PrivateKey</h3></section></summary><div class="impl-items"><section id="associatedtype.Entropy-2" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Entropy-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Entropy" class="associatedtype">Entropy</a> = [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">32</a>]</h4></section><section id="associatedtype.Options-2" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Options-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Options" class="associatedtype">Options</a> = <a class="struct" href="struct.PrivateKeyGenerateOptions.html" title="struct bdk_wallet::keys::PrivateKeyGenerateOptions">PrivateKeyGenerateOptions</a></h4></section><section id="associatedtype.Error-2" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = Error</h4></section><section id="method.generate_with_entropy-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#712-725">source</a><a href="#method.generate_with_entropy-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.generate_with_entropy" class="fn">generate_with_entropy</a>(<br> options: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Options" title="type bdk_wallet::keys::GeneratableKey::Options">Options</a>,<br> entropy: Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Entropy" title="type bdk_wallet::keys::GeneratableKey::Entropy">Entropy</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="struct" href="struct.GeneratedKey.html" title="struct bdk_wallet::keys::GeneratedKey">GeneratedKey</a><Self, Ctx>, Self::<a class="associatedtype" href="trait.GeneratableKey.html#associatedtype.Error" title="type bdk_wallet::keys::GeneratableKey::Error">Error</a>></h4></section></div></details><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../implementors/bdk_wallet/keys/trait.GeneratableKey.js" data-ignore-extern-crates="bitcoin" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Trait for objects that can be turned into a public or secret [`DescriptorKey`]"><meta name="keywords" content="rust, rustlang, rust-lang, IntoDescriptorKey"><title>IntoDescriptorKey in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">IntoDescriptorKey</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.into_descriptor_key">into_descriptor_key</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-%26str">&str</a></li><li><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-(T%2C%20DerivationPath)">(T, DerivationPath)</a></li><li><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-(T%2C%20KeySource%2C%20DerivationPath)">(T, KeySource, DerivationPath)</a></li><li><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-PrivateKey">PrivateKey</a></li><li><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-PublicKey">PublicKey</a></li><li><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-XOnlyPublicKey">XOnlyPublicKey</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="trait" href="#">IntoDescriptorKey</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/keys/mod.rs.html#307-310">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait IntoDescriptorKey<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> {
+ fn <a href="#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</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 objects that can be turned into a public or secret <a href="enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a></p>
+<p>The generic type <code>Ctx</code> is used to define the context in which the key is valid: some key
+formats, like the mnemonics used by Electrum wallets, encode internally whether the wallet is
+legacy or segwit. Thus, trying to turn a valid legacy mnemonic into a <code>DescriptorKey</code>
+that would become part of a segwit descriptor should fail.</p>
+<p>For key types that do care about this, the <a href="trait.ExtScriptContext.html" title="ExtScriptContext"><code>ExtScriptContext</code></a> trait provides some useful
+methods that can be used to check at runtime which <code>Ctx</code> is being used.</p>
+<p>For key types that can do this check statically (because they can only work within a
+single <code>Ctx</code>), the “specialized” trait can be implemented to make the compiler handle the type
+checking.</p>
+<p>Keys also have control over the networks they support: constructing the return object with
+<a href="enum.DescriptorKey.html#method.from_public" title="DescriptorKey::from_public"><code>DescriptorKey::from_public</code></a> or <a href="enum.DescriptorKey.html#method.from_secret" title="DescriptorKey::from_secret"><code>DescriptorKey::from_secret</code></a> allows to specify a set of
+<a href="type.ValidNetworks.html" title="ValidNetworks"><code>ValidNetworks</code></a>.</p>
+<h3 id="examples"><a href="#examples">Examples</a></h3>
+<p>Key type valid in any context:</p>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk_wallet::bitcoin::PublicKey;
+
+<span class="kw">use </span>bdk_wallet::keys::{DescriptorKey, IntoDescriptorKey, KeyError, ScriptContext};
+
+<span class="kw">pub struct </span>MyKeyType {
+ pubkey: PublicKey,
+}
+
+<span class="kw">impl</span><Ctx: ScriptContext> IntoDescriptorKey<Ctx> <span class="kw">for </span>MyKeyType {
+ <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
+ <span class="self">self</span>.pubkey.into_descriptor_key()
+ }
+}</code></pre></div>
+<p>Key type that is only valid on mainnet:</p>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk_wallet::bitcoin::PublicKey;
+
+<span class="kw">use </span>bdk_wallet::keys::{
+ mainnet_network, DescriptorKey, DescriptorPublicKey, IntoDescriptorKey, KeyError,
+ ScriptContext, SinglePub, SinglePubKey,
+};
+
+<span class="kw">pub struct </span>MyKeyType {
+ pubkey: PublicKey,
+}
+
+<span class="kw">impl</span><Ctx: ScriptContext> IntoDescriptorKey<Ctx> <span class="kw">for </span>MyKeyType {
+ <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
+ <span class="prelude-val">Ok</span>(DescriptorKey::from_public(
+ DescriptorPublicKey::Single(SinglePub {
+ origin: <span class="prelude-val">None</span>,
+ key: SinglePubKey::FullKey(<span class="self">self</span>.pubkey),
+ }),
+ mainnet_network(),
+ ))
+ }
+}</code></pre></div>
+<p>Key type that internally encodes in which context it’s valid. The context is checked at runtime:</p>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk_wallet::bitcoin::PublicKey;
+
+<span class="kw">use </span>bdk_wallet::keys::{
+ DescriptorKey, ExtScriptContext, IntoDescriptorKey, KeyError, ScriptContext,
+};
+
+<span class="kw">pub struct </span>MyKeyType {
+ is_legacy: bool,
+ pubkey: PublicKey,
+}
+
+<span class="kw">impl</span><Ctx: ScriptContext + <span class="lifetime">'static</span>> IntoDescriptorKey<Ctx> <span class="kw">for </span>MyKeyType {
+ <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
+ <span class="kw">if </span>Ctx::is_legacy() == <span class="self">self</span>.is_legacy {
+ <span class="self">self</span>.pubkey.into_descriptor_key()
+ } <span class="kw">else </span>{
+ <span class="prelude-val">Err</span>(KeyError::InvalidScriptContext)
+ }
+ }
+}</code></pre></div>
+<p>Key type that can only work within <a href="../descriptor/enum.Segwitv0.html" title="miniscript::Segwitv0"><code>miniscript::Segwitv0</code></a> context. Only the specialized version
+of the trait is implemented.</p>
+<p>This example deliberately fails to compile, to demonstrate how the compiler can catch when keys
+are misused. In this case, the “segwit-only” key is used to build a <code>pkh()</code> descriptor, which
+makes the compiler (correctly) fail.</p>
+
+<div class="example-wrap compile_fail"><div class='tooltip'>ⓘ</div><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk_wallet::bitcoin::PublicKey;
+<span class="kw">use </span>core::str::FromStr;
+
+<span class="kw">use </span>bdk_wallet::keys::{DescriptorKey, IntoDescriptorKey, KeyError};
+
+<span class="kw">pub struct </span>MySegwitOnlyKeyType {
+ pubkey: PublicKey,
+}
+
+<span class="kw">impl </span>IntoDescriptorKey<bdk_wallet::miniscript::Segwitv0> <span class="kw">for </span>MySegwitOnlyKeyType {
+ <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<bdk_wallet::miniscript::Segwitv0>, KeyError> {
+ <span class="self">self</span>.pubkey.into_descriptor_key()
+ }
+}
+
+<span class="kw">let </span>key = MySegwitOnlyKeyType {
+ pubkey: PublicKey::from_str(<span class="string">"..."</span>)<span class="question-mark">?</span>,
+};
+<span class="kw">let </span>(descriptor, <span class="kw">_</span>, <span class="kw">_</span>) = <span class="macro">bdk_wallet::descriptor!</span>(pkh(key))<span class="question-mark">?</span>;
+<span class="comment">// ^^^^^ changing this to `wpkh` would make it compile
+</span></code></pre></div>
+</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 method-toggle" open><summary><section id="tymethod.into_descriptor_key" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#309">source</a><h4 class="code-header">fn <a href="#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>></h4></section></summary><div class="docblock"><p>Turn the key into a <a href="enum.DescriptorKey.html" title="DescriptorKey"><code>DescriptorKey</code></a> within the requested <a href="trait.ScriptContext.html" title="ScriptContext"><code>ScriptContext</code></a></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><section id="impl-IntoDescriptorKey%3CCtx%3E-for-(T%2C%20DerivationPath)" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#728-734">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-(T%2C%20DerivationPath)" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>, T: <a class="trait" href="trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><Ctx>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for (T, DerivationPath)</h3></section></summary><div class="impl-items"><section id="method.into_descriptor_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#731-733">source</a><a href="#method.into_descriptor_key" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>></h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoDescriptorKey%3CCtx%3E-for-(T%2C%20KeySource%2C%20DerivationPath)" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#736-742">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-(T%2C%20KeySource%2C%20DerivationPath)" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>, T: <a class="trait" href="trait.DerivableKey.html" title="trait bdk_wallet::keys::DerivableKey">DerivableKey</a><Ctx>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for (T, KeySource, DerivationPath)</h3></section></summary><div class="impl-items"><section id="method.into_descriptor_key-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#739-741">source</a><a href="#method.into_descriptor_key-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>></h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoDescriptorKey%3CCtx%3E-for-PublicKey" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#862-870">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-PublicKey" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for PublicKey</h3></section></summary><div class="impl-items"><section id="method.into_descriptor_key-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#863-869">source</a><a href="#method.into_descriptor_key-2" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>></h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoDescriptorKey%3CCtx%3E-for-XOnlyPublicKey" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#872-880">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-XOnlyPublicKey" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for XOnlyPublicKey</h3></section></summary><div class="impl-items"><section id="method.into_descriptor_key-3" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#873-879">source</a><a href="#method.into_descriptor_key-3" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>></h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoDescriptorKey%3CCtx%3E-for-%26str" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#900-906">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-%26str" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h3></section></summary><div class="impl-items"><section id="method.into_descriptor_key-4" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#901-905">source</a><a href="#method.into_descriptor_key-4" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>></h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoDescriptorKey%3CCtx%3E-for-PrivateKey" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#908-916">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-PrivateKey" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for PrivateKey</h3></section></summary><div class="impl-items"><section id="method.into_descriptor_key-5" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#909-915">source</a><a href="#method.into_descriptor_key-5" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.into_descriptor_key" class="fn">into_descriptor_key</a>(self) -> <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="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx>, <a class="enum" href="enum.KeyError.html" title="enum bdk_wallet::keys::KeyError">KeyError</a>></h4></section></div></details><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-IntoDescriptorKey%3CCtx%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#600-609">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-GeneratedKey%3CK%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx, K> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for <a class="struct" href="struct.GeneratedKey.html" title="struct bdk_wallet::keys::GeneratedKey">GeneratedKey</a><K, Ctx><span class="where fmt-newline">where<br> Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>,<br> K: <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx>,</span></h3></section><section id="impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorKey%3CCtx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#840-844">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorKey%3CCtx%3E" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for <a class="enum" href="enum.DescriptorKey.html" title="enum bdk_wallet::keys::DescriptorKey">DescriptorKey</a><Ctx></h3></section><div class="docblock"><p>The “identity” conversion is used internally by some <code>bdk_wallet::fragment</code>s</p>
+</div><section id="impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorPublicKey" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#846-860">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorPublicKey" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for <a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a></h3></section><section id="impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorSecretKey" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/keys/mod.rs.html#882-898">source</a><a href="#impl-IntoDescriptorKey%3CCtx%3E-for-DescriptorSecretKey" class="anchor">§</a><h3 class="code-header">impl<Ctx: <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a>> <a class="trait" href="trait.IntoDescriptorKey.html" title="trait bdk_wallet::keys::IntoDescriptorKey">IntoDescriptorKey</a><Ctx> for <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a></h3></section></div><script src="../../implementors/bdk_wallet/keys/trait.IntoDescriptorKey.js" data-ignore-extern-crates="std,bitcoin,miniscript,secp256k1" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="The ScriptContext for Miniscript. Additional type information associated with miniscript that is used for carrying out checks that dependent on the context under which the script is used. For example, disallowing uncompressed keys in Segwit context"><meta name="keywords" content="rust, rustlang, rust-lang, ScriptContext"><title>ScriptContext in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">ScriptContext</a></h2><div class="sidebar-elems"><section><h3><a href="#required-associated-types">Required Associated Types</a></h3><ul class="block"><li><a href="#associatedtype.Key">Key</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.check_pk">check_pk</a></li><li><a href="#tymethod.check_terminal_non_malleable">check_terminal_non_malleable</a></li><li><a href="#tymethod.max_satisfaction_size">max_satisfaction_size</a></li><li><a href="#tymethod.name_str">name_str</a></li><li><a href="#tymethod.pk_len">pk_len</a></li><li><a href="#tymethod.sig_type">sig_type</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.check_global_consensus_validity">check_global_consensus_validity</a></li><li><a href="#method.check_global_policy_validity">check_global_policy_validity</a></li><li><a href="#method.check_global_validity">check_global_validity</a></li><li><a href="#method.check_local_consensus_validity">check_local_consensus_validity</a></li><li><a href="#method.check_local_policy_validity">check_local_policy_validity</a></li><li><a href="#method.check_local_validity">check_local_validity</a></li><li><a href="#method.check_witness">check_witness</a></li><li><a href="#method.other_top_level_checks">other_top_level_checks</a></li><li><a href="#method.top_level_checks">top_level_checks</a></li><li><a href="#method.top_level_type_check">top_level_type_check</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="trait" href="#">ScriptContext</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait ScriptContext: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <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.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/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</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/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> + Sealed {
+ type <a href="#associatedtype.Key" class="associatedtype">Key</a>: ParseableKey<Sha256 = Hash, Hash256 = Hash, Ripemd160 = Hash, Hash160 = Hash> + MiniscriptKey;
+
+<details class="rustdoc-toggle type-contents-toggle"><summary class="hideme"><span>Show 16 methods</span></summary> fn <a href="#tymethod.check_terminal_non_malleable" class="fn">check_terminal_non_malleable</a><Pk>(<br> _frag: &Terminal<Pk, Self><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> Pk: MiniscriptKey</span>;
+<span class="item-spacer"></span> fn <a href="#tymethod.check_pk" class="fn">check_pk</a><Pk>(pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <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> Pk: MiniscriptKey</span>;
+<span class="item-spacer"></span> fn <a href="#tymethod.max_satisfaction_size" class="fn">max_satisfaction_size</a><Pk>(ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey</span>;
+<span class="item-spacer"></span> fn <a href="#tymethod.sig_type" class="fn">sig_type</a>() -> SigType;
+<span class="item-spacer"></span> fn <a href="#tymethod.pk_len" class="fn">pk_len</a><Pk>(pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br> <span class="where">where<br> Pk: MiniscriptKey</span>;
+<span class="item-spacer"></span> fn <a href="#tymethod.name_str" class="fn">name_str</a>() -> &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>;
+
+ fn <a href="#method.check_witness" class="fn">check_witness</a><Pk>(<br> _witness: &[<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>>]<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> Pk: MiniscriptKey</span>,
+ { ... }
+<span class="item-spacer"></span> fn <a href="#method.check_global_consensus_validity" class="fn">check_global_consensus_validity</a><Pk>(<br> _ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
+ { ... }
+<span class="item-spacer"></span> fn <a href="#method.check_global_policy_validity" class="fn">check_global_policy_validity</a><Pk>(<br> _ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
+ { ... }
+<span class="item-spacer"></span> fn <a href="#method.check_local_consensus_validity" class="fn">check_local_consensus_validity</a><Pk>(<br> _ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
+ { ... }
+<span class="item-spacer"></span> fn <a href="#method.check_local_policy_validity" class="fn">check_local_policy_validity</a><Pk>(<br> _ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
+ { ... }
+<span class="item-spacer"></span> fn <a href="#method.check_global_validity" class="fn">check_global_validity</a><Pk>(<br> ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
+ { ... }
+<span class="item-spacer"></span> fn <a href="#method.check_local_validity" class="fn">check_local_validity</a><Pk>(<br> ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
+ { ... }
+<span class="item-spacer"></span> fn <a href="#method.top_level_type_check" class="fn">top_level_type_check</a><Pk>(ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey</span>,
+ { ... }
+<span class="item-spacer"></span> fn <a href="#method.other_top_level_checks" class="fn">other_top_level_checks</a><Pk>(<br> _ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey</span>,
+ { ... }
+<span class="item-spacer"></span> fn <a href="#method.top_level_checks" class="fn">top_level_checks</a><Pk>(ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey</span>,
+ { ... }
+</details>}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The ScriptContext for Miniscript. Additional type information associated with
+miniscript that is used for carrying out checks that dependent on the
+context under which the script is used.
+For example, disallowing uncompressed keys in Segwit context</p>
+</div></details><h2 id="required-associated-types" class="small-section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Key" class="method has-srclink"><h4 class="code-header">type <a href="#associatedtype.Key" class="associatedtype">Key</a>: ParseableKey<Sha256 = Hash, Hash256 = Hash, Ripemd160 = Hash, Hash160 = Hash> + MiniscriptKey</h4></section></summary><div class="docblock"><p>The consensus key associated with the type. Must be a parseable key</p>
+</div></details></div><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 method-toggle" open><summary><section id="tymethod.check_terminal_non_malleable" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.check_terminal_non_malleable" class="fn">check_terminal_non_malleable</a><Pk>(<br> _frag: &Terminal<Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Depending on ScriptContext, fragments can be malleable. For Example,
+under Legacy context, PkH is malleable because it is possible to
+estimate the cost of satisfaction because of compressed keys
+This is currently only used in compiler code for removing malleable
+compilations.
+This does NOT recursively check if the children of the fragment are
+valid or not. Since the compilation proceeds in a leaf to root fashion,
+a recursive check is unnecessary.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.check_pk" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.check_pk" class="fn">check_pk</a><Pk>(pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Each context has slightly different rules on what Pks are allowed in descriptors
+Legacy/Bare does not allow x_only keys
+Segwit does not allow uncompressed keys and x_only keys
+Tapscript does not allow uncompressed keys</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.max_satisfaction_size" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.max_satisfaction_size" class="fn">max_satisfaction_size</a><Pk>(ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Depending on script context, the size of a satifaction witness may slightly differ.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.sig_type" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.sig_type" class="fn">sig_type</a>() -> SigType</h4></section></summary><div class="docblock"><p>The type of signature required for satisfaction</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.pk_len" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.pk_len" class="fn">pk_len</a><Pk>(pk: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Pk) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><span class="where fmt-newline">where<br> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Get the len of public key when serialized based on context
+Note that this includes the serialization prefix. Returns
+34/66 for Bare/Legacy based on key compressedness
+34 for Segwitv0, 33 for Tap</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.name_str" class="method has-srclink"><h4 class="code-header">fn <a href="#tymethod.name_str" class="fn">name_str</a>() -> &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Local helper function to display error messages with context</p>
+</div></details></div><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_witness" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_witness" class="fn">check_witness</a><Pk>(<br> _witness: &[<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>>]<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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Check whether the given satisfaction is valid under the ScriptContext
+For example, segwit satisfactions may fail if the witness len is more
+3600 or number of stack elements are more than 100.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_consensus_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_global_consensus_validity" class="fn">check_global_consensus_validity</a><Pk>(<br> _ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Depending on script Context, some of the Terminals might not
+be valid under the current consensus rules.
+Or some of the script resource limits may have been exceeded.
+These miniscripts would never be accepted by the Bitcoin network and hence
+it is safe to discard them
+For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey
+uncompressed public keys are non-standard and thus invalid.
+In LegacyP2SH context, scripts above 520 bytes are invalid.
+Post Tapscript upgrade, this would have to consider other nodes.
+This does <em>NOT</em> recursively check the miniscript fragments.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_policy_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_global_policy_validity" class="fn">check_global_policy_validity</a><Pk>(<br> _ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Depending on script Context, some of the script resource limits
+may have been exceeded under the current bitcoin core policy rules
+These miniscripts would never be accepted by the Bitcoin network and hence
+it is safe to discard them. (unless explicitly disabled by non-standard flag)
+For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey
+scripts over 3600 bytes are invalid.
+Post Tapscript upgrade, this would have to consider other nodes.
+This does <em>NOT</em> recursively check the miniscript fragments.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_consensus_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_local_consensus_validity" class="fn">check_local_consensus_validity</a><Pk>(<br> _ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Consensus rules at the Miniscript satisfaction time.
+It is possible that some paths of miniscript may exceed resource limits
+and our current satisfier and lifting analysis would not work correctly.
+For example, satisfaction path(Legacy/Segwitv0) may require more than 201 opcodes.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_policy_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_local_policy_validity" class="fn">check_local_policy_validity</a><Pk>(<br> _ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Policy rules at the Miniscript satisfaction time.
+It is possible that some paths of miniscript may exceed resource limits
+and our current satisfier and lifting analysis would not work correctly.
+For example, satisfaction path in Legacy context scriptSig more
+than 1650 bytes</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_global_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_global_validity" class="fn">check_global_validity</a><Pk>(<br> ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Check the consensus + policy(if not disabled) rules that are not based
+satisfaction</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.check_local_validity" class="method has-srclink"><h4 class="code-header">fn <a href="#method.check_local_validity" class="fn">check_local_validity</a><Pk>(<br> ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self><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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Check the consensus + policy(if not disabled) rules including the
+ones for satisfaction</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.top_level_type_check" class="method has-srclink"><h4 class="code-header">fn <a href="#method.top_level_type_check" class="fn">top_level_type_check</a><Pk>(ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Check whether the top-level is type B</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.other_top_level_checks" class="method has-srclink"><h4 class="code-header">fn <a href="#method.other_top_level_checks" class="fn">other_top_level_checks</a><Pk>(_ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Other top level checks that are context specific</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.top_level_checks" class="method has-srclink"><h4 class="code-header">fn <a href="#method.top_level_checks" class="fn">top_level_checks</a><Pk>(ms: &<a class="struct" href="../descriptor/struct.Miniscript.html" title="struct bdk_wallet::descriptor::Miniscript">Miniscript</a><Pk, Self>) -> <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> Pk: MiniscriptKey,</span></h4></section></summary><div class="docblock"><p>Check top level consensus rules.</p>
+</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ScriptContext-for-Legacy" class="impl has-srclink"><a href="#impl-ScriptContext-for-Legacy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a> for <a class="enum" href="../descriptor/enum.Legacy.html" title="enum bdk_wallet::descriptor::Legacy">Legacy</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Key-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Key-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Key" class="associatedtype">Key</a> = PublicKey</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ScriptContext-for-Segwitv0" class="impl has-srclink"><a href="#impl-ScriptContext-for-Segwitv0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a> for <a class="enum" href="../descriptor/enum.Segwitv0.html" title="enum bdk_wallet::descriptor::Segwitv0">Segwitv0</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Key-2" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Key-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Key" class="associatedtype">Key</a> = PublicKey</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ScriptContext-for-BareCtx" class="impl has-srclink"><a href="#impl-ScriptContext-for-BareCtx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a> for BareCtx</h3></section></summary><div class="impl-items"><section id="associatedtype.Key-3" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Key-3" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Key" class="associatedtype">Key</a> = PublicKey</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ScriptContext-for-Tap" class="impl has-srclink"><a href="#impl-ScriptContext-for-Tap" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.ScriptContext.html" title="trait bdk_wallet::keys::ScriptContext">ScriptContext</a> for Tap</h3></section></summary><div class="impl-items"><section id="associatedtype.Key-4" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Key-4" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Key" class="associatedtype">Key</a> = XOnlyPublicKey</h4></section></div></details></div><script src="../../implementors/miniscript/miniscript/context/trait.ScriptContext.js" data-ignore-extern-crates="miniscript" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Alias type for a map of public key to secret key"><meta name="keywords" content="rust, rustlang, rust-lang, KeyMap"><title>KeyMap in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">KeyMap</a></h2><div class="sidebar-elems"><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="type" href="#">KeyMap</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub type KeyMap = <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><<a class="enum" href="enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>, <a class="enum" href="enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>>;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Alias type for a map of public key to secret key</p>
+<p>This map is returned whenever a descriptor that contains secrets is parsed using
+<a href="../descriptor/enum.Descriptor.html#method.parse_descriptor" title="Descriptor::parse_descriptor"><code>Descriptor::parse_descriptor</code></a>, since the descriptor will always only contain
+public keys. This map allows looking up the corresponding secret key given a
+public key from the descriptor.</p>
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Set of valid networks for a key"><meta name="keywords" content="rust, rustlang, rust-lang, ValidNetworks"><title>ValidNetworks in bdk_wallet::keys - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">ValidNetworks</a></h2><div class="sidebar-elems"><h2><a href="index.html">In bdk_wallet::keys</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">keys</a>::<wbr><a class="type" href="#">ValidNetworks</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/keys/mod.rs.html#44">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub type ValidNetworks = <a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/set/struct.HashSet.html" title="struct std::collections::hash::set::HashSet">HashSet</a><Network>;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Set of valid networks for a key</p>
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="refresh" content="0;URL=macro.descriptor.html">
+ <title>Redirection</title>
+</head>
+<body>
+ <p>Redirecting to <a href="macro.descriptor.html">macro.descriptor.html</a>...</p>
+ <script>location.replace("macro.descriptor.html" + location.search + location.hash);</script>
+</body>
+</html>
\ No newline at end of file
--- /dev/null
+<!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="Macro to write full descriptors with code"><meta name="keywords" content="rust, rustlang, rust-lang, descriptor"><title>descriptor in bdk_wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc macro"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In bdk_wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Macro <a href="index.html">bdk_wallet</a>::<wbr><a class="macro" href="#">descriptor</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk_wallet/descriptor/dsl.rs.html#501-554">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><div class="example-wrap"><pre class="rust macro"><code><span class="macro">macro_rules! </span>descriptor {
+ ( bare ( $( <span class="macro-nonterminal">$minisc</span>:tt )* ) ) => { ... };
+ ( sh ( wsh ( $( <span class="macro-nonterminal">$minisc</span>:tt )* ) ) ) => { ... };
+ ( shwsh ( $( <span class="macro-nonterminal">$minisc</span>:tt )* ) ) => { ... };
+ ( pk ( <span class="macro-nonterminal">$key</span>:expr ) ) => { ... };
+ ( pkh ( <span class="macro-nonterminal">$key</span>:expr ) ) => { ... };
+ ( wpkh ( <span class="macro-nonterminal">$key</span>:expr ) ) => { ... };
+ ( sh ( wpkh ( <span class="macro-nonterminal">$key</span>:expr ) ) ) => { ... };
+ ( shwpkh ( <span class="macro-nonterminal">$key</span>:expr ) ) => { ... };
+ ( sh ( $( <span class="macro-nonterminal">$minisc</span>:tt )* ) ) => { ... };
+ ( wsh ( $( <span class="macro-nonterminal">$minisc</span>:tt )* ) ) => { ... };
+ ( tr ( <span class="macro-nonterminal">$internal_key</span>:expr ) ) => { ... };
+ ( tr ( <span class="macro-nonterminal">$internal_key</span>:expr, $( <span class="macro-nonterminal">$taptree</span>:tt )* ) ) => { ... };
+}</code></pre></div>
+</div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Macro to write full descriptors with code</p>
+<p>This macro expands to a <code>Result</code> of
+<a href="descriptor/template/type.DescriptorTemplateOut.html"><code>DescriptorTemplateOut</code></a> and <a href="descriptor/error/enum.Error.html"><code>DescriptorError</code></a></p>
+<p>The syntax is very similar to the normal descriptor syntax, with the exception that modifiers
+cannot be grouped together. For instance, a descriptor fragment like <code>sdv:older(144)</code> has to be
+broken up to <code>s:d:v:older(144)</code>.</p>
+<p>The <code>pk()</code>, <code>pk_k()</code> and <code>pk_h()</code> operands can take as argument any type that implements
+<a href="keys/trait.IntoDescriptorKey.html"><code>IntoDescriptorKey</code></a>. This means that keys can also be written inline as strings, but in that
+case they must be wrapped in quotes, which is another difference compared to the standard
+descriptor syntax.</p>
+<h3 id="example"><a href="#example">Example</a></h3>
+<p>Signature plus timelock descriptor:</p>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>(my_descriptor, my_keys_map, networks) = <span class="macro">bdk_wallet::descriptor!</span>(sh(wsh(and_v(v:pk(<span class="string">"cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy"</span>),older(<span class="number">50</span>)))))<span class="question-mark">?</span>;</code></pre></div>
+<hr />
+<p>2-of-3 that becomes a 1-of-3 after a timelock has expired. Both <code>descriptor_a</code> and <code>descriptor_b</code> are equivalent: the first
+syntax is more suitable for a fixed number of items known at compile time, while the other accepts a
+<a href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"><code>Vec</code></a> of items, which makes it more suitable for writing dynamic descriptors.</p>
+<p>They both produce the descriptor: <code>wsh(thresh(2,pk(...),s:pk(...),sndv:older(...)))</code></p>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>my_key_1 = bitcoin::PublicKey::from_str(
+ <span class="string">"02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c"</span>,
+)<span class="question-mark">?</span>;
+<span class="kw">let </span>my_key_2 =
+ bitcoin::PrivateKey::from_wif(<span class="string">"cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy"</span>)<span class="question-mark">?</span>;
+<span class="kw">let </span>my_timelock = <span class="number">50</span>;
+
+<span class="kw">let </span>(descriptor_a, key_map_a, networks) = <span class="macro">bdk_wallet::descriptor! </span>{
+ wsh (
+ thresh(<span class="number">2</span>, pk(my_key_1), s:pk(my_key_2), s:n:d:v:older(my_timelock))
+ )
+}<span class="question-mark">?</span>;
+
+<span class="attr">#[rustfmt::skip]
+</span><span class="kw">let </span>b_items = <span class="macro">vec!</span>[
+ <span class="macro">bdk_wallet::fragment!</span>(pk(my_key_1))<span class="question-mark">?</span>,
+ <span class="macro">bdk_wallet::fragment!</span>(s:pk(my_key_2))<span class="question-mark">?</span>,
+ <span class="macro">bdk_wallet::fragment!</span>(s:n:d:v:older(my_timelock))<span class="question-mark">?</span>,
+];
+<span class="kw">let </span>(descriptor_b, <span class="kw-2">mut </span>key_map_b, networks) =
+ <span class="macro">bdk_wallet::descriptor!</span>(wsh(thresh_vec(<span class="number">2</span>, b_items)))<span class="question-mark">?</span>;
+
+<span class="macro">assert_eq!</span>(descriptor_a, descriptor_b);
+<span class="macro">assert_eq!</span>(key_map_a.len(), key_map_b.len());</code></pre></div>
+<hr />
+<p>Simple 2-of-2 multi-signature, equivalent to: <code>wsh(multi(2, ...))</code></p>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>my_key_1 = bitcoin::PublicKey::from_str(
+ <span class="string">"02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c"</span>,
+)<span class="question-mark">?</span>;
+<span class="kw">let </span>my_key_2 =
+ bitcoin::PrivateKey::from_wif(<span class="string">"cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy"</span>)<span class="question-mark">?</span>;
+
+<span class="kw">let </span>(descriptor, key_map, networks) = <span class="macro">bdk_wallet::descriptor! </span>{
+ wsh (
+ multi(<span class="number">2</span>, my_key_1, my_key_2)
+ )
+}<span class="question-mark">?</span>;</code></pre></div>
+<hr />
+<p>Native-Segwit single-sig, equivalent to: <code>wpkh(...)</code></p>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>my_key =
+ bitcoin::PrivateKey::from_wif(<span class="string">"cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy"</span>)<span class="question-mark">?</span>;
+
+<span class="kw">let </span>(descriptor, key_map, networks) = <span class="macro">bdk_wallet::descriptor!</span>(wpkh(my_key))<span class="question-mark">?</span>;</code></pre></div>
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="refresh" content="0;URL=macro.fragment.html">
+ <title>Redirection</title>
+</head>
+<body>
+ <p>Redirecting to <a href="macro.fragment.html">macro.fragment.html</a>...</p>
+ <script>location.replace("macro.fragment.html" + location.search + location.hash);</script>
+</body>
+</html>
\ No newline at end of file
--- /dev/null
+<!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="Macro to write descriptor fragments with code"><meta name="keywords" content="rust, rustlang, rust-lang, fragment"><title>fragment in bdk_wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc macro"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In bdk_wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Macro <a href="index.html">bdk_wallet</a>::<wbr><a class="macro" href="#">fragment</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk_wallet/descriptor/dsl.rs.html#680-795">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><div class="example-wrap"><pre class="rust macro"><code><span class="macro">macro_rules! </span>fragment {
+ ( <span class="macro-nonterminal">$modif</span>:tt : $( <span class="macro-nonterminal">$tail</span>:tt )* ) => { ... };
+ ( <span class="bool-val">true </span>) => { ... };
+ ( <span class="bool-val">false </span>) => { ... };
+ ( pk_k ( <span class="macro-nonterminal">$key</span>:expr ) ) => { ... };
+ ( pk ( <span class="macro-nonterminal">$key</span>:expr ) ) => { ... };
+ ( pk_h ( <span class="macro-nonterminal">$key</span>:expr ) ) => { ... };
+ ( after ( <span class="macro-nonterminal">$value</span>:expr ) ) => { ... };
+ ( older ( <span class="macro-nonterminal">$value</span>:expr ) ) => { ... };
+ ( sha256 ( <span class="macro-nonterminal">$hash</span>:expr ) ) => { ... };
+ ( hash256 ( <span class="macro-nonterminal">$hash</span>:expr ) ) => { ... };
+ ( ripemd160 ( <span class="macro-nonterminal">$hash</span>:expr ) ) => { ... };
+ ( hash160 ( <span class="macro-nonterminal">$hash</span>:expr ) ) => { ... };
+ ( and_v ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => { ... };
+ ( and_b ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => { ... };
+ ( and_or ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => { ... };
+ ( andor ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => { ... };
+ ( or_b ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => { ... };
+ ( or_d ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => { ... };
+ ( or_c ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => { ... };
+ ( or_i ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => { ... };
+ ( thresh_vec ( <span class="macro-nonterminal">$thresh</span>:expr, <span class="macro-nonterminal">$items</span>:expr ) ) => { ... };
+ ( thresh ( <span class="macro-nonterminal">$thresh</span>:expr, $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => { ... };
+ ( multi_vec ( <span class="macro-nonterminal">$thresh</span>:expr, <span class="macro-nonterminal">$keys</span>:expr ) ) => { ... };
+ ( multi ( <span class="macro-nonterminal">$thresh</span>:expr $(, <span class="macro-nonterminal">$key</span>:expr )+ ) ) => { ... };
+ ( multi_a_vec ( <span class="macro-nonterminal">$thresh</span>:expr, <span class="macro-nonterminal">$keys</span>:expr ) ) => { ... };
+ ( multi_a ( <span class="macro-nonterminal">$thresh</span>:expr $(, <span class="macro-nonterminal">$key</span>:expr )+ ) ) => { ... };
+ ( sortedmulti ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => { ... };
+ ( sortedmulti_vec ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => { ... };
+}</code></pre></div>
+</div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Macro to write descriptor fragments with code</p>
+<p>This macro will be expanded to an object of type <code>Result<(Miniscript<DescriptorPublicKey, _>, KeyMap, ValidNetworks), DescriptorError></code>. It allows writing
+fragments of larger descriptors that can be pieced together using <code>fragment!(thresh_vec(m, ...))</code>.</p>
+<p>The syntax to write macro fragment is the same as documented for the <a href="macro.descriptor.html" title="descriptor"><code>descriptor</code></a> macro.</p>
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Additional functions on the `rust-bitcoin` `Psbt` structure."><meta name="keywords" content="rust, rustlang, rust-lang, psbt"><title>bdk_wallet::psbt - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module psbt</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#traits">Traits</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../index.html">bdk_wallet</a>::<wbr><a class="mod" href="#">psbt</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/psbt/mod.rs.html#12-75">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Additional functions on the <code>rust-bitcoin</code> <code>Psbt</code> structure.</p>
+</div></details><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.PsbtUtils.html" title="bdk_wallet::psbt::PsbtUtils trait">PsbtUtils</a></div><div class="item-right docblock-short">Trait to add functions to extract utxos and calculate fees.</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+window.SIDEBAR_ITEMS = {"trait":[["PsbtUtils","Trait to add functions to extract utxos and calculate fees."]]};
\ No newline at end of file
--- /dev/null
+<!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="Trait to add functions to extract utxos and calculate fees."><meta name="keywords" content="rust, rustlang, rust-lang, PsbtUtils"><title>PsbtUtils in bdk_wallet::psbt - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">PsbtUtils</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.fee_amount">fee_amount</a></li><li><a href="#tymethod.fee_rate">fee_rate</a></li><li><a href="#tymethod.get_utxo_for">get_utxo_for</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-PsbtUtils-for-Psbt">Psbt</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk_wallet::psbt</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">psbt</a>::<wbr><a class="trait" href="#">PsbtUtils</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/psbt/mod.rs.html#23-36">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait PsbtUtils {
+ fn <a href="#tymethod.get_utxo_for" class="fn">get_utxo_for</a>(&self, input_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><TxOut>;
+<span class="item-spacer"></span> fn <a href="#tymethod.fee_amount" class="fn">fee_amount</a>(&self) -> <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.u64.html">u64</a>>;
+<span class="item-spacer"></span> fn <a href="#tymethod.fee_rate" class="fn">fee_rate</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><FeeRate>;
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Trait to add functions to extract utxos and calculate fees.</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 method-toggle" open><summary><section id="tymethod.get_utxo_for" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/psbt/mod.rs.html#25">source</a><h4 class="code-header">fn <a href="#tymethod.get_utxo_for" class="fn">get_utxo_for</a>(&self, input_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><TxOut></h4></section></summary><div class="docblock"><p>Get the <code>TxOut</code> for the specified input index, if it doesn’t exist in the PSBT <code>None</code> is returned.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.fee_amount" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/psbt/mod.rs.html#29">source</a><h4 class="code-header">fn <a href="#tymethod.fee_amount" class="fn">fee_amount</a>(&self) -> <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.u64.html">u64</a>></h4></section></summary><div class="docblock"><p>The total transaction fee amount, sum of input amounts minus sum of output amounts, in sats.
+If the PSBT is missing a TxOut for an input returns None.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.fee_rate" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/psbt/mod.rs.html#35">source</a><h4 class="code-header">fn <a href="#tymethod.fee_rate" class="fn">fee_rate</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><FeeRate></h4></section></summary><div class="docblock"><p>The transaction’s fee rate. This value will only be accurate if calculated AFTER the
+<code>Psbt</code> is finalized and all witness/signature data is added to the
+transaction.
+If the PSBT is missing a TxOut for an input returns None.</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><section id="impl-PsbtUtils-for-Psbt" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/psbt/mod.rs.html#38-75">source</a><a href="#impl-PsbtUtils-for-Psbt" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.PsbtUtils.html" title="trait bdk_wallet::psbt::PsbtUtils">PsbtUtils</a> for Psbt</h3></section></summary><div class="impl-items"><section id="method.get_utxo_for" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/psbt/mod.rs.html#39-50">source</a><a href="#method.get_utxo_for" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.get_utxo_for" class="fn">get_utxo_for</a>(&self, input_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><TxOut></h4></section><section id="method.fee_amount" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/psbt/mod.rs.html#52-68">source</a><a href="#method.fee_amount" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.fee_amount" class="fn">fee_amount</a>(&self) -> <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.u64.html">u64</a>></h4></section><section id="method.fee_rate" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/psbt/mod.rs.html#70-74">source</a><a href="#method.fee_rate" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.fee_rate" class="fn">fee_rate</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><FeeRate></h4></section></div></details><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../implementors/bdk_wallet/psbt/trait.PsbtUtils.js" data-ignore-extern-crates="bitcoin" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+window.SIDEBAR_ITEMS = {"enum":[["KeychainKind","Types of keychains"],["Utxo","An unspent transaction output (UTXO)."]],"externcrate":[["bitcoin",""],["miniscript",""]],"fn":[["version","Get the version of BDK at runtime"]],"macro":[["descriptor","Macro to write full descriptors with code"],["fragment","Macro to write descriptor fragments with code"]],"mod":[["descriptor","Descriptors"],["keys","Key formats"],["psbt","Additional functions on the `rust-bitcoin` `Psbt` structure."],["wallet","Wallet"]],"struct":[["LocalOutput","An unspent output owned by a `Wallet`."],["WeightedUtxo","A [`Utxo`] with its `satisfaction_weight`."]]};
\ No newline at end of file
--- /dev/null
+<!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="An unspent output owned by a `Wallet`."><meta name="keywords" content="rust, rustlang, rust-lang, LocalOutput"><title>LocalOutput in bdk_wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">LocalOutput</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.confirmation_time">confirmation_time</a></li><li><a href="#structfield.derivation_index">derivation_index</a></li><li><a href="#structfield.is_spent">is_spent</a></li><li><a href="#structfield.keychain">keychain</a></li><li><a href="#structfield.outpoint">outpoint</a></li><li><a href="#structfield.txout">txout</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-LocalOutput">Clone</a></li><li><a href="#impl-Debug-for-LocalOutput">Debug</a></li><li><a href="#impl-Deserialize%3C%27de%3E-for-LocalOutput">Deserialize<'de></a></li><li><a href="#impl-Eq-for-LocalOutput">Eq</a></li><li><a href="#impl-Hash-for-LocalOutput">Hash</a></li><li><a href="#impl-PartialEq%3CLocalOutput%3E-for-LocalOutput">PartialEq<LocalOutput></a></li><li><a href="#impl-Serialize-for-LocalOutput">Serialize</a></li><li><a href="#impl-StructuralEq-for-LocalOutput">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-LocalOutput">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-LocalOutput">RefUnwindSafe</a></li><li><a href="#impl-Send-for-LocalOutput">Send</a></li><li><a href="#impl-Sync-for-LocalOutput">Sync</a></li><li><a href="#impl-Unpin-for-LocalOutput">Unpin</a></li><li><a href="#impl-UnwindSafe-for-LocalOutput">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-LocalOutput">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-LocalOutput">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-LocalOutput">BorrowMut<T></a></li><li><a href="#impl-DeserializeOwned-for-LocalOutput">DeserializeOwned</a></li><li><a href="#impl-From%3CT%3E-for-LocalOutput">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-LocalOutput">Into<U></a></li><li><a href="#impl-ToOwned-for-LocalOutput">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-LocalOutput">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-LocalOutput">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-LocalOutput">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="index.html">bdk_wallet</a>::<wbr><a class="struct" href="#">LocalOutput</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk_wallet/types.rs.html#53-66">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct LocalOutput {
+ pub outpoint: OutPoint,
+ pub txout: TxOut,
+ pub keychain: <a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>,
+ pub is_spent: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
+ pub derivation_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
+ pub confirmation_time: ConfirmationTime,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An unspent output owned by a <a href="wallet/struct.Wallet.html"><code>Wallet</code></a>.</p>
+</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.outpoint" class="structfield small-section-header"><a href="#structfield.outpoint" class="anchor field">§</a><code>outpoint: OutPoint</code></span><div class="docblock"><p>Reference to a transaction output</p>
+</div><span id="structfield.txout" class="structfield small-section-header"><a href="#structfield.txout" class="anchor field">§</a><code>txout: TxOut</code></span><div class="docblock"><p>Transaction output</p>
+</div><span id="structfield.keychain" class="structfield small-section-header"><a href="#structfield.keychain" class="anchor field">§</a><code>keychain: <a class="enum" href="enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></code></span><div class="docblock"><p>Type of keychain</p>
+</div><span id="structfield.is_spent" class="structfield small-section-header"><a href="#structfield.is_spent" class="anchor field">§</a><code>is_spent: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether this UTXO is spent or not</p>
+</div><span id="structfield.derivation_index" class="structfield small-section-header"><a href="#structfield.derivation_index" class="anchor field">§</a><code>derivation_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>The derivation index for the script pubkey in the wallet</p>
+</div><span id="structfield.confirmation_time" class="structfield small-section-header"><a href="#structfield.confirmation_time" class="anchor field">§</a><code>confirmation_time: ConfirmationTime</code></span><div class="docblock"><p>The confirmation time for transaction containing this utxo</p>
+</div><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><section id="impl-Clone-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#52">source</a><a href="#impl-Clone-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk_wallet::LocalOutput">LocalOutput</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#52">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.LocalOutput.html" title="struct bdk_wallet::LocalOutput">LocalOutput</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#52">source</a><a href="#impl-Debug-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk_wallet::LocalOutput">LocalOutput</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#52">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserialize%3C%27de%3E-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#52">source</a><a href="#impl-Deserialize%3C%27de%3E-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk_wallet::LocalOutput">LocalOutput</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#52">source</a><a href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize" class="fn">deserialize</a><__D>(__deserializer: __D) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, __D::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>><span class="where fmt-newline">where<br> __D: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#52">source</a><a href="#impl-Hash-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk_wallet::LocalOutput">LocalOutput</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#52">source</a><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)</h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CLocalOutput%3E-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#52">source</a><a href="#impl-PartialEq%3CLocalOutput%3E-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.LocalOutput.html" title="struct bdk_wallet::LocalOutput">LocalOutput</a>> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk_wallet::LocalOutput">LocalOutput</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#52">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.LocalOutput.html" title="struct bdk_wallet::LocalOutput">LocalOutput</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#52">source</a><a href="#impl-Serialize-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk_wallet::LocalOutput">LocalOutput</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#52">source</a><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><__S>(&self, __serializer: __S) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><__S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, __S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> __S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#52">source</a><a href="#impl-Eq-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk_wallet::LocalOutput">LocalOutput</a></h3></section><section id="impl-StructuralEq-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#52">source</a><a href="#impl-StructuralEq-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk_wallet::LocalOutput">LocalOutput</a></h3></section><section id="impl-StructuralPartialEq-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#52">source</a><a href="#impl-StructuralPartialEq-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk_wallet::LocalOutput">LocalOutput</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-LocalOutput" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk_wallet::LocalOutput">LocalOutput</a></h3></section><section id="impl-Send-for-LocalOutput" class="impl has-srclink"><a href="#impl-Send-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk_wallet::LocalOutput">LocalOutput</a></h3></section><section id="impl-Sync-for-LocalOutput" class="impl has-srclink"><a href="#impl-Sync-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk_wallet::LocalOutput">LocalOutput</a></h3></section><section id="impl-Unpin-for-LocalOutput" class="impl has-srclink"><a href="#impl-Unpin-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk_wallet::LocalOutput">LocalOutput</a></h3></section><section id="impl-UnwindSafe-for-LocalOutput" class="impl has-srclink"><a href="#impl-UnwindSafe-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.LocalOutput.html" title="struct bdk_wallet::LocalOutput">LocalOutput</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-LocalOutput" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details><section id="impl-DeserializeOwned-for-LocalOutput" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/serde/1.0.201/src/serde/de/mod.rs.html#608">source</a><a href="#impl-DeserializeOwned-for-LocalOutput" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> for T<span class="where fmt-newline">where<br> T: for<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de>,</span></h3></section></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="A [`Utxo`] with its `satisfaction_weight`."><meta name="keywords" content="rust, rustlang, rust-lang, WeightedUtxo"><title>WeightedUtxo in bdk_wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">WeightedUtxo</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.satisfaction_weight">satisfaction_weight</a></li><li><a href="#structfield.utxo">utxo</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-WeightedUtxo">Clone</a></li><li><a href="#impl-Debug-for-WeightedUtxo">Debug</a></li><li><a href="#impl-Eq-for-WeightedUtxo">Eq</a></li><li><a href="#impl-PartialEq%3CWeightedUtxo%3E-for-WeightedUtxo">PartialEq<WeightedUtxo></a></li><li><a href="#impl-StructuralEq-for-WeightedUtxo">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-WeightedUtxo">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-WeightedUtxo">RefUnwindSafe</a></li><li><a href="#impl-Send-for-WeightedUtxo">Send</a></li><li><a href="#impl-Sync-for-WeightedUtxo">Sync</a></li><li><a href="#impl-Unpin-for-WeightedUtxo">Unpin</a></li><li><a href="#impl-UnwindSafe-for-WeightedUtxo">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-WeightedUtxo">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-WeightedUtxo">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-WeightedUtxo">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-WeightedUtxo">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-WeightedUtxo">Into<U></a></li><li><a href="#impl-ToOwned-for-WeightedUtxo">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-WeightedUtxo">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-WeightedUtxo">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-WeightedUtxo">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="index.html">bdk_wallet</a>::<wbr><a class="struct" href="#">WeightedUtxo</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/bdk_wallet/types.rs.html#70-78">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct WeightedUtxo {
+ pub satisfaction_weight: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
+ pub utxo: <a class="enum" href="enum.Utxo.html" title="enum bdk_wallet::Utxo">Utxo</a>,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A <a href="enum.Utxo.html" title="Utxo"><code>Utxo</code></a> with its <code>satisfaction_weight</code>.</p>
+</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.satisfaction_weight" class="structfield small-section-header"><a href="#structfield.satisfaction_weight" class="anchor field">§</a><code>satisfaction_weight: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code></span><div class="docblock"><p>The weight of the witness data and <code>scriptSig</code> expressed in <a href="https://en.bitcoin.it/wiki/Weight_units">weight units</a>. This is used to
+properly maintain the feerate when adding this input to a transaction during coin selection.</p>
+</div><span id="structfield.utxo" class="structfield small-section-header"><a href="#structfield.utxo" class="anchor field">§</a><code>utxo: <a class="enum" href="enum.Utxo.html" title="enum bdk_wallet::Utxo">Utxo</a></code></span><div class="docblock"><p>The UTXO</p>
+</div><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><section id="impl-Clone-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#69">source</a><a href="#impl-Clone-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#69">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#69">source</a><a href="#impl-Debug-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#69">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CWeightedUtxo%3E-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#69">source</a><a href="#impl-PartialEq%3CWeightedUtxo%3E-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a>> for <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#69">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><section id="impl-Eq-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#69">source</a><a href="#impl-Eq-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a></h3></section><section id="impl-StructuralEq-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#69">source</a><a href="#impl-StructuralEq-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a></h3></section><section id="impl-StructuralPartialEq-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="../src/bdk_wallet/types.rs.html#69">source</a><a href="#impl-StructuralPartialEq-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-WeightedUtxo" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a></h3></section><section id="impl-Send-for-WeightedUtxo" class="impl has-srclink"><a href="#impl-Send-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a></h3></section><section id="impl-Sync-for-WeightedUtxo" class="impl has-srclink"><a href="#impl-Sync-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a></h3></section><section id="impl-Unpin-for-WeightedUtxo" class="impl has-srclink"><a href="#impl-Unpin-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a></h3></section><section id="impl-UnwindSafe-for-WeightedUtxo" class="impl has-srclink"><a href="#impl-UnwindSafe-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-WeightedUtxo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-WeightedUtxo" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-WeightedUtxo" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="refresh" content="0;URL=../../bdk_wallet/enum.KeychainKind.html">
+ <title>Redirection</title>
+</head>
+<body>
+ <p>Redirecting to <a href="../../bdk_wallet/enum.KeychainKind.html">../../bdk_wallet/enum.KeychainKind.html</a>...</p>
+ <script>location.replace("../../bdk_wallet/enum.KeychainKind.html" + location.search + location.hash);</script>
+</body>
+</html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="refresh" content="0;URL=../../bdk_wallet/enum.Utxo.html">
+ <title>Redirection</title>
+</head>
+<body>
+ <p>Redirecting to <a href="../../bdk_wallet/enum.Utxo.html">../../bdk_wallet/enum.Utxo.html</a>...</p>
+ <script>location.replace("../../bdk_wallet/enum.Utxo.html" + location.search + location.hash);</script>
+</body>
+</html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="refresh" content="0;URL=../../bdk_wallet/struct.LocalOutput.html">
+ <title>Redirection</title>
+</head>
+<body>
+ <p>Redirecting to <a href="../../bdk_wallet/struct.LocalOutput.html">../../bdk_wallet/struct.LocalOutput.html</a>...</p>
+ <script>location.replace("../../bdk_wallet/struct.LocalOutput.html" + location.search + location.hash);</script>
+</body>
+</html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="refresh" content="0;URL=../../bdk_wallet/struct.WeightedUtxo.html">
+ <title>Redirection</title>
+</head>
+<body>
+ <p>Redirecting to <a href="../../bdk_wallet/struct.WeightedUtxo.html">../../bdk_wallet/struct.WeightedUtxo.html</a>...</p>
+ <script>location.replace("../../bdk_wallet/struct.WeightedUtxo.html" + location.search + location.hash);</script>
+</body>
+</html>
\ No newline at end of file
--- /dev/null
+<!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="Errors that can be thrown by the `coin_selection` module"><meta name="keywords" content="rust, rustlang, rust-lang, Error"><title>Error in bdk_wallet::wallet::coin_selection - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Error</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.BnBNoExactMatch">BnBNoExactMatch</a></li><li><a href="#variant.BnBTotalTriesExceeded">BnBTotalTriesExceeded</a></li><li><a href="#variant.InsufficientFunds">InsufficientFunds</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-Error">Debug</a></li><li><a href="#impl-Display-for-Error">Display</a></li><li><a href="#impl-Error-for-Error">Error</a></li><li><a href="#impl-From%3CError%3E-for-CreateTxError">From<Error></a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Error">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Error">Send</a></li><li><a href="#impl-Sync-for-Error">Sync</a></li><li><a href="#impl-Unpin-for-Error">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Error">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Error">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Error">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Error">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Error">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Error">Into<U></a></li><li><a href="#impl-Provider-for-Error">Provider</a></li><li><a href="#impl-ToString-for-Error">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Error">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Error">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Error">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::coin_selection</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">coin_selection</a>::<wbr><a class="enum" href="#">Error</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#126-140">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum Error {
+ InsufficientFunds {
+ needed: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
+ available: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
+ },
+ BnBNoExactMatch,
+ BnBTotalTriesExceeded,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Errors that can be thrown by the <a href="index.html"><code>coin_selection</code></a> module</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.InsufficientFunds" class="variant"><a href="#variant.InsufficientFunds" class="anchor">§</a><h3 class="code-header">InsufficientFunds</h3></section><div class="sub-variant" id="variant.InsufficientFunds.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.InsufficientFunds.field.needed" class="small-section-header"><a href="#variant.InsufficientFunds.field.needed" class="anchor field">§</a><code>needed: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>Sats needed for some transaction</p>
+</div></div><div class="sub-variant-field"><span id="variant.InsufficientFunds.field.available" class="small-section-header"><a href="#variant.InsufficientFunds.field.available" class="anchor field">§</a><code>available: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>Sats available for spending</p>
+</div></div></div><div class="docblock"><p>Wallet’s UTXO set is not enough to cover recipient’s requested plus fee</p>
+</div><section id="variant.BnBNoExactMatch" class="variant"><a href="#variant.BnBNoExactMatch" class="anchor">§</a><h3 class="code-header">BnBNoExactMatch</h3></section><div class="docblock"><p>Branch and bound coin selection tries to avoid needing a change by finding the right inputs for
+the desired outputs plus fee, if there is not such combination this error is thrown</p>
+</div><section id="variant.BnBTotalTriesExceeded" class="variant"><a href="#variant.BnBTotalTriesExceeded" class="anchor">§</a><h3 class="code-header">BnBTotalTriesExceeded</h3></section><div class="docblock"><p>Branch and bound coin selection possible attempts with sufficiently big UTXO set could grow
+exponentially, thus a limit is set, and when hit, this error is thrown</p>
+</div></div><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><section id="impl-Debug-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#125">source</a><a href="#impl-Debug-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.Error.html" title="enum bdk_wallet::wallet::coin_selection::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#125">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#142-156">source</a><a href="#impl-Display-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.Error.html" title="enum bdk_wallet::wallet::coin_selection::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#143-155">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-Error" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#159">source</a><a href="#impl-Error-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.Error.html" title="enum bdk_wallet::wallet::coin_selection::Error">Error</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#238-242">source</a><a href="#impl-From%3CError%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="enum.Error.html" title="enum bdk_wallet::wallet::coin_selection::Error">Error</a>> for <a class="enum" href="../error/enum.CreateTxError.html" title="enum bdk_wallet::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#239-241">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="enum" href="enum.Error.html" title="enum bdk_wallet::wallet::coin_selection::Error">Error</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Error" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.Error.html" title="enum bdk_wallet::wallet::coin_selection::Error">Error</a></h3></section><section id="impl-Send-for-Error" class="impl has-srclink"><a href="#impl-Send-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.Error.html" title="enum bdk_wallet::wallet::coin_selection::Error">Error</a></h3></section><section id="impl-Sync-for-Error" class="impl has-srclink"><a href="#impl-Sync-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.Error.html" title="enum bdk_wallet::wallet::coin_selection::Error">Error</a></h3></section><section id="impl-Unpin-for-Error" class="impl has-srclink"><a href="#impl-Unpin-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.Error.html" title="enum bdk_wallet::wallet::coin_selection::Error">Error</a></h3></section><section id="impl-UnwindSafe-for-Error" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.Error.html" title="enum bdk_wallet::wallet::coin_selection::Error">Error</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Error" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-Error" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
+provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-Error" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Error" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Error" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Remaining amount after performing coin selection"><meta name="keywords" content="rust, rustlang, rust-lang, Excess"><title>Excess in bdk_wallet::wallet::coin_selection - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Excess</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Change">Change</a></li><li><a href="#variant.NoChange">NoChange</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-Excess">Debug</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Excess">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Excess">Send</a></li><li><a href="#impl-Sync-for-Excess">Sync</a></li><li><a href="#impl-Unpin-for-Excess">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Excess">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Excess">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Excess">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Excess">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Excess">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Excess">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-Excess">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Excess">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Excess">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::coin_selection</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">coin_selection</a>::<wbr><a class="enum" href="#">Excess</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#163-180">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum Excess {
+ NoChange {
+ dust_threshold: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
+ remaining_amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
+ change_fee: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
+ },
+ Change {
+ amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
+ fee: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
+ },
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Remaining amount after performing coin selection</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.NoChange" class="variant"><a href="#variant.NoChange" class="anchor">§</a><h3 class="code-header">NoChange</h3></section><div class="sub-variant" id="variant.NoChange.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.NoChange.field.dust_threshold" class="small-section-header"><a href="#variant.NoChange.field.dust_threshold" class="anchor field">§</a><code>dust_threshold: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>Threshold to consider amount as dust for this particular change script_pubkey</p>
+</div></div><div class="sub-variant-field"><span id="variant.NoChange.field.remaining_amount" class="small-section-header"><a href="#variant.NoChange.field.remaining_amount" class="anchor field">§</a><code>remaining_amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>Exceeding amount of current selection over outgoing value and fee costs</p>
+</div></div><div class="sub-variant-field"><span id="variant.NoChange.field.change_fee" class="small-section-header"><a href="#variant.NoChange.field.change_fee" class="anchor field">§</a><code>change_fee: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>The calculated fee for the drain TxOut with the selected script_pubkey</p>
+</div></div></div><div class="docblock"><p>It’s not possible to create spendable output from excess using the current drain output</p>
+</div><section id="variant.Change" class="variant"><a href="#variant.Change" class="anchor">§</a><h3 class="code-header">Change</h3></section><div class="sub-variant" id="variant.Change.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Change.field.amount" class="small-section-header"><a href="#variant.Change.field.amount" class="anchor field">§</a><code>amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>Effective amount available to create change after deducting the change output fee</p>
+</div></div><div class="sub-variant-field"><span id="variant.Change.field.fee" class="small-section-header"><a href="#variant.Change.field.fee" class="anchor field">§</a><code>fee: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>The deducted change output fee</p>
+</div></div></div><div class="docblock"><p>It’s possible to create spendable output from excess using the current drain output</p>
+</div></div><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><section id="impl-Debug-for-Excess" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#161">source</a><a href="#impl-Debug-for-Excess" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.Excess.html" title="enum bdk_wallet::wallet::coin_selection::Excess">Excess</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#161">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Excess" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Excess" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.Excess.html" title="enum bdk_wallet::wallet::coin_selection::Excess">Excess</a></h3></section><section id="impl-Send-for-Excess" class="impl has-srclink"><a href="#impl-Send-for-Excess" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.Excess.html" title="enum bdk_wallet::wallet::coin_selection::Excess">Excess</a></h3></section><section id="impl-Sync-for-Excess" class="impl has-srclink"><a href="#impl-Sync-for-Excess" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.Excess.html" title="enum bdk_wallet::wallet::coin_selection::Excess">Excess</a></h3></section><section id="impl-Unpin-for-Excess" class="impl has-srclink"><a href="#impl-Unpin-for-Excess" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.Excess.html" title="enum bdk_wallet::wallet::coin_selection::Excess">Excess</a></h3></section><section id="impl-UnwindSafe-for-Excess" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Excess" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.Excess.html" title="enum bdk_wallet::wallet::coin_selection::Excess">Excess</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Excess" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Excess" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Excess" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Excess" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Excess" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Excess" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Excess" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Excess" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Excess" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Excess" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Excess" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Excess" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Excess" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Excess" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Excess" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Excess" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Decide if change can be created"><meta name="keywords" content="rust, rustlang, rust-lang, decide_change"><title>decide_change in bdk_wallet::wallet::coin_selection - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In bdk_wallet::wallet::coin_selection</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">coin_selection</a>::<wbr><a class="fn" href="#">decide_change</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#311-331">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn decide_change(<br> remaining_amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,<br> fee_rate: FeeRate,<br> drain_script: &Script<br>) -> <a class="enum" href="enum.Excess.html" title="enum bdk_wallet::wallet::coin_selection::Excess">Excess</a></code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Decide if change can be created</p>
+<ul>
+<li><code>remaining_amount</code>: the amount in which the selected coins exceed the target amount</li>
+<li><code>fee_rate</code>: required fee rate for the current selection</li>
+<li><code>drain_script</code>: script to consider change creation</li>
+</ul>
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Coin selection"><meta name="keywords" content="rust, rustlang, rust-lang, coin_selection"><title>bdk_wallet::wallet::coin_selection - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module coin_selection</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#traits">Traits</a></li><li><a href="#functions">Functions</a></li><li><a href="#types">Type Definitions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a class="mod" href="#">coin_selection</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#12-1602">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Coin selection</p>
+<p>This module provides the trait <a href="trait.CoinSelectionAlgorithm.html" title="CoinSelectionAlgorithm"><code>CoinSelectionAlgorithm</code></a> that can be implemented to
+define custom coin selection algorithms.</p>
+<p>You can specify a custom coin selection algorithm through the <a href="../tx_builder/struct.TxBuilder.html#method.coin_selection"><code>coin_selection</code></a> method on
+<a href="../tx_builder/struct.TxBuilder.html"><code>TxBuilder</code></a>. <a href="type.DefaultCoinSelectionAlgorithm.html" title="DefaultCoinSelectionAlgorithm"><code>DefaultCoinSelectionAlgorithm</code></a> aliases the coin selection algorithm that will
+be used if it is not explicitly set.</p>
+<h3 id="example"><a href="#example">Example</a></h3>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#[derive(Debug)]
+</span><span class="kw">struct </span>AlwaysSpendEverything;
+
+<span class="kw">impl </span>CoinSelectionAlgorithm <span class="kw">for </span>AlwaysSpendEverything {
+ <span class="kw">fn </span>coin_select(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ required_utxos: Vec<WeightedUtxo>,
+ optional_utxos: Vec<WeightedUtxo>,
+ fee_rate: FeeRate,
+ target_amount: u64,
+ drain_script: <span class="kw-2">&</span>Script,
+ ) -> <span class="prelude-ty">Result</span><CoinSelectionResult, coin_selection::Error> {
+ <span class="kw">let </span><span class="kw-2">mut </span>selected_amount = <span class="number">0</span>;
+ <span class="kw">let </span><span class="kw-2">mut </span>additional_weight = Weight::ZERO;
+ <span class="kw">let </span>all_utxos_selected = required_utxos
+ .into_iter()
+ .chain(optional_utxos)
+ .scan(
+ (<span class="kw-2">&mut </span>selected_amount, <span class="kw-2">&mut </span>additional_weight),
+ |(selected_amount, additional_weight), weighted_utxo| {
+ <span class="kw-2">**</span>selected_amount += weighted_utxo.utxo.txout().value.to_sat();
+ <span class="kw-2">**</span>additional_weight += Weight::from_wu(
+ (TxIn::default().segwit_weight().to_wu()
+ + weighted_utxo.satisfaction_weight <span class="kw">as </span>u64)
+ <span class="kw">as </span>u64,
+ );
+ <span class="prelude-val">Some</span>(weighted_utxo.utxo)
+ },
+ )
+ .collect::<Vec<<span class="kw">_</span>>>();
+ <span class="kw">let </span>additional_fees = (fee_rate * additional_weight).to_sat();
+ <span class="kw">let </span>amount_needed_with_fees = additional_fees + target_amount;
+ <span class="kw">if </span>selected_amount < amount_needed_with_fees {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(coin_selection::Error::InsufficientFunds {
+ needed: amount_needed_with_fees,
+ available: selected_amount,
+ });
+ }
+
+ <span class="kw">let </span>remaining_amount = selected_amount - amount_needed_with_fees;
+
+ <span class="kw">let </span>excess = decide_change(remaining_amount, fee_rate, drain_script);
+
+ <span class="prelude-val">Ok</span>(CoinSelectionResult {
+ selected: all_utxos_selected,
+ fee_amount: additional_fees,
+ excess,
+ })
+ }
+}
+
+<span class="comment">// create wallet, sync, ...
+
+</span><span class="kw">let </span>to_address = Address::from_str(<span class="string">"2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt"</span>)
+ .unwrap()
+ .require_network(Network::Testnet)
+ .unwrap();
+<span class="kw">let </span>psbt = {
+ <span class="kw">let </span><span class="kw-2">mut </span>builder = wallet.build_tx().coin_selection(AlwaysSpendEverything);
+ builder.add_recipient(to_address.script_pubkey(), Amount::from_sat(<span class="number">50_000</span>));
+ builder.finish()<span class="question-mark">?
+</span>};
+
+<span class="comment">// inspect, sign, broadcast, ...
+</span></code></pre></div>
+</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection struct">BranchAndBoundCoinSelection</a></div><div class="item-right docblock-short">Branch and bound coin selection</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.CoinSelectionResult.html" title="bdk_wallet::wallet::coin_selection::CoinSelectionResult struct">CoinSelectionResult</a></div><div class="item-right docblock-short">Result of a successful coin selection</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.LargestFirstCoinSelection.html" title="bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection struct">LargestFirstCoinSelection</a></div><div class="item-right docblock-short">Simple and dumb coin selection</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.OldestFirstCoinSelection.html" title="bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection struct">OldestFirstCoinSelection</a></div><div class="item-right docblock-short">OldestFirstCoinSelection always picks the utxo with the smallest blockheight to add to the selected coins next</div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Error.html" title="bdk_wallet::wallet::coin_selection::Error enum">Error</a></div><div class="item-right docblock-short">Errors that can be thrown by the <a href="index.html"><code>coin_selection</code></a> module</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Excess.html" title="bdk_wallet::wallet::coin_selection::Excess enum">Excess</a></div><div class="item-right docblock-short">Remaining amount after performing coin selection</div></div></div><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.CoinSelectionAlgorithm.html" title="bdk_wallet::wallet::coin_selection::CoinSelectionAlgorithm trait">CoinSelectionAlgorithm</a></div><div class="item-right docblock-short">Trait for generalized coin selection algorithms</div></div></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.decide_change.html" title="bdk_wallet::wallet::coin_selection::decide_change fn">decide_change</a></div><div class="item-right docblock-short">Decide if change can be created</div></div></div><h2 id="types" class="small-section-header"><a href="#types">Type Definitions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="type" href="type.DefaultCoinSelectionAlgorithm.html" title="bdk_wallet::wallet::coin_selection::DefaultCoinSelectionAlgorithm type">DefaultCoinSelectionAlgorithm</a></div><div class="item-right docblock-short">Default coin selection algorithm used by <a href="../tx_builder/struct.TxBuilder.html"><code>TxBuilder</code></a> if not
+overridden</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+window.SIDEBAR_ITEMS = {"enum":[["Error","Errors that can be thrown by the `coin_selection` module"],["Excess","Remaining amount after performing coin selection"]],"fn":[["decide_change","Decide if change can be created"]],"struct":[["BranchAndBoundCoinSelection","Branch and bound coin selection"],["CoinSelectionResult","Result of a successful coin selection"],["LargestFirstCoinSelection","Simple and dumb coin selection"],["OldestFirstCoinSelection","OldestFirstCoinSelection always picks the utxo with the smallest blockheight to add to the selected coins next"]],"trait":[["CoinSelectionAlgorithm","Trait for generalized coin selection algorithms"]],"type":[["DefaultCoinSelectionAlgorithm","Default coin selection algorithm used by `TxBuilder` if not overridden"]]};
\ No newline at end of file
--- /dev/null
+<!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="Branch and bound coin selection"><meta name="keywords" content="rust, rustlang, rust-lang, BranchAndBoundCoinSelection"><title>BranchAndBoundCoinSelection in bdk_wallet::wallet::coin_selection - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">BranchAndBoundCoinSelection</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.new">new</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-BranchAndBoundCoinSelection">Clone</a></li><li><a href="#impl-CoinSelectionAlgorithm-for-BranchAndBoundCoinSelection">CoinSelectionAlgorithm</a></li><li><a href="#impl-Debug-for-BranchAndBoundCoinSelection">Debug</a></li><li><a href="#impl-Default-for-BranchAndBoundCoinSelection">Default</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-BranchAndBoundCoinSelection">RefUnwindSafe</a></li><li><a href="#impl-Send-for-BranchAndBoundCoinSelection">Send</a></li><li><a href="#impl-Sync-for-BranchAndBoundCoinSelection">Sync</a></li><li><a href="#impl-Unpin-for-BranchAndBoundCoinSelection">Unpin</a></li><li><a href="#impl-UnwindSafe-for-BranchAndBoundCoinSelection">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-BranchAndBoundCoinSelection">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-BranchAndBoundCoinSelection">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-BranchAndBoundCoinSelection">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-BranchAndBoundCoinSelection">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-BranchAndBoundCoinSelection">Into<U></a></li><li><a href="#impl-ToOwned-for-BranchAndBoundCoinSelection">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-BranchAndBoundCoinSelection">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-BranchAndBoundCoinSelection">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-BranchAndBoundCoinSelection">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::coin_selection</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">coin_selection</a>::<wbr><a class="struct" href="#">BranchAndBoundCoinSelection</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#410-412">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct BranchAndBoundCoinSelection { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Branch and bound coin selection</p>
+<p>Code adapted from Bitcoin Core’s implementation and from Mark Erhardt Master’s Thesis: <a href="http://murch.one/wp-content/uploads/2016/11/erhardt2016coinselection.pdf">http://murch.one/wp-content/uploads/2016/11/erhardt2016coinselection.pdf</a></p>
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#423-428">source</a><a href="#impl-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#425-427">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(size_of_change: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>) -> Self</h4></section></summary><div class="docblock"><p>Create new instance with target size for change output</p>
+</div></details></div></details></div><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><section id="impl-Clone-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#409">source</a><a href="#impl-Clone-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#409">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-CoinSelectionAlgorithm-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#432-542">source</a><a href="#impl-CoinSelectionAlgorithm-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.CoinSelectionAlgorithm.html" title="trait bdk_wallet::wallet::coin_selection::CoinSelectionAlgorithm">CoinSelectionAlgorithm</a> for <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.coin_select" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#433-541">source</a><a href="#method.coin_select" class="anchor">§</a><h4 class="code-header">fn <a href="trait.CoinSelectionAlgorithm.html#tymethod.coin_select" class="fn">coin_select</a>(<br> &self,<br> required_utxos: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="../../struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a>>,<br> optional_utxos: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="../../struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a>>,<br> fee_rate: FeeRate,<br> target_amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,<br> drain_script: &Script<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="struct" href="struct.CoinSelectionResult.html" title="struct bdk_wallet::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a>, <a class="enum" href="enum.Error.html" title="enum bdk_wallet::wallet::coin_selection::Error">Error</a>></h4></section></summary><div class='docblock'>Perform the coin selection <a href="trait.CoinSelectionAlgorithm.html#tymethod.coin_select">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#409">source</a><a href="#impl-Debug-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#409">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#414-421">source</a><a href="#impl-Default-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#415-420">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> Self</h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h3></section><section id="impl-Send-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a href="#impl-Send-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h3></section><section id="impl-Sync-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a href="#impl-Sync-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h3></section><section id="impl-Unpin-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a href="#impl-Unpin-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h3></section><section id="impl-UnwindSafe-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a href="#impl-UnwindSafe-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Result of a successful coin selection"><meta name="keywords" content="rust, rustlang, rust-lang, CoinSelectionResult"><title>CoinSelectionResult in bdk_wallet::wallet::coin_selection - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">CoinSelectionResult</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.excess">excess</a></li><li><a href="#structfield.fee_amount">fee_amount</a></li><li><a href="#structfield.selected">selected</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.local_selected_amount">local_selected_amount</a></li><li><a href="#method.selected_amount">selected_amount</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-CoinSelectionResult">Debug</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-CoinSelectionResult">RefUnwindSafe</a></li><li><a href="#impl-Send-for-CoinSelectionResult">Send</a></li><li><a href="#impl-Sync-for-CoinSelectionResult">Sync</a></li><li><a href="#impl-Unpin-for-CoinSelectionResult">Unpin</a></li><li><a href="#impl-UnwindSafe-for-CoinSelectionResult">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-CoinSelectionResult">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-CoinSelectionResult">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-CoinSelectionResult">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-CoinSelectionResult">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-CoinSelectionResult">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-CoinSelectionResult">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-CoinSelectionResult">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-CoinSelectionResult">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::coin_selection</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">coin_selection</a>::<wbr><a class="struct" href="#">CoinSelectionResult</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#184-191">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct CoinSelectionResult {
+ pub selected: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="../../enum.Utxo.html" title="enum bdk_wallet::Utxo">Utxo</a>>,
+ pub fee_amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
+ pub excess: <a class="enum" href="enum.Excess.html" title="enum bdk_wallet::wallet::coin_selection::Excess">Excess</a>,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Result of a successful coin selection</p>
+</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.selected" class="structfield small-section-header"><a href="#structfield.selected" class="anchor field">§</a><code>selected: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="../../enum.Utxo.html" title="enum bdk_wallet::Utxo">Utxo</a>></code></span><div class="docblock"><p>List of outputs selected for use as inputs</p>
+</div><span id="structfield.fee_amount" class="structfield small-section-header"><a href="#structfield.fee_amount" class="anchor field">§</a><code>fee_amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>Total fee amount for the selected utxos in satoshis</p>
+</div><span id="structfield.excess" class="structfield small-section-header"><a href="#structfield.excess" class="anchor field">§</a><code>excess: <a class="enum" href="enum.Excess.html" title="enum bdk_wallet::wallet::coin_selection::Excess">Excess</a></code></span><div class="docblock"><p>Remaining amount after deducing fees and outgoing outputs</p>
+</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-CoinSelectionResult" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#193-209">source</a><a href="#impl-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.CoinSelectionResult.html" title="struct bdk_wallet::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.selected_amount" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#195-197">source</a><h4 class="code-header">pub fn <a href="#method.selected_amount" class="fn">selected_amount</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></h4></section></summary><div class="docblock"><p>The total value of the inputs selected.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.local_selected_amount" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#200-208">source</a><h4 class="code-header">pub fn <a href="#method.local_selected_amount" class="fn">local_selected_amount</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></h4></section></summary><div class="docblock"><p>The total value of the inputs selected from the local wallet.</p>
+</div></details></div></details></div><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><section id="impl-Debug-for-CoinSelectionResult" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#183">source</a><a href="#impl-Debug-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.CoinSelectionResult.html" title="struct bdk_wallet::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#183">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-CoinSelectionResult" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.CoinSelectionResult.html" title="struct bdk_wallet::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a></h3></section><section id="impl-Send-for-CoinSelectionResult" class="impl has-srclink"><a href="#impl-Send-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.CoinSelectionResult.html" title="struct bdk_wallet::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a></h3></section><section id="impl-Sync-for-CoinSelectionResult" class="impl has-srclink"><a href="#impl-Sync-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.CoinSelectionResult.html" title="struct bdk_wallet::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a></h3></section><section id="impl-Unpin-for-CoinSelectionResult" class="impl has-srclink"><a href="#impl-Unpin-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.CoinSelectionResult.html" title="struct bdk_wallet::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a></h3></section><section id="impl-UnwindSafe-for-CoinSelectionResult" class="impl has-srclink"><a href="#impl-UnwindSafe-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.CoinSelectionResult.html" title="struct bdk_wallet::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-CoinSelectionResult" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-CoinSelectionResult" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-CoinSelectionResult" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-CoinSelectionResult" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-CoinSelectionResult" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-CoinSelectionResult" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-CoinSelectionResult" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-CoinSelectionResult" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-CoinSelectionResult" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Simple and dumb coin selection"><meta name="keywords" content="rust, rustlang, rust-lang, LargestFirstCoinSelection"><title>LargestFirstCoinSelection in bdk_wallet::wallet::coin_selection - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">LargestFirstCoinSelection</a></h2><div class="sidebar-elems"><section><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-LargestFirstCoinSelection">Clone</a></li><li><a href="#impl-CoinSelectionAlgorithm-for-LargestFirstCoinSelection">CoinSelectionAlgorithm</a></li><li><a href="#impl-Copy-for-LargestFirstCoinSelection">Copy</a></li><li><a href="#impl-Debug-for-LargestFirstCoinSelection">Debug</a></li><li><a href="#impl-Default-for-LargestFirstCoinSelection">Default</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-LargestFirstCoinSelection">RefUnwindSafe</a></li><li><a href="#impl-Send-for-LargestFirstCoinSelection">Send</a></li><li><a href="#impl-Sync-for-LargestFirstCoinSelection">Sync</a></li><li><a href="#impl-Unpin-for-LargestFirstCoinSelection">Unpin</a></li><li><a href="#impl-UnwindSafe-for-LargestFirstCoinSelection">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-LargestFirstCoinSelection">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-LargestFirstCoinSelection">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-LargestFirstCoinSelection">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-LargestFirstCoinSelection">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-LargestFirstCoinSelection">Into<U></a></li><li><a href="#impl-ToOwned-for-LargestFirstCoinSelection">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-LargestFirstCoinSelection">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-LargestFirstCoinSelection">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-LargestFirstCoinSelection">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::coin_selection</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">coin_selection</a>::<wbr><a class="struct" href="#">LargestFirstCoinSelection</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#246">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct LargestFirstCoinSelection;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Simple and dumb coin selection</p>
+<p>This coin selection algorithm sorts the available UTXOs by value and then picks them starting
+from the largest ones until the required amount is reached.</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><section id="impl-Clone-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#245">source</a><a href="#impl-Clone-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#245">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-CoinSelectionAlgorithm-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#248-269">source</a><a href="#impl-CoinSelectionAlgorithm-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.CoinSelectionAlgorithm.html" title="trait bdk_wallet::wallet::coin_selection::CoinSelectionAlgorithm">CoinSelectionAlgorithm</a> for <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.coin_select" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#249-268">source</a><a href="#method.coin_select" class="anchor">§</a><h4 class="code-header">fn <a href="trait.CoinSelectionAlgorithm.html#tymethod.coin_select" class="fn">coin_select</a>(<br> &self,<br> required_utxos: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="../../struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a>>,<br> optional_utxos: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="../../struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a>>,<br> fee_rate: FeeRate,<br> target_amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,<br> drain_script: &Script<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="struct" href="struct.CoinSelectionResult.html" title="struct bdk_wallet::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a>, <a class="enum" href="enum.Error.html" title="enum bdk_wallet::wallet::coin_selection::Error">Error</a>></h4></section></summary><div class='docblock'>Perform the coin selection <a href="trait.CoinSelectionAlgorithm.html#tymethod.coin_select">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#245">source</a><a href="#impl-Debug-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#245">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#245">source</a><a href="#impl-Default-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#245">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><section id="impl-Copy-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#245">source</a><a href="#impl-Copy-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-LargestFirstCoinSelection" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h3></section><section id="impl-Send-for-LargestFirstCoinSelection" class="impl has-srclink"><a href="#impl-Send-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h3></section><section id="impl-Sync-for-LargestFirstCoinSelection" class="impl has-srclink"><a href="#impl-Sync-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h3></section><section id="impl-Unpin-for-LargestFirstCoinSelection" class="impl has-srclink"><a href="#impl-Unpin-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h3></section><section id="impl-UnwindSafe-for-LargestFirstCoinSelection" class="impl has-srclink"><a href="#impl-UnwindSafe-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-LargestFirstCoinSelection" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="OldestFirstCoinSelection always picks the utxo with the smallest blockheight to add to the selected coins next"><meta name="keywords" content="rust, rustlang, rust-lang, OldestFirstCoinSelection"><title>OldestFirstCoinSelection in bdk_wallet::wallet::coin_selection - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">OldestFirstCoinSelection</a></h2><div class="sidebar-elems"><section><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-OldestFirstCoinSelection">Clone</a></li><li><a href="#impl-CoinSelectionAlgorithm-for-OldestFirstCoinSelection">CoinSelectionAlgorithm</a></li><li><a href="#impl-Copy-for-OldestFirstCoinSelection">Copy</a></li><li><a href="#impl-Debug-for-OldestFirstCoinSelection">Debug</a></li><li><a href="#impl-Default-for-OldestFirstCoinSelection">Default</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-OldestFirstCoinSelection">RefUnwindSafe</a></li><li><a href="#impl-Send-for-OldestFirstCoinSelection">Send</a></li><li><a href="#impl-Sync-for-OldestFirstCoinSelection">Sync</a></li><li><a href="#impl-Unpin-for-OldestFirstCoinSelection">Unpin</a></li><li><a href="#impl-UnwindSafe-for-OldestFirstCoinSelection">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-OldestFirstCoinSelection">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-OldestFirstCoinSelection">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-OldestFirstCoinSelection">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-OldestFirstCoinSelection">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-OldestFirstCoinSelection">Into<U></a></li><li><a href="#impl-ToOwned-for-OldestFirstCoinSelection">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-OldestFirstCoinSelection">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-OldestFirstCoinSelection">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-OldestFirstCoinSelection">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::coin_selection</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">coin_selection</a>::<wbr><a class="struct" href="#">OldestFirstCoinSelection</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#276">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct OldestFirstCoinSelection;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>OldestFirstCoinSelection always picks the utxo with the smallest blockheight to add to the selected coins next</p>
+<p>This coin selection algorithm sorts the available UTXOs by blockheight and then picks them starting
+from the oldest ones until the required amount is reached.</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><section id="impl-Clone-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#275">source</a><a href="#impl-Clone-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#275">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-CoinSelectionAlgorithm-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#278-304">source</a><a href="#impl-CoinSelectionAlgorithm-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.CoinSelectionAlgorithm.html" title="trait bdk_wallet::wallet::coin_selection::CoinSelectionAlgorithm">CoinSelectionAlgorithm</a> for <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.coin_select" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#279-303">source</a><a href="#method.coin_select" class="anchor">§</a><h4 class="code-header">fn <a href="trait.CoinSelectionAlgorithm.html#tymethod.coin_select" class="fn">coin_select</a>(<br> &self,<br> required_utxos: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="../../struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a>>,<br> optional_utxos: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="../../struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a>>,<br> fee_rate: FeeRate,<br> target_amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,<br> drain_script: &Script<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="struct" href="struct.CoinSelectionResult.html" title="struct bdk_wallet::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a>, <a class="enum" href="enum.Error.html" title="enum bdk_wallet::wallet::coin_selection::Error">Error</a>></h4></section></summary><div class='docblock'>Perform the coin selection <a href="trait.CoinSelectionAlgorithm.html#tymethod.coin_select">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#275">source</a><a href="#impl-Debug-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#275">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#275">source</a><a href="#impl-Default-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#275">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><section id="impl-Copy-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#275">source</a><a href="#impl-Copy-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-OldestFirstCoinSelection" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h3></section><section id="impl-Send-for-OldestFirstCoinSelection" class="impl has-srclink"><a href="#impl-Send-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h3></section><section id="impl-Sync-for-OldestFirstCoinSelection" class="impl has-srclink"><a href="#impl-Sync-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h3></section><section id="impl-Unpin-for-OldestFirstCoinSelection" class="impl has-srclink"><a href="#impl-Unpin-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h3></section><section id="impl-UnwindSafe-for-OldestFirstCoinSelection" class="impl has-srclink"><a href="#impl-UnwindSafe-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-OldestFirstCoinSelection" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Trait for generalized coin selection algorithms"><meta name="keywords" content="rust, rustlang, rust-lang, CoinSelectionAlgorithm"><title>CoinSelectionAlgorithm in bdk_wallet::wallet::coin_selection - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">CoinSelectionAlgorithm</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.coin_select">coin_select</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk_wallet::wallet::coin_selection</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">coin_selection</a>::<wbr><a class="trait" href="#">CoinSelectionAlgorithm</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#217-239">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait CoinSelectionAlgorithm: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> {
+ fn <a href="#tymethod.coin_select" class="fn">coin_select</a>(<br> &self,<br> required_utxos: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="../../struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a>>,<br> optional_utxos: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="../../struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a>>,<br> fee_rate: FeeRate,<br> target_amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,<br> drain_script: &Script<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="struct" href="struct.CoinSelectionResult.html" title="struct bdk_wallet::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a>, <a class="enum" href="enum.Error.html" title="enum bdk_wallet::wallet::coin_selection::Error">Error</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 generalized coin selection algorithms</p>
+<p>This trait can be implemented to make the <a href="../struct.Wallet.html"><code>Wallet</code></a> use a customized coin
+selection algorithm when it creates transactions.</p>
+<p>For an example see <a href="index.html">this module</a>’s documentation.</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 method-toggle" open><summary><section id="tymethod.coin_select" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#231-238">source</a><h4 class="code-header">fn <a href="#tymethod.coin_select" class="fn">coin_select</a>(<br> &self,<br> required_utxos: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="../../struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a>>,<br> optional_utxos: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="../../struct.WeightedUtxo.html" title="struct bdk_wallet::WeightedUtxo">WeightedUtxo</a>>,<br> fee_rate: FeeRate,<br> target_amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,<br> drain_script: &Script<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="struct" href="struct.CoinSelectionResult.html" title="struct bdk_wallet::wallet::coin_selection::CoinSelectionResult">CoinSelectionResult</a>, <a class="enum" href="enum.Error.html" title="enum bdk_wallet::wallet::coin_selection::Error">Error</a>></h4></section></summary><div class="docblock"><p>Perform the coin selection</p>
+<ul>
+<li><code>database</code>: a reference to the wallet’s database that can be used to lookup additional
+details for a specific UTXO</li>
+<li><code>required_utxos</code>: the utxos that must be spent regardless of <code>target_amount</code> with their
+weight cost</li>
+<li><code>optional_utxos</code>: the remaining available utxos to satisfy <code>target_amount</code> with their
+weight cost</li>
+<li><code>fee_rate</code>: fee rate to use</li>
+<li><code>target_amount</code>: the outgoing amount in satoshis and the fees already
+accumulated from added outputs and transaction’s header.</li>
+<li><code>drain_script</code>: the script to use in case of change</li>
+</ul>
+</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-CoinSelectionAlgorithm-for-BranchAndBoundCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#432-542">source</a><a href="#impl-CoinSelectionAlgorithm-for-BranchAndBoundCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.CoinSelectionAlgorithm.html" title="trait bdk_wallet::wallet::coin_selection::CoinSelectionAlgorithm">CoinSelectionAlgorithm</a> for <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a></h3></section><section id="impl-CoinSelectionAlgorithm-for-LargestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#248-269">source</a><a href="#impl-CoinSelectionAlgorithm-for-LargestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.CoinSelectionAlgorithm.html" title="trait bdk_wallet::wallet::coin_selection::CoinSelectionAlgorithm">CoinSelectionAlgorithm</a> for <a class="struct" href="struct.LargestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection">LargestFirstCoinSelection</a></h3></section><section id="impl-CoinSelectionAlgorithm-for-OldestFirstCoinSelection" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#278-304">source</a><a href="#impl-CoinSelectionAlgorithm-for-OldestFirstCoinSelection" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.CoinSelectionAlgorithm.html" title="trait bdk_wallet::wallet::coin_selection::CoinSelectionAlgorithm">CoinSelectionAlgorithm</a> for <a class="struct" href="struct.OldestFirstCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection">OldestFirstCoinSelection</a></h3></section></div><script src="../../../implementors/bdk_wallet/wallet/coin_selection/trait.CoinSelectionAlgorithm.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Default coin selection algorithm used by `TxBuilder` if not overridden"><meta name="keywords" content="rust, rustlang, rust-lang, DefaultCoinSelectionAlgorithm"><title>DefaultCoinSelectionAlgorithm in bdk_wallet::wallet::coin_selection - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">DefaultCoinSelectionAlgorithm</a></h2><div class="sidebar-elems"><h2><a href="index.html">In bdk_wallet::wallet::coin_selection</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">coin_selection</a>::<wbr><a class="type" href="#">DefaultCoinSelectionAlgorithm</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/coin_selection.rs.html#122">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub type DefaultCoinSelectionAlgorithm = <a class="struct" href="struct.BranchAndBoundCoinSelection.html" title="struct bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection">BranchAndBoundCoinSelection</a>;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Default coin selection algorithm used by <a href="../tx_builder/struct.TxBuilder.html"><code>TxBuilder</code></a> if not
+overridden</p>
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="An error that may occur when applying a block to [`Wallet`]."><meta name="keywords" content="rust, rustlang, rust-lang, ApplyBlockError"><title>ApplyBlockError in bdk_wallet::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">ApplyBlockError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.CannotConnect">CannotConnect</a></li><li><a href="#variant.UnexpectedConnectedToHash">UnexpectedConnectedToHash</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-ApplyBlockError">Debug</a></li><li><a href="#impl-Display-for-ApplyBlockError">Display</a></li><li><a href="#impl-Error-for-ApplyBlockError">Error</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-ApplyBlockError">RefUnwindSafe</a></li><li><a href="#impl-Send-for-ApplyBlockError">Send</a></li><li><a href="#impl-Sync-for-ApplyBlockError">Sync</a></li><li><a href="#impl-Unpin-for-ApplyBlockError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-ApplyBlockError">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-ApplyBlockError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-ApplyBlockError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-ApplyBlockError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-ApplyBlockError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-ApplyBlockError">Into<U></a></li><li><a href="#impl-Provider-for-ApplyBlockError">Provider</a></li><li><a href="#impl-ToString-for-ApplyBlockError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-ApplyBlockError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-ApplyBlockError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-ApplyBlockError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="enum" href="#">ApplyBlockError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/wallet/mod.rs.html#431-441">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum ApplyBlockError {
+ CannotConnect(CannotConnectError),
+ UnexpectedConnectedToHash {
+ connected_to_hash: BlockHash,
+ expected_hash: BlockHash,
+ },
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An error that may occur when applying a block to <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>.</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.CannotConnect" class="variant"><a href="#variant.CannotConnect" class="anchor">§</a><h3 class="code-header">CannotConnect(CannotConnectError)</h3></section><div class="docblock"><p>Occurs when the update chain cannot connect with original chain.</p>
+</div><section id="variant.UnexpectedConnectedToHash" class="variant"><a href="#variant.UnexpectedConnectedToHash" class="anchor">§</a><h3 class="code-header">UnexpectedConnectedToHash</h3></section><div class="sub-variant" id="variant.UnexpectedConnectedToHash.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.UnexpectedConnectedToHash.field.connected_to_hash" class="small-section-header"><a href="#variant.UnexpectedConnectedToHash.field.connected_to_hash" class="anchor field">§</a><code>connected_to_hash: BlockHash</code></span><div class="docblock"><p>Block hash of <code>connected_to</code>.</p>
+</div></div><div class="sub-variant-field"><span id="variant.UnexpectedConnectedToHash.field.expected_hash" class="small-section-header"><a href="#variant.UnexpectedConnectedToHash.field.expected_hash" class="anchor field">§</a><code>expected_hash: BlockHash</code></span><div class="docblock"><p>Expected block hash of <code>connected_to</code>, as derived from <code>block</code>.</p>
+</div></div></div><div class="docblock"><p>Occurs when the <code>connected_to</code> hash does not match the hash derived from <code>block</code>.</p>
+</div></div><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><section id="impl-Debug-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#430">source</a><a href="#impl-Debug-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.ApplyBlockError.html" title="enum bdk_wallet::wallet::ApplyBlockError">ApplyBlockError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#430">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#443-457">source</a><a href="#impl-Display-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.ApplyBlockError.html" title="enum bdk_wallet::wallet::ApplyBlockError">ApplyBlockError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#444-456">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#460">source</a><a href="#impl-Error-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.ApplyBlockError.html" title="enum bdk_wallet::wallet::ApplyBlockError">ApplyBlockError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-ApplyBlockError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.ApplyBlockError.html" title="enum bdk_wallet::wallet::ApplyBlockError">ApplyBlockError</a></h3></section><section id="impl-Send-for-ApplyBlockError" class="impl has-srclink"><a href="#impl-Send-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.ApplyBlockError.html" title="enum bdk_wallet::wallet::ApplyBlockError">ApplyBlockError</a></h3></section><section id="impl-Sync-for-ApplyBlockError" class="impl has-srclink"><a href="#impl-Sync-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.ApplyBlockError.html" title="enum bdk_wallet::wallet::ApplyBlockError">ApplyBlockError</a></h3></section><section id="impl-Unpin-for-ApplyBlockError" class="impl has-srclink"><a href="#impl-Unpin-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.ApplyBlockError.html" title="enum bdk_wallet::wallet::ApplyBlockError">ApplyBlockError</a></h3></section><section id="impl-UnwindSafe-for-ApplyBlockError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.ApplyBlockError.html" title="enum bdk_wallet::wallet::ApplyBlockError">ApplyBlockError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
+provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-ApplyBlockError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-ApplyBlockError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-ApplyBlockError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="An error that may occur when inserting a transaction into [`Wallet`]."><meta name="keywords" content="rust, rustlang, rust-lang, InsertTxError"><title>InsertTxError in bdk_wallet::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">InsertTxError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.ConfirmationHeightCannotBeGreaterThanTip">ConfirmationHeightCannotBeGreaterThanTip</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-InsertTxError">Debug</a></li><li><a href="#impl-Display-for-InsertTxError">Display</a></li><li><a href="#impl-Error-for-InsertTxError">Error</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-InsertTxError">RefUnwindSafe</a></li><li><a href="#impl-Send-for-InsertTxError">Send</a></li><li><a href="#impl-Sync-for-InsertTxError">Sync</a></li><li><a href="#impl-Unpin-for-InsertTxError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-InsertTxError">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-InsertTxError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-InsertTxError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-InsertTxError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-InsertTxError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-InsertTxError">Into<U></a></li><li><a href="#impl-Provider-for-InsertTxError">Provider</a></li><li><a href="#impl-ToString-for-InsertTxError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-InsertTxError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-InsertTxError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-InsertTxError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="enum" href="#">InsertTxError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/wallet/mod.rs.html#402-411">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum InsertTxError {
+ ConfirmationHeightCannotBeGreaterThanTip {
+ tip_height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
+ tx_height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
+ },
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An error that may occur when inserting a transaction into <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>.</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.ConfirmationHeightCannotBeGreaterThanTip" class="variant"><a href="#variant.ConfirmationHeightCannotBeGreaterThanTip" class="anchor">§</a><h3 class="code-header">ConfirmationHeightCannotBeGreaterThanTip</h3></section><div class="sub-variant" id="variant.ConfirmationHeightCannotBeGreaterThanTip.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.ConfirmationHeightCannotBeGreaterThanTip.field.tip_height" class="small-section-header"><a href="#variant.ConfirmationHeightCannotBeGreaterThanTip.field.tip_height" class="anchor field">§</a><code>tip_height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>The internal chain’s tip height.</p>
+</div></div><div class="sub-variant-field"><span id="variant.ConfirmationHeightCannotBeGreaterThanTip.field.tx_height" class="small-section-header"><a href="#variant.ConfirmationHeightCannotBeGreaterThanTip.field.tx_height" class="anchor field">§</a><code>tx_height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>The introduced transaction’s confirmation height.</p>
+</div></div></div><div class="docblock"><p>The error variant that occurs when the caller attempts to insert a transaction with a
+confirmation height that is greater than the internal chain tip.</p>
+</div></div><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><section id="impl-Debug-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#401">source</a><a href="#impl-Debug-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.InsertTxError.html" title="enum bdk_wallet::wallet::InsertTxError">InsertTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#401">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#413-424">source</a><a href="#impl-Display-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.InsertTxError.html" title="enum bdk_wallet::wallet::InsertTxError">InsertTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#414-423">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#427">source</a><a href="#impl-Error-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.InsertTxError.html" title="enum bdk_wallet::wallet::InsertTxError">InsertTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-InsertTxError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.InsertTxError.html" title="enum bdk_wallet::wallet::InsertTxError">InsertTxError</a></h3></section><section id="impl-Send-for-InsertTxError" class="impl has-srclink"><a href="#impl-Send-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.InsertTxError.html" title="enum bdk_wallet::wallet::InsertTxError">InsertTxError</a></h3></section><section id="impl-Sync-for-InsertTxError" class="impl has-srclink"><a href="#impl-Sync-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.InsertTxError.html" title="enum bdk_wallet::wallet::InsertTxError">InsertTxError</a></h3></section><section id="impl-Unpin-for-InsertTxError" class="impl has-srclink"><a href="#impl-Unpin-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.InsertTxError.html" title="enum bdk_wallet::wallet::InsertTxError">InsertTxError</a></h3></section><section id="impl-UnwindSafe-for-InsertTxError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.InsertTxError.html" title="enum bdk_wallet::wallet::InsertTxError">InsertTxError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
+provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-InsertTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-InsertTxError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-InsertTxError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="The error type when loading a [`Wallet`] from persistence."><meta name="keywords" content="rust, rustlang, rust-lang, LoadError"><title>LoadError in bdk_wallet::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">LoadError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Descriptor">Descriptor</a></li><li><a href="#variant.MissingDescriptor">MissingDescriptor</a></li><li><a href="#variant.MissingGenesis">MissingGenesis</a></li><li><a href="#variant.MissingNetwork">MissingNetwork</a></li><li><a href="#variant.NotInitialized">NotInitialized</a></li><li><a href="#variant.Persist">Persist</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-LoadError">Debug</a></li><li><a href="#impl-Display-for-LoadError">Display</a></li><li><a href="#impl-Error-for-LoadError">Error</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-LoadError">!RefUnwindSafe</a></li><li><a href="#impl-Send-for-LoadError">Send</a></li><li><a href="#impl-Sync-for-LoadError">Sync</a></li><li><a href="#impl-Unpin-for-LoadError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-LoadError">!UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-LoadError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-LoadError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-LoadError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-LoadError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-LoadError">Into<U></a></li><li><a href="#impl-Provider-for-LoadError">Provider</a></li><li><a href="#impl-ToString-for-LoadError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-LoadError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-LoadError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-LoadError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="enum" href="#">LoadError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/wallet/mod.rs.html#298-311">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum LoadError {
+ Descriptor(<a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>),
+ Persist(<a class="struct" href="https://docs.rs/anyhow/1.0.83/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>),
+ NotInitialized,
+ MissingNetwork,
+ MissingGenesis,
+ MissingDescriptor,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The error type when loading a <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a> from persistence.</p>
+<p>Method <a href="struct.Wallet.html#method.load"><code>load</code></a> may return this error.</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Descriptor" class="variant"><a href="#variant.Descriptor" class="anchor">§</a><h3 class="code-header">Descriptor(<a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>)</h3></section><div class="docblock"><p>There was a problem with the passed-in descriptor(s).</p>
+</div><section id="variant.Persist" class="variant"><a href="#variant.Persist" class="anchor">§</a><h3 class="code-header">Persist(<a class="struct" href="https://docs.rs/anyhow/1.0.83/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>)</h3></section><div class="docblock"><p>Loading data from the persistence backend failed.</p>
+</div><section id="variant.NotInitialized" class="variant"><a href="#variant.NotInitialized" class="anchor">§</a><h3 class="code-header">NotInitialized</h3></section><div class="docblock"><p>Wallet not initialized, persistence backend is empty.</p>
+</div><section id="variant.MissingNetwork" class="variant"><a href="#variant.MissingNetwork" class="anchor">§</a><h3 class="code-header">MissingNetwork</h3></section><div class="docblock"><p>Data loaded from persistence is missing network type.</p>
+</div><section id="variant.MissingGenesis" class="variant"><a href="#variant.MissingGenesis" class="anchor">§</a><h3 class="code-header">MissingGenesis</h3></section><div class="docblock"><p>Data loaded from persistence is missing genesis hash.</p>
+</div><section id="variant.MissingDescriptor" class="variant"><a href="#variant.MissingDescriptor" class="anchor">§</a><h3 class="code-header">MissingDescriptor</h3></section><div class="docblock"><p>Data loaded from persistence is missing descriptor.</p>
+</div></div><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><section id="impl-Debug-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#297">source</a><a href="#impl-Debug-for-LoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.LoadError.html" title="enum bdk_wallet::wallet::LoadError">LoadError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#297">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#313-326">source</a><a href="#impl-Display-for-LoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.LoadError.html" title="enum bdk_wallet::wallet::LoadError">LoadError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#314-325">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#329">source</a><a href="#impl-Error-for-LoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.LoadError.html" title="enum bdk_wallet::wallet::LoadError">LoadError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-LoadError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-LoadError" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.LoadError.html" title="enum bdk_wallet::wallet::LoadError">LoadError</a></h3></section><section id="impl-Send-for-LoadError" class="impl has-srclink"><a href="#impl-Send-for-LoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.LoadError.html" title="enum bdk_wallet::wallet::LoadError">LoadError</a></h3></section><section id="impl-Sync-for-LoadError" class="impl has-srclink"><a href="#impl-Sync-for-LoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.LoadError.html" title="enum bdk_wallet::wallet::LoadError">LoadError</a></h3></section><section id="impl-Unpin-for-LoadError" class="impl has-srclink"><a href="#impl-Unpin-for-LoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.LoadError.html" title="enum bdk_wallet::wallet::LoadError">LoadError</a></h3></section><section id="impl-UnwindSafe-for-LoadError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-LoadError" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.LoadError.html" title="enum bdk_wallet::wallet::LoadError">LoadError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-LoadError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-LoadError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-LoadError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-LoadError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-LoadError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-LoadError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
+provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-LoadError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-LoadError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-LoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-LoadError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-LoadError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-LoadError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="The error type when constructing a fresh [`Wallet`]."><meta name="keywords" content="rust, rustlang, rust-lang, NewError"><title>NewError in bdk_wallet::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">NewError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Descriptor">Descriptor</a></li><li><a href="#variant.NonEmptyDatabase">NonEmptyDatabase</a></li><li><a href="#variant.Persist">Persist</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-NewError">Debug</a></li><li><a href="#impl-Display-for-NewError">Display</a></li><li><a href="#impl-Error-for-NewError">Error</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-NewError">!RefUnwindSafe</a></li><li><a href="#impl-Send-for-NewError">Send</a></li><li><a href="#impl-Sync-for-NewError">Sync</a></li><li><a href="#impl-Unpin-for-NewError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-NewError">!UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-NewError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-NewError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-NewError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-NewError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-NewError">Into<U></a></li><li><a href="#impl-Provider-for-NewError">Provider</a></li><li><a href="#impl-ToString-for-NewError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-NewError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-NewError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-NewError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="enum" href="#">NewError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/wallet/mod.rs.html#267-274">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum NewError {
+ NonEmptyDatabase,
+ Descriptor(<a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>),
+ Persist(<a class="struct" href="https://docs.rs/anyhow/1.0.83/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>),
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The error type when constructing a fresh <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>.</p>
+<p>Methods <a href="struct.Wallet.html#method.new"><code>new</code></a> and <a href="struct.Wallet.html#method.new_with_genesis_hash"><code>new_with_genesis_hash</code></a> may return this error.</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.NonEmptyDatabase" class="variant"><a href="#variant.NonEmptyDatabase" class="anchor">§</a><h3 class="code-header">NonEmptyDatabase</h3></section><div class="docblock"><p>Database already has data.</p>
+</div><section id="variant.Descriptor" class="variant"><a href="#variant.Descriptor" class="anchor">§</a><h3 class="code-header">Descriptor(<a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>)</h3></section><div class="docblock"><p>There was problem with the passed-in descriptor(s).</p>
+</div><section id="variant.Persist" class="variant"><a href="#variant.Persist" class="anchor">§</a><h3 class="code-header">Persist(<a class="struct" href="https://docs.rs/anyhow/1.0.83/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>)</h3></section><div class="docblock"><p>We were unable to write the wallet’s data to the persistence backend.</p>
+</div></div><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><section id="impl-Debug-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#266">source</a><a href="#impl-Debug-for-NewError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.NewError.html" title="enum bdk_wallet::wallet::NewError">NewError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#266">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#276-287">source</a><a href="#impl-Display-for-NewError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.NewError.html" title="enum bdk_wallet::wallet::NewError">NewError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#277-286">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#290">source</a><a href="#impl-Error-for-NewError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.NewError.html" title="enum bdk_wallet::wallet::NewError">NewError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-NewError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-NewError" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.NewError.html" title="enum bdk_wallet::wallet::NewError">NewError</a></h3></section><section id="impl-Send-for-NewError" class="impl has-srclink"><a href="#impl-Send-for-NewError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.NewError.html" title="enum bdk_wallet::wallet::NewError">NewError</a></h3></section><section id="impl-Sync-for-NewError" class="impl has-srclink"><a href="#impl-Sync-for-NewError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.NewError.html" title="enum bdk_wallet::wallet::NewError">NewError</a></h3></section><section id="impl-Unpin-for-NewError" class="impl has-srclink"><a href="#impl-Unpin-for-NewError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.NewError.html" title="enum bdk_wallet::wallet::NewError">NewError</a></h3></section><section id="impl-UnwindSafe-for-NewError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-NewError" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.NewError.html" title="enum bdk_wallet::wallet::NewError">NewError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-NewError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-NewError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-NewError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-NewError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-NewError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-NewError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
+provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-NewError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-NewError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-NewError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-NewError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-NewError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-NewError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Error type for when we try load a [`Wallet`] from persistence and creating it if non-existent."><meta name="keywords" content="rust, rustlang, rust-lang, NewOrLoadError"><title>NewOrLoadError in bdk_wallet::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">NewOrLoadError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Descriptor">Descriptor</a></li><li><a href="#variant.LoadedDescriptorDoesNotMatch">LoadedDescriptorDoesNotMatch</a></li><li><a href="#variant.LoadedGenesisDoesNotMatch">LoadedGenesisDoesNotMatch</a></li><li><a href="#variant.LoadedNetworkDoesNotMatch">LoadedNetworkDoesNotMatch</a></li><li><a href="#variant.NotInitialized">NotInitialized</a></li><li><a href="#variant.Persist">Persist</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-NewOrLoadError">Debug</a></li><li><a href="#impl-Display-for-NewOrLoadError">Display</a></li><li><a href="#impl-Error-for-NewOrLoadError">Error</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-NewOrLoadError">!RefUnwindSafe</a></li><li><a href="#impl-Send-for-NewOrLoadError">Send</a></li><li><a href="#impl-Sync-for-NewOrLoadError">Sync</a></li><li><a href="#impl-Unpin-for-NewOrLoadError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-NewOrLoadError">!UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-NewOrLoadError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-NewOrLoadError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-NewOrLoadError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-NewOrLoadError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-NewOrLoadError">Into<U></a></li><li><a href="#impl-Provider-for-NewOrLoadError">Provider</a></li><li><a href="#impl-ToString-for-NewOrLoadError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-NewOrLoadError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-NewOrLoadError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-NewOrLoadError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="enum" href="#">NewOrLoadError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/wallet/mod.rs.html#338-366">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum NewOrLoadError {
+ Descriptor(<a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>),
+ Persist(<a class="struct" href="https://docs.rs/anyhow/1.0.83/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>),
+ NotInitialized,
+ LoadedGenesisDoesNotMatch {
+ expected: BlockHash,
+ got: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><BlockHash>,
+ },
+ LoadedNetworkDoesNotMatch {
+ expected: Network,
+ got: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Network>,
+ },
+ LoadedDescriptorDoesNotMatch {
+ got: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="type" href="../descriptor/type.ExtendedDescriptor.html" title="type bdk_wallet::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>>,
+ keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>,
+ },
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Error type for when we try load a <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a> from persistence and creating it if non-existent.</p>
+<p>Methods <a href="struct.Wallet.html#method.new_or_load"><code>new_or_load</code></a> and <a href="struct.Wallet.html#method.new_or_load_with_genesis_hash"><code>new_or_load_with_genesis_hash</code></a> may return this error.</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Descriptor" class="variant"><a href="#variant.Descriptor" class="anchor">§</a><h3 class="code-header">Descriptor(<a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>)</h3></section><div class="docblock"><p>There is a problem with the passed-in descriptor.</p>
+</div><section id="variant.Persist" class="variant"><a href="#variant.Persist" class="anchor">§</a><h3 class="code-header">Persist(<a class="struct" href="https://docs.rs/anyhow/1.0.83/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>)</h3></section><div class="docblock"><p>Either writing to or loading from the persistence backend failed.</p>
+</div><section id="variant.NotInitialized" class="variant"><a href="#variant.NotInitialized" class="anchor">§</a><h3 class="code-header">NotInitialized</h3></section><div class="docblock"><p>Wallet is not initialized, persistence backend is empty.</p>
+</div><section id="variant.LoadedGenesisDoesNotMatch" class="variant"><a href="#variant.LoadedGenesisDoesNotMatch" class="anchor">§</a><h3 class="code-header">LoadedGenesisDoesNotMatch</h3></section><div class="sub-variant" id="variant.LoadedGenesisDoesNotMatch.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.LoadedGenesisDoesNotMatch.field.expected" class="small-section-header"><a href="#variant.LoadedGenesisDoesNotMatch.field.expected" class="anchor field">§</a><code>expected: BlockHash</code></span><div class="docblock"><p>The expected genesis block hash.</p>
+</div></div><div class="sub-variant-field"><span id="variant.LoadedGenesisDoesNotMatch.field.got" class="small-section-header"><a href="#variant.LoadedGenesisDoesNotMatch.field.got" class="anchor field">§</a><code>got: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><BlockHash></code></span><div class="docblock"><p>The block hash loaded from persistence.</p>
+</div></div></div><div class="docblock"><p>The loaded genesis hash does not match what was provided.</p>
+</div><section id="variant.LoadedNetworkDoesNotMatch" class="variant"><a href="#variant.LoadedNetworkDoesNotMatch" class="anchor">§</a><h3 class="code-header">LoadedNetworkDoesNotMatch</h3></section><div class="sub-variant" id="variant.LoadedNetworkDoesNotMatch.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.LoadedNetworkDoesNotMatch.field.expected" class="small-section-header"><a href="#variant.LoadedNetworkDoesNotMatch.field.expected" class="anchor field">§</a><code>expected: Network</code></span><div class="docblock"><p>The expected network type.</p>
+</div></div><div class="sub-variant-field"><span id="variant.LoadedNetworkDoesNotMatch.field.got" class="small-section-header"><a href="#variant.LoadedNetworkDoesNotMatch.field.got" class="anchor field">§</a><code>got: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Network></code></span><div class="docblock"><p>The network type loaded from persistence.</p>
+</div></div></div><div class="docblock"><p>The loaded network type does not match what was provided.</p>
+</div><section id="variant.LoadedDescriptorDoesNotMatch" class="variant"><a href="#variant.LoadedDescriptorDoesNotMatch" class="anchor">§</a><h3 class="code-header">LoadedDescriptorDoesNotMatch</h3></section><div class="sub-variant" id="variant.LoadedDescriptorDoesNotMatch.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.LoadedDescriptorDoesNotMatch.field.got" class="small-section-header"><a href="#variant.LoadedDescriptorDoesNotMatch.field.got" class="anchor field">§</a><code>got: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="type" href="../descriptor/type.ExtendedDescriptor.html" title="type bdk_wallet::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>></code></span><div class="docblock"><p>The descriptor loaded from persistence.</p>
+</div></div><div class="sub-variant-field"><span id="variant.LoadedDescriptorDoesNotMatch.field.keychain" class="small-section-header"><a href="#variant.LoadedDescriptorDoesNotMatch.field.keychain" class="anchor field">§</a><code>keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></code></span><div class="docblock"><p>The keychain of the descriptor not matching</p>
+</div></div></div><div class="docblock"><p>The loaded desccriptor does not match what was provided.</p>
+</div></div><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><section id="impl-Debug-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#337">source</a><a href="#impl-Debug-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.NewOrLoadError.html" title="enum bdk_wallet::wallet::NewOrLoadError">NewOrLoadError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#337">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#368-395">source</a><a href="#impl-Display-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.NewOrLoadError.html" title="enum bdk_wallet::wallet::NewOrLoadError">NewOrLoadError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#369-394">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#398">source</a><a href="#impl-Error-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.NewOrLoadError.html" title="enum bdk_wallet::wallet::NewOrLoadError">NewOrLoadError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-NewOrLoadError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.NewOrLoadError.html" title="enum bdk_wallet::wallet::NewOrLoadError">NewOrLoadError</a></h3></section><section id="impl-Send-for-NewOrLoadError" class="impl has-srclink"><a href="#impl-Send-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.NewOrLoadError.html" title="enum bdk_wallet::wallet::NewOrLoadError">NewOrLoadError</a></h3></section><section id="impl-Sync-for-NewOrLoadError" class="impl has-srclink"><a href="#impl-Sync-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.NewOrLoadError.html" title="enum bdk_wallet::wallet::NewOrLoadError">NewOrLoadError</a></h3></section><section id="impl-Unpin-for-NewOrLoadError" class="impl has-srclink"><a href="#impl-Unpin-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.NewOrLoadError.html" title="enum bdk_wallet::wallet::NewOrLoadError">NewOrLoadError</a></h3></section><section id="impl-UnwindSafe-for-NewOrLoadError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.NewOrLoadError.html" title="enum bdk_wallet::wallet::NewOrLoadError">NewOrLoadError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
+provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-NewOrLoadError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-NewOrLoadError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-NewOrLoadError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Error returned from `Wallet::build_fee_bump`"><meta name="keywords" content="rust, rustlang, rust-lang, BuildFeeBumpError"><title>BuildFeeBumpError in bdk_wallet::wallet::error - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">BuildFeeBumpError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.FeeRateUnavailable">FeeRateUnavailable</a></li><li><a href="#variant.IrreplaceableTransaction">IrreplaceableTransaction</a></li><li><a href="#variant.TransactionConfirmed">TransactionConfirmed</a></li><li><a href="#variant.TransactionNotFound">TransactionNotFound</a></li><li><a href="#variant.UnknownUtxo">UnknownUtxo</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-BuildFeeBumpError">Debug</a></li><li><a href="#impl-Display-for-BuildFeeBumpError">Display</a></li><li><a href="#impl-Error-for-BuildFeeBumpError">Error</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-BuildFeeBumpError">RefUnwindSafe</a></li><li><a href="#impl-Send-for-BuildFeeBumpError">Send</a></li><li><a href="#impl-Sync-for-BuildFeeBumpError">Sync</a></li><li><a href="#impl-Unpin-for-BuildFeeBumpError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-BuildFeeBumpError">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-BuildFeeBumpError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-BuildFeeBumpError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-BuildFeeBumpError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-BuildFeeBumpError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-BuildFeeBumpError">Into<U></a></li><li><a href="#impl-Provider-for-BuildFeeBumpError">Provider</a></li><li><a href="#impl-ToString-for-BuildFeeBumpError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-BuildFeeBumpError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-BuildFeeBumpError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-BuildFeeBumpError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::error</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">error</a>::<wbr><a class="enum" href="#">BuildFeeBumpError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/error.rs.html#251-262">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum BuildFeeBumpError {
+ UnknownUtxo(OutPoint),
+ TransactionNotFound(Txid),
+ TransactionConfirmed(Txid),
+ IrreplaceableTransaction(Txid),
+ FeeRateUnavailable,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Error returned from <a href="../struct.Wallet.html#method.build_fee_bump"><code>Wallet::build_fee_bump</code></a></p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.UnknownUtxo" class="variant"><a href="#variant.UnknownUtxo" class="anchor">§</a><h3 class="code-header">UnknownUtxo(OutPoint)</h3></section><div class="docblock"><p>Happens when trying to spend an UTXO that is not in the internal database</p>
+</div><section id="variant.TransactionNotFound" class="variant"><a href="#variant.TransactionNotFound" class="anchor">§</a><h3 class="code-header">TransactionNotFound(Txid)</h3></section><div class="docblock"><p>Thrown when a tx is not found in the internal database</p>
+</div><section id="variant.TransactionConfirmed" class="variant"><a href="#variant.TransactionConfirmed" class="anchor">§</a><h3 class="code-header">TransactionConfirmed(Txid)</h3></section><div class="docblock"><p>Happens when trying to bump a transaction that is already confirmed</p>
+</div><section id="variant.IrreplaceableTransaction" class="variant"><a href="#variant.IrreplaceableTransaction" class="anchor">§</a><h3 class="code-header">IrreplaceableTransaction(Txid)</h3></section><div class="docblock"><p>Trying to replace a tx that has a sequence >= <code>0xFFFFFFFE</code></p>
+</div><section id="variant.FeeRateUnavailable" class="variant"><a href="#variant.FeeRateUnavailable" class="anchor">§</a><h3 class="code-header">FeeRateUnavailable</h3></section><div class="docblock"><p>Node doesn’t have data to estimate a fee rate</p>
+</div></div><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><section id="impl-Debug-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#247">source</a><a href="#impl-Debug-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.BuildFeeBumpError.html" title="enum bdk_wallet::wallet::error::BuildFeeBumpError">BuildFeeBumpError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#247">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#264-288">source</a><a href="#impl-Display-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.BuildFeeBumpError.html" title="enum bdk_wallet::wallet::error::BuildFeeBumpError">BuildFeeBumpError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#265-287">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#291">source</a><a href="#impl-Error-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.BuildFeeBumpError.html" title="enum bdk_wallet::wallet::error::BuildFeeBumpError">BuildFeeBumpError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-BuildFeeBumpError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.BuildFeeBumpError.html" title="enum bdk_wallet::wallet::error::BuildFeeBumpError">BuildFeeBumpError</a></h3></section><section id="impl-Send-for-BuildFeeBumpError" class="impl has-srclink"><a href="#impl-Send-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.BuildFeeBumpError.html" title="enum bdk_wallet::wallet::error::BuildFeeBumpError">BuildFeeBumpError</a></h3></section><section id="impl-Sync-for-BuildFeeBumpError" class="impl has-srclink"><a href="#impl-Sync-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.BuildFeeBumpError.html" title="enum bdk_wallet::wallet::error::BuildFeeBumpError">BuildFeeBumpError</a></h3></section><section id="impl-Unpin-for-BuildFeeBumpError" class="impl has-srclink"><a href="#impl-Unpin-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.BuildFeeBumpError.html" title="enum bdk_wallet::wallet::error::BuildFeeBumpError">BuildFeeBumpError</a></h3></section><section id="impl-UnwindSafe-for-BuildFeeBumpError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.BuildFeeBumpError.html" title="enum bdk_wallet::wallet::error::BuildFeeBumpError">BuildFeeBumpError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
+provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-BuildFeeBumpError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-BuildFeeBumpError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-BuildFeeBumpError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Error returned from `TxBuilder::finish`"><meta name="keywords" content="rust, rustlang, rust-lang, CreateTxError"><title>CreateTxError in bdk_wallet::wallet::error - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">CreateTxError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.ChangePolicyDescriptor">ChangePolicyDescriptor</a></li><li><a href="#variant.CoinSelection">CoinSelection</a></li><li><a href="#variant.Descriptor">Descriptor</a></li><li><a href="#variant.FeeRateTooLow">FeeRateTooLow</a></li><li><a href="#variant.FeeTooLow">FeeTooLow</a></li><li><a href="#variant.InsufficientFunds">InsufficientFunds</a></li><li><a href="#variant.LockTime">LockTime</a></li><li><a href="#variant.MiniscriptPsbt">MiniscriptPsbt</a></li><li><a href="#variant.MissingKeyOrigin">MissingKeyOrigin</a></li><li><a href="#variant.MissingNonWitnessUtxo">MissingNonWitnessUtxo</a></li><li><a href="#variant.NoRecipients">NoRecipients</a></li><li><a href="#variant.NoUtxosSelected">NoUtxosSelected</a></li><li><a href="#variant.OutputBelowDustLimit">OutputBelowDustLimit</a></li><li><a href="#variant.Persist">Persist</a></li><li><a href="#variant.Policy">Policy</a></li><li><a href="#variant.Psbt">Psbt</a></li><li><a href="#variant.RbfSequence">RbfSequence</a></li><li><a href="#variant.RbfSequenceCsv">RbfSequenceCsv</a></li><li><a href="#variant.SpendingPolicyRequired">SpendingPolicyRequired</a></li><li><a href="#variant.UnknownUtxo">UnknownUtxo</a></li><li><a href="#variant.Version0">Version0</a></li><li><a href="#variant.Version1Csv">Version1Csv</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-CreateTxError">Debug</a></li><li><a href="#impl-Display-for-CreateTxError">Display</a></li><li><a href="#impl-Error-for-CreateTxError">Error</a></li><li><a href="#impl-From%3CError%3E-for-CreateTxError">From<Error></a></li><li><a href="#impl-From%3CError%3E-for-CreateTxError-1">From<Error></a></li><li><a href="#impl-From%3CError%3E-for-CreateTxError-2">From<Error></a></li><li><a href="#impl-From%3CMiniscriptPsbtError%3E-for-CreateTxError">From<MiniscriptPsbtError></a></li><li><a href="#impl-From%3CPolicyError%3E-for-CreateTxError">From<PolicyError></a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-CreateTxError">!RefUnwindSafe</a></li><li><a href="#impl-Send-for-CreateTxError">Send</a></li><li><a href="#impl-Sync-for-CreateTxError">Sync</a></li><li><a href="#impl-Unpin-for-CreateTxError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-CreateTxError">!UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-CreateTxError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-CreateTxError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-CreateTxError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-CreateTxError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-CreateTxError">Into<U></a></li><li><a href="#impl-Provider-for-CreateTxError">Provider</a></li><li><a href="#impl-ToString-for-CreateTxError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-CreateTxError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-CreateTxError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-CreateTxError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::error</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">error</a>::<wbr><a class="enum" href="#">CreateTxError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/error.rs.html#50-120">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum CreateTxError {
+<details class="rustdoc-toggle type-contents-toggle"><summary class="hideme"><span>Show 22 variants</span></summary> Descriptor(<a class="enum" href="../../descriptor/error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>),
+ Persist(<a class="struct" href="https://docs.rs/anyhow/1.0.83/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>),
+ Policy(<a class="enum" href="../../descriptor/policy/enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a>),
+ SpendingPolicyRequired(<a class="enum" href="../../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>),
+ Version0,
+ Version1Csv,
+ LockTime {
+ requested: LockTime,
+ required: LockTime,
+ },
+ RbfSequence,
+ RbfSequenceCsv {
+ rbf: Sequence,
+ csv: Sequence,
+ },
+ FeeTooLow {
+ required: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
+ },
+ FeeRateTooLow {
+ required: FeeRate,
+ },
+ NoUtxosSelected,
+ OutputBelowDustLimit(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>),
+ ChangePolicyDescriptor,
+ CoinSelection(<a class="enum" href="../coin_selection/enum.Error.html" title="enum bdk_wallet::wallet::coin_selection::Error">Error</a>),
+ InsufficientFunds {
+ needed: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
+ available: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
+ },
+ NoRecipients,
+ Psbt(Error),
+ MissingKeyOrigin(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>),
+ UnknownUtxo,
+ MissingNonWitnessUtxo(OutPoint),
+ MiniscriptPsbt(<a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk_wallet::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a>),
+</details>}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Error returned from <a href="../tx_builder/struct.TxBuilder.html#method.finish"><code>TxBuilder::finish</code></a></p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Descriptor" class="variant"><a href="#variant.Descriptor" class="anchor">§</a><h3 class="code-header">Descriptor(<a class="enum" href="../../descriptor/error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>)</h3></section><div class="docblock"><p>There was a problem with the descriptors passed in</p>
+</div><section id="variant.Persist" class="variant"><a href="#variant.Persist" class="anchor">§</a><h3 class="code-header">Persist(<a class="struct" href="https://docs.rs/anyhow/1.0.83/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>)</h3></section><div class="docblock"><p>We were unable to load wallet data from or write wallet data to the persistence backend</p>
+</div><section id="variant.Policy" class="variant"><a href="#variant.Policy" class="anchor">§</a><h3 class="code-header">Policy(<a class="enum" href="../../descriptor/policy/enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a>)</h3></section><div class="docblock"><p>There was a problem while extracting and manipulating policies</p>
+</div><section id="variant.SpendingPolicyRequired" class="variant"><a href="#variant.SpendingPolicyRequired" class="anchor">§</a><h3 class="code-header">SpendingPolicyRequired(<a class="enum" href="../../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>)</h3></section><div class="docblock"><p>Spending policy is not compatible with this <a href="../../enum.KeychainKind.html" title="KeychainKind"><code>KeychainKind</code></a></p>
+</div><section id="variant.Version0" class="variant"><a href="#variant.Version0" class="anchor">§</a><h3 class="code-header">Version0</h3></section><div class="docblock"><p>Requested invalid transaction version ‘0’</p>
+</div><section id="variant.Version1Csv" class="variant"><a href="#variant.Version1Csv" class="anchor">§</a><h3 class="code-header">Version1Csv</h3></section><div class="docblock"><p>Requested transaction version <code>1</code>, but at least <code>2</code> is needed to use OP_CSV</p>
+</div><section id="variant.LockTime" class="variant"><a href="#variant.LockTime" class="anchor">§</a><h3 class="code-header">LockTime</h3></section><div class="sub-variant" id="variant.LockTime.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.LockTime.field.requested" class="small-section-header"><a href="#variant.LockTime.field.requested" class="anchor field">§</a><code>requested: LockTime</code></span><div class="docblock"><p>Requested <code>LockTime</code></p>
+</div></div><div class="sub-variant-field"><span id="variant.LockTime.field.required" class="small-section-header"><a href="#variant.LockTime.field.required" class="anchor field">§</a><code>required: LockTime</code></span><div class="docblock"><p>Required <code>LockTime</code></p>
+</div></div></div><div class="docblock"><p>Requested <code>LockTime</code> is less than is required to spend from this script</p>
+</div><section id="variant.RbfSequence" class="variant"><a href="#variant.RbfSequence" class="anchor">§</a><h3 class="code-header">RbfSequence</h3></section><div class="docblock"><p>Cannot enable RBF with a <code>Sequence</code> >= 0xFFFFFFFE</p>
+</div><section id="variant.RbfSequenceCsv" class="variant"><a href="#variant.RbfSequenceCsv" class="anchor">§</a><h3 class="code-header">RbfSequenceCsv</h3></section><div class="sub-variant" id="variant.RbfSequenceCsv.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.RbfSequenceCsv.field.rbf" class="small-section-header"><a href="#variant.RbfSequenceCsv.field.rbf" class="anchor field">§</a><code>rbf: Sequence</code></span><div class="docblock"><p>Given RBF <code>Sequence</code></p>
+</div></div><div class="sub-variant-field"><span id="variant.RbfSequenceCsv.field.csv" class="small-section-header"><a href="#variant.RbfSequenceCsv.field.csv" class="anchor field">§</a><code>csv: Sequence</code></span><div class="docblock"><p>Required OP_CSV <code>Sequence</code></p>
+</div></div></div><div class="docblock"><p>Cannot enable RBF with <code>Sequence</code> given a required OP_CSV</p>
+</div><section id="variant.FeeTooLow" class="variant"><a href="#variant.FeeTooLow" class="anchor">§</a><h3 class="code-header">FeeTooLow</h3></section><div class="sub-variant" id="variant.FeeTooLow.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.FeeTooLow.field.required" class="small-section-header"><a href="#variant.FeeTooLow.field.required" class="anchor field">§</a><code>required: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>Required fee absolute value (satoshi)</p>
+</div></div></div><div class="docblock"><p>When bumping a tx the absolute fee requested is lower than replaced tx absolute fee</p>
+</div><section id="variant.FeeRateTooLow" class="variant"><a href="#variant.FeeRateTooLow" class="anchor">§</a><h3 class="code-header">FeeRateTooLow</h3></section><div class="sub-variant" id="variant.FeeRateTooLow.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.FeeRateTooLow.field.required" class="small-section-header"><a href="#variant.FeeRateTooLow.field.required" class="anchor field">§</a><code>required: FeeRate</code></span><div class="docblock"><p>Required fee rate</p>
+</div></div></div><div class="docblock"><p>When bumping a tx the fee rate requested is lower than required</p>
+</div><section id="variant.NoUtxosSelected" class="variant"><a href="#variant.NoUtxosSelected" class="anchor">§</a><h3 class="code-header">NoUtxosSelected</h3></section><div class="docblock"><p><code>manually_selected_only</code> option is selected but no utxo has been passed</p>
+</div><section id="variant.OutputBelowDustLimit" class="variant"><a href="#variant.OutputBelowDustLimit" class="anchor">§</a><h3 class="code-header">OutputBelowDustLimit(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h3></section><div class="docblock"><p>Output created is under the dust limit, 546 satoshis</p>
+</div><section id="variant.ChangePolicyDescriptor" class="variant"><a href="#variant.ChangePolicyDescriptor" class="anchor">§</a><h3 class="code-header">ChangePolicyDescriptor</h3></section><div class="docblock"><p>The <code>change_policy</code> was set but the wallet does not have a change_descriptor</p>
+</div><section id="variant.CoinSelection" class="variant"><a href="#variant.CoinSelection" class="anchor">§</a><h3 class="code-header">CoinSelection(<a class="enum" href="../coin_selection/enum.Error.html" title="enum bdk_wallet::wallet::coin_selection::Error">Error</a>)</h3></section><div class="docblock"><p>There was an error with coin selection</p>
+</div><section id="variant.InsufficientFunds" class="variant"><a href="#variant.InsufficientFunds" class="anchor">§</a><h3 class="code-header">InsufficientFunds</h3></section><div class="sub-variant" id="variant.InsufficientFunds.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.InsufficientFunds.field.needed" class="small-section-header"><a href="#variant.InsufficientFunds.field.needed" class="anchor field">§</a><code>needed: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>Sats needed for some transaction</p>
+</div></div><div class="sub-variant-field"><span id="variant.InsufficientFunds.field.available" class="small-section-header"><a href="#variant.InsufficientFunds.field.available" class="anchor field">§</a><code>available: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>Sats available for spending</p>
+</div></div></div><div class="docblock"><p>Wallet’s UTXO set is not enough to cover recipient’s requested plus fee</p>
+</div><section id="variant.NoRecipients" class="variant"><a href="#variant.NoRecipients" class="anchor">§</a><h3 class="code-header">NoRecipients</h3></section><div class="docblock"><p>Cannot build a tx without recipients</p>
+</div><section id="variant.Psbt" class="variant"><a href="#variant.Psbt" class="anchor">§</a><h3 class="code-header">Psbt(Error)</h3></section><div class="docblock"><p>Partially signed bitcoin transaction error</p>
+</div><section id="variant.MissingKeyOrigin" class="variant"><a href="#variant.MissingKeyOrigin" class="anchor">§</a><h3 class="code-header">MissingKeyOrigin(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>)</h3></section><div class="docblock"><p>In order to use the <a href="../tx_builder/struct.TxBuilder.html#method.add_global_xpubs"><code>TxBuilder::add_global_xpubs</code></a> option every extended
+key in the descriptor must either be a master key itself (having depth = 0) or have an
+explicit origin provided</p>
+</div><section id="variant.UnknownUtxo" class="variant"><a href="#variant.UnknownUtxo" class="anchor">§</a><h3 class="code-header">UnknownUtxo</h3></section><div class="docblock"><p>Happens when trying to spend an UTXO that is not in the internal database</p>
+</div><section id="variant.MissingNonWitnessUtxo" class="variant"><a href="#variant.MissingNonWitnessUtxo" class="anchor">§</a><h3 class="code-header">MissingNonWitnessUtxo(OutPoint)</h3></section><div class="docblock"><p>Missing non_witness_utxo on foreign utxo for given <code>OutPoint</code></p>
+</div><section id="variant.MiniscriptPsbt" class="variant"><a href="#variant.MiniscriptPsbt" class="anchor">§</a><h3 class="code-header">MiniscriptPsbt(<a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk_wallet::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a>)</h3></section><div class="docblock"><p>Miniscript PSBT error</p>
+</div></div><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><section id="impl-Debug-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#46">source</a><a href="#impl-Debug-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk_wallet::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#46">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#122-212">source</a><a href="#impl-Display-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk_wallet::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#123-211">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#245">source</a><a href="#impl-Error-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk_wallet::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#214-218">source</a><a href="#impl-From%3CError%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="../../descriptor/error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a>> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk_wallet::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#215-217">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="enum" href="../../descriptor/error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">Error</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-CreateTxError-1" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#232-236">source</a><a href="#impl-From%3CError%3E-for-CreateTxError-1" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Error> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk_wallet::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-3" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#233-235">source</a><a href="#method.from-3" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: Error) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-CreateTxError-2" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#238-242">source</a><a href="#impl-From%3CError%3E-for-CreateTxError-2" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="../coin_selection/enum.Error.html" title="enum bdk_wallet::wallet::coin_selection::Error">Error</a>> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk_wallet::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-4" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#239-241">source</a><a href="#method.from-4" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="enum" href="../coin_selection/enum.Error.html" title="enum bdk_wallet::wallet::coin_selection::Error">Error</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CMiniscriptPsbtError%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#226-230">source</a><a href="#impl-From%3CMiniscriptPsbtError%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk_wallet::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a>> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk_wallet::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#227-229">source</a><a href="#method.from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk_wallet::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CPolicyError%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#220-224">source</a><a href="#impl-From%3CPolicyError%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="../../descriptor/policy/enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a>> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk_wallet::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#221-223">source</a><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="enum" href="../../descriptor/policy/enum.PolicyError.html" title="enum bdk_wallet::descriptor::policy::PolicyError">PolicyError</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-CreateTxError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk_wallet::wallet::error::CreateTxError">CreateTxError</a></h3></section><section id="impl-Send-for-CreateTxError" class="impl has-srclink"><a href="#impl-Send-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk_wallet::wallet::error::CreateTxError">CreateTxError</a></h3></section><section id="impl-Sync-for-CreateTxError" class="impl has-srclink"><a href="#impl-Sync-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk_wallet::wallet::error::CreateTxError">CreateTxError</a></h3></section><section id="impl-Unpin-for-CreateTxError" class="impl has-srclink"><a href="#impl-Unpin-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk_wallet::wallet::error::CreateTxError">CreateTxError</a></h3></section><section id="impl-UnwindSafe-for-CreateTxError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk_wallet::wallet::error::CreateTxError">CreateTxError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-5" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-5" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
+provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-CreateTxError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Errors returned by miniscript when updating inconsistent PSBTs"><meta name="keywords" content="rust, rustlang, rust-lang, MiniscriptPsbtError"><title>MiniscriptPsbtError in bdk_wallet::wallet::error - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">MiniscriptPsbtError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Conversion">Conversion</a></li><li><a href="#variant.OutputUpdate">OutputUpdate</a></li><li><a href="#variant.UtxoUpdate">UtxoUpdate</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-MiniscriptPsbtError">Clone</a></li><li><a href="#impl-Debug-for-MiniscriptPsbtError">Debug</a></li><li><a href="#impl-Display-for-MiniscriptPsbtError">Display</a></li><li><a href="#impl-Error-for-MiniscriptPsbtError">Error</a></li><li><a href="#impl-From%3CMiniscriptPsbtError%3E-for-CreateTxError">From<MiniscriptPsbtError></a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-MiniscriptPsbtError">RefUnwindSafe</a></li><li><a href="#impl-Send-for-MiniscriptPsbtError">Send</a></li><li><a href="#impl-Sync-for-MiniscriptPsbtError">Sync</a></li><li><a href="#impl-Unpin-for-MiniscriptPsbtError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-MiniscriptPsbtError">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-MiniscriptPsbtError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-MiniscriptPsbtError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-MiniscriptPsbtError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-MiniscriptPsbtError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-MiniscriptPsbtError">Into<U></a></li><li><a href="#impl-Provider-for-MiniscriptPsbtError">Provider</a></li><li><a href="#impl-ToOwned-for-MiniscriptPsbtError">ToOwned</a></li><li><a href="#impl-ToString-for-MiniscriptPsbtError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-MiniscriptPsbtError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-MiniscriptPsbtError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-MiniscriptPsbtError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::error</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">error</a>::<wbr><a class="enum" href="#">MiniscriptPsbtError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/error.rs.html#24-31">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum MiniscriptPsbtError {
+ Conversion(ConversionError),
+ UtxoUpdate(UtxoUpdateError),
+ OutputUpdate(OutputUpdateError),
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Errors returned by miniscript when updating inconsistent PSBTs</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Conversion" class="variant"><a href="#variant.Conversion" class="anchor">§</a><h3 class="code-header">Conversion(ConversionError)</h3></section><div class="docblock"><p>Descriptor key conversion error</p>
+</div><section id="variant.UtxoUpdate" class="variant"><a href="#variant.UtxoUpdate" class="anchor">§</a><h3 class="code-header">UtxoUpdate(UtxoUpdateError)</h3></section><div class="docblock"><p>Return error type for PsbtExt::update_input_with_descriptor</p>
+</div><section id="variant.OutputUpdate" class="variant"><a href="#variant.OutputUpdate" class="anchor">§</a><h3 class="code-header">OutputUpdate(OutputUpdateError)</h3></section><div class="docblock"><p>Return error type for PsbtExt::update_output_with_descriptor</p>
+</div></div><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><section id="impl-Clone-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#23">source</a><a href="#impl-Clone-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk_wallet::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#23">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk_wallet::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#23">source</a><a href="#impl-Debug-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk_wallet::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#23">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#33-41">source</a><a href="#impl-Display-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk_wallet::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#34-40">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#44">source</a><a href="#impl-Error-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk_wallet::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CMiniscriptPsbtError%3E-for-CreateTxError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#226-230">source</a><a href="#impl-From%3CMiniscriptPsbtError%3E-for-CreateTxError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk_wallet::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a>> for <a class="enum" href="enum.CreateTxError.html" title="enum bdk_wallet::wallet::error::CreateTxError">CreateTxError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/error.rs.html#227-229">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk_wallet::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-MiniscriptPsbtError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk_wallet::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a></h3></section><section id="impl-Send-for-MiniscriptPsbtError" class="impl has-srclink"><a href="#impl-Send-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk_wallet::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a></h3></section><section id="impl-Sync-for-MiniscriptPsbtError" class="impl has-srclink"><a href="#impl-Sync-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk_wallet::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a></h3></section><section id="impl-Unpin-for-MiniscriptPsbtError" class="impl has-srclink"><a href="#impl-Unpin-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk_wallet::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a></h3></section><section id="impl-UnwindSafe-for-MiniscriptPsbtError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.MiniscriptPsbtError.html" title="enum bdk_wallet::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
+provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-MiniscriptPsbtError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-MiniscriptPsbtError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-MiniscriptPsbtError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Errors that can be thrown by the `Wallet`"><meta name="keywords" content="rust, rustlang, rust-lang, error"><title>bdk_wallet::wallet::error - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module error</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#enums">Enums</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a class="mod" href="#">error</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/error.rs.html#12-291">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Errors that can be thrown by the <a href="../struct.Wallet.html"><code>Wallet</code></a></p>
+</div></details><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.BuildFeeBumpError.html" title="bdk_wallet::wallet::error::BuildFeeBumpError enum">BuildFeeBumpError</a></div><div class="item-right docblock-short">Error returned from <a href="../struct.Wallet.html#method.build_fee_bump"><code>Wallet::build_fee_bump</code></a></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.CreateTxError.html" title="bdk_wallet::wallet::error::CreateTxError enum">CreateTxError</a></div><div class="item-right docblock-short">Error returned from <a href="../tx_builder/struct.TxBuilder.html#method.finish"><code>TxBuilder::finish</code></a></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.MiniscriptPsbtError.html" title="bdk_wallet::wallet::error::MiniscriptPsbtError enum">MiniscriptPsbtError</a></div><div class="item-right docblock-short">Errors returned by miniscript when updating inconsistent PSBTs</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+window.SIDEBAR_ITEMS = {"enum":[["BuildFeeBumpError","Error returned from `Wallet::build_fee_bump`"],["CreateTxError","Error returned from `TxBuilder::finish`"],["MiniscriptPsbtError","Errors returned by miniscript when updating inconsistent PSBTs"]]};
\ No newline at end of file
--- /dev/null
+<!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="Wallet export"><meta name="keywords" content="rust, rustlang, rust-lang, export"><title>bdk_wallet::wallet::export - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module export</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#types">Type Definitions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a class="mod" href="#">export</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/export.rs.html#12-341">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Wallet export</p>
+<p>This modules implements the wallet export format used by <a href="https://github.com/Fonta1n3/FullyNoded/blob/10b7808c8b929b171cca537fb50522d015168ac9/Docs/Wallets/Wallet-Export-Spec.md">FullyNoded</a>.</p>
+<h3 id="examples"><a href="#examples">Examples</a></h3><h4 id="import-from-json"><a href="#import-from-json">Import from JSON</a></h4>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>import = <span class="string">r#"{
+ "descriptor": "wpkh([c258d2e4\/84h\/1h\/0h]tpubDD3ynpHgJQW8VvWRzQ5WFDCrs4jqVFGHB3vLC3r49XHJSqP8bHKdK4AriuUKLccK68zfzowx7YhmDN8SiSkgCDENUFx9qVw65YyqM78vyVe\/0\/*)",
+ "blockheight":1782088,
+ "label":"testnet"
+}"#</span>;
+
+<span class="kw">let </span>import = FullyNodedExport::from_str(import)<span class="question-mark">?</span>;
+<span class="kw">let </span>wallet = Wallet::new_no_persist(
+ <span class="kw-2">&</span>import.descriptor(),
+ import.change_descriptor().as_ref(),
+ Network::Testnet,
+)<span class="question-mark">?</span>;</code></pre></div>
+<h4 id="export-a-wallet"><a href="#export-a-wallet">Export a <code>Wallet</code></a></h4>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>wallet = Wallet::new_no_persist(
+ <span class="string">"wpkh([c258d2e4/84h/1h/0h]tpubDD3ynpHgJQW8VvWRzQ5WFDCrs4jqVFGHB3vLC3r49XHJSqP8bHKdK4AriuUKLccK68zfzowx7YhmDN8SiSkgCDENUFx9qVw65YyqM78vyVe/0/*)"</span>,
+ <span class="prelude-val">Some</span>(<span class="string">"wpkh([c258d2e4/84h/1h/0h]tpubDD3ynpHgJQW8VvWRzQ5WFDCrs4jqVFGHB3vLC3r49XHJSqP8bHKdK4AriuUKLccK68zfzowx7YhmDN8SiSkgCDENUFx9qVw65YyqM78vyVe/1/*)"</span>),
+ Network::Testnet,
+)<span class="question-mark">?</span>;
+<span class="kw">let </span>export = FullyNodedExport::export_wallet(<span class="kw-2">&</span>wallet, <span class="string">"exported wallet"</span>, <span class="bool-val">true</span>).unwrap();
+
+<span class="macro">println!</span>(<span class="string">"Exported: {}"</span>, export.to_string());</code></pre></div>
+</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.FullyNodedExport.html" title="bdk_wallet::wallet::export::FullyNodedExport struct">FullyNodedExport</a></div><div class="item-right docblock-short">Structure that contains the export of a wallet</div></div></div><h2 id="types" class="small-section-header"><a href="#types">Type Definitions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="type" href="type.WalletExport.html" title="bdk_wallet::wallet::export::WalletExport type">WalletExport</a><span class="stab deprecated" title="">Deprecated</span></div><div class="item-right docblock-short">Alias for <a href="struct.FullyNodedExport.html" title="FullyNodedExport"><code>FullyNodedExport</code></a></div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+window.SIDEBAR_ITEMS = {"struct":[["FullyNodedExport","Structure that contains the export of a wallet"]],"type":[["WalletExport","Alias for [`FullyNodedExport`]"]]};
\ No newline at end of file
--- /dev/null
+<!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="Structure that contains the export of a wallet"><meta name="keywords" content="rust, rustlang, rust-lang, FullyNodedExport"><title>FullyNodedExport in bdk_wallet::wallet::export - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">FullyNodedExport</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.blockheight">blockheight</a></li><li><a href="#structfield.label">label</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.change_descriptor">change_descriptor</a></li><li><a href="#method.descriptor">descriptor</a></li><li><a href="#method.export_wallet">export_wallet</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-FullyNodedExport">Debug</a></li><li><a href="#impl-Deserialize%3C%27de%3E-for-FullyNodedExport">Deserialize<'de></a></li><li><a href="#impl-Display-for-FullyNodedExport">Display</a></li><li><a href="#impl-FromStr-for-FullyNodedExport">FromStr</a></li><li><a href="#impl-Serialize-for-FullyNodedExport">Serialize</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-FullyNodedExport">RefUnwindSafe</a></li><li><a href="#impl-Send-for-FullyNodedExport">Send</a></li><li><a href="#impl-Sync-for-FullyNodedExport">Sync</a></li><li><a href="#impl-Unpin-for-FullyNodedExport">Unpin</a></li><li><a href="#impl-UnwindSafe-for-FullyNodedExport">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-FullyNodedExport">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-FullyNodedExport">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-FullyNodedExport">BorrowMut<T></a></li><li><a href="#impl-DeserializeOwned-for-FullyNodedExport">DeserializeOwned</a></li><li><a href="#impl-From%3CT%3E-for-FullyNodedExport">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-FullyNodedExport">Into<U></a></li><li><a href="#impl-ToString-for-FullyNodedExport">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-FullyNodedExport">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-FullyNodedExport">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-FullyNodedExport">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::export</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">export</a>::<wbr><a class="struct" href="#">FullyNodedExport</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/export.rs.html#75-81">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct FullyNodedExport {
+ pub blockheight: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
+ pub label: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
+ /* private fields */
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Structure that contains the export of a wallet</p>
+<p>For a usage example see <a href="index.html">this module</a>’s documentation.</p>
+</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.blockheight" class="structfield small-section-header"><a href="#structfield.blockheight" class="anchor field">§</a><code>blockheight: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Earliest block to rescan when looking for the wallet’s transactions</p>
+</div><span id="structfield.label" class="structfield small-section-header"><a href="#structfield.label" class="anchor field">§</a><code>label: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></code></span><div class="docblock"><p>Arbitrary label for the wallet</p>
+</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/export.rs.html#101-211">source</a><a href="#impl-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk_wallet::wallet::export::FullyNodedExport">FullyNodedExport</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.export_wallet" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/export.rs.html#113-163">source</a><h4 class="code-header">pub fn <a href="#method.export_wallet" class="fn">export_wallet</a>(<br> wallet: &<a class="struct" href="../struct.Wallet.html" title="struct bdk_wallet::wallet::Wallet">Wallet</a>,<br> label: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,<br> include_blockheight: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>></h4></section></summary><div class="docblock"><p>Export a wallet</p>
+<p>This function returns an error if it determines that the <code>wallet</code>’s descriptor(s) are not
+supported by Bitcoin Core or don’t follow the standard derivation paths defined by BIP44
+and others.</p>
+<p>If <code>include_blockheight</code> is <code>true</code>, this function will look into the <code>wallet</code>’s database
+for the oldest transaction it knows and use that as the earliest block to rescan.</p>
+<p>If the database is empty or <code>include_blockheight</code> is false, the <code>blockheight</code> field
+returned will be <code>0</code>.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.descriptor" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/export.rs.html#197-199">source</a><h4 class="code-header">pub fn <a href="#method.descriptor" class="fn">descriptor</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class="docblock"><p>Return the external descriptor</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.change_descriptor" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/export.rs.html#202-210">source</a><h4 class="code-header">pub fn <a href="#method.change_descriptor" class="fn">change_descriptor</a>(&self) -> <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="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>></h4></section></summary><div class="docblock"><p>Return the internal descriptor, if present</p>
+</div></details></div></details></div><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><section id="impl-Debug-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/export.rs.html#74">source</a><a href="#impl-Debug-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk_wallet::wallet::export::FullyNodedExport">FullyNodedExport</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/export.rs.html#74">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserialize%3C%27de%3E-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/export.rs.html#74">source</a><a href="#impl-Deserialize%3C%27de%3E-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> for <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk_wallet::wallet::export::FullyNodedExport">FullyNodedExport</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/export.rs.html#74">source</a><a href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize" class="fn">deserialize</a><__D>(__deserializer: __D) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, __D::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>><span class="where fmt-newline">where<br> __D: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/export.rs.html#83-87">source</a><a href="#impl-Display-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk_wallet::wallet::export::FullyNodedExport">FullyNodedExport</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/export.rs.html#84-86">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-FromStr-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/export.rs.html#89-95">source</a><a href="#impl-FromStr-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a> for <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk_wallet::wallet::export::FullyNodedExport">FullyNodedExport</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Err" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Err" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" class="associatedtype">Err</a> = <a class="struct" href="https://docs.rs/serde_json/1.0.117/serde_json/error/struct.Error.html" title="struct serde_json::error::Error">Error</a></h4></section></summary><div class='docblock'>The associated error which can be returned from parsing.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_str" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/export.rs.html#92-94">source</a><a href="#method.from_str" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str" class="fn">from_str</a>(s: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, Self::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err" title="type core::str::traits::FromStr::Err">Err</a>></h4></section></summary><div class='docblock'>Parses a string <code>s</code> to return a value of this type. <a href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#tymethod.from_str">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/export.rs.html#74">source</a><a href="#impl-Serialize-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk_wallet::wallet::export::FullyNodedExport">FullyNodedExport</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/export.rs.html#74">source</a><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><__S>(&self, __serializer: __S) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><__S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, __S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> __S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-FullyNodedExport" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk_wallet::wallet::export::FullyNodedExport">FullyNodedExport</a></h3></section><section id="impl-Send-for-FullyNodedExport" class="impl has-srclink"><a href="#impl-Send-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk_wallet::wallet::export::FullyNodedExport">FullyNodedExport</a></h3></section><section id="impl-Sync-for-FullyNodedExport" class="impl has-srclink"><a href="#impl-Sync-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk_wallet::wallet::export::FullyNodedExport">FullyNodedExport</a></h3></section><section id="impl-Unpin-for-FullyNodedExport" class="impl has-srclink"><a href="#impl-Unpin-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk_wallet::wallet::export::FullyNodedExport">FullyNodedExport</a></h3></section><section id="impl-UnwindSafe-for-FullyNodedExport" class="impl has-srclink"><a href="#impl-UnwindSafe-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk_wallet::wallet::export::FullyNodedExport">FullyNodedExport</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-FullyNodedExport" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details><section id="impl-DeserializeOwned-for-FullyNodedExport" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/serde/1.0.201/src/serde/de/mod.rs.html#608">source</a><a href="#impl-DeserializeOwned-for-FullyNodedExport" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> for T<span class="where fmt-newline">where<br> T: for<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de>,</span></h3></section></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Alias for [`FullyNodedExport`]"><meta name="keywords" content="rust, rustlang, rust-lang, WalletExport"><title>WalletExport in bdk_wallet::wallet::export - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">WalletExport</a></h2><div class="sidebar-elems"><h2><a href="index.html">In bdk_wallet::wallet::export</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">export</a>::<wbr><a class="type" href="#">WalletExport</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/export.rs.html#69">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub type WalletExport = <a class="struct" href="struct.FullyNodedExport.html" title="struct bdk_wallet::wallet::export::FullyNodedExport">FullyNodedExport</a>;</code></pre></div><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 0.18.0: Please use [<code>FullyNodedExport</code>] instead</span></div></span><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Alias for <a href="struct.FullyNodedExport.html" title="FullyNodedExport"><code>FullyNodedExport</code></a></p>
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Deterministically generate a unique name given the descriptors defining the wallet"><meta name="keywords" content="rust, rustlang, rust-lang, wallet_name_from_descriptor"><title>wallet_name_from_descriptor in bdk_wallet::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In bdk_wallet::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="fn" href="#">wallet_name_from_descriptor</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/wallet/mod.rs.html#2595-2621">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn wallet_name_from_descriptor<T>(<br> descriptor: T,<br> change_descriptor: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><T>,<br> network: Network,<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="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>><span class="where fmt-newline">where<br> T: <a class="trait" href="../descriptor/trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a>,</span></code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Deterministically generate a unique name given the descriptors defining the wallet</p>
+<p>Compatible with <a href="fn.wallet_name_from_descriptor.html" title="wallet_name_from_descriptor"><code>wallet_name_from_descriptor</code></a></p>
+</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Wallet"><meta name="keywords" content="rust, rustlang, rust-lang, wallet"><title>bdk_wallet::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module wallet</a></h2><div class="sidebar-elems"><section><ul class="block"><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="#functions">Functions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../index.html">bdk_wallet</a>::<wbr><a class="mod" href="#">wallet</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/wallet/mod.rs.html#12-2708">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Wallet</p>
+<p>This module defines the <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>.</p>
+</div></details><h2 id="modules" class="small-section-header"><a href="#modules">Modules</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="mod" href="coin_selection/index.html" title="bdk_wallet::wallet::coin_selection mod">coin_selection</a></div><div class="item-right docblock-short">Coin selection</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="error/index.html" title="bdk_wallet::wallet::error mod">error</a></div><div class="item-right docblock-short">Errors that can be thrown by the <a href="struct.Wallet.html"><code>Wallet</code></a></div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="export/index.html" title="bdk_wallet::wallet::export mod">export</a></div><div class="item-right docblock-short">Wallet export</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="signer/index.html" title="bdk_wallet::wallet::signer mod">signer</a></div><div class="item-right docblock-short">Generalized signers</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="tx_builder/index.html" title="bdk_wallet::wallet::tx_builder mod">tx_builder</a></div><div class="item-right docblock-short">Transaction builder</div></div></div><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.AddressInfo.html" title="bdk_wallet::wallet::AddressInfo struct">AddressInfo</a></div><div class="item-right docblock-short">A derived address and the index it was found at.
+For convenience this automatically derefs to <code>Address</code></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Balance.html" title="bdk_wallet::wallet::Balance struct">Balance</a></div><div class="item-right docblock-short">Balance, differentiated into various categories.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.ChangeSet.html" title="bdk_wallet::wallet::ChangeSet struct">ChangeSet</a></div><div class="item-right docblock-short">The changes made to a wallet by applying an <a href="struct.Update.html" title="Update"><code>Update</code></a>.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Update.html" title="bdk_wallet::wallet::Update struct">Update</a></div><div class="item-right docblock-short">An update to <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Wallet.html" title="bdk_wallet::wallet::Wallet struct">Wallet</a></div><div class="item-right docblock-short">A Bitcoin wallet</div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.ApplyBlockError.html" title="bdk_wallet::wallet::ApplyBlockError enum">ApplyBlockError</a></div><div class="item-right docblock-short">An error that may occur when applying a block to <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>.</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.InsertTxError.html" title="bdk_wallet::wallet::InsertTxError enum">InsertTxError</a></div><div class="item-right docblock-short">An error that may occur when inserting a transaction into <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>.</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.LoadError.html" title="bdk_wallet::wallet::LoadError enum">LoadError</a></div><div class="item-right docblock-short">The error type when loading a <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a> from persistence.</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.NewError.html" title="bdk_wallet::wallet::NewError enum">NewError</a></div><div class="item-right docblock-short">The error type when constructing a fresh <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>.</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.NewOrLoadError.html" title="bdk_wallet::wallet::NewOrLoadError enum">NewOrLoadError</a></div><div class="item-right docblock-short">Error type for when we try load a <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a> from persistence and creating it if non-existent.</div></div></div><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.IsDust.html" title="bdk_wallet::wallet::IsDust trait">IsDust</a></div><div class="item-right docblock-short">Trait to check if a value is below the dust limit.
+We are performing dust value calculation for a given script public key using rust-bitcoin to
+keep it compatible with network dust rate</div></div></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.wallet_name_from_descriptor.html" title="bdk_wallet::wallet::wallet_name_from_descriptor fn">wallet_name_from_descriptor</a></div><div class="item-right docblock-short">Deterministically generate a unique name given the descriptors defining the wallet</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+window.SIDEBAR_ITEMS = {"enum":[["ApplyBlockError","An error that may occur when applying a block to [`Wallet`]."],["InsertTxError","An error that may occur when inserting a transaction into [`Wallet`]."],["LoadError","The error type when loading a [`Wallet`] from persistence."],["NewError","The error type when constructing a fresh [`Wallet`]."],["NewOrLoadError","Error type for when we try load a [`Wallet`] from persistence and creating it if non-existent."]],"fn":[["wallet_name_from_descriptor","Deterministically generate a unique name given the descriptors defining the wallet"]],"mod":[["coin_selection","Coin selection"],["error","Errors that can be thrown by the `Wallet`"],["export","Wallet export"],["signer","Generalized signers"],["tx_builder","Transaction builder"]],"struct":[["AddressInfo","A derived address and the index it was found at. For convenience this automatically derefs to `Address`"],["Balance","Balance, differentiated into various categories."],["ChangeSet","The changes made to a wallet by applying an [`Update`]."],["Update","An update to [`Wallet`]."],["Wallet","A Bitcoin wallet"]],"trait":[["IsDust","Trait to check if a value is below the dust limit. We are performing dust value calculation for a given script public key using rust-bitcoin to keep it compatible with network dust rate"]]};
\ No newline at end of file
--- /dev/null
+<!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="Signing context"><meta name="keywords" content="rust, rustlang, rust-lang, SignerContext"><title>SignerContext in bdk_wallet::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SignerContext</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Legacy">Legacy</a></li><li><a href="#variant.Segwitv0">Segwitv0</a></li><li><a href="#variant.Tap">Tap</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-SignerContext">Clone</a></li><li><a href="#impl-Copy-for-SignerContext">Copy</a></li><li><a href="#impl-Debug-for-SignerContext">Debug</a></li><li><a href="#impl-Eq-for-SignerContext">Eq</a></li><li><a href="#impl-PartialEq%3CSignerContext%3E-for-SignerContext">PartialEq<SignerContext></a></li><li><a href="#impl-StructuralEq-for-SignerContext">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-SignerContext">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SignerContext">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SignerContext">Send</a></li><li><a href="#impl-Sync-for-SignerContext">Sync</a></li><li><a href="#impl-Unpin-for-SignerContext">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SignerContext">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SignerContext">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SignerContext">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SignerContext">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SignerContext">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SignerContext">Into<U></a></li><li><a href="#impl-ToOwned-for-SignerContext">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SignerContext">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SignerContext">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SignerContext">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::signer</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">signer</a>::<wbr><a class="enum" href="#">SignerContext</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/signer.rs.html#205-215">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum SignerContext {
+ Legacy,
+ Segwitv0,
+ Tap {
+ is_internal_key: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
+ },
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Signing context</p>
+<p>Used by our software signers to determine the type of signatures to make</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Legacy" class="variant"><a href="#variant.Legacy" class="anchor">§</a><h3 class="code-header">Legacy</h3></section><div class="docblock"><p>Legacy context</p>
+</div><section id="variant.Segwitv0" class="variant"><a href="#variant.Segwitv0" class="anchor">§</a><h3 class="code-header">Segwitv0</h3></section><div class="docblock"><p>Segwit v0 context (BIP 143)</p>
+</div><section id="variant.Tap" class="variant"><a href="#variant.Tap" class="anchor">§</a><h3 class="code-header">Tap</h3></section><div class="sub-variant" id="variant.Tap.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Tap.field.is_internal_key" class="small-section-header"><a href="#variant.Tap.field.is_internal_key" class="anchor field">§</a><code>is_internal_key: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether the signer can sign for the internal key or not</p>
+</div></div></div><div class="docblock"><p>Taproot context (BIP 340)</p>
+</div></div><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><section id="impl-Clone-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#204">source</a><a href="#impl-Clone-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.SignerContext.html" title="enum bdk_wallet::wallet::signer::SignerContext">SignerContext</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#204">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.SignerContext.html" title="enum bdk_wallet::wallet::signer::SignerContext">SignerContext</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#204">source</a><a href="#impl-Debug-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.SignerContext.html" title="enum bdk_wallet::wallet::signer::SignerContext">SignerContext</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#204">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CSignerContext%3E-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#204">source</a><a href="#impl-PartialEq%3CSignerContext%3E-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.SignerContext.html" title="enum bdk_wallet::wallet::signer::SignerContext">SignerContext</a>> for <a class="enum" href="enum.SignerContext.html" title="enum bdk_wallet::wallet::signer::SignerContext">SignerContext</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#204">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.SignerContext.html" title="enum bdk_wallet::wallet::signer::SignerContext">SignerContext</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><section id="impl-Copy-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#204">source</a><a href="#impl-Copy-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum.SignerContext.html" title="enum bdk_wallet::wallet::signer::SignerContext">SignerContext</a></h3></section><section id="impl-Eq-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#204">source</a><a href="#impl-Eq-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.SignerContext.html" title="enum bdk_wallet::wallet::signer::SignerContext">SignerContext</a></h3></section><section id="impl-StructuralEq-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#204">source</a><a href="#impl-StructuralEq-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.SignerContext.html" title="enum bdk_wallet::wallet::signer::SignerContext">SignerContext</a></h3></section><section id="impl-StructuralPartialEq-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#204">source</a><a href="#impl-StructuralPartialEq-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.SignerContext.html" title="enum bdk_wallet::wallet::signer::SignerContext">SignerContext</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SignerContext" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.SignerContext.html" title="enum bdk_wallet::wallet::signer::SignerContext">SignerContext</a></h3></section><section id="impl-Send-for-SignerContext" class="impl has-srclink"><a href="#impl-Send-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.SignerContext.html" title="enum bdk_wallet::wallet::signer::SignerContext">SignerContext</a></h3></section><section id="impl-Sync-for-SignerContext" class="impl has-srclink"><a href="#impl-Sync-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.SignerContext.html" title="enum bdk_wallet::wallet::signer::SignerContext">SignerContext</a></h3></section><section id="impl-Unpin-for-SignerContext" class="impl has-srclink"><a href="#impl-Unpin-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.SignerContext.html" title="enum bdk_wallet::wallet::signer::SignerContext">SignerContext</a></h3></section><section id="impl-UnwindSafe-for-SignerContext" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.SignerContext.html" title="enum bdk_wallet::wallet::signer::SignerContext">SignerContext</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SignerContext" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SignerContext" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SignerContext" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Signing error"><meta name="keywords" content="rust, rustlang, rust-lang, SignerError"><title>SignerError in bdk_wallet::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SignerError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.External">External</a></li><li><a href="#variant.InputIndexOutOfRange">InputIndexOutOfRange</a></li><li><a href="#variant.InvalidKey">InvalidKey</a></li><li><a href="#variant.InvalidNonWitnessUtxo">InvalidNonWitnessUtxo</a></li><li><a href="#variant.InvalidSighash">InvalidSighash</a></li><li><a href="#variant.MiniscriptPsbt">MiniscriptPsbt</a></li><li><a href="#variant.MissingHdKeypath">MissingHdKeypath</a></li><li><a href="#variant.MissingKey">MissingKey</a></li><li><a href="#variant.MissingNonWitnessUtxo">MissingNonWitnessUtxo</a></li><li><a href="#variant.MissingWitnessScript">MissingWitnessScript</a></li><li><a href="#variant.MissingWitnessUtxo">MissingWitnessUtxo</a></li><li><a href="#variant.NonStandardSighash">NonStandardSighash</a></li><li><a href="#variant.SighashError">SighashError</a></li><li><a href="#variant.UserCanceled">UserCanceled</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-SignerError">Debug</a></li><li><a href="#impl-Display-for-SignerError">Display</a></li><li><a href="#impl-Error-for-SignerError">Error</a></li><li><a href="#impl-From%3CError%3E-for-SignerError">From<Error></a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SignerError">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SignerError">Send</a></li><li><a href="#impl-Sync-for-SignerError">Sync</a></li><li><a href="#impl-Unpin-for-SignerError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SignerError">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SignerError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SignerError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SignerError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SignerError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SignerError">Into<U></a></li><li><a href="#impl-Provider-for-SignerError">Provider</a></li><li><a href="#impl-ToString-for-SignerError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SignerError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SignerError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SignerError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::signer</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">signer</a>::<wbr><a class="enum" href="#">SignerError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/signer.rs.html#134-169">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum SignerError {
+<details class="rustdoc-toggle type-contents-toggle"><summary class="hideme"><span>Show 14 variants</span></summary> MissingKey,
+ InvalidKey,
+ UserCanceled,
+ InputIndexOutOfRange,
+ MissingNonWitnessUtxo,
+ InvalidNonWitnessUtxo,
+ MissingWitnessUtxo,
+ MissingWitnessScript,
+ MissingHdKeypath,
+ NonStandardSighash,
+ InvalidSighash,
+ SighashError(Error),
+ MiniscriptPsbt(<a class="enum" href="../error/enum.MiniscriptPsbtError.html" title="enum bdk_wallet::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a>),
+ External(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>),
+</details>}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Signing error</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.MissingKey" class="variant"><a href="#variant.MissingKey" class="anchor">§</a><h3 class="code-header">MissingKey</h3></section><div class="docblock"><p>The private key is missing for the required public key</p>
+</div><section id="variant.InvalidKey" class="variant"><a href="#variant.InvalidKey" class="anchor">§</a><h3 class="code-header">InvalidKey</h3></section><div class="docblock"><p>The private key in use has the right fingerprint but derives differently than expected</p>
+</div><section id="variant.UserCanceled" class="variant"><a href="#variant.UserCanceled" class="anchor">§</a><h3 class="code-header">UserCanceled</h3></section><div class="docblock"><p>The user canceled the operation</p>
+</div><section id="variant.InputIndexOutOfRange" class="variant"><a href="#variant.InputIndexOutOfRange" class="anchor">§</a><h3 class="code-header">InputIndexOutOfRange</h3></section><div class="docblock"><p>Input index is out of range</p>
+</div><section id="variant.MissingNonWitnessUtxo" class="variant"><a href="#variant.MissingNonWitnessUtxo" class="anchor">§</a><h3 class="code-header">MissingNonWitnessUtxo</h3></section><div class="docblock"><p>The <code>non_witness_utxo</code> field of the transaction is required to sign this input</p>
+</div><section id="variant.InvalidNonWitnessUtxo" class="variant"><a href="#variant.InvalidNonWitnessUtxo" class="anchor">§</a><h3 class="code-header">InvalidNonWitnessUtxo</h3></section><div class="docblock"><p>The <code>non_witness_utxo</code> specified is invalid</p>
+</div><section id="variant.MissingWitnessUtxo" class="variant"><a href="#variant.MissingWitnessUtxo" class="anchor">§</a><h3 class="code-header">MissingWitnessUtxo</h3></section><div class="docblock"><p>The <code>witness_utxo</code> field of the transaction is required to sign this input</p>
+</div><section id="variant.MissingWitnessScript" class="variant"><a href="#variant.MissingWitnessScript" class="anchor">§</a><h3 class="code-header">MissingWitnessScript</h3></section><div class="docblock"><p>The <code>witness_script</code> field of the transaction is required to sign this input</p>
+</div><section id="variant.MissingHdKeypath" class="variant"><a href="#variant.MissingHdKeypath" class="anchor">§</a><h3 class="code-header">MissingHdKeypath</h3></section><div class="docblock"><p>The fingerprint and derivation path are missing from the psbt input</p>
+</div><section id="variant.NonStandardSighash" class="variant"><a href="#variant.NonStandardSighash" class="anchor">§</a><h3 class="code-header">NonStandardSighash</h3></section><div class="docblock"><p>The psbt contains a non-<code>SIGHASH_ALL</code> sighash in one of its input and the user hasn’t
+explicitly allowed them</p>
+<p>To enable signing transactions with non-standard sighashes set
+<a href="struct.SignOptions.html#structfield.allow_all_sighashes" title="SignOptions::allow_all_sighashes"><code>SignOptions::allow_all_sighashes</code></a> to <code>true</code>.</p>
+</div><section id="variant.InvalidSighash" class="variant"><a href="#variant.InvalidSighash" class="anchor">§</a><h3 class="code-header">InvalidSighash</h3></section><div class="docblock"><p>Invalid SIGHASH for the signing context in use</p>
+</div><section id="variant.SighashError" class="variant"><a href="#variant.SighashError" class="anchor">§</a><h3 class="code-header">SighashError(Error)</h3></section><div class="docblock"><p>Error while computing the hash to sign</p>
+</div><section id="variant.MiniscriptPsbt" class="variant"><a href="#variant.MiniscriptPsbt" class="anchor">§</a><h3 class="code-header">MiniscriptPsbt(<a class="enum" href="../error/enum.MiniscriptPsbtError.html" title="enum bdk_wallet::wallet::error::MiniscriptPsbtError">MiniscriptPsbtError</a>)</h3></section><div class="docblock"><p>Miniscript PSBT error</p>
+</div><section id="variant.External" class="variant"><a href="#variant.External" class="anchor">§</a><h3 class="code-header">External(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>)</h3></section><div class="docblock"><p>To be used only by external libraries implementing <a href="trait.InputSigner.html" title="InputSigner"><code>InputSigner</code></a> or
+<a href="trait.TransactionSigner.html" title="TransactionSigner"><code>TransactionSigner</code></a>, so that they can return their own custom errors, without having to
+modify <a href="enum.SignerError.html" title="SignerError"><code>SignerError</code></a> in BDK.</p>
+</div></div><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><section id="impl-Debug-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#133">source</a><a href="#impl-Debug-for-SignerError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.SignerError.html" title="enum bdk_wallet::wallet::signer::SignerError">SignerError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#133">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#177-196">source</a><a href="#impl-Display-for-SignerError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.SignerError.html" title="enum bdk_wallet::wallet::signer::SignerError">SignerError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#178-195">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#199">source</a><a href="#impl-Error-for-SignerError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.SignerError.html" title="enum bdk_wallet::wallet::signer::SignerError">SignerError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#171-175">source</a><a href="#impl-From%3CError%3E-for-SignerError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Error> for <a class="enum" href="enum.SignerError.html" title="enum bdk_wallet::wallet::signer::SignerError">SignerError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#172-174">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(e: Error) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SignerError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SignerError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.SignerError.html" title="enum bdk_wallet::wallet::signer::SignerError">SignerError</a></h3></section><section id="impl-Send-for-SignerError" class="impl has-srclink"><a href="#impl-Send-for-SignerError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.SignerError.html" title="enum bdk_wallet::wallet::signer::SignerError">SignerError</a></h3></section><section id="impl-Sync-for-SignerError" class="impl has-srclink"><a href="#impl-Sync-for-SignerError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.SignerError.html" title="enum bdk_wallet::wallet::signer::SignerError">SignerError</a></h3></section><section id="impl-Unpin-for-SignerError" class="impl has-srclink"><a href="#impl-Unpin-for-SignerError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.SignerError.html" title="enum bdk_wallet::wallet::signer::SignerError">SignerError</a></h3></section><section id="impl-UnwindSafe-for-SignerError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SignerError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.SignerError.html" title="enum bdk_wallet::wallet::signer::SignerError">SignerError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SignerError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SignerError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SignerError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SignerError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SignerError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-SignerError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
+provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-SignerError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SignerError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SignerError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SignerError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SignerError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SignerError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Identifier of a signer in the `SignersContainers`. Used as a key to find the right signer among multiple of them"><meta name="keywords" content="rust, rustlang, rust-lang, SignerId"><title>SignerId in bdk_wallet::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SignerId</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Dummy">Dummy</a></li><li><a href="#variant.Fingerprint">Fingerprint</a></li><li><a href="#variant.PkHash">PkHash</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-SignerId">Clone</a></li><li><a href="#impl-Debug-for-SignerId">Debug</a></li><li><a href="#impl-Eq-for-SignerId">Eq</a></li><li><a href="#impl-From%3CFingerprint%3E-for-SignerId">From<Fingerprint></a></li><li><a href="#impl-From%3CHash%3E-for-SignerId">From<Hash></a></li><li><a href="#impl-Hash-for-SignerId">Hash</a></li><li><a href="#impl-Ord-for-SignerId">Ord</a></li><li><a href="#impl-PartialEq%3CSignerId%3E-for-SignerId">PartialEq<SignerId></a></li><li><a href="#impl-PartialOrd%3CSignerId%3E-for-SignerId">PartialOrd<SignerId></a></li><li><a href="#impl-StructuralEq-for-SignerId">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-SignerId">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SignerId">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SignerId">Send</a></li><li><a href="#impl-Sync-for-SignerId">Sync</a></li><li><a href="#impl-Unpin-for-SignerId">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SignerId">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SignerId">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SignerId">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SignerId">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SignerId">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SignerId">Into<U></a></li><li><a href="#impl-ToOwned-for-SignerId">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SignerId">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SignerId">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SignerId">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::signer</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">signer</a>::<wbr><a class="enum" href="#">SignerId</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/signer.rs.html#111-118">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum SignerId {
+ PkHash(Hash),
+ Fingerprint(Fingerprint),
+ Dummy(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>),
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Identifier of a signer in the <code>SignersContainers</code>. Used as a key to find the right signer among
+multiple of them</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.PkHash" class="variant"><a href="#variant.PkHash" class="anchor">§</a><h3 class="code-header">PkHash(Hash)</h3></section><div class="docblock"><p>Bitcoin HASH160 (RIPEMD160 after SHA256) hash of an ECDSA public key</p>
+</div><section id="variant.Fingerprint" class="variant"><a href="#variant.Fingerprint" class="anchor">§</a><h3 class="code-header">Fingerprint(Fingerprint)</h3></section><div class="docblock"><p>The fingerprint of a BIP32 extended key</p>
+</div><section id="variant.Dummy" class="variant"><a href="#variant.Dummy" class="anchor">§</a><h3 class="code-header">Dummy(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>)</h3></section><div class="docblock"><p>Dummy identifier</p>
+</div></div><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><section id="impl-Clone-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#110">source</a><a href="#impl-Clone-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#110">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#110">source</a><a href="#impl-Debug-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#110">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CFingerprint%3E-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#126-130">source</a><a href="#impl-From%3CFingerprint%3E-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Fingerprint> for <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#127-129">source</a><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(fing: Fingerprint) -> <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CHash%3E-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#120-124">source</a><a href="#impl-From%3CHash%3E-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><Hash> for <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#121-123">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(hash: Hash) -> <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#110">source</a><a href="#impl-Hash-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#110">source</a><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)</h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#110">source</a><a href="#impl-Ord-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#110">source</a><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CSignerId%3E-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#110">source</a><a href="#impl-PartialEq%3CSignerId%3E-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a>> for <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#110">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CSignerId%3E-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#110">source</a><a href="#impl-PartialOrd%3CSignerId%3E-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a>> for <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#110">source</a><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><section id="impl-Eq-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#110">source</a><a href="#impl-Eq-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a></h3></section><section id="impl-StructuralEq-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#110">source</a><a href="#impl-StructuralEq-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a></h3></section><section id="impl-StructuralPartialEq-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#110">source</a><a href="#impl-StructuralPartialEq-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SignerId" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a></h3></section><section id="impl-Send-for-SignerId" class="impl has-srclink"><a href="#impl-Send-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a></h3></section><section id="impl-Sync-for-SignerId" class="impl has-srclink"><a href="#impl-Sync-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a></h3></section><section id="impl-Unpin-for-SignerId" class="impl has-srclink"><a href="#impl-Unpin-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a></h3></section><section id="impl-UnwindSafe-for-SignerId" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SignerId" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SignerId" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SignerId" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SignerId" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SignerId" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SignerId" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-SignerId" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SignerId" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SignerId" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SignerId" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SignerId" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SignerId" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Customize which taproot script-path leaves the signer should sign."><meta name="keywords" content="rust, rustlang, rust-lang, TapLeavesOptions"><title>TapLeavesOptions in bdk_wallet::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">TapLeavesOptions</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.All">All</a></li><li><a href="#variant.Exclude">Exclude</a></li><li><a href="#variant.Include">Include</a></li><li><a href="#variant.None">None</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-TapLeavesOptions">Clone</a></li><li><a href="#impl-Debug-for-TapLeavesOptions">Debug</a></li><li><a href="#impl-Default-for-TapLeavesOptions">Default</a></li><li><a href="#impl-Eq-for-TapLeavesOptions">Eq</a></li><li><a href="#impl-PartialEq%3CTapLeavesOptions%3E-for-TapLeavesOptions">PartialEq<TapLeavesOptions></a></li><li><a href="#impl-StructuralEq-for-TapLeavesOptions">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-TapLeavesOptions">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-TapLeavesOptions">RefUnwindSafe</a></li><li><a href="#impl-Send-for-TapLeavesOptions">Send</a></li><li><a href="#impl-Sync-for-TapLeavesOptions">Sync</a></li><li><a href="#impl-Unpin-for-TapLeavesOptions">Unpin</a></li><li><a href="#impl-UnwindSafe-for-TapLeavesOptions">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-TapLeavesOptions">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-TapLeavesOptions">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-TapLeavesOptions">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-TapLeavesOptions">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-TapLeavesOptions">Into<U></a></li><li><a href="#impl-ToOwned-for-TapLeavesOptions">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-TapLeavesOptions">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-TapLeavesOptions">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-TapLeavesOptions">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::signer</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">signer</a>::<wbr><a class="enum" href="#">TapLeavesOptions</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/signer.rs.html#819-830">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum TapLeavesOptions {
+ All,
+ Include(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><TapLeafHash>),
+ Exclude(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><TapLeafHash>),
+ None,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Customize which taproot script-path leaves the signer should sign.</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.All" class="variant"><a href="#variant.All" class="anchor">§</a><h3 class="code-header">All</h3></section><div class="docblock"><p>The signer will sign all the leaves it has a key for.</p>
+</div><section id="variant.Include" class="variant"><a href="#variant.Include" class="anchor">§</a><h3 class="code-header">Include(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><TapLeafHash>)</h3></section><div class="docblock"><p>The signer won’t sign leaves other than the ones specified. Note that it could still ignore
+some of the specified leaves, if it doesn’t have the right key to sign them.</p>
+</div><section id="variant.Exclude" class="variant"><a href="#variant.Exclude" class="anchor">§</a><h3 class="code-header">Exclude(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><TapLeafHash>)</h3></section><div class="docblock"><p>The signer won’t sign the specified leaves.</p>
+</div><section id="variant.None" class="variant"><a href="#variant.None" class="anchor">§</a><h3 class="code-header">None</h3></section><div class="docblock"><p>The signer won’t sign any leaf.</p>
+</div></div><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><section id="impl-Clone-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#818">source</a><a href="#impl-Clone-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk_wallet::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#818">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk_wallet::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#818">source</a><a href="#impl-Debug-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk_wallet::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#818">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#818">source</a><a href="#impl-Default-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk_wallet::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#818">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk_wallet::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CTapLeavesOptions%3E-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#818">source</a><a href="#impl-PartialEq%3CTapLeavesOptions%3E-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk_wallet::wallet::signer::TapLeavesOptions">TapLeavesOptions</a>> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk_wallet::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#818">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk_wallet::wallet::signer::TapLeavesOptions">TapLeavesOptions</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><section id="impl-Eq-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#818">source</a><a href="#impl-Eq-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk_wallet::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section><section id="impl-StructuralEq-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#818">source</a><a href="#impl-StructuralEq-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk_wallet::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section><section id="impl-StructuralPartialEq-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#818">source</a><a href="#impl-StructuralPartialEq-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk_wallet::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-TapLeavesOptions" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk_wallet::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section><section id="impl-Send-for-TapLeavesOptions" class="impl has-srclink"><a href="#impl-Send-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk_wallet::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section><section id="impl-Sync-for-TapLeavesOptions" class="impl has-srclink"><a href="#impl-Sync-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk_wallet::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section><section id="impl-Unpin-for-TapLeavesOptions" class="impl has-srclink"><a href="#impl-Unpin-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk_wallet::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section><section id="impl-UnwindSafe-for-TapLeavesOptions" class="impl has-srclink"><a href="#impl-UnwindSafe-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk_wallet::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-TapLeavesOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-TapLeavesOptions" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-TapLeavesOptions" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Generalized signers"><meta name="keywords" content="rust, rustlang, rust-lang, signer"><title>bdk_wallet::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module signer</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#traits">Traits</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a class="mod" href="#">signer</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/signer.rs.html#12-1193">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Generalized signers</p>
+<p>This module provides the ability to add customized signers to a <a href="../struct.Wallet.html"><code>Wallet</code></a>
+through the <a href="../struct.Wallet.html#method.add_signer"><code>Wallet::add_signer</code></a> function.</p>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#[derive(Debug)]
+</span><span class="kw">struct </span>CustomSigner {
+ device: CustomHSM,
+}
+
+<span class="kw">impl </span>CustomSigner {
+ <span class="kw">fn </span>connect() -> <span class="self">Self </span>{
+ CustomSigner { device: CustomHSM::connect() }
+ }
+}
+
+<span class="kw">impl </span>SignerCommon <span class="kw">for </span>CustomSigner {
+ <span class="kw">fn </span>id(<span class="kw-2">&</span><span class="self">self</span>, _secp: <span class="kw-2">&</span>Secp256k1<All>) -> SignerId {
+ <span class="self">self</span>.device.get_id()
+ }
+}
+
+<span class="kw">impl </span>InputSigner <span class="kw">for </span>CustomSigner {
+ <span class="kw">fn </span>sign_input(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ psbt: <span class="kw-2">&mut </span>Psbt,
+ input_index: usize,
+ _sign_options: <span class="kw-2">&</span>SignOptions,
+ _secp: <span class="kw-2">&</span>Secp256k1<All>,
+ ) -> <span class="prelude-ty">Result</span><(), SignerError> {
+ <span class="self">self</span>.device.hsm_sign_input(psbt, input_index)<span class="question-mark">?</span>;
+
+ <span class="prelude-val">Ok</span>(())
+ }
+}
+
+<span class="kw">let </span>custom_signer = CustomSigner::connect();
+
+<span class="kw">let </span>descriptor = <span class="string">"wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/*)"</span>;
+<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(descriptor, <span class="prelude-val">None</span>, Network::Testnet)<span class="question-mark">?</span>;
+wallet.add_signer(
+ KeychainKind::External,
+ SignerOrdering(<span class="number">200</span>),
+ Arc::new(custom_signer)
+);
+</code></pre></div>
+</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.SignOptions.html" title="bdk_wallet::wallet::signer::SignOptions struct">SignOptions</a></div><div class="item-right docblock-short">Options for a software signer</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.SignerOrdering.html" title="bdk_wallet::wallet::signer::SignerOrdering struct">SignerOrdering</a></div><div class="item-right docblock-short">Defines the order in which signers are called</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.SignerWrapper.html" title="bdk_wallet::wallet::signer::SignerWrapper struct">SignerWrapper</a></div><div class="item-right docblock-short">Wrapper to pair a signer with its context</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.SignersContainer.html" title="bdk_wallet::wallet::signer::SignersContainer struct">SignersContainer</a></div><div class="item-right docblock-short">Container for multiple signers</div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.SignerContext.html" title="bdk_wallet::wallet::signer::SignerContext enum">SignerContext</a></div><div class="item-right docblock-short">Signing context</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.SignerError.html" title="bdk_wallet::wallet::signer::SignerError enum">SignerError</a></div><div class="item-right docblock-short">Signing error</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.SignerId.html" title="bdk_wallet::wallet::signer::SignerId enum">SignerId</a></div><div class="item-right docblock-short">Identifier of a signer in the <code>SignersContainers</code>. Used as a key to find the right signer among
+multiple of them</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.TapLeavesOptions.html" title="bdk_wallet::wallet::signer::TapLeavesOptions enum">TapLeavesOptions</a></div><div class="item-right docblock-short">Customize which taproot script-path leaves the signer should sign.</div></div></div><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.InputSigner.html" title="bdk_wallet::wallet::signer::InputSigner trait">InputSigner</a></div><div class="item-right docblock-short">PSBT Input signer</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.SignerCommon.html" title="bdk_wallet::wallet::signer::SignerCommon trait">SignerCommon</a></div><div class="item-right docblock-short">Common signer methods</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.TransactionSigner.html" title="bdk_wallet::wallet::signer::TransactionSigner trait">TransactionSigner</a></div><div class="item-right docblock-short">PSBT signer</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+window.SIDEBAR_ITEMS = {"enum":[["SignerContext","Signing context"],["SignerError","Signing error"],["SignerId","Identifier of a signer in the `SignersContainers`. Used as a key to find the right signer among multiple of them"],["TapLeavesOptions","Customize which taproot script-path leaves the signer should sign."]],"struct":[["SignOptions","Options for a software signer"],["SignerOrdering","Defines the order in which signers are called"],["SignerWrapper","Wrapper to pair a signer with its context"],["SignersContainer","Container for multiple signers"]],"trait":[["InputSigner","PSBT Input signer"],["SignerCommon","Common signer methods"],["TransactionSigner","PSBT signer"]]};
\ No newline at end of file
--- /dev/null
+<!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="Options for a software signer"><meta name="keywords" content="rust, rustlang, rust-lang, SignOptions"><title>SignOptions in bdk_wallet::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SignOptions</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.allow_all_sighashes">allow_all_sighashes</a></li><li><a href="#structfield.allow_grinding">allow_grinding</a></li><li><a href="#structfield.assume_height">assume_height</a></li><li><a href="#structfield.remove_partial_sigs">remove_partial_sigs</a></li><li><a href="#structfield.remove_taproot_extras">remove_taproot_extras</a></li><li><a href="#structfield.sign_with_tap_internal_key">sign_with_tap_internal_key</a></li><li><a href="#structfield.tap_leaves_options">tap_leaves_options</a></li><li><a href="#structfield.trust_witness_utxo">trust_witness_utxo</a></li><li><a href="#structfield.try_finalize">try_finalize</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-SignOptions">Clone</a></li><li><a href="#impl-Debug-for-SignOptions">Debug</a></li><li><a href="#impl-Default-for-SignOptions">Default</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SignOptions">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SignOptions">Send</a></li><li><a href="#impl-Sync-for-SignOptions">Sync</a></li><li><a href="#impl-Unpin-for-SignOptions">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SignOptions">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SignOptions">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SignOptions">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SignOptions">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SignOptions">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SignOptions">Into<U></a></li><li><a href="#impl-ToOwned-for-SignOptions">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SignOptions">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SignOptions">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SignOptions">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::signer</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">signer</a>::<wbr><a class="struct" href="#">SignOptions</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/signer.rs.html#750-815">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct SignOptions {
+ pub trust_witness_utxo: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
+ pub assume_height: <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.u32.html">u32</a>>,
+ pub allow_all_sighashes: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
+ pub remove_partial_sigs: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
+ pub remove_taproot_extras: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
+ pub try_finalize: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
+ pub tap_leaves_options: <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk_wallet::wallet::signer::TapLeavesOptions">TapLeavesOptions</a>,
+ pub sign_with_tap_internal_key: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
+ pub allow_grinding: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Options for a software signer</p>
+<p>Adjust the behavior of our software signers and the way a transaction is finalized</p>
+</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.trust_witness_utxo" class="structfield small-section-header"><a href="#structfield.trust_witness_utxo" class="anchor field">§</a><code>trust_witness_utxo: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether the signer should trust the <code>witness_utxo</code>, if the <code>non_witness_utxo</code> hasn’t been
+provided</p>
+<p>Defaults to <code>false</code> to mitigate the “SegWit bug” which should trick the wallet into
+paying a fee larger than expected.</p>
+<p>Some wallets, especially if relatively old, might not provide the <code>non_witness_utxo</code> for
+SegWit transactions in the PSBT they generate: in those cases setting this to <code>true</code>
+should correctly produce a signature, at the expense of an increased trust in the creator
+of the PSBT.</p>
+<p>For more details see: <a href="https://blog.trezor.io/details-of-firmware-updates-for-trezor-one-version-1-9-1-and-trezor-model-t-version-2-3-1-1eba8f60f2dd">https://blog.trezor.io/details-of-firmware-updates-for-trezor-one-version-1-9-1-and-trezor-model-t-version-2-3-1-1eba8f60f2dd</a></p>
+</div><span id="structfield.assume_height" class="structfield small-section-header"><a href="#structfield.assume_height" class="anchor field">§</a><code>assume_height: <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.u32.html">u32</a>></code></span><div class="docblock"><p>Whether the wallet should assume a specific height has been reached when trying to finalize
+a transaction</p>
+<p>The wallet will only “use” a timelock to satisfy the spending policy of an input if the
+timelock height has already been reached. This option allows overriding the “current height” to let the
+wallet use timelocks in the future to spend a coin.</p>
+</div><span id="structfield.allow_all_sighashes" class="structfield small-section-header"><a href="#structfield.allow_all_sighashes" class="anchor field">§</a><code>allow_all_sighashes: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether the signer should use the <code>sighash_type</code> set in the PSBT when signing, no matter
+what its value is</p>
+<p>Defaults to <code>false</code> which will only allow signing using <code>SIGHASH_ALL</code>.</p>
+</div><span id="structfield.remove_partial_sigs" class="structfield small-section-header"><a href="#structfield.remove_partial_sigs" class="anchor field">§</a><code>remove_partial_sigs: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether to remove partial signatures from the PSBT inputs while finalizing PSBT.</p>
+<p>Defaults to <code>true</code> which will remove partial signatures during finalization.</p>
+</div><span id="structfield.remove_taproot_extras" class="structfield small-section-header"><a href="#structfield.remove_taproot_extras" class="anchor field">§</a><code>remove_taproot_extras: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether to remove taproot specific fields from the PSBT on finalization.</p>
+<p>For inputs this includes the taproot internal key, merkle root, and individual
+scripts and signatures. For both inputs and outputs it includes key origin info.</p>
+<p>Defaults to <code>true</code> which will remove all of the above mentioned fields when finalizing.</p>
+<p>See <a href="https://github.com/bitcoin/bips/blob/master/bip-0371.mediawiki"><code>BIP371</code></a> for details.</p>
+</div><span id="structfield.try_finalize" class="structfield small-section-header"><a href="#structfield.try_finalize" class="anchor field">§</a><code>try_finalize: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether to try finalizing the PSBT after the inputs are signed.</p>
+<p>Defaults to <code>true</code> which will try finalizing PSBT after inputs are signed.</p>
+</div><span id="structfield.tap_leaves_options" class="structfield small-section-header"><a href="#structfield.tap_leaves_options" class="anchor field">§</a><code>tap_leaves_options: <a class="enum" href="enum.TapLeavesOptions.html" title="enum bdk_wallet::wallet::signer::TapLeavesOptions">TapLeavesOptions</a></code></span><div class="docblock"><p>Specifies which Taproot script-spend leaves we should sign for. This option is
+ignored if we’re signing a non-taproot PSBT.</p>
+<p>Defaults to All, i.e., the wallet will sign all the leaves it has a key for.</p>
+</div><span id="structfield.sign_with_tap_internal_key" class="structfield small-section-header"><a href="#structfield.sign_with_tap_internal_key" class="anchor field">§</a><code>sign_with_tap_internal_key: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether we should try to sign a taproot transaction with the taproot internal key
+or not. This option is ignored if we’re signing a non-taproot PSBT.</p>
+<p>Defaults to <code>true</code>, i.e., we always try to sign with the taproot internal key.</p>
+</div><span id="structfield.allow_grinding" class="structfield small-section-header"><a href="#structfield.allow_grinding" class="anchor field">§</a><code>allow_grinding: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether we should grind ECDSA signature to ensure signing with low r
+or not.
+Defaults to <code>true</code>, i.e., we always grind ECDSA signature to sign with low r.</p>
+</div><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><section id="impl-Clone-for-SignOptions" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#749">source</a><a href="#impl-Clone-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.SignOptions.html" title="struct bdk_wallet::wallet::signer::SignOptions">SignOptions</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#749">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.SignOptions.html" title="struct bdk_wallet::wallet::signer::SignOptions">SignOptions</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-SignOptions" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#749">source</a><a href="#impl-Debug-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.SignOptions.html" title="struct bdk_wallet::wallet::signer::SignOptions">SignOptions</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#749">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-SignOptions" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#832-846">source</a><a href="#impl-Default-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.SignOptions.html" title="struct bdk_wallet::wallet::signer::SignOptions">SignOptions</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#833-845">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> Self</h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SignOptions" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.SignOptions.html" title="struct bdk_wallet::wallet::signer::SignOptions">SignOptions</a></h3></section><section id="impl-Send-for-SignOptions" class="impl has-srclink"><a href="#impl-Send-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.SignOptions.html" title="struct bdk_wallet::wallet::signer::SignOptions">SignOptions</a></h3></section><section id="impl-Sync-for-SignOptions" class="impl has-srclink"><a href="#impl-Sync-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.SignOptions.html" title="struct bdk_wallet::wallet::signer::SignOptions">SignOptions</a></h3></section><section id="impl-Unpin-for-SignOptions" class="impl has-srclink"><a href="#impl-Unpin-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.SignOptions.html" title="struct bdk_wallet::wallet::signer::SignOptions">SignOptions</a></h3></section><section id="impl-UnwindSafe-for-SignOptions" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.SignOptions.html" title="struct bdk_wallet::wallet::signer::SignOptions">SignOptions</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SignOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SignOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SignOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SignOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SignOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-SignOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SignOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SignOptions" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SignOptions" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SignOptions" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Defines the order in which signers are called"><meta name="keywords" content="rust, rustlang, rust-lang, SignerOrdering"><title>SignerOrdering in bdk_wallet::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SignerOrdering</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Tuple Fields</a></h3><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-SignerOrdering">Clone</a></li><li><a href="#impl-Debug-for-SignerOrdering">Debug</a></li><li><a href="#impl-Default-for-SignerOrdering">Default</a></li><li><a href="#impl-Eq-for-SignerOrdering">Eq</a></li><li><a href="#impl-Ord-for-SignerOrdering">Ord</a></li><li><a href="#impl-PartialEq%3CSignerOrdering%3E-for-SignerOrdering">PartialEq<SignerOrdering></a></li><li><a href="#impl-PartialOrd%3CSignerOrdering%3E-for-SignerOrdering">PartialOrd<SignerOrdering></a></li><li><a href="#impl-StructuralEq-for-SignerOrdering">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-SignerOrdering">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SignerOrdering">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SignerOrdering">Send</a></li><li><a href="#impl-Sync-for-SignerOrdering">Sync</a></li><li><a href="#impl-Unpin-for-SignerOrdering">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SignerOrdering">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SignerOrdering">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SignerOrdering">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SignerOrdering">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SignerOrdering">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SignerOrdering">Into<U></a></li><li><a href="#impl-ToOwned-for-SignerOrdering">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SignerOrdering">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SignerOrdering">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SignerOrdering">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::signer</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">signer</a>::<wbr><a class="struct" href="#">SignerOrdering</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/signer.rs.html#609">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct SignerOrdering(pub <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Defines the order in which signers are called</p>
+<p>The default value is <code>100</code>. Signers with an ordering above that will be called later,
+and they will thus see the partial signatures added to the transaction once they get to sign
+themselves.</p>
+</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code></span><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><section id="impl-Clone-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#608">source</a><a href="#impl-Clone-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk_wallet::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#608">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.SignerOrdering.html" title="struct bdk_wallet::wallet::signer::SignerOrdering">SignerOrdering</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#608">source</a><a href="#impl-Debug-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk_wallet::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#608">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#611-615">source</a><a href="#impl-Default-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk_wallet::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#612-614">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> Self</h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#608">source</a><a href="#impl-Ord-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk_wallet::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#608">source</a><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="struct" href="struct.SignerOrdering.html" title="struct bdk_wallet::wallet::signer::SignerOrdering">SignerOrdering</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CSignerOrdering%3E-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#608">source</a><a href="#impl-PartialEq%3CSignerOrdering%3E-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.SignerOrdering.html" title="struct bdk_wallet::wallet::signer::SignerOrdering">SignerOrdering</a>> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk_wallet::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#608">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.SignerOrdering.html" title="struct bdk_wallet::wallet::signer::SignerOrdering">SignerOrdering</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CSignerOrdering%3E-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#608">source</a><a href="#impl-PartialOrd%3CSignerOrdering%3E-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="struct" href="struct.SignerOrdering.html" title="struct bdk_wallet::wallet::signer::SignerOrdering">SignerOrdering</a>> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk_wallet::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#608">source</a><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="struct" href="struct.SignerOrdering.html" title="struct bdk_wallet::wallet::signer::SignerOrdering">SignerOrdering</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><section id="impl-Eq-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#608">source</a><a href="#impl-Eq-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk_wallet::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section><section id="impl-StructuralEq-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#608">source</a><a href="#impl-StructuralEq-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk_wallet::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section><section id="impl-StructuralPartialEq-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#608">source</a><a href="#impl-StructuralPartialEq-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk_wallet::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SignerOrdering" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk_wallet::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section><section id="impl-Send-for-SignerOrdering" class="impl has-srclink"><a href="#impl-Send-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk_wallet::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section><section id="impl-Sync-for-SignerOrdering" class="impl has-srclink"><a href="#impl-Sync-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk_wallet::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section><section id="impl-Unpin-for-SignerOrdering" class="impl has-srclink"><a href="#impl-Unpin-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk_wallet::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section><section id="impl-UnwindSafe-for-SignerOrdering" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.SignerOrdering.html" title="struct bdk_wallet::wallet::signer::SignerOrdering">SignerOrdering</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SignerOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SignerOrdering" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SignerOrdering" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Wrapper to pair a signer with its context"><meta name="keywords" content="rust, rustlang, rust-lang, SignerWrapper"><title>SignerWrapper in bdk_wallet::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SignerWrapper</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.new">new</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-SignerWrapper%3CS%3E">Clone</a></li><li><a href="#impl-Debug-for-SignerWrapper%3CS%3E">Debug</a></li><li><a href="#impl-Deref-for-SignerWrapper%3CS%3E">Deref</a></li><li><a href="#impl-InputSigner-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E">InputSigner</a></li><li><a href="#impl-InputSigner-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E">InputSigner</a></li><li><a href="#impl-InputSigner-for-SignerWrapper%3CPrivateKey%3E">InputSigner</a></li><li><a href="#impl-SignerCommon-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E">SignerCommon</a></li><li><a href="#impl-SignerCommon-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E">SignerCommon</a></li><li><a href="#impl-SignerCommon-for-SignerWrapper%3CPrivateKey%3E">SignerCommon</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SignerWrapper%3CS%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SignerWrapper%3CS%3E">Send</a></li><li><a href="#impl-Sync-for-SignerWrapper%3CS%3E">Sync</a></li><li><a href="#impl-Unpin-for-SignerWrapper%3CS%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SignerWrapper%3CS%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SignerWrapper%3CS%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SignerWrapper%3CS%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SignerWrapper%3CS%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SignerWrapper%3CS%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SignerWrapper%3CS%3E">Into<U></a></li><li><a href="#impl-ToOwned-for-SignerWrapper%3CS%3E">ToOwned</a></li><li><a href="#impl-TransactionSigner-for-SignerWrapper%3CS%3E">TransactionSigner</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SignerWrapper%3CS%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SignerWrapper%3CS%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SignerWrapper%3CS%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::signer</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">signer</a>::<wbr><a class="struct" href="#">SignerWrapper</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/signer.rs.html#219-222">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct SignerWrapper<S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>> { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Wrapper to pair a signer with its context</p>
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#224-229">source</a><a href="#impl-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>> <a class="struct" href="struct.SignerWrapper.html" title="struct bdk_wallet::wallet::signer::SignerWrapper">SignerWrapper</a><S></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#226-228">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(signer: S, ctx: <a class="enum" href="enum.SignerContext.html" title="enum bdk_wallet::wallet::signer::SignerContext">SignerContext</a>) -> Self</h4></section></summary><div class="docblock"><p>Create a wrapped signer from a signer and a context</p>
+</div></details></div></details></div><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><section id="impl-Clone-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#218">source</a><a href="#impl-Clone-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S: <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/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <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/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk_wallet::wallet::signer::SignerWrapper">SignerWrapper</a><S></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#218">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.SignerWrapper.html" title="struct bdk_wallet::wallet::signer::SignerWrapper">SignerWrapper</a><S></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#218">source</a><a href="#impl-Debug-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <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/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk_wallet::wallet::signer::SignerWrapper">SignerWrapper</a><S></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#218">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deref-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#231-237">source</a><a href="#impl-Deref-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <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/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk_wallet::wallet::signer::SignerWrapper">SignerWrapper</a><S></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Target" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Target" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#associatedtype.Target" class="associatedtype">Target</a> = S</h4></section></summary><div class='docblock'>The resulting type after dereferencing.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deref" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#234-236">source</a><a href="#method.deref" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#tymethod.deref" class="fn">deref</a>(&self) -> &Self::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#associatedtype.Target" title="type core::ops::deref::Deref::Target">Target</a></h4></section></summary><div class='docblock'>Dereferences the value.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-InputSigner-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#408-422">source</a><a href="#impl-InputSigner-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.InputSigner.html" title="trait bdk_wallet::wallet::signer::InputSigner">InputSigner</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk_wallet::wallet::signer::SignerWrapper">SignerWrapper</a><DescriptorMultiXKey<Xpriv>></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sign_input-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#409-421">source</a><a href="#method.sign_input-1" class="anchor">§</a><h4 class="code-header">fn <a href="trait.InputSigner.html#tymethod.sign_input" class="fn">sign_input</a>(<br> &self,<br> psbt: &mut Psbt,<br> input_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> sign_options: &<a class="struct" href="struct.SignOptions.html" title="struct bdk_wallet::wallet::signer::SignOptions">SignOptions</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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.SignerError.html" title="enum bdk_wallet::wallet::signer::SignerError">SignerError</a>></h4></section></summary><div class='docblock'>Sign a single psbt input</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-InputSigner-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#312-380">source</a><a href="#impl-InputSigner-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.InputSigner.html" title="trait bdk_wallet::wallet::signer::InputSigner">InputSigner</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk_wallet::wallet::signer::SignerWrapper">SignerWrapper</a><DescriptorXKey<Xpriv>></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sign_input" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#313-379">source</a><a href="#method.sign_input" class="anchor">§</a><h4 class="code-header">fn <a href="trait.InputSigner.html#tymethod.sign_input" class="fn">sign_input</a>(<br> &self,<br> psbt: &mut Psbt,<br> input_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> sign_options: &<a class="struct" href="struct.SignOptions.html" title="struct bdk_wallet::wallet::signer::SignOptions">SignOptions</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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.SignerError.html" title="enum bdk_wallet::wallet::signer::SignerError">SignerError</a>></h4></section></summary><div class='docblock'>Sign a single psbt input</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-InputSigner-for-SignerWrapper%3CPrivateKey%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#437-545">source</a><a href="#impl-InputSigner-for-SignerWrapper%3CPrivateKey%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.InputSigner.html" title="trait bdk_wallet::wallet::signer::InputSigner">InputSigner</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk_wallet::wallet::signer::SignerWrapper">SignerWrapper</a><PrivateKey></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sign_input-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#438-544">source</a><a href="#method.sign_input-2" class="anchor">§</a><h4 class="code-header">fn <a href="trait.InputSigner.html#tymethod.sign_input" class="fn">sign_input</a>(<br> &self,<br> psbt: &mut Psbt,<br> input_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> sign_options: &<a class="struct" href="struct.SignOptions.html" title="struct bdk_wallet::wallet::signer::SignOptions">SignOptions</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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.SignerError.html" title="enum bdk_wallet::wallet::signer::SignerError">SignerError</a>></h4></section></summary><div class='docblock'>Sign a single psbt input</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-SignerCommon-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#398-406">source</a><a href="#impl-SignerCommon-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.SignerCommon.html" title="trait bdk_wallet::wallet::signer::SignerCommon">SignerCommon</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk_wallet::wallet::signer::SignerWrapper">SignerWrapper</a><DescriptorMultiXKey<Xpriv>></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.id-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#399-401">source</a><a href="#method.id-1" class="anchor">§</a><h4 class="code-header">fn <a href="trait.SignerCommon.html#tymethod.id" class="fn">id</a>(&self, secp: &Secp256k1<All>) -> <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a></h4></section></summary><div class='docblock'>Return the <a href="enum.SignerId.html" title="SignerId"><code>SignerId</code></a> for this signer <a href="trait.SignerCommon.html#tymethod.id">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.descriptor_secret_key-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#403-405">source</a><a href="#method.descriptor_secret_key-1" class="anchor">§</a><h4 class="code-header">fn <a href="trait.SignerCommon.html#method.descriptor_secret_key" class="fn">descriptor_secret_key</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a>></h4></section></summary><div class='docblock'>Return the secret key for the signer <a href="trait.SignerCommon.html#method.descriptor_secret_key">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-SignerCommon-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#302-310">source</a><a href="#impl-SignerCommon-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.SignerCommon.html" title="trait bdk_wallet::wallet::signer::SignerCommon">SignerCommon</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk_wallet::wallet::signer::SignerWrapper">SignerWrapper</a><DescriptorXKey<Xpriv>></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.id" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#303-305">source</a><a href="#method.id" class="anchor">§</a><h4 class="code-header">fn <a href="trait.SignerCommon.html#tymethod.id" class="fn">id</a>(&self, secp: &Secp256k1<All>) -> <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a></h4></section></summary><div class='docblock'>Return the <a href="enum.SignerId.html" title="SignerId"><code>SignerId</code></a> for this signer <a href="trait.SignerCommon.html#tymethod.id">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.descriptor_secret_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#307-309">source</a><a href="#method.descriptor_secret_key" class="anchor">§</a><h4 class="code-header">fn <a href="trait.SignerCommon.html#method.descriptor_secret_key" class="fn">descriptor_secret_key</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a>></h4></section></summary><div class='docblock'>Return the secret key for the signer <a href="trait.SignerCommon.html#method.descriptor_secret_key">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-SignerCommon-for-SignerWrapper%3CPrivateKey%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#424-435">source</a><a href="#impl-SignerCommon-for-SignerWrapper%3CPrivateKey%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.SignerCommon.html" title="trait bdk_wallet::wallet::signer::SignerCommon">SignerCommon</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk_wallet::wallet::signer::SignerWrapper">SignerWrapper</a><PrivateKey></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.id-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#425-427">source</a><a href="#method.id-2" class="anchor">§</a><h4 class="code-header">fn <a href="trait.SignerCommon.html#tymethod.id" class="fn">id</a>(&self, secp: &Secp256k1<All>) -> <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a></h4></section></summary><div class='docblock'>Return the <a href="enum.SignerId.html" title="SignerId"><code>SignerId</code></a> for this signer <a href="trait.SignerCommon.html#tymethod.id">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.descriptor_secret_key-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#429-434">source</a><a href="#method.descriptor_secret_key-2" class="anchor">§</a><h4 class="code-header">fn <a href="trait.SignerCommon.html#method.descriptor_secret_key" class="fn">descriptor_secret_key</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a>></h4></section></summary><div class='docblock'>Return the secret key for the signer <a href="trait.SignerCommon.html#method.descriptor_secret_key">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk_wallet::wallet::signer::SignerWrapper">SignerWrapper</a><S><span class="where fmt-newline">where<br> S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a href="#impl-Send-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk_wallet::wallet::signer::SignerWrapper">SignerWrapper</a><S><span class="where fmt-newline">where<br> S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a href="#impl-Sync-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk_wallet::wallet::signer::SignerWrapper">SignerWrapper</a><S><span class="where fmt-newline">where<br> S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a href="#impl-Unpin-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk_wallet::wallet::signer::SignerWrapper">SignerWrapper</a><S><span class="where fmt-newline">where<br> S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk_wallet::wallet::signer::SignerWrapper">SignerWrapper</a><S><span class="where fmt-newline">where<br> S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TransactionSigner-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#287-300">source</a><a href="#impl-TransactionSigner-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="trait.TransactionSigner.html" title="trait bdk_wallet::wallet::signer::TransactionSigner">TransactionSigner</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="trait.InputSigner.html" title="trait bdk_wallet::wallet::signer::InputSigner">InputSigner</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sign_transaction" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#288-299">source</a><a href="#method.sign_transaction" class="anchor">§</a><h4 class="code-header">fn <a href="trait.TransactionSigner.html#tymethod.sign_transaction" class="fn">sign_transaction</a>(<br> &self,<br> psbt: &mut Psbt,<br> sign_options: &<a class="struct" href="struct.SignOptions.html" title="struct bdk_wallet::wallet::signer::SignOptions">SignOptions</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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.SignerError.html" title="enum bdk_wallet::wallet::signer::SignerError">SignerError</a>></h4></section></summary><div class='docblock'>Sign all the inputs of the psbt</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SignerWrapper%3CS%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SignerWrapper%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Container for multiple signers"><meta name="keywords" content="rust, rustlang, rust-lang, SignersContainer"><title>SignersContainer in bdk_wallet::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SignersContainer</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.add_external">add_external</a></li><li><a href="#method.as_key_map">as_key_map</a></li><li><a href="#method.build">build</a></li><li><a href="#method.find">find</a></li><li><a href="#method.ids">ids</a></li><li><a href="#method.new">new</a></li><li><a href="#method.remove">remove</a></li><li><a href="#method.signers">signers</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-SignersContainer">Clone</a></li><li><a href="#impl-Debug-for-SignersContainer">Debug</a></li><li><a href="#impl-Default-for-SignersContainer">Default</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SignersContainer">!RefUnwindSafe</a></li><li><a href="#impl-Send-for-SignersContainer">Send</a></li><li><a href="#impl-Sync-for-SignersContainer">Sync</a></li><li><a href="#impl-Unpin-for-SignersContainer">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SignersContainer">!UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SignersContainer">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SignersContainer">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SignersContainer">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-SignersContainer">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-SignersContainer">Into<U></a></li><li><a href="#impl-ToOwned-for-SignersContainer">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SignersContainer">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-SignersContainer">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-SignersContainer">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::signer</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">signer</a>::<wbr><a class="struct" href="#">SignersContainer</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/signer.rs.html#634">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct SignersContainer(_);</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Container for multiple signers</p>
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#636-692">source</a><a href="#impl-SignersContainer" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.SignersContainer.html" title="struct bdk_wallet::wallet::signer::SignersContainer">SignersContainer</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_key_map" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#638-644">source</a><h4 class="code-header">pub fn <a href="#method.as_key_map" class="fn">as_key_map</a>(&self, secp: &Secp256k1<All>) -> <a class="type" href="../../keys/type.KeyMap.html" title="type bdk_wallet::keys::KeyMap">KeyMap</a></h4></section></summary><div class="docblock"><p>Create a map of public keys to secret keys</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#650-691">source</a><h4 class="code-header">pub fn <a href="#method.build" class="fn">build</a>(<br> keymap: <a class="type" href="../../keys/type.KeyMap.html" title="type bdk_wallet::keys::KeyMap">KeyMap</a>,<br> descriptor: &<a class="enum" href="../../descriptor/enum.Descriptor.html" title="enum bdk_wallet::descriptor::Descriptor">Descriptor</a><<a class="enum" href="../../keys/enum.DescriptorPublicKey.html" title="enum bdk_wallet::keys::DescriptorPublicKey">DescriptorPublicKey</a>>,<br> secp: &Secp256k1<All><br>) -> <a class="struct" href="struct.SignersContainer.html" title="struct bdk_wallet::wallet::signer::SignersContainer">SignersContainer</a></h4></section></summary><div class="docblock"><p>Build a new signer container from a <a href="../../keys/type.KeyMap.html" title="KeyMap"><code>KeyMap</code></a></p>
+<p>Also looks at the corresponding descriptor to determine the <a href="enum.SignerContext.html" title="SignerContext"><code>SignerContext</code></a> to attach to
+the signers</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-SignersContainer-1" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#694-744">source</a><a href="#impl-SignersContainer-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.SignersContainer.html" title="struct bdk_wallet::wallet::signer::SignersContainer">SignersContainer</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#696-698">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>() -> Self</h4></section></summary><div class="docblock"><p>Default constructor</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_external" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#702-709">source</a><h4 class="code-header">pub fn <a href="#method.add_external" class="fn">add_external</a>(<br> &mut self,<br> id: <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a>,<br> ordering: <a class="struct" href="struct.SignerOrdering.html" title="struct bdk_wallet::wallet::signer::SignerOrdering">SignerOrdering</a>,<br> signer: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><dyn <a class="trait" href="trait.TransactionSigner.html" title="trait bdk_wallet::wallet::signer::TransactionSigner">TransactionSigner</a>><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="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><dyn <a class="trait" href="trait.TransactionSigner.html" title="trait bdk_wallet::wallet::signer::TransactionSigner">TransactionSigner</a>>></h4></section></summary><div class="docblock"><p>Adds an external signer to the container for the specified id. Optionally returns the
+signer that was previously in the container, if any</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.remove" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#712-718">source</a><h4 class="code-header">pub fn <a href="#method.remove" class="fn">remove</a>(<br> &mut self,<br> id: <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a>,<br> ordering: <a class="struct" href="struct.SignerOrdering.html" title="struct bdk_wallet::wallet::signer::SignerOrdering">SignerOrdering</a><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="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><dyn <a class="trait" href="trait.TransactionSigner.html" title="trait bdk_wallet::wallet::signer::TransactionSigner">TransactionSigner</a>>></h4></section></summary><div class="docblock"><p>Removes a signer from the container and returns it</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ids" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#721-726">source</a><h4 class="code-header">pub fn <a href="#method.ids" class="fn">ids</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><&<a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a>></h4></section></summary><div class="docblock"><p>Returns the list of identifiers of all the signers in the container</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.signers" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#729-731">source</a><h4 class="code-header">pub fn <a href="#method.signers" class="fn">signers</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><&<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><dyn <a class="trait" href="trait.TransactionSigner.html" title="trait bdk_wallet::wallet::signer::TransactionSigner">TransactionSigner</a>>></h4></section></summary><div class="docblock"><p>Returns the list of signers in the container, sorted by lowest to highest <code>ordering</code></p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.find" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#734-743">source</a><h4 class="code-header">pub fn <a href="#method.find" class="fn">find</a>(&self, id: <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</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="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><dyn <a class="trait" href="trait.TransactionSigner.html" title="trait bdk_wallet::wallet::signer::TransactionSigner">TransactionSigner</a>>></h4></section></summary><div class="docblock"><p>Finds the signer with lowest ordering for a given id in the container.</p>
+</div></details></div></details></div><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><section id="impl-Clone-for-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#633">source</a><a href="#impl-Clone-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.SignersContainer.html" title="struct bdk_wallet::wallet::signer::SignersContainer">SignersContainer</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#633">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.SignersContainer.html" title="struct bdk_wallet::wallet::signer::SignersContainer">SignersContainer</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#633">source</a><a href="#impl-Debug-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.SignersContainer.html" title="struct bdk_wallet::wallet::signer::SignersContainer">SignersContainer</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#633">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#633">source</a><a href="#impl-Default-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.SignersContainer.html" title="struct bdk_wallet::wallet::signer::SignersContainer">SignersContainer</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#633">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="struct" href="struct.SignersContainer.html" title="struct bdk_wallet::wallet::signer::SignersContainer">SignersContainer</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SignersContainer" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.SignersContainer.html" title="struct bdk_wallet::wallet::signer::SignersContainer">SignersContainer</a></h3></section><section id="impl-Send-for-SignersContainer" class="impl has-srclink"><a href="#impl-Send-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.SignersContainer.html" title="struct bdk_wallet::wallet::signer::SignersContainer">SignersContainer</a></h3></section><section id="impl-Sync-for-SignersContainer" class="impl has-srclink"><a href="#impl-Sync-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.SignersContainer.html" title="struct bdk_wallet::wallet::signer::SignersContainer">SignersContainer</a></h3></section><section id="impl-Unpin-for-SignersContainer" class="impl has-srclink"><a href="#impl-Unpin-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.SignersContainer.html" title="struct bdk_wallet::wallet::signer::SignersContainer">SignersContainer</a></h3></section><section id="impl-UnwindSafe-for-SignersContainer" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.SignersContainer.html" title="struct bdk_wallet::wallet::signer::SignersContainer">SignersContainer</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SignersContainer" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SignersContainer" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-SignersContainer" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="PSBT Input signer"><meta name="keywords" content="rust, rustlang, rust-lang, InputSigner"><title>InputSigner in bdk_wallet::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">InputSigner</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.sign_input">sign_input</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk_wallet::wallet::signer</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">signer</a>::<wbr><a class="trait" href="#">InputSigner</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/signer.rs.html#262-271">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait InputSigner: <a class="trait" href="trait.SignerCommon.html" title="trait bdk_wallet::wallet::signer::SignerCommon">SignerCommon</a> {
+ fn <a href="#tymethod.sign_input" class="fn">sign_input</a>(<br> &self,<br> psbt: &mut Psbt,<br> input_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> sign_options: &<a class="struct" href="struct.SignOptions.html" title="struct bdk_wallet::wallet::signer::SignOptions">SignOptions</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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.SignerError.html" title="enum bdk_wallet::wallet::signer::SignerError">SignerError</a>>;
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>PSBT Input signer</p>
+<p>This trait can be implemented to provide custom signers to the wallet. If the signer supports signing
+individual inputs, this trait should be implemented and BDK will provide automatically an implementation
+for <a href="trait.TransactionSigner.html" title="TransactionSigner"><code>TransactionSigner</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 method-toggle" open><summary><section id="tymethod.sign_input" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#264-270">source</a><h4 class="code-header">fn <a href="#tymethod.sign_input" class="fn">sign_input</a>(<br> &self,<br> psbt: &mut Psbt,<br> input_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> sign_options: &<a class="struct" href="struct.SignOptions.html" title="struct bdk_wallet::wallet::signer::SignOptions">SignOptions</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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.SignerError.html" title="enum bdk_wallet::wallet::signer::SignerError">SignerError</a>></h4></section></summary><div class="docblock"><p>Sign a single psbt input</p>
+</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-InputSigner-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#408-422">source</a><a href="#impl-InputSigner-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.InputSigner.html" title="trait bdk_wallet::wallet::signer::InputSigner">InputSigner</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk_wallet::wallet::signer::SignerWrapper">SignerWrapper</a><DescriptorMultiXKey<Xpriv>></h3></section><section id="impl-InputSigner-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#312-380">source</a><a href="#impl-InputSigner-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.InputSigner.html" title="trait bdk_wallet::wallet::signer::InputSigner">InputSigner</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk_wallet::wallet::signer::SignerWrapper">SignerWrapper</a><DescriptorXKey<Xpriv>></h3></section><section id="impl-InputSigner-for-SignerWrapper%3CPrivateKey%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#437-545">source</a><a href="#impl-InputSigner-for-SignerWrapper%3CPrivateKey%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.InputSigner.html" title="trait bdk_wallet::wallet::signer::InputSigner">InputSigner</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk_wallet::wallet::signer::SignerWrapper">SignerWrapper</a><PrivateKey></h3></section></div><script src="../../../implementors/bdk_wallet/wallet/signer/trait.InputSigner.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Common signer methods"><meta name="keywords" content="rust, rustlang, rust-lang, SignerCommon"><title>SignerCommon in bdk_wallet::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">SignerCommon</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.id">id</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.descriptor_secret_key">descriptor_secret_key</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk_wallet::wallet::signer</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">signer</a>::<wbr><a class="trait" href="#">SignerCommon</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/signer.rs.html#240-255">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait SignerCommon: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> {
+ fn <a href="#tymethod.id" class="fn">id</a>(&self, secp: &Secp256k1<All>) -> <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a>;
+
+ fn <a href="#method.descriptor_secret_key" class="fn">descriptor_secret_key</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a>> { ... }
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Common signer methods</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 method-toggle" open><summary><section id="tymethod.id" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#245">source</a><h4 class="code-header">fn <a href="#tymethod.id" class="fn">id</a>(&self, secp: &Secp256k1<All>) -> <a class="enum" href="enum.SignerId.html" title="enum bdk_wallet::wallet::signer::SignerId">SignerId</a></h4></section></summary><div class="docblock"><p>Return the <a href="enum.SignerId.html" title="SignerId"><code>SignerId</code></a> for this signer</p>
+<p>The <a href="enum.SignerId.html" title="SignerId"><code>SignerId</code></a> can be used to lookup a signer in the <a href="../struct.Wallet.html"><code>Wallet</code></a>’s signers map or to
+compare two signers.</p>
+</div></details></div><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.descriptor_secret_key" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#252-254">source</a><h4 class="code-header">fn <a href="#method.descriptor_secret_key" class="fn">descriptor_secret_key</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="enum" href="../../keys/enum.DescriptorSecretKey.html" title="enum bdk_wallet::keys::DescriptorSecretKey">DescriptorSecretKey</a>></h4></section></summary><div class="docblock"><p>Return the secret key for the signer</p>
+<p>This is used internally to reconstruct the original descriptor that may contain secrets.
+External signers that are meant to keep key isolated should just return <code>None</code> here (which
+is the default for this method, if not overridden).</p>
+</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-SignerCommon-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#398-406">source</a><a href="#impl-SignerCommon-for-SignerWrapper%3CDescriptorMultiXKey%3CXpriv%3E%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.SignerCommon.html" title="trait bdk_wallet::wallet::signer::SignerCommon">SignerCommon</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk_wallet::wallet::signer::SignerWrapper">SignerWrapper</a><DescriptorMultiXKey<Xpriv>></h3></section><section id="impl-SignerCommon-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#302-310">source</a><a href="#impl-SignerCommon-for-SignerWrapper%3CDescriptorXKey%3CXpriv%3E%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.SignerCommon.html" title="trait bdk_wallet::wallet::signer::SignerCommon">SignerCommon</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk_wallet::wallet::signer::SignerWrapper">SignerWrapper</a><DescriptorXKey<Xpriv>></h3></section><section id="impl-SignerCommon-for-SignerWrapper%3CPrivateKey%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#424-435">source</a><a href="#impl-SignerCommon-for-SignerWrapper%3CPrivateKey%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.SignerCommon.html" title="trait bdk_wallet::wallet::signer::SignerCommon">SignerCommon</a> for <a class="struct" href="struct.SignerWrapper.html" title="struct bdk_wallet::wallet::signer::SignerWrapper">SignerWrapper</a><PrivateKey></h3></section></div><script src="../../../implementors/bdk_wallet/wallet/signer/trait.SignerCommon.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="PSBT signer"><meta name="keywords" content="rust, rustlang, rust-lang, TransactionSigner"><title>TransactionSigner in bdk_wallet::wallet::signer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">TransactionSigner</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.sign_transaction">sign_transaction</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk_wallet::wallet::signer</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">signer</a>::<wbr><a class="trait" href="#">TransactionSigner</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/signer.rs.html#277-285">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait TransactionSigner: <a class="trait" href="trait.SignerCommon.html" title="trait bdk_wallet::wallet::signer::SignerCommon">SignerCommon</a> {
+ fn <a href="#tymethod.sign_transaction" class="fn">sign_transaction</a>(<br> &self,<br> psbt: &mut Psbt,<br> sign_options: &<a class="struct" href="struct.SignOptions.html" title="struct bdk_wallet::wallet::signer::SignOptions">SignOptions</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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.SignerError.html" title="enum bdk_wallet::wallet::signer::SignerError">SignerError</a>>;
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>PSBT signer</p>
+<p>This trait can be implemented when the signer can’t sign inputs individually, but signs the whole transaction
+at once.</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 method-toggle" open><summary><section id="tymethod.sign_transaction" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#279-284">source</a><h4 class="code-header">fn <a href="#tymethod.sign_transaction" class="fn">sign_transaction</a>(<br> &self,<br> psbt: &mut Psbt,<br> sign_options: &<a class="struct" href="struct.SignOptions.html" title="struct bdk_wallet::wallet::signer::SignOptions">SignOptions</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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="enum.SignerError.html" title="enum bdk_wallet::wallet::signer::SignerError">SignerError</a>></h4></section></summary><div class="docblock"><p>Sign all the inputs of the psbt</p>
+</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-TransactionSigner-for-T" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/signer.rs.html#287-300">source</a><a href="#impl-TransactionSigner-for-T" class="anchor">§</a><h3 class="code-header">impl<T: <a class="trait" href="trait.InputSigner.html" title="trait bdk_wallet::wallet::signer::InputSigner">InputSigner</a>> <a class="trait" href="trait.TransactionSigner.html" title="trait bdk_wallet::wallet::signer::TransactionSigner">TransactionSigner</a> for T</h3></section></div><script src="../../../implementors/bdk_wallet/wallet/signer/trait.TransactionSigner.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="A derived address and the index it was found at. For convenience this automatically derefs to `Address`"><meta name="keywords" content="rust, rustlang, rust-lang, AddressInfo"><title>AddressInfo in bdk_wallet::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">AddressInfo</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.address">address</a></li><li><a href="#structfield.index">index</a></li><li><a href="#structfield.keychain">keychain</a></li></ul><h3><a href="#deref-methods-Address">Methods from Deref<Target=Address></a></h3><ul class="block"><li><a href="#method.address_type">address_type</a></li><li><a href="#method.as_unchecked">as_unchecked</a></li><li><a href="#method.assume_checked_ref">assume_checked_ref</a></li><li><a href="#method.is_related_to_pubkey">is_related_to_pubkey</a></li><li><a href="#method.is_related_to_xonly_pubkey">is_related_to_xonly_pubkey</a></li><li><a href="#method.is_spend_standard">is_spend_standard</a></li><li><a href="#method.is_valid_for_network">is_valid_for_network</a></li><li><a href="#method.matches_script_pubkey">matches_script_pubkey</a></li><li><a href="#method.network">network</a></li><li><a href="#method.payload">payload</a></li><li><a href="#method.script_pubkey">script_pubkey</a></li><li><a href="#method.to_qr_uri">to_qr_uri</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-AddressInfo">Debug</a></li><li><a href="#impl-Deref-for-AddressInfo">Deref</a></li><li><a href="#impl-Display-for-AddressInfo">Display</a></li><li><a href="#impl-Eq-for-AddressInfo">Eq</a></li><li><a href="#impl-PartialEq%3CAddressInfo%3E-for-AddressInfo">PartialEq<AddressInfo></a></li><li><a href="#impl-StructuralEq-for-AddressInfo">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-AddressInfo">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-AddressInfo">RefUnwindSafe</a></li><li><a href="#impl-Send-for-AddressInfo">Send</a></li><li><a href="#impl-Sync-for-AddressInfo">Sync</a></li><li><a href="#impl-Unpin-for-AddressInfo">Unpin</a></li><li><a href="#impl-UnwindSafe-for-AddressInfo">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-AddressInfo">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-AddressInfo">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-AddressInfo">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-AddressInfo">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-AddressInfo">Into<U></a></li><li><a href="#impl-ToString-for-AddressInfo">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-AddressInfo">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-AddressInfo">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-AddressInfo">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="struct" href="#">AddressInfo</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/wallet/mod.rs.html#207-214">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct AddressInfo {
+ pub index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
+ pub address: Address,
+ pub keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A derived address and the index it was found at.
+For convenience this automatically derefs to <code>Address</code></p>
+</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.index" class="structfield small-section-header"><a href="#structfield.index" class="anchor field">§</a><code>index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Child index of this address</p>
+</div><span id="structfield.address" class="structfield small-section-header"><a href="#structfield.address" class="anchor field">§</a><code>address: Address</code></span><div class="docblock"><p>Address</p>
+</div><span id="structfield.keychain" class="structfield small-section-header"><a href="#structfield.keychain" class="anchor field">§</a><code>keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a></code></span><div class="docblock"><p>Type of keychain</p>
+</div><h2 id="deref-methods-Address" class="small-section-header"><span>Methods from <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a><Target = Address></span><a href="#deref-methods-Address" class="anchor">§</a></h2><div id="deref-methods-Address-1"><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.payload" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.payload" class="fn">payload</a>(&self) -> &Payload</h4></section></summary><div class="docblock"><p>Returns a reference to the payload of this address.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.network" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.network" class="fn">network</a>(&self) -> &Network</h4></section></summary><div class="docblock"><p>Returns a reference to the network of this address.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_unchecked" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.as_unchecked" class="fn">as_unchecked</a>(&self) -> &Address<NetworkUnchecked></h4></section></summary><div class="docblock"><p>Returns a reference to the unchecked address, which is dangerous to use if the address
+is invalid in the context of <code>NetworkUnchecked</code>.</p>
+</div></details></div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.address_type" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.address_type" class="fn">address_type</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><AddressType></h4></section></summary><div class="docblock"><p>Gets the address type of the address.</p>
+<h5 id="returns"><a href="#returns">Returns</a></h5>
+<p>None if unknown, non-standard or related to the future witness version.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_spend_standard" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_spend_standard" class="fn">is_spend_standard</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Checks whether or not the address is following Bitcoin standardness rules when
+<em>spending</em> from this address. <em>NOT</em> to be called by senders.</p>
+<details>
+<summary>Spending Standardness</summary>
+<p>For forward compatibility, the senders must send to any [<code>Address</code>]. Receivers
+can use this method to check whether or not they can spend from this address.</p>
+<p>SegWit addresses with unassigned witness versions or non-standard program sizes are
+considered non-standard.</p>
+</details>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.script_pubkey" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.script_pubkey" class="fn">script_pubkey</a>(&self) -> ScriptBuf</h4></section></summary><div class="docblock"><p>Generates a script pubkey spending to this address.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_qr_uri" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.to_qr_uri" class="fn">to_qr_uri</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class="docblock"><p>Creates a URI string <em>bitcoin:address</em> optimized to be encoded in QR codes.</p>
+<p>If the address is bech32, the address becomes uppercase.
+If the address is base58, the address is left mixed case.</p>
+<p>Quoting BIP 173 “inside QR codes uppercase SHOULD be used, as those permit the use of
+alphanumeric mode, which is 45% more compact than the normal byte mode.”</p>
+<p>Note however that despite BIP21 explicitly stating that the <code>bitcoin:</code> prefix should be
+parsed as case-insensitive many wallets got this wrong and don’t parse correctly.
+<a href="https://github.com/btcpayserver/btcpayserver/issues/2110">See compatibility table.</a></p>
+<p>If you want to avoid allocation you can use alternate display instead:</p>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code>
+<span class="macro">write!</span>(writer, <span class="string">"{:#}"</span>, address)<span class="question-mark">?</span>;
+</code></pre></div>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_related_to_pubkey" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_related_to_pubkey" class="fn">is_related_to_pubkey</a>(&self, pubkey: &PublicKey) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns true if the given pubkey is directly related to the address payload.</p>
+<p>This is determined by directly comparing the address payload with either the
+hash of the given public key or the segwit redeem hash generated from the
+given key. For taproot addresses, the supplied key is assumed to be tweaked</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_related_to_xonly_pubkey" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_related_to_xonly_pubkey" class="fn">is_related_to_xonly_pubkey</a>(&self, xonly_pubkey: &XOnlyPublicKey) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns true if the supplied xonly public key can be used to derive the address.</p>
+<p>This will only work for Taproot addresses. The Public Key is
+assumed to have already been tweaked.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.matches_script_pubkey" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.matches_script_pubkey" class="fn">matches_script_pubkey</a>(&self, script_pubkey: &Script) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns true if the address creates a particular script
+This function doesn’t make any allocations.</p>
+</div></details></div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.assume_checked_ref" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.assume_checked_ref" class="fn">assume_checked_ref</a>(&self) -> &Address<NetworkChecked></h4></section></summary><div class="docblock"><p>Returns a reference to the checked address.
+This function is dangerous in case the address is not a valid checked address.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_valid_for_network" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.is_valid_for_network" class="fn">is_valid_for_network</a>(&self, network: Network) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Parsed addresses do not always have <em>one</em> network. The problem is that legacy testnet,
+regtest and signet addresse use the same prefix instead of multiple different ones. When
+parsing, such addresses are always assumed to be testnet addresses (the same is true for
+bech32 signet addresses). So if one wants to check if an address belongs to a certain
+network a simple comparison is not enough anymore. Instead this function can be used.</p>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bitcoin::{Address, Network};
+<span class="kw">use </span>bitcoin::address::NetworkUnchecked;
+
+<span class="kw">let </span>address: Address<NetworkUnchecked> = <span class="string">"2N83imGV3gPwBzKJQvWJ7cRUY2SpUyU6A5e"</span>.parse().unwrap();
+<span class="macro">assert!</span>(address.is_valid_for_network(Network::Testnet));
+<span class="macro">assert!</span>(address.is_valid_for_network(Network::Regtest));
+<span class="macro">assert!</span>(address.is_valid_for_network(Network::Signet));
+
+<span class="macro">assert_eq!</span>(address.is_valid_for_network(Network::Bitcoin), <span class="bool-val">false</span>);
+
+<span class="kw">let </span>address: Address<NetworkUnchecked> = <span class="string">"32iVBEu4dxkUQk9dJbZUiBiQdmypcEyJRf"</span>.parse().unwrap();
+<span class="macro">assert!</span>(address.is_valid_for_network(Network::Bitcoin));
+<span class="macro">assert_eq!</span>(address.is_valid_for_network(Network::Testnet), <span class="bool-val">false</span>);</code></pre></div>
+</div></details></div></div><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><section id="impl-Debug-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#206">source</a><a href="#impl-Debug-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk_wallet::wallet::AddressInfo">AddressInfo</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#206">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deref-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#216-222">source</a><a href="#impl-Deref-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk_wallet::wallet::AddressInfo">AddressInfo</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Target" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Target" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#associatedtype.Target" class="associatedtype">Target</a> = Address<NetworkChecked></h4></section></summary><div class='docblock'>The resulting type after dereferencing.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deref" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#219-221">source</a><a href="#method.deref" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#tymethod.deref" class="fn">deref</a>(&self) -> &Self::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#associatedtype.Target" title="type core::ops::deref::Deref::Target">Target</a></h4></section></summary><div class='docblock'>Dereferences the value.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#224-228">source</a><a href="#impl-Display-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk_wallet::wallet::AddressInfo">AddressInfo</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#225-227">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CAddressInfo%3E-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#206">source</a><a href="#impl-PartialEq%3CAddressInfo%3E-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.AddressInfo.html" title="struct bdk_wallet::wallet::AddressInfo">AddressInfo</a>> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk_wallet::wallet::AddressInfo">AddressInfo</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#206">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.AddressInfo.html" title="struct bdk_wallet::wallet::AddressInfo">AddressInfo</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><section id="impl-Eq-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#206">source</a><a href="#impl-Eq-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk_wallet::wallet::AddressInfo">AddressInfo</a></h3></section><section id="impl-StructuralEq-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#206">source</a><a href="#impl-StructuralEq-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk_wallet::wallet::AddressInfo">AddressInfo</a></h3></section><section id="impl-StructuralPartialEq-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#206">source</a><a href="#impl-StructuralPartialEq-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk_wallet::wallet::AddressInfo">AddressInfo</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-AddressInfo" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk_wallet::wallet::AddressInfo">AddressInfo</a></h3></section><section id="impl-Send-for-AddressInfo" class="impl has-srclink"><a href="#impl-Send-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk_wallet::wallet::AddressInfo">AddressInfo</a></h3></section><section id="impl-Sync-for-AddressInfo" class="impl has-srclink"><a href="#impl-Sync-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk_wallet::wallet::AddressInfo">AddressInfo</a></h3></section><section id="impl-Unpin-for-AddressInfo" class="impl has-srclink"><a href="#impl-Unpin-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk_wallet::wallet::AddressInfo">AddressInfo</a></h3></section><section id="impl-UnwindSafe-for-AddressInfo" class="impl has-srclink"><a href="#impl-UnwindSafe-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.AddressInfo.html" title="struct bdk_wallet::wallet::AddressInfo">AddressInfo</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-AddressInfo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-AddressInfo" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-AddressInfo" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Balance, differentiated into various categories."><meta name="keywords" content="rust, rustlang, rust-lang, Balance"><title>Balance in bdk_wallet::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Balance</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.confirmed">confirmed</a></li><li><a href="#structfield.immature">immature</a></li><li><a href="#structfield.trusted_pending">trusted_pending</a></li><li><a href="#structfield.untrusted_pending">untrusted_pending</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.total">total</a></li><li><a href="#method.trusted_spendable">trusted_spendable</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Add%3CBalance%3E-for-Balance">Add<Balance></a></li><li><a href="#impl-Clone-for-Balance">Clone</a></li><li><a href="#impl-Debug-for-Balance">Debug</a></li><li><a href="#impl-Default-for-Balance">Default</a></li><li><a href="#impl-Deserialize%3C%27de%3E-for-Balance">Deserialize<'de></a></li><li><a href="#impl-Display-for-Balance">Display</a></li><li><a href="#impl-Eq-for-Balance">Eq</a></li><li><a href="#impl-PartialEq%3CBalance%3E-for-Balance">PartialEq<Balance></a></li><li><a href="#impl-Serialize-for-Balance">Serialize</a></li><li><a href="#impl-StructuralEq-for-Balance">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-Balance">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Balance">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Balance">Send</a></li><li><a href="#impl-Sync-for-Balance">Sync</a></li><li><a href="#impl-Unpin-for-Balance">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Balance">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Balance">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Balance">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Balance">BorrowMut<T></a></li><li><a href="#impl-DeserializeOwned-for-Balance">DeserializeOwned</a></li><li><a href="#impl-From%3CT%3E-for-Balance">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Balance">Into<U></a></li><li><a href="#impl-ToOwned-for-Balance">ToOwned</a></li><li><a href="#impl-ToString-for-Balance">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Balance">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Balance">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Balance">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="struct" href="#">Balance</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Balance {
+ pub immature: Amount,
+ pub trusted_pending: Amount,
+ pub untrusted_pending: Amount,
+ pub confirmed: Amount,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Balance, differentiated into various categories.</p>
+</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.immature" class="structfield small-section-header"><a href="#structfield.immature" class="anchor field">§</a><code>immature: Amount</code></span><div class="docblock"><p>All coinbase outputs not yet matured</p>
+</div><span id="structfield.trusted_pending" class="structfield small-section-header"><a href="#structfield.trusted_pending" class="anchor field">§</a><code>trusted_pending: Amount</code></span><div class="docblock"><p>Unconfirmed UTXOs generated by a wallet tx</p>
+</div><span id="structfield.untrusted_pending" class="structfield small-section-header"><a href="#structfield.untrusted_pending" class="anchor field">§</a><code>untrusted_pending: Amount</code></span><div class="docblock"><p>Unconfirmed UTXOs received from an external wallet</p>
+</div><span id="structfield.confirmed" class="structfield small-section-header"><a href="#structfield.confirmed" class="anchor field">§</a><code>confirmed: Amount</code></span><div class="docblock"><p>Confirmed and immediately spendable balance</p>
+</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Balance" class="impl has-srclink"><a href="#impl-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.trusted_spendable" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.trusted_spendable" class="fn">trusted_spendable</a>(&self) -> Amount</h4></section></summary><div class="docblock"><p>Get sum of trusted_pending and confirmed coins.</p>
+<p>This is the balance you can spend right now that shouldn’t get cancelled via another party
+double spending it.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.total" class="method has-srclink"><h4 class="code-header">pub fn <a href="#method.total" class="fn">total</a>(&self) -> Amount</h4></section></summary><div class="docblock"><p>Get the whole balance visible to the wallet.</p>
+</div></details></div></details></div><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><section id="impl-Add%3CBalance%3E-for-Balance" class="impl has-srclink"><a href="#impl-Add%3CBalance%3E-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html" title="trait core::ops::arith::Add">Add</a><<a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a>> for <a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a></h4></section></summary><div class='docblock'>The resulting type after applying the <code>+</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add" class="method trait-impl has-srclink"><a href="#method.add" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#tymethod.add" class="fn">add</a>(self, other: <a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a>) -> <a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a></h4></section></summary><div class='docblock'>Performs the <code>+</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#tymethod.add">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Clone-for-Balance" class="impl has-srclink"><a href="#impl-Clone-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Balance" class="impl has-srclink"><a href="#impl-Debug-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-Balance" class="impl has-srclink"><a href="#impl-Default-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserialize%3C%27de%3E-for-Balance" class="impl has-srclink"><a href="#impl-Deserialize%3C%27de%3E-for-Balance" class="anchor">§</a><h3 class="code-header">impl<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> for <a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl has-srclink"><a href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize" class="fn">deserialize</a><__D>(<br> __deserializer: __D<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="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a>, <__D as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>><span class="where fmt-newline">where<br> __D: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-Balance" class="impl has-srclink"><a href="#impl-Display-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <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>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CBalance%3E-for-Balance" class="impl has-srclink"><a href="#impl-PartialEq%3CBalance%3E-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a>> for <a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Balance" class="impl has-srclink"><a href="#impl-Serialize-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><__S>(<br> &self,<br> __serializer: __S<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<__S as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, <__S as <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> __S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-Balance" class="impl has-srclink"><a href="#impl-Eq-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a></h3></section><section id="impl-StructuralEq-for-Balance" class="impl has-srclink"><a href="#impl-StructuralEq-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a></h3></section><section id="impl-StructuralPartialEq-for-Balance" class="impl has-srclink"><a href="#impl-StructuralPartialEq-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Balance" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a></h3></section><section id="impl-Send-for-Balance" class="impl has-srclink"><a href="#impl-Send-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a></h3></section><section id="impl-Sync-for-Balance" class="impl has-srclink"><a href="#impl-Sync-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a></h3></section><section id="impl-Unpin-for-Balance" class="impl has-srclink"><a href="#impl-Unpin-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a></h3></section><section id="impl-UnwindSafe-for-Balance" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Balance" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Balance" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Balance" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Balance" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Balance" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Balance" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-Balance" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-Balance" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Balance" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Balance" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Balance" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Balance" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details><section id="impl-DeserializeOwned-for-Balance" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/serde/1.0.201/src/serde/de/mod.rs.html#608">source</a><a href="#impl-DeserializeOwned-for-Balance" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> for T<span class="where fmt-newline">where<br> T: for<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de>,</span></h3></section></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="The changes made to a wallet by applying an [`Update`]."><meta name="keywords" content="rust, rustlang, rust-lang, ChangeSet"><title>ChangeSet in bdk_wallet::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">ChangeSet</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.chain">chain</a></li><li><a href="#structfield.indexed_tx_graph">indexed_tx_graph</a></li><li><a href="#structfield.network">network</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Append-for-ChangeSet">Append</a></li><li><a href="#impl-Clone-for-ChangeSet">Clone</a></li><li><a href="#impl-Debug-for-ChangeSet">Debug</a></li><li><a href="#impl-Default-for-ChangeSet">Default</a></li><li><a href="#impl-Deserialize%3C%27de%3E-for-ChangeSet">Deserialize<'de></a></li><li><a href="#impl-From%3CBTreeMap%3Cu32%2C%20Option%3CBlockHash%3E%2C%20Global%3E%3E-for-ChangeSet">From<BTreeMap<u32, Option<BlockHash>, Global>></a></li><li><a href="#impl-From%3CChangeSet%3CConfirmationTimeHeightAnchor%2C%20ChangeSet%3CKeychainKind%3E%3E%3E-for-ChangeSet">From<ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<KeychainKind>>></a></li><li><a href="#impl-PartialEq%3CChangeSet%3E-for-ChangeSet">PartialEq<ChangeSet></a></li><li><a href="#impl-Serialize-for-ChangeSet">Serialize</a></li><li><a href="#impl-StructuralPartialEq-for-ChangeSet">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-ChangeSet">RefUnwindSafe</a></li><li><a href="#impl-Send-for-ChangeSet">Send</a></li><li><a href="#impl-Sync-for-ChangeSet">Sync</a></li><li><a href="#impl-Unpin-for-ChangeSet">Unpin</a></li><li><a href="#impl-UnwindSafe-for-ChangeSet">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-ChangeSet">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-ChangeSet">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-ChangeSet">BorrowMut<T></a></li><li><a href="#impl-DeserializeOwned-for-ChangeSet">DeserializeOwned</a></li><li><a href="#impl-From%3CT%3E-for-ChangeSet">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-ChangeSet">Into<U></a></li><li><a href="#impl-ToOwned-for-ChangeSet">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-ChangeSet">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-ChangeSet">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-ChangeSet">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="struct" href="#">ChangeSet</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/wallet/mod.rs.html#138-154">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct ChangeSet {
+ pub chain: ChangeSet,
+ pub indexed_tx_graph: ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<<a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>>>,
+ pub network: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Network>,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The changes made to a wallet by applying an <a href="struct.Update.html" title="Update"><code>Update</code></a>.</p>
+</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.chain" class="structfield small-section-header"><a href="#structfield.chain" class="anchor field">§</a><code>chain: ChangeSet</code></span><div class="docblock"><p>Changes to the <a href="local_chain::LocalChain"><code>LocalChain</code></a>.</p>
+</div><span id="structfield.indexed_tx_graph" class="structfield small-section-header"><a href="#structfield.indexed_tx_graph" class="anchor field">§</a><code>indexed_tx_graph: ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<<a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>>></code></span><div class="docblock"><p>Changes to <a href="bdk_chain::indexed_tx_graph::IndexedTxGraph"><code>IndexedTxGraph</code></a>.</p>
+</div><span id="structfield.network" class="structfield small-section-header"><a href="#structfield.network" class="anchor field">§</a><code>network: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Network></code></span><div class="docblock"><p>Stores the network type of the wallet.</p>
+</div><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><section id="impl-Append-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#156-172">source</a><a href="#impl-Append-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl Append for <a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.append" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#157-167">source</a><a href="#method.append" class="anchor">§</a><h4 class="code-header">fn <a class="fn">append</a>(&mut self, other: Self)</h4></section></summary><div class='docblock'>Append another object of the same type onto <code>self</code>.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_empty" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#169-171">source</a><a href="#method.is_empty" class="anchor">§</a><h4 class="code-header">fn <a class="fn">is_empty</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns whether the structure is considered empty.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Clone-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#137">source</a><a href="#impl-Clone-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#137">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#137">source</a><a href="#impl-Debug-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#137">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#137">source</a><a href="#impl-Default-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#137">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserialize%3C%27de%3E-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#137">source</a><a href="#impl-Deserialize%3C%27de%3E-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#137">source</a><a href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize" class="fn">deserialize</a><__D>(__deserializer: __D) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, __D::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>><span class="where fmt-newline">where<br> __D: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CBTreeMap%3Cu32%2C%20Option%3CBlockHash%3E%2C%20Global%3E%3E-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#174-181">source</a><a href="#impl-From%3CBTreeMap%3Cu32%2C%20Option%3CBlockHash%3E%2C%20Global%3E%3E-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<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><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>, <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><BlockHash>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>>> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#175-180">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(chain: ChangeSet) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CChangeSet%3CConfirmationTimeHeightAnchor%2C%20ChangeSet%3CKeychainKind%3E%3E%3E-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#183-202">source</a><a href="#impl-From%3CChangeSet%3CConfirmationTimeHeightAnchor%2C%20ChangeSet%3CKeychainKind%3E%3E%3E-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<<a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>>>> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#191-201">source</a><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(<br> indexed_tx_graph: ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<<a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>>><br>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CChangeSet%3E-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#137">source</a><a href="#impl-PartialEq%3CChangeSet%3E-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a>> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#137">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Serialize-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#137">source</a><a href="#impl-Serialize-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#137">source</a><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><__S>(&self, __serializer: __S) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><__S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, __S::<a class="associatedtype" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><span class="where fmt-newline">where<br> __S: <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-StructuralPartialEq-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#137">source</a><a href="#impl-StructuralPartialEq-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-ChangeSet" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a></h3></section><section id="impl-Send-for-ChangeSet" class="impl has-srclink"><a href="#impl-Send-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a></h3></section><section id="impl-Sync-for-ChangeSet" class="impl has-srclink"><a href="#impl-Sync-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a></h3></section><section id="impl-Unpin-for-ChangeSet" class="impl has-srclink"><a href="#impl-Unpin-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a></h3></section><section id="impl-UnwindSafe-for-ChangeSet" class="impl has-srclink"><a href="#impl-UnwindSafe-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-ChangeSet" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details><section id="impl-DeserializeOwned-for-ChangeSet" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/serde/1.0.201/src/serde/de/mod.rs.html#608">source</a><a href="#impl-DeserializeOwned-for-ChangeSet" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> for T<span class="where fmt-newline">where<br> T: for<'de> <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de>,</span></h3></section></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="An update to [`Wallet`]."><meta name="keywords" content="rust, rustlang, rust-lang, Update"><title>Update in bdk_wallet::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Update</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.chain">chain</a></li><li><a href="#structfield.graph">graph</a></li><li><a href="#structfield.last_active_indices">last_active_indices</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-Update">Clone</a></li><li><a href="#impl-Debug-for-Update">Debug</a></li><li><a href="#impl-Default-for-Update">Default</a></li><li><a href="#impl-From%3CFullScanResult%3CKeychainKind%2C%20ConfirmationTimeHeightAnchor%3E%3E-for-Update">From<FullScanResult<KeychainKind, ConfirmationTimeHeightAnchor>></a></li><li><a href="#impl-From%3CSyncResult%3CConfirmationTimeHeightAnchor%3E%3E-for-Update">From<SyncResult<ConfirmationTimeHeightAnchor>></a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Update">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Update">Send</a></li><li><a href="#impl-Sync-for-Update">Sync</a></li><li><a href="#impl-Unpin-for-Update">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Update">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Update">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Update">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Update">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Update">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Update">Into<U></a></li><li><a href="#impl-ToOwned-for-Update">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Update">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Update">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Update">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="struct" href="#">Update</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/wallet/mod.rs.html#102-114">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Update {
+ pub last_active_indices: <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><<a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>>,
+ pub graph: TxGraph<ConfirmationTimeHeightAnchor>,
+ pub chain: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><CheckPoint>,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An update to <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>.</p>
+<p>It updates [<code>bdk_chain::keychain::KeychainTxOutIndex</code>], [<code>bdk_chain::TxGraph</code>] and [<code>local_chain::LocalChain</code>] atomically.</p>
+</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.last_active_indices" class="structfield small-section-header"><a href="#structfield.last_active_indices" class="anchor field">§</a><code>last_active_indices: <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><<a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>></code></span><div class="docblock"><p>Contains the last active derivation indices per keychain (<code>K</code>), which is used to update the
+[<code>KeychainTxOutIndex</code>].</p>
+</div><span id="structfield.graph" class="structfield small-section-header"><a href="#structfield.graph" class="anchor field">§</a><code>graph: TxGraph<ConfirmationTimeHeightAnchor></code></span><div class="docblock"><p>Update for the wallet’s internal [<code>TxGraph</code>].</p>
+</div><span id="structfield.chain" class="structfield small-section-header"><a href="#structfield.chain" class="anchor field">§</a><code>chain: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><CheckPoint></code></span><div class="docblock"><p>Update for the wallet’s internal <a href="local_chain::LocalChain"><code>LocalChain</code></a>.</p>
+</div><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><section id="impl-Clone-for-Update" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#101">source</a><a href="#impl-Clone-for-Update" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.Update.html" title="struct bdk_wallet::wallet::Update">Update</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#101">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.Update.html" title="struct bdk_wallet::wallet::Update">Update</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Update" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#101">source</a><a href="#impl-Debug-for-Update" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Update.html" title="struct bdk_wallet::wallet::Update">Update</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#101">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-Update" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#101">source</a><a href="#impl-Default-for-Update" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.Update.html" title="struct bdk_wallet::wallet::Update">Update</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#101">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="struct" href="struct.Update.html" title="struct bdk_wallet::wallet::Update">Update</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CFullScanResult%3CKeychainKind%2C%20ConfirmationTimeHeightAnchor%3E%3E-for-Update" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#116-124">source</a><a href="#impl-From%3CFullScanResult%3CKeychainKind%2C%20ConfirmationTimeHeightAnchor%3E%3E-for-Update" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><FullScanResult<<a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>, ConfirmationTimeHeightAnchor>> for <a class="struct" href="struct.Update.html" title="struct bdk_wallet::wallet::Update">Update</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#117-123">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(value: FullScanResult<<a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>>) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CSyncResult%3CConfirmationTimeHeightAnchor%3E%3E-for-Update" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#126-134">source</a><a href="#impl-From%3CSyncResult%3CConfirmationTimeHeightAnchor%3E%3E-for-Update" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><SyncResult<ConfirmationTimeHeightAnchor>> for <a class="struct" href="struct.Update.html" title="struct bdk_wallet::wallet::Update">Update</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#127-133">source</a><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(value: SyncResult) -> Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Update" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Update" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Update.html" title="struct bdk_wallet::wallet::Update">Update</a></h3></section><section id="impl-Send-for-Update" class="impl has-srclink"><a href="#impl-Send-for-Update" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Update.html" title="struct bdk_wallet::wallet::Update">Update</a></h3></section><section id="impl-Sync-for-Update" class="impl has-srclink"><a href="#impl-Sync-for-Update" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Update.html" title="struct bdk_wallet::wallet::Update">Update</a></h3></section><section id="impl-Unpin-for-Update" class="impl has-srclink"><a href="#impl-Unpin-for-Update" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Update.html" title="struct bdk_wallet::wallet::Update">Update</a></h3></section><section id="impl-UnwindSafe-for-Update" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Update" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Update.html" title="struct bdk_wallet::wallet::Update">Update</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Update" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Update" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Update" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Update" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Update" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Update" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Update" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Update" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Update" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Update" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Update" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-Update" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Update" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Update" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Update" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Update" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Update" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Update" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="A Bitcoin wallet"><meta name="keywords" content="rust, rustlang, rust-lang, Wallet"><title>Wallet in bdk_wallet::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Wallet</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.add_signer">add_signer</a></li><li><a href="#method.all_unbounded_spk_iters">all_unbounded_spk_iters</a></li><li><a href="#method.apply_block">apply_block</a></li><li><a href="#method.apply_block_connected_to">apply_block_connected_to</a></li><li><a href="#method.apply_unconfirmed_txs">apply_unconfirmed_txs</a></li><li><a href="#method.apply_update">apply_update</a></li><li><a href="#method.build_fee_bump">build_fee_bump</a></li><li><a href="#method.build_tx">build_tx</a></li><li><a href="#method.calculate_fee">calculate_fee</a></li><li><a href="#method.calculate_fee_rate">calculate_fee_rate</a></li><li><a href="#method.cancel_tx">cancel_tx</a></li><li><a href="#method.checkpoints">checkpoints</a></li><li><a href="#method.commit">commit</a></li><li><a href="#method.derivation_index">derivation_index</a></li><li><a href="#method.derivation_of_spk">derivation_of_spk</a></li><li><a href="#method.descriptor_checksum">descriptor_checksum</a></li><li><a href="#method.finalize_psbt">finalize_psbt</a></li><li><a href="#method.get_balance">get_balance</a></li><li><a href="#method.get_descriptor_for_keychain">get_descriptor_for_keychain</a></li><li><a href="#method.get_psbt_input">get_psbt_input</a></li><li><a href="#method.get_signers">get_signers</a></li><li><a href="#method.get_tx">get_tx</a></li><li><a href="#method.get_utxo">get_utxo</a></li><li><a href="#method.insert_checkpoint">insert_checkpoint</a></li><li><a href="#method.insert_tx">insert_tx</a></li><li><a href="#method.insert_txout">insert_txout</a></li><li><a href="#method.is_mine">is_mine</a></li><li><a href="#method.keychains">keychains</a></li><li><a href="#method.latest_checkpoint">latest_checkpoint</a></li><li><a href="#method.list_output">list_output</a></li><li><a href="#method.list_unspent">list_unspent</a></li><li><a href="#method.list_unused_addresses">list_unused_addresses</a></li><li><a href="#method.load">load</a></li><li><a href="#method.local_chain">local_chain</a></li><li><a href="#method.mark_used">mark_used</a></li><li><a href="#method.network">network</a></li><li><a href="#method.new">new</a></li><li><a href="#method.new_no_persist">new_no_persist</a></li><li><a href="#method.new_no_persist_with_genesis_hash">new_no_persist_with_genesis_hash</a></li><li><a href="#method.new_or_load">new_or_load</a></li><li><a href="#method.new_or_load_with_genesis_hash">new_or_load_with_genesis_hash</a></li><li><a href="#method.new_with_genesis_hash">new_with_genesis_hash</a></li><li><a href="#method.next_derivation_index">next_derivation_index</a></li><li><a href="#method.next_unused_address">next_unused_address</a></li><li><a href="#method.peek_address">peek_address</a></li><li><a href="#method.policies">policies</a></li><li><a href="#method.public_descriptor">public_descriptor</a></li><li><a href="#method.reveal_addresses_to">reveal_addresses_to</a></li><li><a href="#method.reveal_next_address">reveal_next_address</a></li><li><a href="#method.secp_ctx">secp_ctx</a></li><li><a href="#method.sent_and_received">sent_and_received</a></li><li><a href="#method.sign">sign</a></li><li><a href="#method.spk_index">spk_index</a></li><li><a href="#method.staged">staged</a></li><li><a href="#method.start_full_scan">start_full_scan</a></li><li><a href="#method.start_sync_with_revealed_spks">start_sync_with_revealed_spks</a></li><li><a href="#method.transactions">transactions</a></li><li><a href="#method.tx_graph">tx_graph</a></li><li><a href="#method.unbounded_spk_iter">unbounded_spk_iter</a></li><li><a href="#method.unmark_used">unmark_used</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-AsRef%3CTxGraph%3CConfirmationTimeHeightAnchor%3E%3E-for-Wallet">AsRef<TxGraph<ConfirmationTimeHeightAnchor>></a></li><li><a href="#impl-Debug-for-Wallet">Debug</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Wallet">!RefUnwindSafe</a></li><li><a href="#impl-Send-for-Wallet">Send</a></li><li><a href="#impl-Sync-for-Wallet">Sync</a></li><li><a href="#impl-Unpin-for-Wallet">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Wallet">!UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Wallet">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Wallet">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Wallet">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Wallet">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Wallet">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-Wallet">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Wallet">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Wallet">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="struct" href="#">Wallet</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/wallet/mod.rs.html#88-96">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Wallet { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A Bitcoin wallet</p>
+<p>The <code>Wallet</code> acts as a way of coherently interfacing with output descriptors and related transactions.
+Its main components are:</p>
+<ol>
+<li>output <em>descriptors</em> from which it can derive addresses.</li>
+<li><a href="signer/index.html"><code>signer</code></a>s that can contribute signatures to addresses instantiated from the descriptors.</li>
+</ol>
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Wallet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#230-258">source</a><a href="#impl-Wallet" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Wallet.html" title="struct bdk_wallet::wallet::Wallet">Wallet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_no_persist" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#232-242">source</a><h4 class="code-header">pub fn <a href="#method.new_no_persist" class="fn">new_no_persist</a><E: <a class="trait" href="../descriptor/trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a>>(<br> descriptor: E,<br> change_descriptor: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><E>,<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><Self, <a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class="docblock"><p>Creates a wallet that does not persist data.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_no_persist_with_genesis_hash" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#245-257">source</a><h4 class="code-header">pub fn <a href="#method.new_no_persist_with_genesis_hash" class="fn">new_no_persist_with_genesis_hash</a><E: <a class="trait" href="../descriptor/trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a>>(<br> descriptor: E,<br> change_descriptor: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><E>,<br> network: Network,<br> genesis_hash: BlockHash<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, <a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class="docblock"><p>Creates a wallet that does not persist data, with a custom genesis hash.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Wallet-1" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#462-2557">source</a><a href="#impl-Wallet-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Wallet.html" title="struct bdk_wallet::wallet::Wallet">Wallet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#464-472">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a><E: <a class="trait" href="../descriptor/trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a>>(<br> descriptor: E,<br> change_descriptor: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><E>,<br> db: impl PersistBackend<<a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static,<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><Self, <a class="enum" href="enum.NewError.html" title="enum bdk_wallet::wallet::NewError">NewError</a>></h4></section></summary><div class="docblock"><p>Initialize an empty <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_with_genesis_hash" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#478-517">source</a><h4 class="code-header">pub fn <a href="#method.new_with_genesis_hash" class="fn">new_with_genesis_hash</a><E: <a class="trait" href="../descriptor/trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a>>(<br> descriptor: E,<br> change_descriptor: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><E>,<br> db: impl PersistBackend<<a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static,<br> network: Network,<br> genesis_hash: BlockHash<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, <a class="enum" href="enum.NewError.html" title="enum bdk_wallet::wallet::NewError">NewError</a>></h4></section></summary><div class="docblock"><p>Initialize an empty <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a> with a custom genesis hash.</p>
+<p>This is like <a href="struct.Wallet.html#method.new" title="Wallet::new"><code>Wallet::new</code></a> with an additional <code>genesis_hash</code> parameter. This is useful
+for syncing from alternative networks.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.load" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#560-568">source</a><h4 class="code-header">pub fn <a href="#method.load" class="fn">load</a>(<br> db: impl PersistBackend<<a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, <a class="enum" href="enum.LoadError.html" title="enum bdk_wallet::wallet::LoadError">LoadError</a>></h4></section></summary><div class="docblock"><p>Load <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a> from the given persistence backend.</p>
+<p>Note that the descriptor secret keys are not persisted to the db; this means that after
+calling this method the <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a> <strong>won’t</strong> know the secret keys, and as such, won’t be
+able to sign transactions.</p>
+<p>If you wish to use the wallet to sign transactions, you need to add the secret keys
+manually to the <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>:</p>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>secp = Secp256k1::new();
+
+<span class="kw">let </span>(external_descriptor, external_keymap) = Descriptor::parse_descriptor(<span class="kw-2">&</span>secp, <span class="string">"wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/0/*)"</span>).unwrap();
+<span class="kw">let </span>(internal_descriptor, internal_keymap) = Descriptor::parse_descriptor(<span class="kw-2">&</span>secp, <span class="string">"wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/1/*)"</span>).unwrap();
+
+<span class="kw">let </span>external_signer_container = SignersContainer::build(external_keymap, <span class="kw-2">&</span>external_descriptor, <span class="kw-2">&</span>secp);
+<span class="kw">let </span>internal_signer_container = SignersContainer::build(internal_keymap, <span class="kw-2">&</span>internal_descriptor, <span class="kw-2">&</span>secp);
+
+<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::load(db)<span class="question-mark">?</span>;
+
+external_signer_container.signers().into_iter()
+ .for_each(|s| wallet.add_signer(KeychainKind::External, SignerOrdering::default(), s.clone()));
+internal_signer_container.signers().into_iter()
+ .for_each(|s| wallet.add_signer(KeychainKind::Internal, SignerOrdering::default(), s.clone()));</code></pre></div>
+<p>Alternatively, you can call <a href="struct.Wallet.html#method.new_or_load" title="Wallet::new_or_load"><code>Wallet::new_or_load</code></a>, which will add the private keys of the
+passed-in descriptors to the <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a>.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_or_load" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#616-630">source</a><h4 class="code-header">pub fn <a href="#method.new_or_load" class="fn">new_or_load</a><E: <a class="trait" href="../descriptor/trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a>>(<br> descriptor: E,<br> change_descriptor: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><E>,<br> db: impl PersistBackend<<a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static,<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><Self, <a class="enum" href="enum.NewOrLoadError.html" title="enum bdk_wallet::wallet::NewOrLoadError">NewOrLoadError</a>></h4></section></summary><div class="docblock"><p>Either loads <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a> from persistence, or initializes it if it does not exist.</p>
+<p>This method will fail if the loaded <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a> has different parameters to those provided.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_or_load_with_genesis_hash" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#638-763">source</a><h4 class="code-header">pub fn <a href="#method.new_or_load_with_genesis_hash" class="fn">new_or_load_with_genesis_hash</a><E: <a class="trait" href="../descriptor/trait.IntoWalletDescriptor.html" title="trait bdk_wallet::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a>>(<br> descriptor: E,<br> change_descriptor: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><E>,<br> db: impl PersistBackend<<a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static,<br> network: Network,<br> genesis_hash: BlockHash<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Self, <a class="enum" href="enum.NewOrLoadError.html" title="enum bdk_wallet::wallet::NewOrLoadError">NewOrLoadError</a>></h4></section></summary><div class="docblock"><p>Either loads <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a> from persistence, or initializes it if it does not exist, using the
+provided descriptor, change descriptor, network, and custom genesis hash.</p>
+<p>This method will fail if the loaded <a href="struct.Wallet.html" title="Wallet"><code>Wallet</code></a> has different parameters to those provided.
+This is like <a href="struct.Wallet.html#method.new_or_load" title="Wallet::new_or_load"><code>Wallet::new_or_load</code></a> with an additional <code>genesis_hash</code> parameter. This is
+useful for syncing from alternative networks.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.network" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#766-768">source</a><h4 class="code-header">pub fn <a href="#method.network" class="fn">network</a>(&self) -> Network</h4></section></summary><div class="docblock"><p>Get the Bitcoin network the wallet is using.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.keychains" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#771-773">source</a><h4 class="code-header">pub fn <a href="#method.keychains" class="fn">keychains</a>(<br> &self<br>) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = (&<a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>, &<a class="type" href="../descriptor/type.ExtendedDescriptor.html" title="type bdk_wallet::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>)></h4></section></summary><div class="docblock"><p>Iterator over all keychains in this wallet</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.peek_address" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#783-802">source</a><h4 class="code-header">pub fn <a href="#method.peek_address" class="fn">peek_address</a>(&self, keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>, index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) -> <a class="struct" href="struct.AddressInfo.html" title="struct bdk_wallet::wallet::AddressInfo">AddressInfo</a></h4></section></summary><div class="docblock"><p>Peek an address of the given <code>keychain</code> at <code>index</code> without revealing it.</p>
+<p>For non-wildcard descriptors this returns the same address at every provided index.</p>
+<h5 id="panics"><a href="#panics">Panics</a></h5>
+<p>This panics when the caller requests for an address of derivation index greater than the
+<a href="https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki">BIP32</a> max index.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.reveal_next_address" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#814-830">source</a><h4 class="code-header">pub fn <a href="#method.reveal_next_address" class="fn">reveal_next_address</a>(<br> &mut self,<br> keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a><br>) -> <a class="type" href="https://docs.rs/anyhow/1.0.83/anyhow/type.Result.html" title="type anyhow::Result">Result</a><<a class="struct" href="struct.AddressInfo.html" title="struct bdk_wallet::wallet::AddressInfo">AddressInfo</a>></h4></section></summary><div class="docblock"><p>Attempt to reveal the next address of the given <code>keychain</code>.</p>
+<p>This will increment the internal derivation index. If the keychain’s descriptor doesn’t
+contain a wildcard or every address is already revealed up to the maximum derivation
+index defined in <a href="https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki">BIP32</a>,
+then returns the last revealed address.</p>
+<h5 id="errors"><a href="#errors">Errors</a></h5>
+<p>If writing to persistent storage fails.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.reveal_addresses_to" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#842-862">source</a><h4 class="code-header">pub fn <a href="#method.reveal_addresses_to" class="fn">reveal_addresses_to</a>(<br> &mut self,<br> keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>,<br> index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a><br>) -> <a class="type" href="https://docs.rs/anyhow/1.0.83/anyhow/type.Result.html" title="type anyhow::Result">Result</a><impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = <a class="struct" href="struct.AddressInfo.html" title="struct bdk_wallet::wallet::AddressInfo">AddressInfo</a>> + '_></h4></section></summary><div class="docblock"><p>Reveal addresses up to and including the target <code>index</code> and return an iterator
+of newly revealed addresses.</p>
+<p>If the target <code>index</code> is unreachable, we make a best effort to reveal up to the last
+possible index. If all addresses up to the given <code>index</code> are already revealed, then
+no new addresses are returned.</p>
+<h5 id="errors-1"><a href="#errors-1">Errors</a></h5>
+<p>If writing to persistent storage fails.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.next_unused_address" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#873-889">source</a><h4 class="code-header">pub fn <a href="#method.next_unused_address" class="fn">next_unused_address</a>(<br> &mut self,<br> keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a><br>) -> <a class="type" href="https://docs.rs/anyhow/1.0.83/anyhow/type.Result.html" title="type anyhow::Result">Result</a><<a class="struct" href="struct.AddressInfo.html" title="struct bdk_wallet::wallet::AddressInfo">AddressInfo</a>></h4></section></summary><div class="docblock"><p>Get the next unused address for the given <code>keychain</code>, i.e. the address with the lowest
+derivation index that hasn’t been used.</p>
+<p>This will attempt to derive and reveal a new address if no newly revealed addresses
+are available. See also <a href="struct.Wallet.html#method.reveal_next_address"><code>reveal_next_address</code></a>.</p>
+<h5 id="errors-2"><a href="#errors-2">Errors</a></h5>
+<p>If writing to persistent storage fails.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mark_used" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#894-896">source</a><h4 class="code-header">pub fn <a href="#method.mark_used" class="fn">mark_used</a>(&mut self, keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>, index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Marks an address used of the given <code>keychain</code> at <code>index</code>.</p>
+<p>Returns whether the given index was present and then removed from the unused set.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.unmark_used" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#906-908">source</a><h4 class="code-header">pub fn <a href="#method.unmark_used" class="fn">unmark_used</a>(&mut self, keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>, index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Undoes the effect of <a href="struct.Wallet.html#method.mark_used"><code>mark_used</code></a> and returns whether the <code>index</code> was inserted
+back into the unused set.</p>
+<p>Since this is only a superficial marker, it will have no effect if the address at the given
+<code>index</code> was actually used, i.e. the wallet has previously indexed a tx output for the
+derived spk.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.list_unused_addresses" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#915-928">source</a><h4 class="code-header">pub fn <a href="#method.list_unused_addresses" class="fn">list_unused_addresses</a>(<br> &self,<br> keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a><br>) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/double_ended/trait.DoubleEndedIterator.html" title="trait core::iter::traits::double_ended::DoubleEndedIterator">DoubleEndedIterator</a><Item = <a class="struct" href="struct.AddressInfo.html" title="struct bdk_wallet::wallet::AddressInfo">AddressInfo</a>> + '_</h4></section></summary><div class="docblock"><p>List addresses that are revealed but unused.</p>
+<p>Note if the returned iterator is empty you can reveal more addresses
+by using <a href="struct.Wallet.html#method.reveal_next_address"><code>reveal_next_address</code></a> or
+<a href="struct.Wallet.html#method.reveal_addresses_to"><code>reveal_addresses_to</code></a>.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_mine" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#931-933">source</a><h4 class="code-header">pub fn <a href="#method.is_mine" class="fn">is_mine</a>(&self, script: &Script) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Return whether or not a <code>script</code> is part of this wallet (either internal or external)</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.derivation_of_spk" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#938-940">source</a><h4 class="code-header">pub fn <a href="#method.derivation_of_spk" class="fn">derivation_of_spk</a>(&self, spk: &Script) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(<a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>)></h4></section></summary><div class="docblock"><p>Finds how the wallet derived the script pubkey <code>spk</code>.</p>
+<p>Will only return <code>Some(_)</code> if the wallet has given out the spk.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.list_unspent" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#943-952">source</a><h4 class="code-header">pub fn <a href="#method.list_unspent" class="fn">list_unspent</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = <a class="struct" href="../struct.LocalOutput.html" title="struct bdk_wallet::LocalOutput">LocalOutput</a>> + '_</h4></section></summary><div class="docblock"><p>Return the list of unspent outputs of this wallet</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.list_output" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#957-966">source</a><h4 class="code-header">pub fn <a href="#method.list_output" class="fn">list_output</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = <a class="struct" href="../struct.LocalOutput.html" title="struct bdk_wallet::LocalOutput">LocalOutput</a>> + '_</h4></section></summary><div class="docblock"><p>List all relevant outputs (includes both spent and unspent, confirmed and unconfirmed).</p>
+<p>To list only unspent outputs (UTXOs), use <a href="struct.Wallet.html#method.list_unspent" title="Wallet::list_unspent"><code>Wallet::list_unspent</code></a> instead.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.checkpoints" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#969-971">source</a><h4 class="code-header">pub fn <a href="#method.checkpoints" class="fn">checkpoints</a>(&self) -> CheckPointIter</h4></section></summary><div class="docblock"><p>Get all the checkpoints the wallet is currently storing indexed by height.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.latest_checkpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#974-976">source</a><h4 class="code-header">pub fn <a href="#method.latest_checkpoint" class="fn">latest_checkpoint</a>(&self) -> CheckPoint</h4></section></summary><div class="docblock"><p>Returns the latest checkpoint.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.all_unbounded_spk_iters" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#986-990">source</a><h4 class="code-header">pub fn <a href="#method.all_unbounded_spk_iters" class="fn">all_unbounded_spk_iters</a>(<br> &self<br>) -> <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><<a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>, impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = (<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>, ScriptBuf)> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>></h4></section></summary><div class="docblock"><p>Get unbounded script pubkey iterators for both <code>Internal</code> and <code>External</code> keychains.</p>
+<p>This is intended to be used when doing a full scan of your addresses (e.g. after restoring
+from seed words). You pass the <code>BTreeMap</code> of iterators to a blockchain data source (e.g.
+electrum server) which will go through each address until it reaches a <em>stop gap</em>.</p>
+<p>Note carefully that iterators go over <strong>all</strong> script pubkeys on the keychains (not what
+script pubkeys the wallet is storing internally).</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.unbounded_spk_iter" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#997-1006">source</a><h4 class="code-header">pub fn <a href="#method.unbounded_spk_iter" class="fn">unbounded_spk_iter</a>(<br> &self,<br> keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a><br>) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = (<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>, ScriptBuf)> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a></h4></section></summary><div class="docblock"><p>Get an unbounded script pubkey iterator for the given <code>keychain</code>.</p>
+<p>See <a href="struct.Wallet.html#method.all_unbounded_spk_iters"><code>all_unbounded_spk_iters</code></a> for more documentation</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_utxo" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#1010-1021">source</a><h4 class="code-header">pub fn <a href="#method.get_utxo" class="fn">get_utxo</a>(&self, op: OutPoint) -> <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="../struct.LocalOutput.html" title="struct bdk_wallet::LocalOutput">LocalOutput</a>></h4></section></summary><div class="docblock"><p>Returns the utxo owned by this wallet corresponding to <code>outpoint</code> if it exists in the
+wallet’s database.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.insert_txout" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#1039-1042">source</a><h4 class="code-header">pub fn <a href="#method.insert_txout" class="fn">insert_txout</a>(&mut self, outpoint: OutPoint, txout: TxOut)</h4></section></summary><div class="docblock"><p>Inserts a [<code>TxOut</code>] at [<code>OutPoint</code>] into the wallet’s transaction graph.</p>
+<p>This is used for providing a previous output’s value so that we can use <a href="struct.Wallet.html#method.calculate_fee"><code>calculate_fee</code></a>
+or <a href="struct.Wallet.html#method.calculate_fee_rate"><code>calculate_fee_rate</code></a> on a given transaction. Outputs inserted with this method will
+not be returned in <a href="struct.Wallet.html#method.list_unspent"><code>list_unspent</code></a> or <a href="struct.Wallet.html#method.list_output"><code>list_output</code></a>.</p>
+<p>Any inserted <code>TxOut</code>s are not persisted until <a href="struct.Wallet.html#method.commit"><code>commit</code></a> is called.</p>
+<p><strong>WARNING:</strong> This should only be used to add <code>TxOut</code>s that the wallet does not own. Only
+insert <code>TxOut</code>s that you trust the values for!</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.calculate_fee" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#1071-1073">source</a><h4 class="code-header">pub fn <a href="#method.calculate_fee" class="fn">calculate_fee</a>(&self, tx: &Transaction) -> <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.u64.html">u64</a>, CalculateFeeError></h4></section></summary><div class="docblock"><p>Calculates the fee of a given transaction. Returns 0 if <code>tx</code> is a coinbase transaction.</p>
+<p>To calculate the fee for a [<code>Transaction</code>] with inputs not owned by this wallet you must
+manually insert the TxOut(s) into the tx graph using the <a href="struct.Wallet.html#method.insert_txout"><code>insert_txout</code></a> function.</p>
+<p>Note <code>tx</code> does not have to be in the graph for this to work.</p>
+<h5 id="examples"><a href="#examples">Examples</a></h5>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>tx = wallet.get_tx(txid).expect(<span class="string">"transaction"</span>).tx_node.tx;
+<span class="kw">let </span>fee = wallet.calculate_fee(<span class="kw-2">&</span>tx).expect(<span class="string">"fee"</span>);</code></pre></div>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>tx = <span class="kw-2">&</span>psbt.clone().extract_tx().expect(<span class="string">"tx"</span>);
+<span class="kw">let </span>fee = wallet.calculate_fee(tx).expect(<span class="string">"fee"</span>);</code></pre></div>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.calculate_fee_rate" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#1102-1105">source</a><h4 class="code-header">pub fn <a href="#method.calculate_fee_rate" class="fn">calculate_fee_rate</a>(<br> &self,<br> tx: &Transaction<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><FeeRate, CalculateFeeError></h4></section></summary><div class="docblock"><p>Calculate the [<code>FeeRate</code>] for a given transaction.</p>
+<p>To calculate the fee rate for a [<code>Transaction</code>] with inputs not owned by this wallet you must
+manually insert the TxOut(s) into the tx graph using the <a href="struct.Wallet.html#method.insert_txout"><code>insert_txout</code></a> function.</p>
+<p>Note <code>tx</code> does not have to be in the graph for this to work.</p>
+<h5 id="examples-1"><a href="#examples-1">Examples</a></h5>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>tx = wallet.get_tx(txid).expect(<span class="string">"transaction"</span>).tx_node.tx;
+<span class="kw">let </span>fee_rate = wallet.calculate_fee_rate(<span class="kw-2">&</span>tx).expect(<span class="string">"fee rate"</span>);</code></pre></div>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>tx = <span class="kw-2">&</span>psbt.clone().extract_tx().expect(<span class="string">"tx"</span>);
+<span class="kw">let </span>fee_rate = wallet.calculate_fee_rate(tx).expect(<span class="string">"fee rate"</span>);</code></pre></div>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sent_and_received" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#1132-1134">source</a><h4 class="code-header">pub fn <a href="#method.sent_and_received" class="fn">sent_and_received</a>(&self, tx: &Transaction) -> (Amount, Amount)</h4></section></summary><div class="docblock"><p>Compute the <code>tx</code>’s sent and received [<code>Amount</code>]s.</p>
+<p>This method returns a tuple <code>(sent, received)</code>. Sent is the sum of the txin amounts
+that spend from previous txouts tracked by this wallet. Received is the summation
+of this tx’s outputs that send to script pubkeys tracked by this wallet.</p>
+<h5 id="examples-2"><a href="#examples-2">Examples</a></h5>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>tx = wallet.get_tx(txid).expect(<span class="string">"tx exists"</span>).tx_node.tx;
+<span class="kw">let </span>(sent, received) = wallet.sent_and_received(<span class="kw-2">&</span>tx);</code></pre></div>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>tx = <span class="kw-2">&</span>psbt.clone().extract_tx().expect(<span class="string">"tx"</span>);
+<span class="kw">let </span>(sent, received) = wallet.sent_and_received(tx);</code></pre></div>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_tx" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#1179-1193">source</a><h4 class="code-header">pub fn <a href="#method.get_tx" class="fn">get_tx</a>(<br> &self,<br> txid: Txid<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><CanonicalTx<'_, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><Transaction>, ConfirmationTimeHeightAnchor>></h4></section></summary><div class="docblock"><p>Get a single transaction from the wallet as a [<code>CanonicalTx</code>] (if the transaction exists).</p>
+<p><code>CanonicalTx</code> contains the full transaction alongside meta-data such as:</p>
+<ul>
+<li>Blocks that the transaction is <a href="bdk_chain::Anchor"><code>Anchor</code></a>ed in. These may or may not be blocks that exist
+in the best chain.</li>
+<li>The [<code>ChainPosition</code>] of the transaction in the best chain - whether the transaction is
+confirmed or unconfirmed. If the transaction is confirmed, the anchor which proves the
+confirmation is provided. If the transaction is unconfirmed, the unix timestamp of when
+the transaction was last seen in the mempool is provided.</li>
+</ul>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bdk_chain::Anchor;
+<span class="kw">use </span>bdk_wallet::{chain::ChainPosition, Wallet};
+
+<span class="kw">let </span>canonical_tx = wallet.get_tx(my_txid).expect(<span class="string">"panic if tx does not exist"</span>);
+
+<span class="comment">// get reference to full transaction
+</span><span class="macro">println!</span>(<span class="string">"my tx: {:#?}"</span>, canonical_tx.tx_node.tx);
+
+<span class="comment">// list all transaction anchors
+</span><span class="kw">for </span>anchor <span class="kw">in </span>canonical_tx.tx_node.anchors {
+ <span class="macro">println!</span>(
+ <span class="string">"tx is anchored by block of hash {}"</span>,
+ anchor.anchor_block().hash
+ );
+}
+
+<span class="comment">// get confirmation status of transaction
+</span><span class="kw">match </span>canonical_tx.chain_position {
+ ChainPosition::Confirmed(anchor) => <span class="macro">println!</span>(
+ <span class="string">"tx is confirmed at height {}, we know this since {}:{} is in the best chain"</span>,
+ anchor.confirmation_height, anchor.anchor_block.height, anchor.anchor_block.hash,
+ ),
+ ChainPosition::Unconfirmed(last_seen) => <span class="macro">println!</span>(
+ <span class="string">"tx is last seen at {}, it is unconfirmed as it is not anchored in the best chain"</span>,
+ last_seen,
+ ),
+}</code></pre></div>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.insert_checkpoint" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#1202-1210">source</a><h4 class="code-header">pub fn <a href="#method.insert_checkpoint" class="fn">insert_checkpoint</a>(<br> &mut self,<br> block_id: BlockId<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.bool.html">bool</a>, AlterCheckPointError></h4></section></summary><div class="docblock"><p>Add a new checkpoint to the wallet’s internal view of the chain.
+This stages but does not <a href="struct.Wallet.html#method.commit"><code>commit</code></a> the change.</p>
+<p>Returns whether anything changed with the insertion (e.g. <code>false</code> if checkpoint was already
+there).</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.insert_tx" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#1229-1269">source</a><h4 class="code-header">pub fn <a href="#method.insert_tx" class="fn">insert_tx</a>(<br> &mut self,<br> tx: Transaction,<br> position: ConfirmationTime<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.bool.html">bool</a>, <a class="enum" href="enum.InsertTxError.html" title="enum bdk_wallet::wallet::InsertTxError">InsertTxError</a>></h4></section></summary><div class="docblock"><p>Add a transaction to the wallet’s internal view of the chain. This stages but does not
+<a href="struct.Wallet.html#method.commit"><code>commit</code></a> the change.</p>
+<p>Returns whether anything changed with the transaction insertion (e.g. <code>false</code> if the
+transaction was already inserted at the same position).</p>
+<p>A <code>tx</code> can be rejected if <code>position</code> has a height greater than the <a href="struct.Wallet.html#method.latest_checkpoint"><code>latest_checkpoint</code></a>.
+Therefore you should use <a href="struct.Wallet.html#method.insert_checkpoint"><code>insert_checkpoint</code></a> to insert new checkpoints before manually
+inserting new transactions.</p>
+<p><strong>WARNING:</strong> If <code>position</code> is confirmed, we anchor the <code>tx</code> to a the lowest checkpoint that
+is >= the <code>position</code>’s height. The caller is responsible for ensuring the <code>tx</code> exists in our
+local view of the best chain’s history.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.transactions" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#1272-1279">source</a><h4 class="code-header">pub fn <a href="#method.transactions" class="fn">transactions</a>(<br> &self<br>) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = CanonicalTx<'_, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><Transaction>, ConfirmationTimeHeightAnchor>> + '_</h4></section></summary><div class="docblock"><p>Iterate over the transactions in the wallet.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_balance" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#1283-1290">source</a><h4 class="code-header">pub fn <a href="#method.get_balance" class="fn">get_balance</a>(&self) -> <a class="struct" href="struct.Balance.html" title="struct bdk_wallet::wallet::Balance">Balance</a></h4></section></summary><div class="docblock"><p>Return the balance, separated into available, trusted-pending, untrusted-pending and immature
+values.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_signer" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#1295-1307">source</a><h4 class="code-header">pub fn <a href="#method.add_signer" class="fn">add_signer</a>(<br> &mut self,<br> keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>,<br> ordering: <a class="struct" href="signer/struct.SignerOrdering.html" title="struct bdk_wallet::wallet::signer::SignerOrdering">SignerOrdering</a>,<br> signer: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><dyn <a class="trait" href="signer/trait.TransactionSigner.html" title="trait bdk_wallet::wallet::signer::TransactionSigner">TransactionSigner</a>><br>)</h4></section></summary><div class="docblock"><p>Add an external signer</p>
+<p>See <a href="signer/index.html">the <code>signer</code> module</a> for an example.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_signers" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#1324-1329">source</a><h4 class="code-header">pub fn <a href="#method.get_signers" class="fn">get_signers</a>(&self, keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><<a class="struct" href="signer/struct.SignersContainer.html" title="struct bdk_wallet::wallet::signer::SignersContainer">SignersContainer</a>></h4></section></summary><div class="docblock"><p>Get the signers</p>
+<h6 id="example"><a href="#example">Example</a></h6>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>wallet = Wallet::new_no_persist(<span class="string">"wpkh(tprv8ZgxMBicQKsPe73PBRSmNbTfbcsZnwWhz5eVmhHpi31HW29Z7mc9B4cWGRQzopNUzZUT391DeDJxL2PefNunWyLgqCKRMDkU1s2s8bAfoSk/84'/0'/0'/0/*)"</span>, <span class="prelude-val">None</span>, Network::Testnet)<span class="question-mark">?</span>;
+<span class="kw">for </span>secret_key <span class="kw">in </span>wallet.get_signers(KeychainKind::External).signers().iter().filter_map(|s| s.descriptor_secret_key()) {
+ <span class="comment">// secret_key: tprv8ZgxMBicQKsPe73PBRSmNbTfbcsZnwWhz5eVmhHpi31HW29Z7mc9B4cWGRQzopNUzZUT391DeDJxL2PefNunWyLgqCKRMDkU1s2s8bAfoSk/84'/0'/0'/0/*
+ </span><span class="macro">println!</span>(<span class="string">"secret_key: {}"</span>, secret_key);
+}
+
+<span class="prelude-val">Ok</span>::<(), Box<<span class="kw">dyn </span>std::error::Error>>(())</code></pre></div>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build_tx" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#1360-1367">source</a><h4 class="code-header">pub fn <a href="#method.build_tx" class="fn">build_tx</a>(<br> &mut self<br>) -> <a class="struct" href="tx_builder/struct.TxBuilder.html" title="struct bdk_wallet::wallet::tx_builder::TxBuilder">TxBuilder</a><'_, <a class="type" href="coin_selection/type.DefaultCoinSelectionAlgorithm.html" title="type bdk_wallet::wallet::coin_selection::DefaultCoinSelectionAlgorithm">DefaultCoinSelectionAlgorithm</a>, <a class="struct" href="tx_builder/struct.CreateTx.html" title="struct bdk_wallet::wallet::tx_builder::CreateTx">CreateTx</a>></h4></section></summary><div class="docblock"><p>Start building a transaction.</p>
+<p>This returns a blank <a href="tx_builder/struct.TxBuilder.html"><code>TxBuilder</code></a> from which you can specify the parameters for the transaction.</p>
+<h6 id="example-1"><a href="#example-1">Example</a></h6>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>psbt = {
+ <span class="kw">let </span><span class="kw-2">mut </span>builder = wallet.build_tx();
+ builder
+ .add_recipient(to_address.script_pubkey(), Amount::from_sat(<span class="number">50_000</span>));
+ builder.finish()<span class="question-mark">?
+</span>};
+
+<span class="comment">// sign and broadcast ...</span></code></pre></div>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build_fee_bump" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#1748-1877">source</a><h4 class="code-header">pub fn <a href="#method.build_fee_bump" class="fn">build_fee_bump</a>(<br> &mut self,<br> txid: Txid<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="struct" href="tx_builder/struct.TxBuilder.html" title="struct bdk_wallet::wallet::tx_builder::TxBuilder">TxBuilder</a><'_, <a class="type" href="coin_selection/type.DefaultCoinSelectionAlgorithm.html" title="type bdk_wallet::wallet::coin_selection::DefaultCoinSelectionAlgorithm">DefaultCoinSelectionAlgorithm</a>, <a class="struct" href="tx_builder/struct.BumpFee.html" title="struct bdk_wallet::wallet::tx_builder::BumpFee">BumpFee</a>>, <a class="enum" href="error/enum.BuildFeeBumpError.html" title="enum bdk_wallet::wallet::error::BuildFeeBumpError">BuildFeeBumpError</a>></h4></section></summary><div class="docblock"><p>Bump the fee of a transaction previously created with this wallet.</p>
+<p>Returns an error if the transaction is already confirmed or doesn’t explicitly signal
+<em>replace by fee</em> (RBF). If the transaction can be fee bumped then it returns a <a href="tx_builder/struct.TxBuilder.html" title="TxBuilder"><code>TxBuilder</code></a>
+pre-populated with the inputs and outputs of the original transaction.</p>
+<h6 id="example-2"><a href="#example-2">Example</a></h6>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>psbt = {
+ <span class="kw">let </span><span class="kw-2">mut </span>builder = wallet.build_tx();
+ builder
+ .add_recipient(to_address.script_pubkey(), Amount::from_sat(<span class="number">50_000</span>))
+ .enable_rbf();
+ builder.finish()<span class="question-mark">?
+</span>};
+<span class="kw">let _ </span>= wallet.sign(<span class="kw-2">&mut </span>psbt, SignOptions::default())<span class="question-mark">?</span>;
+<span class="kw">let </span>tx = psbt.clone().extract_tx().expect(<span class="string">"tx"</span>);
+<span class="comment">// broadcast tx but it's taking too long to confirm so we want to bump the fee
+</span><span class="kw">let </span><span class="kw-2">mut </span>psbt = {
+ <span class="kw">let </span><span class="kw-2">mut </span>builder = wallet.build_fee_bump(tx.txid())<span class="question-mark">?</span>;
+ builder
+ .fee_rate(FeeRate::from_sat_per_vb(<span class="number">5</span>).expect(<span class="string">"valid feerate"</span>));
+ builder.finish()<span class="question-mark">?
+</span>};
+
+<span class="kw">let _ </span>= wallet.sign(<span class="kw-2">&mut </span>psbt, SignOptions::default())<span class="question-mark">?</span>;
+<span class="kw">let </span>fee_bumped_tx = psbt.extract_tx();
+<span class="comment">// broadcast fee_bumped_tx to replace original</span></code></pre></div>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sign" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#1907-1954">source</a><h4 class="code-header">pub fn <a href="#method.sign" class="fn">sign</a>(<br> &self,<br> psbt: &mut Psbt,<br> sign_options: <a class="struct" href="signer/struct.SignOptions.html" title="struct bdk_wallet::wallet::signer::SignOptions">SignOptions</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.bool.html">bool</a>, <a class="enum" href="signer/enum.SignerError.html" title="enum bdk_wallet::wallet::signer::SignerError">SignerError</a>></h4></section></summary><div class="docblock"><p>Sign a transaction with all the wallet’s signers, in the order specified by every signer’s
+<a href="signer/struct.SignerOrdering.html" title="SignerOrdering"><code>SignerOrdering</code></a>. This function returns the <code>Result</code> type with an encapsulated <code>bool</code> that has the value true if the PSBT was finalized, or false otherwise.</p>
+<p>The <a href="signer/struct.SignOptions.html" title="SignOptions"><code>SignOptions</code></a> can be used to tweak the behavior of the software signers, and the way
+the transaction is finalized at the end. Note that it can’t be guaranteed that <em>every</em>
+signers will follow the options, but the “software signers” (WIF keys and <code>xprv</code>) defined
+in this library will.</p>
+<h6 id="example-3"><a href="#example-3">Example</a></h6>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>psbt = {
+ <span class="kw">let </span><span class="kw-2">mut </span>builder = wallet.build_tx();
+ builder.add_recipient(to_address.script_pubkey(), Amount::from_sat(<span class="number">50_000</span>));
+ builder.finish()<span class="question-mark">?
+</span>};
+<span class="kw">let </span>finalized = wallet.sign(<span class="kw-2">&mut </span>psbt, SignOptions::default())<span class="question-mark">?</span>;
+<span class="macro">assert!</span>(finalized, <span class="string">"we should have signed all the inputs"</span>);</code></pre></div>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.policies" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#1957-1967">source</a><h4 class="code-header">pub fn <a href="#method.policies" class="fn">policies</a>(<br> &self,<br> keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</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="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="../descriptor/policy/struct.Policy.html" title="struct bdk_wallet::descriptor::policy::Policy">Policy</a>>, <a class="enum" href="../descriptor/error/enum.Error.html" title="enum bdk_wallet::descriptor::error::Error">DescriptorError</a>></h4></section></summary><div class="docblock"><p>Return the spending policies for the wallet’s descriptor</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.public_descriptor" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#1973-1979">source</a><h4 class="code-header">pub fn <a href="#method.public_descriptor" class="fn">public_descriptor</a>(<br> &self,<br> keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a><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="type" href="../descriptor/type.ExtendedDescriptor.html" title="type bdk_wallet::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>></h4></section></summary><div class="docblock"><p>Return the “public” version of the wallet’s descriptor, meaning a new descriptor that has
+the same structure but with every secret key removed</p>
+<p>This can be used to build a watch-only version of a wallet</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.finalize_psbt" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#1989-2076">source</a><h4 class="code-header">pub fn <a href="#method.finalize_psbt" class="fn">finalize_psbt</a>(<br> &self,<br> psbt: &mut Psbt,<br> sign_options: <a class="struct" href="signer/struct.SignOptions.html" title="struct bdk_wallet::wallet::signer::SignOptions">SignOptions</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.bool.html">bool</a>, <a class="enum" href="signer/enum.SignerError.html" title="enum bdk_wallet::wallet::signer::SignerError">SignerError</a>></h4></section></summary><div class="docblock"><p>Finalize a PSBT, i.e., for each input determine if sufficient data is available to pass
+validation and construct the respective <code>scriptSig</code> or <code>scriptWitness</code>. Please refer to
+<a href="https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#Input_Finalizer">BIP174</a>
+for further information.</p>
+<p>Returns <code>true</code> if the PSBT could be finalized, and <code>false</code> otherwise.</p>
+<p>The <a href="signer/struct.SignOptions.html" title="SignOptions"><code>SignOptions</code></a> can be used to tweak the behavior of the finalizer.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.secp_ctx" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2079-2081">source</a><h4 class="code-header">pub fn <a href="#method.secp_ctx" class="fn">secp_ctx</a>(&self) -> &Secp256k1<All></h4></section></summary><div class="docblock"><p>Return the secp256k1 context used for all signing operations</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_descriptor_for_keychain" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2084-2087">source</a><h4 class="code-header">pub fn <a href="#method.get_descriptor_for_keychain" class="fn">get_descriptor_for_keychain</a>(<br> &self,<br> keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a><br>) -> &<a class="type" href="../descriptor/type.ExtendedDescriptor.html" title="type bdk_wallet::descriptor::ExtendedDescriptor">ExtendedDescriptor</a></h4></section></summary><div class="docblock"><p>Returns the descriptor used to create addresses for a particular <code>keychain</code>.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.derivation_index" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2091-2093">source</a><h4 class="code-header">pub fn <a href="#method.derivation_index" class="fn">derivation_index</a>(&self, keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>></h4></section></summary><div class="docblock"><p>The derivation index of this wallet. It will return <code>None</code> if it has not derived any addresses.
+Otherwise, it will return the index of the highest address it has derived.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.next_derivation_index" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2096-2103">source</a><h4 class="code-header">pub fn <a href="#method.next_derivation_index" class="fn">next_derivation_index</a>(&self, keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></h4></section></summary><div class="docblock"><p>The index of the next address that you would get if you were to ask the wallet for a new address</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cancel_tx" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2109-2118">source</a><h4 class="code-header">pub fn <a href="#method.cancel_tx" class="fn">cancel_tx</a>(&mut self, tx: &Transaction)</h4></section></summary><div class="docblock"><p>Informs the wallet that you no longer intend to broadcast a tx that was built from it.</p>
+<p>This frees up the change address used when creating the tx for use in future transactions.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_psbt_input" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2338-2376">source</a><h4 class="code-header">pub fn <a href="#method.get_psbt_input" class="fn">get_psbt_input</a>(<br> &self,<br> utxo: <a class="struct" href="../struct.LocalOutput.html" title="struct bdk_wallet::LocalOutput">LocalOutput</a>,<br> sighash_type: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><PsbtSighashType>,<br> only_witness_utxo: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Input, <a class="enum" href="error/enum.CreateTxError.html" title="enum bdk_wallet::wallet::error::CreateTxError">CreateTxError</a>></h4></section></summary><div class="docblock"><p>get the corresponding PSBT Input for a LocalUtxo</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.descriptor_checksum" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2418-2425">source</a><h4 class="code-header">pub fn <a href="#method.descriptor_checksum" class="fn">descriptor_checksum</a>(&self, keychain: <a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class="docblock"><p>Return the checksum of the public descriptor associated to <code>keychain</code></p>
+<p>Internally calls <a href="struct.Wallet.html#method.get_descriptor_for_keychain" title="Self::get_descriptor_for_keychain"><code>Self::get_descriptor_for_keychain</code></a> to fetch the right descriptor</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.apply_update" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2433-2452">source</a><h4 class="code-header">pub fn <a href="#method.apply_update" class="fn">apply_update</a>(<br> &mut self,<br> update: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><<a class="struct" href="struct.Update.html" title="struct bdk_wallet::wallet::Update">Update</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>, CannotConnectError></h4></section></summary><div class="docblock"><p>Applies an update to the wallet and stages the changes (but does not <a href="struct.Wallet.html#method.commit"><code>commit</code></a> them).</p>
+<p>Usually you create an <code>update</code> by interacting with some blockchain data source and inserting
+transactions related to your wallet into it.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.commit" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2460-2462">source</a><h4 class="code-header">pub fn <a href="#method.commit" class="fn">commit</a>(&mut self) -> <a class="type" href="https://docs.rs/anyhow/1.0.83/anyhow/type.Result.html" title="type anyhow::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>></h4></section></summary><div class="docblock"><p>Commits all currently <a href="struct.Wallet.html#method.staged"><code>staged</code></a> changed to the persistence backend returning and error when
+this fails.</p>
+<p>This returns whether the <code>update</code> resulted in any changes.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.staged" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2467-2469">source</a><h4 class="code-header">pub fn <a href="#method.staged" class="fn">staged</a>(&self) -> &<a class="struct" href="struct.ChangeSet.html" title="struct bdk_wallet::wallet::ChangeSet">ChangeSet</a></h4></section></summary><div class="docblock"><p>Returns the changes that will be committed with the next call to <a href="struct.Wallet.html#method.commit"><code>commit</code></a>.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tx_graph" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2472-2474">source</a><h4 class="code-header">pub fn <a href="#method.tx_graph" class="fn">tx_graph</a>(&self) -> &TxGraph<ConfirmationTimeHeightAnchor></h4></section></summary><div class="docblock"><p>Get a reference to the inner [<code>TxGraph</code>].</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.spk_index" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2477-2479">source</a><h4 class="code-header">pub fn <a href="#method.spk_index" class="fn">spk_index</a>(&self) -> &KeychainTxOutIndex<<a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>></h4></section></summary><div class="docblock"><p>Get a reference to the inner [<code>KeychainTxOutIndex</code>].</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.local_chain" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2482-2484">source</a><h4 class="code-header">pub fn <a href="#method.local_chain" class="fn">local_chain</a>(&self) -> &LocalChain</h4></section></summary><div class="docblock"><p>Get a reference to the inner [<code>LocalChain</code>].</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.apply_block" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2493-2511">source</a><h4 class="code-header">pub fn <a href="#method.apply_block" class="fn">apply_block</a>(<br> &mut self,<br> block: &Block,<br> height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</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>, CannotConnectError></h4></section></summary><div class="docblock"><p>Introduces a <code>block</code> of <code>height</code> to the wallet, and tries to connect it to the
+<code>prev_blockhash</code> of the block’s header.</p>
+<p>This is a convenience method that is equivalent to calling <a href="struct.Wallet.html#method.apply_block_connected_to"><code>apply_block_connected_to</code></a>
+with <code>prev_blockhash</code> and <code>height-1</code> as the <code>connected_to</code> parameter.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.apply_block_connected_to" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2519-2538">source</a><h4 class="code-header">pub fn <a href="#method.apply_block_connected_to" class="fn">apply_block_connected_to</a>(<br> &mut self,<br> block: &Block,<br> height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,<br> connected_to: BlockId<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>, ApplyHeaderError></h4></section></summary><div class="docblock"><p>Applies relevant transactions from <code>block</code> of <code>height</code> to the wallet, and connects the
+block to the internal chain.</p>
+<p>The <code>connected_to</code> parameter informs the wallet how this block connects to the internal
+[<code>LocalChain</code>]. Relevant transactions are filtered from the <code>block</code> and inserted into the
+internal [<code>TxGraph</code>].</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.apply_unconfirmed_txs" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2548-2556">source</a><h4 class="code-header">pub fn <a href="#method.apply_unconfirmed_txs" class="fn">apply_unconfirmed_txs</a><'t>(<br> &mut self,<br> unconfirmed_txs: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = (&'t Transaction, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>)><br>)</h4></section></summary><div class="docblock"><p>Apply relevant unconfirmed transactions to the wallet.</p>
+<p>Transactions that are not relevant are filtered out.</p>
+<p>This method takes in an iterator of <code>(tx, last_seen)</code> where <code>last_seen</code> is the timestamp of
+when the transaction was last seen in the mempool. This is used for conflict resolution
+when there is conflicting unconfirmed transactions. The transaction with the later
+<code>last_seen</code> is prioritized.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Wallet-2" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2560-2584">source</a><a href="#impl-Wallet-2" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Wallet.html" title="struct bdk_wallet::wallet::Wallet">Wallet</a></h3></section></summary><div class="docblock"><p>Methods to construct sync/full-scan requests for spk-based chain sources.</p>
+</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.start_sync_with_revealed_spks" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2566-2570">source</a><h4 class="code-header">pub fn <a href="#method.start_sync_with_revealed_spks" class="fn">start_sync_with_revealed_spks</a>(&self) -> SyncRequest</h4></section></summary><div class="docblock"><p>Create a partial [<code>SyncRequest</code>] for this wallet for all revealed spks.</p>
+<p>This is the first step when performing a spk-based wallet partial sync, the returned
+[<code>SyncRequest</code>] collects all revealed script pubkeys from the wallet keychain needed to
+start a blockchain sync with a spk based blockchain client.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.start_full_scan" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2580-2583">source</a><h4 class="code-header">pub fn <a href="#method.start_full_scan" class="fn">start_full_scan</a>(&self) -> FullScanRequest<<a class="enum" href="../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a>></h4></section></summary><div class="docblock"><p>Create a [`FullScanRequest] for this wallet.</p>
+<p>This is the first step when performing a spk-based wallet full scan, the returned
+[`FullScanRequest] collects iterators for the wallet’s keychain script pub keys needed to
+start a blockchain full scan with a spk based blockchain client.</p>
+<p>This operation is generally only used when importing or restoring a previously used wallet
+in which the list of used scripts is not known.</p>
+</div></details></div></details></div><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><section id="impl-AsRef%3CTxGraph%3CConfirmationTimeHeightAnchor%3E%3E-for-Wallet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2586-2590">source</a><a href="#impl-AsRef%3CTxGraph%3CConfirmationTimeHeightAnchor%3E%3E-for-Wallet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a><TxGraph<ConfirmationTimeHeightAnchor>> for <a class="struct" href="struct.Wallet.html" title="struct bdk_wallet::wallet::Wallet">Wallet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_ref" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#2587-2589">source</a><a href="#method.as_ref" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html#tymethod.as_ref" class="fn">as_ref</a>(&self) -> &TxGraph<ConfirmationTimeHeightAnchor></h4></section></summary><div class='docblock'>Converts this type into a shared reference of the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Wallet" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#87">source</a><a href="#impl-Debug-for-Wallet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Wallet.html" title="struct bdk_wallet::wallet::Wallet">Wallet</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/mod.rs.html#87">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Wallet" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Wallet" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Wallet.html" title="struct bdk_wallet::wallet::Wallet">Wallet</a></h3></section><section id="impl-Send-for-Wallet" class="impl has-srclink"><a href="#impl-Send-for-Wallet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Wallet.html" title="struct bdk_wallet::wallet::Wallet">Wallet</a></h3></section><section id="impl-Sync-for-Wallet" class="impl has-srclink"><a href="#impl-Sync-for-Wallet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Wallet.html" title="struct bdk_wallet::wallet::Wallet">Wallet</a></h3></section><section id="impl-Unpin-for-Wallet" class="impl has-srclink"><a href="#impl-Unpin-for-Wallet" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Wallet.html" title="struct bdk_wallet::wallet::Wallet">Wallet</a></h3></section><section id="impl-UnwindSafe-for-Wallet" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Wallet" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Wallet.html" title="struct bdk_wallet::wallet::Wallet">Wallet</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Wallet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Wallet" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Wallet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Wallet" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Wallet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Wallet" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Wallet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Wallet" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Wallet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Wallet" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Wallet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Wallet" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Wallet" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Wallet" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-Wallet" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-Wallet" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Trait to check if a value is below the dust limit. We are performing dust value calculation for a given script public key using rust-bitcoin to keep it compatible with network dust rate"><meta name="keywords" content="rust, rustlang, rust-lang, IsDust"><title>IsDust in bdk_wallet::wallet - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">IsDust</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.is_dust">is_dust</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-IsDust-for-u64">u64</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk_wallet::wallet</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../index.html">bdk_wallet</a>::<wbr><a href="index.html">wallet</a>::<wbr><a class="trait" href="#">IsDust</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk_wallet/wallet/utils.rs.html#22-25">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait IsDust {
+ fn <a href="#tymethod.is_dust" class="fn">is_dust</a>(&self, script: &Script) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>;
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Trait to check if a value is below the dust limit.
+We are performing dust value calculation for a given script public key using rust-bitcoin to
+keep it compatible with network dust rate</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 method-toggle" open><summary><section id="tymethod.is_dust" class="method has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/utils.rs.html#24">source</a><h4 class="code-header">fn <a href="#tymethod.is_dust" class="fn">is_dust</a>(&self, script: &Script) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check whether or not a value is below dust limit</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><section id="impl-IsDust-for-u64" class="impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/utils.rs.html#27-31">source</a><a href="#impl-IsDust-for-u64" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.IsDust.html" title="trait bdk_wallet::wallet::IsDust">IsDust</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></h3></section></summary><div class="impl-items"><section id="method.is_dust" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/bdk_wallet/wallet/utils.rs.html#28-30">source</a><a href="#method.is_dust" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.is_dust" class="fn">is_dust</a>(&self, script: &Script) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></div></details><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../implementors/bdk_wallet/wallet/utils/trait.IsDust.js" data-ignore-extern-crates="std" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Error returned from [`TxBuilder::add_foreign_utxo`]."><meta name="keywords" content="rust, rustlang, rust-lang, AddForeignUtxoError"><title>AddForeignUtxoError in bdk_wallet::wallet::tx_builder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">AddForeignUtxoError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.InvalidOutpoint">InvalidOutpoint</a></li><li><a href="#variant.InvalidTxid">InvalidTxid</a></li><li><a href="#variant.MissingUtxo">MissingUtxo</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-AddForeignUtxoError">Debug</a></li><li><a href="#impl-Display-for-AddForeignUtxoError">Display</a></li><li><a href="#impl-Error-for-AddForeignUtxoError">Error</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-AddForeignUtxoError">RefUnwindSafe</a></li><li><a href="#impl-Send-for-AddForeignUtxoError">Send</a></li><li><a href="#impl-Sync-for-AddForeignUtxoError">Sync</a></li><li><a href="#impl-Unpin-for-AddForeignUtxoError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-AddForeignUtxoError">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-AddForeignUtxoError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-AddForeignUtxoError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-AddForeignUtxoError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-AddForeignUtxoError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-AddForeignUtxoError">Into<U></a></li><li><a href="#impl-Provider-for-AddForeignUtxoError">Provider</a></li><li><a href="#impl-ToString-for-AddForeignUtxoError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-AddForeignUtxoError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-AddForeignUtxoError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-AddForeignUtxoError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::tx_builder</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">tx_builder</a>::<wbr><a class="enum" href="#">AddForeignUtxoError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#654-666">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum AddForeignUtxoError {
+ InvalidTxid {
+ input_txid: Txid,
+ foreign_utxo: OutPoint,
+ },
+ InvalidOutpoint(OutPoint),
+ MissingUtxo,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Error returned from <a href="struct.TxBuilder.html#method.add_foreign_utxo" title="TxBuilder::add_foreign_utxo"><code>TxBuilder::add_foreign_utxo</code></a>.</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.InvalidTxid" class="variant"><a href="#variant.InvalidTxid" class="anchor">§</a><h3 class="code-header">InvalidTxid</h3></section><div class="sub-variant" id="variant.InvalidTxid.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.InvalidTxid.field.input_txid" class="small-section-header"><a href="#variant.InvalidTxid.field.input_txid" class="anchor field">§</a><code>input_txid: Txid</code></span><div class="docblock"><p>PSBT input txid</p>
+</div></div><div class="sub-variant-field"><span id="variant.InvalidTxid.field.foreign_utxo" class="small-section-header"><a href="#variant.InvalidTxid.field.foreign_utxo" class="anchor field">§</a><code>foreign_utxo: OutPoint</code></span><div class="docblock"><p>Foreign UTXO outpoint</p>
+</div></div></div><div class="docblock"><p>Foreign utxo outpoint txid does not match PSBT input txid</p>
+</div><section id="variant.InvalidOutpoint" class="variant"><a href="#variant.InvalidOutpoint" class="anchor">§</a><h3 class="code-header">InvalidOutpoint(OutPoint)</h3></section><div class="docblock"><p>Requested outpoint doesn’t exist in the tx (vout greater than available outputs)</p>
+</div><section id="variant.MissingUtxo" class="variant"><a href="#variant.MissingUtxo" class="anchor">§</a><h3 class="code-header">MissingUtxo</h3></section><div class="docblock"><p>Foreign utxo missing witness_utxo or non_witness_utxo</p>
+</div></div><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><section id="impl-Debug-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#652">source</a><a href="#impl-Debug-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.AddForeignUtxoError.html" title="enum bdk_wallet::wallet::tx_builder::AddForeignUtxoError">AddForeignUtxoError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#652">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#668-687">source</a><a href="#impl-Display-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.AddForeignUtxoError.html" title="enum bdk_wallet::wallet::tx_builder::AddForeignUtxoError">AddForeignUtxoError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#669-686">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#690">source</a><a href="#impl-Error-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.AddForeignUtxoError.html" title="enum bdk_wallet::wallet::tx_builder::AddForeignUtxoError">AddForeignUtxoError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-AddForeignUtxoError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.AddForeignUtxoError.html" title="enum bdk_wallet::wallet::tx_builder::AddForeignUtxoError">AddForeignUtxoError</a></h3></section><section id="impl-Send-for-AddForeignUtxoError" class="impl has-srclink"><a href="#impl-Send-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.AddForeignUtxoError.html" title="enum bdk_wallet::wallet::tx_builder::AddForeignUtxoError">AddForeignUtxoError</a></h3></section><section id="impl-Sync-for-AddForeignUtxoError" class="impl has-srclink"><a href="#impl-Sync-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.AddForeignUtxoError.html" title="enum bdk_wallet::wallet::tx_builder::AddForeignUtxoError">AddForeignUtxoError</a></h3></section><section id="impl-Unpin-for-AddForeignUtxoError" class="impl has-srclink"><a href="#impl-Unpin-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.AddForeignUtxoError.html" title="enum bdk_wallet::wallet::tx_builder::AddForeignUtxoError">AddForeignUtxoError</a></h3></section><section id="impl-UnwindSafe-for-AddForeignUtxoError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.AddForeignUtxoError.html" title="enum bdk_wallet::wallet::tx_builder::AddForeignUtxoError">AddForeignUtxoError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
+provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-AddForeignUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-AddForeignUtxoError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-AddForeignUtxoError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Error returned from [`TxBuilder::add_utxo`] and [`TxBuilder::add_utxos`]"><meta name="keywords" content="rust, rustlang, rust-lang, AddUtxoError"><title>AddUtxoError in bdk_wallet::wallet::tx_builder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">AddUtxoError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.UnknownUtxo">UnknownUtxo</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-AddUtxoError">Debug</a></li><li><a href="#impl-Display-for-AddUtxoError">Display</a></li><li><a href="#impl-Error-for-AddUtxoError">Error</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-AddUtxoError">RefUnwindSafe</a></li><li><a href="#impl-Send-for-AddUtxoError">Send</a></li><li><a href="#impl-Sync-for-AddUtxoError">Sync</a></li><li><a href="#impl-Unpin-for-AddUtxoError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-AddUtxoError">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-AddUtxoError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-AddUtxoError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-AddUtxoError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-AddUtxoError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-AddUtxoError">Into<U></a></li><li><a href="#impl-Provider-for-AddUtxoError">Provider</a></li><li><a href="#impl-ToString-for-AddUtxoError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-AddUtxoError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-AddUtxoError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-AddUtxoError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::tx_builder</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">tx_builder</a>::<wbr><a class="enum" href="#">AddUtxoError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#632-635">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum AddUtxoError {
+ UnknownUtxo(OutPoint),
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Error returned from <a href="struct.TxBuilder.html#method.add_utxo" title="TxBuilder::add_utxo"><code>TxBuilder::add_utxo</code></a> and <a href="struct.TxBuilder.html#method.add_utxos" title="TxBuilder::add_utxos"><code>TxBuilder::add_utxos</code></a></p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.UnknownUtxo" class="variant"><a href="#variant.UnknownUtxo" class="anchor">§</a><h3 class="code-header">UnknownUtxo(OutPoint)</h3></section><div class="docblock"><p>Happens when trying to spend an UTXO that is not in the internal database</p>
+</div></div><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><section id="impl-Debug-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#630">source</a><a href="#impl-Debug-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.AddUtxoError.html" title="enum bdk_wallet::wallet::tx_builder::AddUtxoError">AddUtxoError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#630">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#637-647">source</a><a href="#impl-Display-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.AddUtxoError.html" title="enum bdk_wallet::wallet::tx_builder::AddUtxoError">AddUtxoError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#638-646">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#650">source</a><a href="#impl-Error-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.AddUtxoError.html" title="enum bdk_wallet::wallet::tx_builder::AddUtxoError">AddUtxoError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-AddUtxoError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.AddUtxoError.html" title="enum bdk_wallet::wallet::tx_builder::AddUtxoError">AddUtxoError</a></h3></section><section id="impl-Send-for-AddUtxoError" class="impl has-srclink"><a href="#impl-Send-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.AddUtxoError.html" title="enum bdk_wallet::wallet::tx_builder::AddUtxoError">AddUtxoError</a></h3></section><section id="impl-Sync-for-AddUtxoError" class="impl has-srclink"><a href="#impl-Sync-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.AddUtxoError.html" title="enum bdk_wallet::wallet::tx_builder::AddUtxoError">AddUtxoError</a></h3></section><section id="impl-Unpin-for-AddUtxoError" class="impl has-srclink"><a href="#impl-Unpin-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.AddUtxoError.html" title="enum bdk_wallet::wallet::tx_builder::AddUtxoError">AddUtxoError</a></h3></section><section id="impl-UnwindSafe-for-AddUtxoError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.AddUtxoError.html" title="enum bdk_wallet::wallet::tx_builder::AddUtxoError">AddUtxoError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
+provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-AddUtxoError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-AddUtxoError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-AddUtxoError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Error returned from [`TxBuilder::allow_shrinking`]"><meta name="keywords" content="rust, rustlang, rust-lang, AllowShrinkingError"><title>AllowShrinkingError in bdk_wallet::wallet::tx_builder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">AllowShrinkingError</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.MissingScriptPubKey">MissingScriptPubKey</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-AllowShrinkingError">Debug</a></li><li><a href="#impl-Display-for-AllowShrinkingError">Display</a></li><li><a href="#impl-Error-for-AllowShrinkingError">Error</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-AllowShrinkingError">RefUnwindSafe</a></li><li><a href="#impl-Send-for-AllowShrinkingError">Send</a></li><li><a href="#impl-Sync-for-AllowShrinkingError">Sync</a></li><li><a href="#impl-Unpin-for-AllowShrinkingError">Unpin</a></li><li><a href="#impl-UnwindSafe-for-AllowShrinkingError">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-AllowShrinkingError">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-AllowShrinkingError">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-AllowShrinkingError">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-AllowShrinkingError">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-AllowShrinkingError">Into<U></a></li><li><a href="#impl-Provider-for-AllowShrinkingError">Provider</a></li><li><a href="#impl-ToString-for-AllowShrinkingError">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-AllowShrinkingError">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-AllowShrinkingError">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-AllowShrinkingError">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::tx_builder</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">tx_builder</a>::<wbr><a class="enum" href="#">AllowShrinkingError</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#694-697">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum AllowShrinkingError {
+ MissingScriptPubKey(ScriptBuf),
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Error returned from <a href="struct.TxBuilder.html#method.allow_shrinking" title="TxBuilder::allow_shrinking"><code>TxBuilder::allow_shrinking</code></a></p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.MissingScriptPubKey" class="variant"><a href="#variant.MissingScriptPubKey" class="anchor">§</a><h3 class="code-header">MissingScriptPubKey(ScriptBuf)</h3></section><div class="docblock"><p>Script/PubKey was not in the original transaction</p>
+</div></div><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><section id="impl-Debug-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#692">source</a><a href="#impl-Debug-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.AllowShrinkingError.html" title="enum bdk_wallet::wallet::tx_builder::AllowShrinkingError">AllowShrinkingError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#692">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#699-709">source</a><a href="#impl-Display-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.AllowShrinkingError.html" title="enum bdk_wallet::wallet::tx_builder::AllowShrinkingError">AllowShrinkingError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#700-708">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#712">source</a><a href="#impl-Error-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="enum" href="enum.AllowShrinkingError.html" title="enum bdk_wallet::wallet::tx_builder::AllowShrinkingError">AllowShrinkingError</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#83">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source" class="fn">source</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#109">source</a></span><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description" class="fn">description</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#119">source</a></span><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a>></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#193">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-AllowShrinkingError" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.AllowShrinkingError.html" title="enum bdk_wallet::wallet::tx_builder::AllowShrinkingError">AllowShrinkingError</a></h3></section><section id="impl-Send-for-AllowShrinkingError" class="impl has-srclink"><a href="#impl-Send-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.AllowShrinkingError.html" title="enum bdk_wallet::wallet::tx_builder::AllowShrinkingError">AllowShrinkingError</a></h3></section><section id="impl-Sync-for-AllowShrinkingError" class="impl has-srclink"><a href="#impl-Sync-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.AllowShrinkingError.html" title="enum bdk_wallet::wallet::tx_builder::AllowShrinkingError">AllowShrinkingError</a></h3></section><section id="impl-Unpin-for-AllowShrinkingError" class="impl has-srclink"><a href="#impl-Unpin-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.AllowShrinkingError.html" title="enum bdk_wallet::wallet::tx_builder::AllowShrinkingError">AllowShrinkingError</a></h3></section><section id="impl-UnwindSafe-for-AllowShrinkingError" class="impl has-srclink"><a href="#impl-UnwindSafe-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.AllowShrinkingError.html" title="enum bdk_wallet::wallet::tx_builder::AllowShrinkingError">AllowShrinkingError</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#197">source</a><a href="#impl-Provider-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl<E> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html" title="trait core::any::Provider">Provider</a> for E<span class="where fmt-newline">where<br> E: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/error.rs.html#201">source</a><a href="#method.provide-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide" class="fn">provide</a><'a>(&'a self, demand: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.Demand.html" title="struct core::any::Demand">Demand</a><'a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
+provide by using <code>demand</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Provider.html#tymethod.provide">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2526">source</a><a href="#impl-ToString-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2532">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-AllowShrinkingError" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-AllowShrinkingError" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-AllowShrinkingError" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Policy regarding the use of change outputs when creating a transaction"><meta name="keywords" content="rust, rustlang, rust-lang, ChangeSpendPolicy"><title>ChangeSpendPolicy in bdk_wallet::wallet::tx_builder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">ChangeSpendPolicy</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.ChangeAllowed">ChangeAllowed</a></li><li><a href="#variant.ChangeForbidden">ChangeForbidden</a></li><li><a href="#variant.OnlyChange">OnlyChange</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-ChangeSpendPolicy">Clone</a></li><li><a href="#impl-Copy-for-ChangeSpendPolicy">Copy</a></li><li><a href="#impl-Debug-for-ChangeSpendPolicy">Debug</a></li><li><a href="#impl-Default-for-ChangeSpendPolicy">Default</a></li><li><a href="#impl-Eq-for-ChangeSpendPolicy">Eq</a></li><li><a href="#impl-Hash-for-ChangeSpendPolicy">Hash</a></li><li><a href="#impl-Ord-for-ChangeSpendPolicy">Ord</a></li><li><a href="#impl-PartialEq%3CChangeSpendPolicy%3E-for-ChangeSpendPolicy">PartialEq<ChangeSpendPolicy></a></li><li><a href="#impl-PartialOrd%3CChangeSpendPolicy%3E-for-ChangeSpendPolicy">PartialOrd<ChangeSpendPolicy></a></li><li><a href="#impl-StructuralEq-for-ChangeSpendPolicy">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-ChangeSpendPolicy">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-ChangeSpendPolicy">RefUnwindSafe</a></li><li><a href="#impl-Send-for-ChangeSpendPolicy">Send</a></li><li><a href="#impl-Sync-for-ChangeSpendPolicy">Sync</a></li><li><a href="#impl-Unpin-for-ChangeSpendPolicy">Unpin</a></li><li><a href="#impl-UnwindSafe-for-ChangeSpendPolicy">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-ChangeSpendPolicy">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-ChangeSpendPolicy">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-ChangeSpendPolicy">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-ChangeSpendPolicy">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-ChangeSpendPolicy">Into<U></a></li><li><a href="#impl-ToOwned-for-ChangeSpendPolicy">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-ChangeSpendPolicy">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-ChangeSpendPolicy">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-ChangeSpendPolicy">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::tx_builder</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">tx_builder</a>::<wbr><a class="enum" href="#">ChangeSpendPolicy</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#894-902">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum ChangeSpendPolicy {
+ ChangeAllowed,
+ OnlyChange,
+ ChangeForbidden,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Policy regarding the use of change outputs when creating a transaction</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.ChangeAllowed" class="variant"><a href="#variant.ChangeAllowed" class="anchor">§</a><h3 class="code-header">ChangeAllowed</h3></section><div class="docblock"><p>Use both change and non-change outputs (default)</p>
+</div><section id="variant.OnlyChange" class="variant"><a href="#variant.OnlyChange" class="anchor">§</a><h3 class="code-header">OnlyChange</h3></section><div class="docblock"><p>Only use change outputs (see <a href="struct.TxBuilder.html#method.only_spend_change" title="TxBuilder::only_spend_change"><code>TxBuilder::only_spend_change</code></a>)</p>
+</div><section id="variant.ChangeForbidden" class="variant"><a href="#variant.ChangeForbidden" class="anchor">§</a><h3 class="code-header">ChangeForbidden</h3></section><div class="docblock"><p>Only use non-change outputs (see <a href="struct.TxBuilder.html#method.do_not_spend_change" title="TxBuilder::do_not_spend_change"><code>TxBuilder::do_not_spend_change</code></a>)</p>
+</div></div><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><section id="impl-Clone-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#893">source</a><a href="#impl-Clone-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#893">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#893">source</a><a href="#impl-Debug-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#893">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#893">source</a><a href="#impl-Default-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#893">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#893">source</a><a href="#impl-Hash-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#893">source</a><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)</h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#893">source</a><a href="#impl-Ord-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#893">source</a><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CChangeSpendPolicy%3E-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#893">source</a><a href="#impl-PartialEq%3CChangeSpendPolicy%3E-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a>> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#893">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CChangeSpendPolicy%3E-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#893">source</a><a href="#impl-PartialOrd%3CChangeSpendPolicy%3E-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a>> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#893">source</a><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><section id="impl-Copy-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#893">source</a><a href="#impl-Copy-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section><section id="impl-Eq-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#893">source</a><a href="#impl-Eq-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section><section id="impl-StructuralEq-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#893">source</a><a href="#impl-StructuralEq-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section><section id="impl-StructuralPartialEq-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#893">source</a><a href="#impl-StructuralPartialEq-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-ChangeSpendPolicy" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section><section id="impl-Send-for-ChangeSpendPolicy" class="impl has-srclink"><a href="#impl-Send-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section><section id="impl-Sync-for-ChangeSpendPolicy" class="impl has-srclink"><a href="#impl-Sync-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section><section id="impl-Unpin-for-ChangeSpendPolicy" class="impl has-srclink"><a href="#impl-Unpin-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section><section id="impl-UnwindSafe-for-ChangeSpendPolicy" class="impl has-srclink"><a href="#impl-UnwindSafe-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-ChangeSpendPolicy" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-ChangeSpendPolicy" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-ChangeSpendPolicy" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Ordering of the transaction’s inputs and outputs"><meta name="keywords" content="rust, rustlang, rust-lang, TxOrdering"><title>TxOrdering in bdk_wallet::wallet::tx_builder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">TxOrdering</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Bip69Lexicographic">Bip69Lexicographic</a></li><li><a href="#variant.Shuffle">Shuffle</a></li><li><a href="#variant.Untouched">Untouched</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.sort_tx">sort_tx</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-TxOrdering">Clone</a></li><li><a href="#impl-Copy-for-TxOrdering">Copy</a></li><li><a href="#impl-Debug-for-TxOrdering">Debug</a></li><li><a href="#impl-Default-for-TxOrdering">Default</a></li><li><a href="#impl-Eq-for-TxOrdering">Eq</a></li><li><a href="#impl-Hash-for-TxOrdering">Hash</a></li><li><a href="#impl-Ord-for-TxOrdering">Ord</a></li><li><a href="#impl-PartialEq%3CTxOrdering%3E-for-TxOrdering">PartialEq<TxOrdering></a></li><li><a href="#impl-PartialOrd%3CTxOrdering%3E-for-TxOrdering">PartialOrd<TxOrdering></a></li><li><a href="#impl-StructuralEq-for-TxOrdering">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-TxOrdering">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-TxOrdering">RefUnwindSafe</a></li><li><a href="#impl-Send-for-TxOrdering">Send</a></li><li><a href="#impl-Sync-for-TxOrdering">Sync</a></li><li><a href="#impl-Unpin-for-TxOrdering">Unpin</a></li><li><a href="#impl-UnwindSafe-for-TxOrdering">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-TxOrdering">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-TxOrdering">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-TxOrdering">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-TxOrdering">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-TxOrdering">Into<U></a></li><li><a href="#impl-ToOwned-for-TxOrdering">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-TxOrdering">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-TxOrdering">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-TxOrdering">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::tx_builder</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">tx_builder</a>::<wbr><a class="enum" href="#">TxOrdering</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#830-838">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum TxOrdering {
+ Shuffle,
+ Untouched,
+ Bip69Lexicographic,
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Ordering of the transaction’s inputs and outputs</p>
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Shuffle" class="variant"><a href="#variant.Shuffle" class="anchor">§</a><h3 class="code-header">Shuffle</h3></section><div class="docblock"><p>Randomized (default)</p>
+</div><section id="variant.Untouched" class="variant"><a href="#variant.Untouched" class="anchor">§</a><h3 class="code-header">Untouched</h3></section><div class="docblock"><p>Unchanged</p>
+</div><section id="variant.Bip69Lexicographic" class="variant"><a href="#variant.Bip69Lexicographic" class="anchor">§</a><h3 class="code-header">Bip69Lexicographic</h3></section><div class="docblock"><p>BIP69 / Lexicographic</p>
+</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#840-860">source</a><a href="#impl-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sort_tx" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#842-859">source</a><h4 class="code-header">pub fn <a href="#method.sort_tx" class="fn">sort_tx</a>(&self, tx: &mut Transaction)</h4></section></summary><div class="docblock"><p>Sort transaction inputs and outputs by <a href="enum.TxOrdering.html" title="TxOrdering"><code>TxOrdering</code></a> variant</p>
+</div></details></div></details></div><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><section id="impl-Clone-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#829">source</a><a href="#impl-Clone-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#829">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#829">source</a><a href="#impl-Debug-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#829">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#829">source</a><a href="#impl-Default-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#829">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#829">source</a><a href="#impl-Hash-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#829">source</a><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><__H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>__H)</h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#239-241">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>H)<span class="where fmt-newline">where<br> H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#829">source</a><a href="#impl-Ord-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#829">source</a><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#798-801">source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#825-828">source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#857-861">source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<span class="where fmt-newline">where<br> Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CTxOrdering%3E-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#829">source</a><a href="#impl-PartialEq%3CTxOrdering%3E-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a>> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#829">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
+by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CTxOrdering%3E-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#829">source</a><a href="#impl-PartialOrd%3CTxOrdering%3E-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a>> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#829">source</a><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</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="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1126">source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1145">source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1163">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1182">source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Rhs) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><section id="impl-Copy-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#829">source</a><a href="#impl-Copy-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section><section id="impl-Eq-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#829">source</a><a href="#impl-Eq-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section><section id="impl-StructuralEq-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#829">source</a><a href="#impl-StructuralEq-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section><section id="impl-StructuralPartialEq-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#829">source</a><a href="#impl-StructuralPartialEq-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-TxOrdering" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section><section id="impl-Send-for-TxOrdering" class="impl has-srclink"><a href="#impl-Send-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section><section id="impl-Sync-for-TxOrdering" class="impl has-srclink"><a href="#impl-Sync-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section><section id="impl-Unpin-for-TxOrdering" class="impl has-srclink"><a href="#impl-Unpin-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section><section id="impl-UnwindSafe-for-TxOrdering" class="impl has-srclink"><a href="#impl-UnwindSafe-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-TxOrdering" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-TxOrdering" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-TxOrdering" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Transaction builder"><meta name="keywords" content="rust, rustlang, rust-lang, tx_builder"><title>bdk_wallet::wallet::tx_builder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">Module tx_builder</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#traits">Traits</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a class="mod" href="#">tx_builder</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#12-1083">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Transaction builder</p>
+<h3 id="example"><a href="#example">Example</a></h3>
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="comment">// create a TxBuilder from a wallet
+</span><span class="kw">let </span><span class="kw-2">mut </span>tx_builder = wallet.build_tx();
+
+tx_builder
+ <span class="comment">// Create a transaction with one output to `to_address` of 50_000 satoshi
+ </span>.add_recipient(to_address.script_pubkey(), Amount::from_sat(<span class="number">50_000</span>))
+ <span class="comment">// With a custom fee rate of 5.0 satoshi/vbyte
+ </span>.fee_rate(FeeRate::from_sat_per_vb(<span class="number">5</span>).expect(<span class="string">"valid feerate"</span>))
+ <span class="comment">// Only spend non-change outputs
+ </span>.do_not_spend_change()
+ <span class="comment">// Turn on RBF signaling
+ </span>.enable_rbf();
+<span class="kw">let </span>psbt = tx_builder.finish()<span class="question-mark">?</span>;</code></pre></div>
+</div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.BumpFee.html" title="bdk_wallet::wallet::tx_builder::BumpFee struct">BumpFee</a></div><div class="item-right docblock-short">Marker type to indicate the <a href="struct.TxBuilder.html" title="TxBuilder"><code>TxBuilder</code></a> is being used to bump the fee of an existing transaction.</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.CreateTx.html" title="bdk_wallet::wallet::tx_builder::CreateTx struct">CreateTx</a></div><div class="item-right docblock-short">Marker type to indicate the <a href="struct.TxBuilder.html" title="TxBuilder"><code>TxBuilder</code></a> is being used to create a new transaction (as opposed
+to bumping the fee of an existing one).</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.TxBuilder.html" title="bdk_wallet::wallet::tx_builder::TxBuilder struct">TxBuilder</a></div><div class="item-right docblock-short">A transaction builder</div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.AddForeignUtxoError.html" title="bdk_wallet::wallet::tx_builder::AddForeignUtxoError enum">AddForeignUtxoError</a></div><div class="item-right docblock-short">Error returned from <a href="struct.TxBuilder.html#method.add_foreign_utxo" title="TxBuilder::add_foreign_utxo"><code>TxBuilder::add_foreign_utxo</code></a>.</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.AddUtxoError.html" title="bdk_wallet::wallet::tx_builder::AddUtxoError enum">AddUtxoError</a></div><div class="item-right docblock-short">Error returned from <a href="struct.TxBuilder.html#method.add_utxo" title="TxBuilder::add_utxo"><code>TxBuilder::add_utxo</code></a> and <a href="struct.TxBuilder.html#method.add_utxos" title="TxBuilder::add_utxos"><code>TxBuilder::add_utxos</code></a></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.AllowShrinkingError.html" title="bdk_wallet::wallet::tx_builder::AllowShrinkingError enum">AllowShrinkingError</a></div><div class="item-right docblock-short">Error returned from <a href="struct.TxBuilder.html#method.allow_shrinking" title="TxBuilder::allow_shrinking"><code>TxBuilder::allow_shrinking</code></a></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.ChangeSpendPolicy.html" title="bdk_wallet::wallet::tx_builder::ChangeSpendPolicy enum">ChangeSpendPolicy</a></div><div class="item-right docblock-short">Policy regarding the use of change outputs when creating a transaction</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.TxOrdering.html" title="bdk_wallet::wallet::tx_builder::TxOrdering enum">TxOrdering</a></div><div class="item-right docblock-short">Ordering of the transaction’s inputs and outputs</div></div></div><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.TxBuilderContext.html" title="bdk_wallet::wallet::tx_builder::TxBuilderContext trait">TxBuilderContext</a></div><div class="item-right docblock-short">Context in which the <a href="struct.TxBuilder.html" title="TxBuilder"><code>TxBuilder</code></a> is valid</div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+window.SIDEBAR_ITEMS = {"enum":[["AddForeignUtxoError","Error returned from [`TxBuilder::add_foreign_utxo`]."],["AddUtxoError","Error returned from [`TxBuilder::add_utxo`] and [`TxBuilder::add_utxos`]"],["AllowShrinkingError","Error returned from [`TxBuilder::allow_shrinking`]"],["ChangeSpendPolicy","Policy regarding the use of change outputs when creating a transaction"],["TxOrdering","Ordering of the transaction’s inputs and outputs"]],"struct":[["BumpFee","Marker type to indicate the [`TxBuilder`] is being used to bump the fee of an existing transaction."],["CreateTx","Marker type to indicate the [`TxBuilder`] is being used to create a new transaction (as opposed to bumping the fee of an existing one)."],["TxBuilder","A transaction builder"]],"trait":[["TxBuilderContext","Context in which the [`TxBuilder`] is valid"]]};
\ No newline at end of file
--- /dev/null
+<!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="Marker type to indicate the [`TxBuilder`] is being used to bump the fee of an existing transaction."><meta name="keywords" content="rust, rustlang, rust-lang, BumpFee"><title>BumpFee in bdk_wallet::wallet::tx_builder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">BumpFee</a></h2><div class="sidebar-elems"><section><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-BumpFee">Clone</a></li><li><a href="#impl-Debug-for-BumpFee">Debug</a></li><li><a href="#impl-Default-for-BumpFee">Default</a></li><li><a href="#impl-TxBuilderContext-for-BumpFee">TxBuilderContext</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-BumpFee">RefUnwindSafe</a></li><li><a href="#impl-Send-for-BumpFee">Send</a></li><li><a href="#impl-Sync-for-BumpFee">Sync</a></li><li><a href="#impl-Unpin-for-BumpFee">Unpin</a></li><li><a href="#impl-UnwindSafe-for-BumpFee">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-BumpFee">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-BumpFee">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-BumpFee">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-BumpFee">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-BumpFee">Into<U></a></li><li><a href="#impl-ToOwned-for-BumpFee">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-BumpFee">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-BumpFee">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-BumpFee">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::tx_builder</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">tx_builder</a>::<wbr><a class="struct" href="#">BumpFee</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#68">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct BumpFee;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Marker type to indicate the <a href="struct.TxBuilder.html" title="TxBuilder"><code>TxBuilder</code></a> is being used to bump the fee of an existing transaction.</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><section id="impl-Clone-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#67">source</a><a href="#impl-Clone-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.BumpFee.html" title="struct bdk_wallet::wallet::tx_builder::BumpFee">BumpFee</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#67">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.BumpFee.html" title="struct bdk_wallet::wallet::tx_builder::BumpFee">BumpFee</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#67">source</a><a href="#impl-Debug-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.BumpFee.html" title="struct bdk_wallet::wallet::tx_builder::BumpFee">BumpFee</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#67">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#67">source</a><a href="#impl-Default-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.BumpFee.html" title="struct bdk_wallet::wallet::tx_builder::BumpFee">BumpFee</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#67">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="struct" href="struct.BumpFee.html" title="struct bdk_wallet::wallet::tx_builder::BumpFee">BumpFee</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><section id="impl-TxBuilderContext-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#69">source</a><a href="#impl-TxBuilderContext-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.TxBuilderContext.html" title="trait bdk_wallet::wallet::tx_builder::TxBuilderContext">TxBuilderContext</a> for <a class="struct" href="struct.BumpFee.html" title="struct bdk_wallet::wallet::tx_builder::BumpFee">BumpFee</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-BumpFee" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.BumpFee.html" title="struct bdk_wallet::wallet::tx_builder::BumpFee">BumpFee</a></h3></section><section id="impl-Send-for-BumpFee" class="impl has-srclink"><a href="#impl-Send-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.BumpFee.html" title="struct bdk_wallet::wallet::tx_builder::BumpFee">BumpFee</a></h3></section><section id="impl-Sync-for-BumpFee" class="impl has-srclink"><a href="#impl-Sync-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.BumpFee.html" title="struct bdk_wallet::wallet::tx_builder::BumpFee">BumpFee</a></h3></section><section id="impl-Unpin-for-BumpFee" class="impl has-srclink"><a href="#impl-Unpin-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.BumpFee.html" title="struct bdk_wallet::wallet::tx_builder::BumpFee">BumpFee</a></h3></section><section id="impl-UnwindSafe-for-BumpFee" class="impl has-srclink"><a href="#impl-UnwindSafe-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.BumpFee.html" title="struct bdk_wallet::wallet::tx_builder::BumpFee">BumpFee</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-BumpFee" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Marker type to indicate the [`TxBuilder`] is being used to create a new transaction (as opposed to bumping the fee of an existing one)."><meta name="keywords" content="rust, rustlang, rust-lang, CreateTx"><title>CreateTx in bdk_wallet::wallet::tx_builder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">CreateTx</a></h2><div class="sidebar-elems"><section><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-CreateTx">Clone</a></li><li><a href="#impl-Debug-for-CreateTx">Debug</a></li><li><a href="#impl-Default-for-CreateTx">Default</a></li><li><a href="#impl-TxBuilderContext-for-CreateTx">TxBuilderContext</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-CreateTx">RefUnwindSafe</a></li><li><a href="#impl-Send-for-CreateTx">Send</a></li><li><a href="#impl-Sync-for-CreateTx">Sync</a></li><li><a href="#impl-Unpin-for-CreateTx">Unpin</a></li><li><a href="#impl-UnwindSafe-for-CreateTx">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-CreateTx">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-CreateTx">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-CreateTx">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-CreateTx">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-CreateTx">Into<U></a></li><li><a href="#impl-ToOwned-for-CreateTx">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-CreateTx">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-CreateTx">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-CreateTx">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::tx_builder</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">tx_builder</a>::<wbr><a class="struct" href="#">CreateTx</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#63">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct CreateTx;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Marker type to indicate the <a href="struct.TxBuilder.html" title="TxBuilder"><code>TxBuilder</code></a> is being used to create a new transaction (as opposed
+to bumping the fee of an existing one).</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><section id="impl-Clone-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#62">source</a><a href="#impl-Clone-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.CreateTx.html" title="struct bdk_wallet::wallet::tx_builder::CreateTx">CreateTx</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#62">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.CreateTx.html" title="struct bdk_wallet::wallet::tx_builder::CreateTx">CreateTx</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#62">source</a><a href="#impl-Debug-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.CreateTx.html" title="struct bdk_wallet::wallet::tx_builder::CreateTx">CreateTx</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#62">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#62">source</a><a href="#impl-Default-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.CreateTx.html" title="struct bdk_wallet::wallet::tx_builder::CreateTx">CreateTx</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#62">source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> <a class="struct" href="struct.CreateTx.html" title="struct bdk_wallet::wallet::tx_builder::CreateTx">CreateTx</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><section id="impl-TxBuilderContext-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#64">source</a><a href="#impl-TxBuilderContext-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.TxBuilderContext.html" title="trait bdk_wallet::wallet::tx_builder::TxBuilderContext">TxBuilderContext</a> for <a class="struct" href="struct.CreateTx.html" title="struct bdk_wallet::wallet::tx_builder::CreateTx">CreateTx</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-CreateTx" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.CreateTx.html" title="struct bdk_wallet::wallet::tx_builder::CreateTx">CreateTx</a></h3></section><section id="impl-Send-for-CreateTx" class="impl has-srclink"><a href="#impl-Send-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.CreateTx.html" title="struct bdk_wallet::wallet::tx_builder::CreateTx">CreateTx</a></h3></section><section id="impl-Sync-for-CreateTx" class="impl has-srclink"><a href="#impl-Sync-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.CreateTx.html" title="struct bdk_wallet::wallet::tx_builder::CreateTx">CreateTx</a></h3></section><section id="impl-Unpin-for-CreateTx" class="impl has-srclink"><a href="#impl-Unpin-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.CreateTx.html" title="struct bdk_wallet::wallet::tx_builder::CreateTx">CreateTx</a></h3></section><section id="impl-UnwindSafe-for-CreateTx" class="impl has-srclink"><a href="#impl-UnwindSafe-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.CreateTx.html" title="struct bdk_wallet::wallet::tx_builder::CreateTx">CreateTx</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-CreateTx" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="A transaction builder"><meta name="keywords" content="rust, rustlang, rust-lang, TxBuilder"><title>TxBuilder in bdk_wallet::wallet::tx_builder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">TxBuilder</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.add_data">add_data</a></li><li><a href="#method.add_foreign_utxo">add_foreign_utxo</a></li><li><a href="#method.add_foreign_utxo_with_sequence">add_foreign_utxo_with_sequence</a></li><li><a href="#method.add_global_xpubs">add_global_xpubs</a></li><li><a href="#method.add_recipient">add_recipient</a></li><li><a href="#method.add_unspendable">add_unspendable</a></li><li><a href="#method.add_utxo">add_utxo</a></li><li><a href="#method.add_utxos">add_utxos</a></li><li><a href="#method.allow_dust">allow_dust</a></li><li><a href="#method.allow_shrinking">allow_shrinking</a></li><li><a href="#method.change_policy">change_policy</a></li><li><a href="#method.coin_selection">coin_selection</a></li><li><a href="#method.current_height">current_height</a></li><li><a href="#method.do_not_spend_change">do_not_spend_change</a></li><li><a href="#method.drain_to">drain_to</a></li><li><a href="#method.drain_wallet">drain_wallet</a></li><li><a href="#method.enable_rbf">enable_rbf</a></li><li><a href="#method.enable_rbf_with_sequence">enable_rbf_with_sequence</a></li><li><a href="#method.fee_absolute">fee_absolute</a></li><li><a href="#method.fee_rate">fee_rate</a></li><li><a href="#method.finish">finish</a></li><li><a href="#method.include_output_redeem_witness_script">include_output_redeem_witness_script</a></li><li><a href="#method.manually_selected_only">manually_selected_only</a></li><li><a href="#method.nlocktime">nlocktime</a></li><li><a href="#method.only_spend_change">only_spend_change</a></li><li><a href="#method.only_witness_utxo">only_witness_utxo</a></li><li><a href="#method.ordering">ordering</a></li><li><a href="#method.policy_path">policy_path</a></li><li><a href="#method.set_recipients">set_recipients</a></li><li><a href="#method.sighash">sighash</a></li><li><a href="#method.unspendable">unspendable</a></li><li><a href="#method.version">version</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">Clone</a></li><li><a href="#impl-Debug-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">Debug</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">!RefUnwindSafe</a></li><li><a href="#impl-Send-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">!Send</a></li><li><a href="#impl-Sync-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">!Sync</a></li><li><a href="#impl-Unpin-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">!UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">Into<U></a></li><li><a href="#impl-ToOwned-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In bdk_wallet::wallet::tx_builder</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">tx_builder</a>::<wbr><a class="struct" href="#">TxBuilder</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#126-131">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct TxBuilder<'a, Cs, Ctx> { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A transaction builder</p>
+<p>A <code>TxBuilder</code> is created by calling <a href="../struct.Wallet.html#method.build_tx"><code>build_tx</code></a> or <a href="../struct.Wallet.html#method.build_fee_bump"><code>build_fee_bump</code></a> on a wallet. After
+assigning it, you set options on it until finally calling <a href="struct.TxBuilder.html#method.finish"><code>finish</code></a> to consume the builder and
+generate the transaction.</p>
+<p>Each option setting method on <code>TxBuilder</code> takes and returns <code>&mut self</code> so you can chain calls
+as in the following example:</p>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="comment">// chaining
+</span><span class="kw">let </span>psbt1 = {
+ <span class="kw">let </span><span class="kw-2">mut </span>builder = wallet.build_tx();
+ builder
+ .ordering(TxOrdering::Untouched)
+ .add_recipient(addr1.script_pubkey(), Amount::from_sat(<span class="number">50_000</span>))
+ .add_recipient(addr2.script_pubkey(), Amount::from_sat(<span class="number">50_000</span>));
+ builder.finish()<span class="question-mark">?
+</span>};
+
+<span class="comment">// non-chaining
+</span><span class="kw">let </span>psbt2 = {
+ <span class="kw">let </span><span class="kw-2">mut </span>builder = wallet.build_tx();
+ builder.ordering(TxOrdering::Untouched);
+ <span class="kw">for </span>addr <span class="kw">in </span><span class="kw-2">&</span>[addr1, addr2] {
+ builder.add_recipient(addr.script_pubkey(), Amount::from_sat(<span class="number">50_000</span>));
+ }
+ builder.finish()<span class="question-mark">?
+</span>};
+
+<span class="macro">assert_eq!</span>(psbt1.unsigned_tx.output[..<span class="number">2</span>], psbt2.unsigned_tx.output[..<span class="number">2</span>]);</code></pre></div>
+<p>At the moment <a href="struct.TxBuilder.html#method.coin_selection"><code>coin_selection</code></a> is an exception to the rule as it consumes <code>self</code>.
+This means it is usually best to call <a href="struct.TxBuilder.html#method.coin_selection"><code>coin_selection</code></a> on the return value of <code>build_tx</code> before assigning it.</p>
+<p>For further examples see <a href="index.html">this module</a>’s documentation;</p>
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#190-615">source</a><a href="#impl-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<'a, Cs, Ctx> <a class="struct" href="struct.TxBuilder.html" title="struct bdk_wallet::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, Cs, Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fee_rate" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#201-204">source</a><h4 class="code-header">pub fn <a href="#method.fee_rate" class="fn">fee_rate</a>(&mut self, fee_rate: FeeRate) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Set a custom fee rate.</p>
+<p>This method sets the mining fee paid by the transaction as a rate on its size.
+This means that the total fee paid is equal to <code>fee_rate</code> times the size
+of the transaction. Default is 1 sat/vB in accordance with Bitcoin Core’s default
+relay policy.</p>
+<p>Note that this is really a minimum feerate – it’s possible to
+overshoot it slightly since adding a change output to drain the remaining
+excess might not be viable.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fee_absolute" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#215-218">source</a><h4 class="code-header">pub fn <a href="#method.fee_absolute" class="fn">fee_absolute</a>(&mut self, fee_amount: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Set an absolute fee
+The fee_absolute method refers to the absolute transaction fee in satoshis (sats).
+If anyone sets both the fee_absolute method and the fee_rate method,
+the FeePolicy enum will be set by whichever method was called last,
+as the FeeRate and FeeAmount are mutually exclusive.</p>
+<p>Note that this is really a minimum absolute fee – it’s possible to
+overshoot it slightly since adding a change output to drain the remaining
+excess might not be viable.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.policy_path" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#282-294">source</a><h4 class="code-header">pub fn <a href="#method.policy_path" class="fn">policy_path</a>(<br> &mut self,<br> policy_path: <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><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</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.usize.html">usize</a>>>,<br> keychain: <a class="enum" href="../../enum.KeychainKind.html" title="enum bdk_wallet::KeychainKind">KeychainKind</a><br>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Set the policy path to use while creating the transaction for a given keychain.</p>
+<p>This method accepts a map where the key is the policy node id (see
+<a href="../../descriptor/policy/struct.Policy.html#structfield.id"><code>Policy::id</code></a>) and the value is the list of the indexes of
+the items that are intended to be satisfied from the policy node (see
+<a href="../../descriptor/policy/enum.SatisfiableItem.html#variant.Thresh.field.items"><code>SatisfiableItem::Thresh::items</code></a>).</p>
+<h6 id="example"><a href="#example">Example</a></h6>
+<p>An example of when the policy path is needed is the following descriptor:
+<code>wsh(thresh(2,pk(A),sj:and_v(v:pk(B),n:older(6)),snj:and_v(v:pk(C),after(630000))))</code>,
+derived from the miniscript policy <code>thresh(2,pk(A),and(pk(B),older(6)),and(pk(C),after(630000)))</code>.
+It declares three descriptor fragments, and at the top level it uses <code>thresh()</code> to
+ensure that at least two of them are satisfied. The individual fragments are:</p>
+<ol>
+<li><code>pk(A)</code></li>
+<li><code>and(pk(B),older(6))</code></li>
+<li><code>and(pk(C),after(630000))</code></li>
+</ol>
+<p>When those conditions are combined in pairs, it’s clear that the transaction needs to be created
+differently depending on how the user intends to satisfy the policy afterwards:</p>
+<ul>
+<li>If fragments <code>1</code> and <code>2</code> are used, the transaction will need to use a specific
+<code>n_sequence</code> in order to spend an <code>OP_CSV</code> branch.</li>
+<li>If fragments <code>1</code> and <code>3</code> are used, the transaction will need to use a specific <code>locktime</code>
+in order to spend an <code>OP_CLTV</code> branch.</li>
+<li>If fragments <code>2</code> and <code>3</code> are used, the transaction will need both.</li>
+</ul>
+<p>When the spending policy is represented as a tree (see
+<a href="../struct.Wallet.html#method.policies"><code>Wallet::policies</code></a>), every node
+is assigned a unique identifier that can be used in the policy path to specify which of
+the node’s children the user intends to satisfy: for instance, assuming the <code>thresh()</code>
+root node of this example has an id of <code>aabbccdd</code>, the policy path map would look like:</p>
+<p><code>{ "aabbccdd" => [0, 1] }</code></p>
+<p>where the key is the node’s id, and the value is a list of the children that should be
+used, in no particular order.</p>
+<p>If a particularly complex descriptor has multiple ambiguous thresholds in its structure,
+multiple entries can be added to the map, one for each node that requires an explicit path.</p>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code>Address::from_str(<span class="string">"2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt"</span>)
+ .unwrap()
+ .assume_checked();
+<span class="kw">let </span><span class="kw-2">mut </span>path = BTreeMap::new();
+path.insert(<span class="string">"aabbccdd"</span>.to_string(), <span class="macro">vec!</span>[<span class="number">0</span>, <span class="number">1</span>]);
+
+<span class="kw">let </span>builder = wallet
+ .build_tx()
+ .add_recipient(to_address.script_pubkey(), Amount::from_sat(<span class="number">50_000</span>))
+ .policy_path(path, KeychainKind::External);
+</code></pre></div>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_utxos" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#302-325">source</a><h4 class="code-header">pub fn <a href="#method.add_utxos" class="fn">add_utxos</a>(<br> &mut self,<br> outpoints: &[OutPoint]<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.reference.html">&mut </a>Self, <a class="enum" href="enum.AddUtxoError.html" title="enum bdk_wallet::wallet::tx_builder::AddUtxoError">AddUtxoError</a>></h4></section></summary><div class="docblock"><p>Add the list of outpoints to the internal list of UTXOs that <strong>must</strong> be spent.</p>
+<p>If an error occurs while adding any of the UTXOs then none of them are added and the error is returned.</p>
+<p>These have priority over the “unspendable” utxos, meaning that if a utxo is present both in
+the “utxos” and the “unspendable” list, it will be spent.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_utxo" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#331-333">source</a><h4 class="code-header">pub fn <a href="#method.add_utxo" class="fn">add_utxo</a>(&mut self, outpoint: OutPoint) -> <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.reference.html">&mut </a>Self, <a class="enum" href="enum.AddUtxoError.html" title="enum bdk_wallet::wallet::tx_builder::AddUtxoError">AddUtxoError</a>></h4></section></summary><div class="docblock"><p>Add a utxo to the internal list of utxos that <strong>must</strong> be spent</p>
+<p>These have priority over the “unspendable” utxos, meaning that if a utxo is present both in
+the “utxos” and the “unspendable” list, it will be spent.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_foreign_utxo" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#381-393">source</a><h4 class="code-header">pub fn <a href="#method.add_foreign_utxo" class="fn">add_foreign_utxo</a>(<br> &mut self,<br> outpoint: OutPoint,<br> psbt_input: Input,<br> satisfaction_weight: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</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.reference.html">&mut </a>Self, <a class="enum" href="enum.AddForeignUtxoError.html" title="enum bdk_wallet::wallet::tx_builder::AddForeignUtxoError">AddForeignUtxoError</a>></h4></section></summary><div class="docblock"><p>Add a foreign UTXO i.e. a UTXO not owned by this wallet.</p>
+<p>At a minimum to add a foreign UTXO we need:</p>
+<ol>
+<li><code>outpoint</code>: To add it to the raw transaction.</li>
+<li><code>psbt_input</code>: To know the value.</li>
+<li><code>satisfaction_weight</code>: To know how much weight/vbytes the input will add to the transaction for fee calculation.</li>
+</ol>
+<p>There are several security concerns about adding foreign UTXOs that application
+developers should consider. First, how do you know the value of the input is correct? If a
+<code>non_witness_utxo</code> is provided in the <code>psbt_input</code> then this method implicitly verifies the
+value by checking it against the transaction. If only a <code>witness_utxo</code> is provided then this
+method doesn’t verify the value but just takes it as a given – it is up to you to check
+that whoever sent you the <code>input_psbt</code> was not lying!</p>
+<p>Secondly, you must somehow provide <code>satisfaction_weight</code> of the input. Depending on your
+application it may be important that this be known precisely. If not, a malicious
+counterparty may fool you into putting in a value that is too low, giving the transaction a
+lower than expected feerate. They could also fool you into putting a value that is too high
+causing you to pay a fee that is too high. The party who is broadcasting the transaction can
+of course check the real input weight matches the expected weight prior to broadcasting.</p>
+<p>To guarantee the <code>max_weight_to_satisfy</code> is correct, you can require the party providing the
+<code>psbt_input</code> provide a miniscript descriptor for the input so you can check it against the
+<code>script_pubkey</code> and then ask it for the <a href="../../descriptor/enum.Descriptor.html#method.max_weight_to_satisfy"><code>max_weight_to_satisfy</code></a>.</p>
+<p>This is an <strong>EXPERIMENTAL</strong> feature, API and other major changes are expected.</p>
+<p>In order to use <a href="../struct.Wallet.html#method.calculate_fee" title="Wallet::calculate_fee"><code>Wallet::calculate_fee</code></a> or <a href="../struct.Wallet.html#method.calculate_fee_rate" title="Wallet::calculate_fee_rate"><code>Wallet::calculate_fee_rate</code></a> for a transaction
+created with foreign UTXO(s) you must manually insert the corresponding TxOut(s) into the tx
+graph using the <a href="../struct.Wallet.html#method.insert_txout" title="Wallet::insert_txout"><code>Wallet::insert_txout</code></a> function.</p>
+<h5 id="errors"><a href="#errors">Errors</a></h5>
+<p>This method returns errors in the following circumstances:</p>
+<ol>
+<li>The <code>psbt_input</code> does not contain a <code>witness_utxo</code> or <code>non_witness_utxo</code>.</li>
+<li>The data in <code>non_witness_utxo</code> does not match what is in <code>outpoint</code>.</li>
+</ol>
+<p>Note unless you set <a href="struct.TxBuilder.html#method.only_witness_utxo"><code>only_witness_utxo</code></a> any non-taproot <code>psbt_input</code> you pass to this
+method must have <code>non_witness_utxo</code> set otherwise you will get an error when <a href="struct.TxBuilder.html#method.finish"><code>finish</code></a>
+is called.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_foreign_utxo_with_sequence" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#396-432">source</a><h4 class="code-header">pub fn <a href="#method.add_foreign_utxo_with_sequence" class="fn">add_foreign_utxo_with_sequence</a>(<br> &mut self,<br> outpoint: OutPoint,<br> psbt_input: Input,<br> satisfaction_weight: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,<br> sequence: Sequence<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.reference.html">&mut </a>Self, <a class="enum" href="enum.AddForeignUtxoError.html" title="enum bdk_wallet::wallet::tx_builder::AddForeignUtxoError">AddForeignUtxoError</a>></h4></section></summary><div class="docblock"><p>Same as <a href="struct.TxBuilder.html#method.add_foreign_utxo">add_foreign_utxo</a> but allows to set the nSequence value.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.manually_selected_only" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#440-443">source</a><h4 class="code-header">pub fn <a href="#method.manually_selected_only" class="fn">manually_selected_only</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Only spend utxos added by <a href="struct.TxBuilder.html#method.add_utxo"><code>add_utxo</code></a>.</p>
+<p>The wallet will <strong>not</strong> add additional utxos to the transaction even if they are needed to
+make the transaction valid.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.unspendable" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#449-452">source</a><h4 class="code-header">pub fn <a href="#method.unspendable" class="fn">unspendable</a>(&mut self, unspendable: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><OutPoint>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Replace the internal list of unspendable utxos with a new list</p>
+<p>It’s important to note that the “must-be-spent” utxos added with <a href="struct.TxBuilder.html#method.add_utxo" title="TxBuilder::add_utxo"><code>TxBuilder::add_utxo</code></a>
+have priority over these. See the docs of the two linked methods for more details.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_unspendable" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#458-461">source</a><h4 class="code-header">pub fn <a href="#method.add_unspendable" class="fn">add_unspendable</a>(&mut self, unspendable: OutPoint) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Add a utxo to the internal list of unspendable utxos</p>
+<p>It’s important to note that the “must-be-spent” utxos added with <a href="struct.TxBuilder.html#method.add_utxo" title="TxBuilder::add_utxo"><code>TxBuilder::add_utxo</code></a>
+have priority over this. See the docs of the two linked methods for more details.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sighash" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#466-469">source</a><h4 class="code-header">pub fn <a href="#method.sighash" class="fn">sighash</a>(&mut self, sighash: PsbtSighashType) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Sign with a specific sig hash</p>
+<p><strong>Use this option very carefully</strong></p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ordering" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#472-475">source</a><h4 class="code-header">pub fn <a href="#method.ordering" class="fn">ordering</a>(&mut self, ordering: <a class="enum" href="enum.TxOrdering.html" title="enum bdk_wallet::wallet::tx_builder::TxOrdering">TxOrdering</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Choose the ordering for inputs and outputs of the transaction</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.nlocktime" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#480-483">source</a><h4 class="code-header">pub fn <a href="#method.nlocktime" class="fn">nlocktime</a>(&mut self, locktime: LockTime) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Use a specific nLockTime while creating the transaction</p>
+<p>This can cause conflicts if the wallet’s descriptors contain an “after” (OP_CLTV) operator.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.version" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#489-492">source</a><h4 class="code-header">pub fn <a href="#method.version" class="fn">version</a>(&mut self, version: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Build a transaction with a specific version</p>
+<p>The <code>version</code> should always be greater than <code>0</code> and greater than <code>1</code> if the wallet’s
+descriptors contain an “older” (OP_CSV) operator.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.do_not_spend_change" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#498-501">source</a><h4 class="code-header">pub fn <a href="#method.do_not_spend_change" class="fn">do_not_spend_change</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Do not spend change outputs</p>
+<p>This effectively adds all the change outputs to the “unspendable” list. See
+<a href="struct.TxBuilder.html#method.unspendable" title="TxBuilder::unspendable"><code>TxBuilder::unspendable</code></a>.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.only_spend_change" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#507-510">source</a><h4 class="code-header">pub fn <a href="#method.only_spend_change" class="fn">only_spend_change</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Only spend change outputs</p>
+<p>This effectively adds all the non-change outputs to the “unspendable” list. See
+<a href="struct.TxBuilder.html#method.unspendable" title="TxBuilder::unspendable"><code>TxBuilder::unspendable</code></a>.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.change_policy" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#514-517">source</a><h4 class="code-header">pub fn <a href="#method.change_policy" class="fn">change_policy</a>(&mut self, change_policy: <a class="enum" href="enum.ChangeSpendPolicy.html" title="enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy">ChangeSpendPolicy</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Set a specific <a href="enum.ChangeSpendPolicy.html" title="ChangeSpendPolicy"><code>ChangeSpendPolicy</code></a>. See <a href="struct.TxBuilder.html#method.do_not_spend_change" title="TxBuilder::do_not_spend_change"><code>TxBuilder::do_not_spend_change</code></a> and
+<a href="struct.TxBuilder.html#method.only_spend_change" title="TxBuilder::only_spend_change"><code>TxBuilder::only_spend_change</code></a> for some shortcuts.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.only_witness_utxo" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#524-527">source</a><h4 class="code-header">pub fn <a href="#method.only_witness_utxo" class="fn">only_witness_utxo</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Only Fill-in the <a href="bitcoin::psbt::Input::witness_utxo"><code>psbt::Input::witness_utxo</code></a> field when spending from
+SegWit descriptors.</p>
+<p>This reduces the size of the PSBT, but some signers might reject them due to the lack of
+the <code>non_witness_utxo</code>.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.include_output_redeem_witness_script" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#533-536">source</a><h4 class="code-header">pub fn <a href="#method.include_output_redeem_witness_script" class="fn">include_output_redeem_witness_script</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Fill-in the <a href="bitcoin::psbt::Output::redeem_script"><code>psbt::Output::redeem_script</code></a> and
+<a href="bitcoin::psbt::Output::witness_script"><code>psbt::Output::witness_script</code></a> fields.</p>
+<p>This is useful for signers which always require it, like ColdCard hardware wallets.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_global_xpubs" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#543-546">source</a><h4 class="code-header">pub fn <a href="#method.add_global_xpubs" class="fn">add_global_xpubs</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Fill-in the <code>PSBT_GLOBAL_XPUB</code> field with the extended keys contained in both the external
+and internal descriptors</p>
+<p>This is useful for offline signers that take part to a multisig. Some hardware wallets like
+BitBox and ColdCard are known to require this.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.drain_wallet" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#549-552">source</a><h4 class="code-header">pub fn <a href="#method.drain_wallet" class="fn">drain_wallet</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Spend all the available inputs. This respects filters like <a href="struct.TxBuilder.html#method.unspendable" title="TxBuilder::unspendable"><code>TxBuilder::unspendable</code></a> and the change policy.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.coin_selection" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#559-569">source</a><h4 class="code-header">pub fn <a href="#method.coin_selection" class="fn">coin_selection</a><P: <a class="trait" href="../coin_selection/trait.CoinSelectionAlgorithm.html" title="trait bdk_wallet::wallet::coin_selection::CoinSelectionAlgorithm">CoinSelectionAlgorithm</a>>(<br> self,<br> coin_selection: P<br>) -> <a class="struct" href="struct.TxBuilder.html" title="struct bdk_wallet::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, P, Ctx></h4></section></summary><div class="docblock"><p>Choose the coin selection algorithm</p>
+<p>Overrides the <a href="../coin_selection/type.DefaultCoinSelectionAlgorithm.html" title="DefaultCoinSelectionAlgorithm"><code>DefaultCoinSelectionAlgorithm</code></a>.</p>
+<p>Note that this function consumes the builder and returns it so it is usually best to put this as the first call on the builder.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.enable_rbf" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#574-577">source</a><h4 class="code-header">pub fn <a href="#method.enable_rbf" class="fn">enable_rbf</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Enable signaling RBF</p>
+<p>This will use the default nSequence value of <code>0xFFFFFFFD</code>.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.enable_rbf_with_sequence" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#586-589">source</a><h4 class="code-header">pub fn <a href="#method.enable_rbf_with_sequence" class="fn">enable_rbf_with_sequence</a>(&mut self, nsequence: Sequence) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Enable signaling RBF with a specific nSequence value</p>
+<p>This can cause conflicts if the wallet’s descriptors contain an “older” (OP_CSV) operator
+and the given <code>nsequence</code> is lower than the CSV value.</p>
+<p>If the <code>nsequence</code> is higher than <code>0xFFFFFFFD</code> an error will be thrown, since it would not
+be a valid nSequence to signal RBF.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.current_height" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#602-606">source</a><h4 class="code-header">pub fn <a href="#method.current_height" class="fn">current_height</a>(&mut self, height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Set the current blockchain height.</p>
+<p>This will be used to:</p>
+<ol>
+<li>Set the nLockTime for preventing fee sniping.
+<strong>Note</strong>: This will be ignored if you manually specify a nlocktime using <a href="struct.TxBuilder.html#method.nlocktime" title="TxBuilder::nlocktime"><code>TxBuilder::nlocktime</code></a>.</li>
+<li>Decide whether coinbase outputs are mature or not. If the coinbase outputs are not
+mature at <code>current_height</code>, we ignore them in the coin selection.
+If you want to create a transaction that spends immature coinbase inputs, manually
+add them using <a href="struct.TxBuilder.html#method.add_utxos" title="TxBuilder::add_utxos"><code>TxBuilder::add_utxos</code></a>.</li>
+</ol>
+<p>In both cases, if you don’t provide a current height, we use the last sync height.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.allow_dust" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#611-614">source</a><h4 class="code-header">pub fn <a href="#method.allow_dust" class="fn">allow_dust</a>(&mut self, allow_dust: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Set whether or not the dust limit is checked.</p>
+<p><strong>Note</strong>: by avoiding a dust limit check you may end up with a transaction that is non-standard.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E-1" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#617-628">source</a><a href="#impl-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E-1" class="anchor">§</a><h3 class="code-header">impl<'a, Cs: <a class="trait" href="../coin_selection/trait.CoinSelectionAlgorithm.html" title="trait bdk_wallet::wallet::coin_selection::CoinSelectionAlgorithm">CoinSelectionAlgorithm</a>, Ctx> <a class="struct" href="struct.TxBuilder.html" title="struct bdk_wallet::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, Cs, Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.finish" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#623-627">source</a><h4 class="code-header">pub fn <a href="#method.finish" class="fn">finish</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Psbt, <a class="enum" href="../error/enum.CreateTxError.html" title="enum bdk_wallet::wallet::error::CreateTxError">CreateTxError</a>></h4></section></summary><div class="docblock"><p>Finish building the transaction.</p>
+<p>Returns a new [<code>Psbt</code>] per <a href="https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki"><code>BIP174</code></a>.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-TxBuilder%3C%27a%2C%20Cs%2C%20CreateTx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#714-794">source</a><a href="#impl-TxBuilder%3C%27a%2C%20Cs%2C%20CreateTx%3E" class="anchor">§</a><h3 class="code-header">impl<'a, Cs: <a class="trait" href="../coin_selection/trait.CoinSelectionAlgorithm.html" title="trait bdk_wallet::wallet::coin_selection::CoinSelectionAlgorithm">CoinSelectionAlgorithm</a>> <a class="struct" href="struct.TxBuilder.html" title="struct bdk_wallet::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, Cs, <a class="struct" href="struct.CreateTx.html" title="struct bdk_wallet::wallet::tx_builder::CreateTx">CreateTx</a>></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.set_recipients" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#716-722">source</a><h4 class="code-header">pub fn <a href="#method.set_recipients" class="fn">set_recipients</a>(<br> &mut self,<br> recipients: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><(ScriptBuf, Amount)><br>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Replace the recipients already added with a new list</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_recipient" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#725-730">source</a><h4 class="code-header">pub fn <a href="#method.add_recipient" class="fn">add_recipient</a>(<br> &mut self,<br> script_pubkey: ScriptBuf,<br> amount: Amount<br>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Add a recipient to the internal list</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_data" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#733-737">source</a><h4 class="code-header">pub fn <a href="#method.add_data" class="fn">add_data</a><T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a><PushBytes>>(&mut self, data: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Add data as an output, using OP_RETURN</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.drain_to" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#790-793">source</a><h4 class="code-header">pub fn <a href="#method.drain_to" class="fn">drain_to</a>(&mut self, script_pubkey: ScriptBuf) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>Self</h4></section></summary><div class="docblock"><p>Sets the address to <em>drain</em> excess coins to.</p>
+<p>Usually, when there are excess coins they are sent to a change address generated by the
+wallet. This option replaces the usual change address with an arbitrary <code>script_pubkey</code> of
+your choosing. Just as with a change output, if the drain output is not needed (the excess
+coins are too small) it will not be included in the resulting transaction. The only
+difference is that it is valid to use <code>drain_to</code> without setting any ordinary recipients
+with <a href="struct.TxBuilder.html#method.add_recipient"><code>add_recipient</code></a> (but it is perfectly fine to add recipients as well).</p>
+<p>If you choose not to set any recipients, you should either provide the utxos that the
+transaction should spend via <a href="struct.TxBuilder.html#method.add_utxos"><code>add_utxos</code></a>, or set <a href="struct.TxBuilder.html#method.drain_wallet"><code>drain_wallet</code></a> to spend all of them.</p>
+<p>When bumping the fees of a transaction made with this option, you probably want to
+use <a href="struct.TxBuilder.html#method.allow_shrinking"><code>allow_shrinking</code></a> to allow this output to be reduced to pay for the extra fees.</p>
+<h5 id="example-1"><a href="#example-1">Example</a></h5>
+<p><code>drain_to</code> is very useful for draining all the coins in a wallet with <a href="struct.TxBuilder.html#method.drain_wallet"><code>drain_wallet</code></a> to a
+single address.</p>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code>Address::from_str(<span class="string">"2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt"</span>)
+ .unwrap()
+ .assume_checked();
+<span class="kw">let </span><span class="kw-2">mut </span>tx_builder = wallet.build_tx();
+
+tx_builder
+ <span class="comment">// Spend all outputs in this wallet.
+ </span>.drain_wallet()
+ <span class="comment">// Send the excess (which is all the coins minus the fee) to this address.
+ </span>.drain_to(to_address.script_pubkey())
+ .fee_rate(FeeRate::from_sat_per_vb(<span class="number">5</span>).expect(<span class="string">"valid feerate"</span>))
+ .enable_rbf();
+<span class="kw">let </span>psbt = tx_builder.finish()<span class="question-mark">?</span>;</code></pre></div>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-TxBuilder%3C%27a%2C%20DefaultCoinSelectionAlgorithm%2C%20BumpFee%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#797-826">source</a><a href="#impl-TxBuilder%3C%27a%2C%20DefaultCoinSelectionAlgorithm%2C%20BumpFee%3E" class="anchor">§</a><h3 class="code-header">impl<'a> <a class="struct" href="struct.TxBuilder.html" title="struct bdk_wallet::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, <a class="type" href="../coin_selection/type.DefaultCoinSelectionAlgorithm.html" title="type bdk_wallet::wallet::coin_selection::DefaultCoinSelectionAlgorithm">DefaultCoinSelectionAlgorithm</a>, <a class="struct" href="struct.BumpFee.html" title="struct bdk_wallet::wallet::tx_builder::BumpFee">BumpFee</a>></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.allow_shrinking" class="method has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#808-825">source</a><h4 class="code-header">pub fn <a href="#method.allow_shrinking" class="fn">allow_shrinking</a>(<br> &mut self,<br> script_pubkey: ScriptBuf<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.reference.html">&mut </a>Self, <a class="enum" href="enum.AllowShrinkingError.html" title="enum bdk_wallet::wallet::tx_builder::AllowShrinkingError">AllowShrinkingError</a>></h4></section></summary><div class="docblock"><p>Explicitly tells the wallet that it is allowed to reduce the amount of the output matching this
+<code>script_pubkey</code> in order to bump the transaction fee. Without specifying this the wallet
+will attempt to find a change output to shrink instead.</p>
+<p><strong>Note</strong> that the output may shrink to below the dust limit and therefore be removed. If it is
+preserved then it is currently not guaranteed to be in the same position as it was
+originally.</p>
+<p>Returns an <code>Err</code> if <code>script_pubkey</code> can’t be found among the recipients of the
+transaction we are bumping.</p>
+</div></details></div></details></div><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><section id="impl-Clone-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#178-187">source</a><a href="#impl-Clone-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<'a, Cs: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.TxBuilder.html" title="struct bdk_wallet::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, Cs, Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#179-186">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> Self</h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#125">source</a><a href="#impl-Debug-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<'a, Cs: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>, Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.TxBuilder.html" title="struct bdk_wallet::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, Cs, Ctx></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#125">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<'a, Cs, Ctx> !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.TxBuilder.html" title="struct bdk_wallet::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, Cs, Ctx></h3></section><section id="impl-Send-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Send-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<'a, Cs, Ctx> !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.TxBuilder.html" title="struct bdk_wallet::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, Cs, Ctx></h3></section><section id="impl-Sync-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Sync-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<'a, Cs, Ctx> !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.TxBuilder.html" title="struct bdk_wallet::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, Cs, Ctx></h3></section><section id="impl-Unpin-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-Unpin-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<'a, Cs, Ctx> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.TxBuilder.html" title="struct bdk_wallet::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, Cs, Ctx><span class="where fmt-newline">where<br> Cs: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> Ctx: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<'a, Cs, Ctx> !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.TxBuilder.html" title="struct bdk_wallet::wallet::tx_builder::TxBuilder">TxBuilder</a><'a, Cs, Ctx></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-TxBuilder%3C%27a%2C%20Cs%2C%20Ctx%3E" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<span class="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Context in which the [`TxBuilder`] is valid"><meta name="keywords" content="rust, rustlang, rust-lang, TxBuilderContext"><title>TxBuilderContext in bdk_wallet::wallet::tx_builder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../bdk_wallet/index.html"><div class="logo-container">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div></a><h2 class="location"><a href="#">TxBuilderContext</a></h2><div class="sidebar-elems"><section><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In bdk_wallet::wallet::tx_builder</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../../index.html">bdk_wallet</a>::<wbr><a href="../index.html">wallet</a>::<wbr><a href="index.html">tx_builder</a>::<wbr><a class="trait" href="#">TxBuilderContext</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#58">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait TxBuilderContext: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> { }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Context in which the <a href="struct.TxBuilder.html" title="TxBuilder"><code>TxBuilder</code></a> is valid</p>
+</div></details><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-TxBuilderContext-for-BumpFee" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#69">source</a><a href="#impl-TxBuilderContext-for-BumpFee" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.TxBuilderContext.html" title="trait bdk_wallet::wallet::tx_builder::TxBuilderContext">TxBuilderContext</a> for <a class="struct" href="struct.BumpFee.html" title="struct bdk_wallet::wallet::tx_builder::BumpFee">BumpFee</a></h3></section><section id="impl-TxBuilderContext-for-CreateTx" class="impl has-srclink"><a class="srclink rightside" href="../../../src/bdk_wallet/wallet/tx_builder.rs.html#64">source</a><a href="#impl-TxBuilderContext-for-CreateTx" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.TxBuilderContext.html" title="trait bdk_wallet::wallet::tx_builder::TxBuilderContext">TxBuilderContext</a> for <a class="struct" href="struct.CreateTx.html" title="struct bdk_wallet::wallet::tx_builder::CreateTx">CreateTx</a></h3></section></div><script src="../../../implementors/bdk_wallet/wallet/tx_builder/trait.TxBuilderContext.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="refresh" content="0;URL=../../../bdk_wallet/wallet/trait.IsDust.html">
+ <title>Redirection</title>
+</head>
+<body>
+ <p>Redirecting to <a href="../../../bdk_wallet/wallet/trait.IsDust.html">../../../bdk_wallet/wallet/trait.IsDust.html</a>...</p>
+ <script>location.replace("../../../bdk_wallet/wallet/trait.IsDust.html" + location.search + location.hash);</script>
+</body>
+</html>
\ No newline at end of file
-window.ALL_CRATES = ["bdk","bdk_bitcoind_rpc","bdk_chain","bdk_coin_select","bdk_electrum","bdk_esplora","bdk_file_store","bdk_hwi","bdk_persist","bdk_testenv","bdk_tmp_plan","example_bitcoind_rpc_polling","example_cli","example_electrum","example_esplora","wallet_electrum_example","wallet_esplora_async","wallet_esplora_blocking","wallet_rpc"];
\ No newline at end of file
+window.ALL_CRATES = ["bdk_bitcoind_rpc","bdk_chain","bdk_coin_select","bdk_electrum","bdk_esplora","bdk_file_store","bdk_hwi","bdk_persist","bdk_testenv","bdk_tmp_plan","bdk_wallet","example_bitcoind_rpc_polling","example_cli","example_electrum","example_esplora","wallet_electrum_example","wallet_esplora_async","wallet_esplora_blocking","wallet_rpc"];
\ No newline at end of file
-<!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 `ChangeSet` type in crate `example_bitcoind_rpc_polling`."><meta name="keywords" content="rust, rustlang, rust-lang, ChangeSet"><title>ChangeSet in example_bitcoind_rpc_polling - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../example_bitcoind_rpc_polling/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../example_bitcoind_rpc_polling/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">ChangeSet</a></h2><div class="sidebar-elems"><h2><a href="index.html">In example_bitcoind_rpc_polling</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="index.html">example_bitcoind_rpc_polling</a>::<wbr><a class="type" href="#">ChangeSet</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/example_bitcoind_rpc_polling/main.rs.html#38-41">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub(crate) type ChangeSet = (<a class="type" href="../bdk_chain/local_chain/type.ChangeSet.html" title="type bdk_chain::local_chain::ChangeSet">ChangeSet</a>, <a class="struct" href="../bdk_chain/indexed_tx_graph/struct.ChangeSet.html" title="struct bdk_chain::indexed_tx_graph::ChangeSet">ChangeSet</a><<a class="struct" href="../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor">ConfirmationTimeHeightAnchor</a>, <a class="struct" href="../bdk_chain/keychain/txout_index/struct.ChangeSet.html" title="struct bdk_chain::keychain::txout_index::ChangeSet">ChangeSet</a><<a class="enum" href="../example_cli/enum.Keychain.html" title="enum example_cli::Keychain">Keychain</a>>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="example_bitcoind_rpc_polling" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+<!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 `ChangeSet` type in crate `example_bitcoind_rpc_polling`."><meta name="keywords" content="rust, rustlang, rust-lang, ChangeSet"><title>ChangeSet in example_bitcoind_rpc_polling - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../example_bitcoind_rpc_polling/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../example_bitcoind_rpc_polling/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">ChangeSet</a></h2><div class="sidebar-elems"><h2><a href="index.html">In example_bitcoind_rpc_polling</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="index.html">example_bitcoind_rpc_polling</a>::<wbr><a class="type" href="#">ChangeSet</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/example_bitcoind_rpc_polling/main.rs.html#38-41">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub(crate) type ChangeSet = (ChangeSet, ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<Keychain>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="example_bitcoind_rpc_polling" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
-<!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 `create_tx` fn in crate `example_cli`."><meta name="keywords" content="rust, rustlang, rust-lang, create_tx"><title>create_tx in example_cli - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In example_cli</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="index.html">example_cli</a>::<wbr><a class="fn" href="#">create_tx</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/example_cli/lib.rs.html#199-416">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn create_tx<A: <a class="trait" href="../bdk_chain/tx_data_traits/trait.Anchor.html" title="trait bdk_chain::tx_data_traits::Anchor">Anchor</a>, O: <a class="trait" href="../bdk_chain/chain_oracle/trait.ChainOracle.html" title="trait bdk_chain::chain_oracle::ChainOracle">ChainOracle</a>>(<br> graph: &mut <a class="type" href="type.KeychainTxGraph.html" title="type example_cli::KeychainTxGraph">KeychainTxGraph</a><A>,<br> chain: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>O,<br> keymap: &<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><DescriptorPublicKey, DescriptorSecretKey>,<br> cs_algorithm: <a class="enum" href="enum.CoinSelectionAlgo.html" title="enum example_cli::CoinSelectionAlgo">CoinSelectionAlgo</a>,<br> address: Address,<br> value: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a><br>) -> <a class="type" href="https://docs.rs/anyhow/1.0.83/anyhow/type.Result.html" title="type anyhow::Result">Result</a><(Transaction, <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="struct.CreateTxChange.html" title="struct example_cli::CreateTxChange">CreateTxChange</a>>)><span class="where fmt-newline">where<br> O::<a class="associatedtype" href="../bdk_chain/chain_oracle/trait.ChainOracle.html#associatedtype.Error" title="type bdk_chain::chain_oracle::ChainOracle::Error">Error</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static,</span></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="example_cli" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+<!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 `create_tx` fn in crate `example_cli`."><meta name="keywords" content="rust, rustlang, rust-lang, create_tx"><title>create_tx in example_cli - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In example_cli</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="index.html">example_cli</a>::<wbr><a class="fn" href="#">create_tx</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/example_cli/lib.rs.html#199-416">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn create_tx<A: Anchor, O: ChainOracle>(<br> graph: &mut <a class="type" href="type.KeychainTxGraph.html" title="type example_cli::KeychainTxGraph">KeychainTxGraph</a><A>,<br> chain: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>O,<br> keymap: &<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><DescriptorPublicKey, DescriptorSecretKey>,<br> cs_algorithm: <a class="enum" href="enum.CoinSelectionAlgo.html" title="enum example_cli::CoinSelectionAlgo">CoinSelectionAlgo</a>,<br> address: Address,<br> value: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a><br>) -> <a class="type" href="https://docs.rs/anyhow/1.0.83/anyhow/type.Result.html" title="type anyhow::Result">Result</a><(Transaction, <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="struct.CreateTxChange.html" title="struct example_cli::CreateTxChange">CreateTxChange</a>>)><span class="where fmt-newline">where<br> O::Error: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static,</span></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="example_cli" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
-<!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 `handle_commands` fn in crate `example_cli`."><meta name="keywords" content="rust, rustlang, rust-lang, handle_commands"><title>handle_commands in example_cli - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In example_cli</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="index.html">example_cli</a>::<wbr><a class="fn" href="#">handle_commands</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/example_cli/lib.rs.html#450-669">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn handle_commands<CS: Subcommand, S: Args, A: <a class="trait" href="../bdk_chain/tx_data_traits/trait.Anchor.html" title="trait bdk_chain::tx_data_traits::Anchor">Anchor</a>, O: <a class="trait" href="../bdk_chain/chain_oracle/trait.ChainOracle.html" title="trait bdk_chain::chain_oracle::ChainOracle">ChainOracle</a>, C>(<br> graph: &<a class="struct" href="https://doc.rust-lang.org/nightly/std/sync/mutex/struct.Mutex.html" title="struct std::sync::mutex::Mutex">Mutex</a><<a class="type" href="type.KeychainTxGraph.html" title="type example_cli::KeychainTxGraph">KeychainTxGraph</a><A>>,<br> db: &<a class="struct" href="https://doc.rust-lang.org/nightly/std/sync/mutex/struct.Mutex.html" title="struct std::sync::mutex::Mutex">Mutex</a><Persist<C>>,<br> chain: &<a class="struct" href="https://doc.rust-lang.org/nightly/std/sync/mutex/struct.Mutex.html" title="struct std::sync::mutex::Mutex">Mutex</a><O>,<br> keymap: &<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><DescriptorPublicKey, DescriptorSecretKey>,<br> network: Network,<br> broadcast: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(S, &Transaction) -> <a class="type" href="https://docs.rs/anyhow/1.0.83/anyhow/type.Result.html" title="type anyhow::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>>,<br> cmd: <a class="enum" href="enum.Commands.html" title="enum example_cli::Commands">Commands</a><CS, S><br>) -> <a class="type" href="https://docs.rs/anyhow/1.0.83/anyhow/type.Result.html" title="type anyhow::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>><span class="where fmt-newline">where<br> O::<a class="associatedtype" href="../bdk_chain/chain_oracle/trait.ChainOracle.html#associatedtype.Error" title="type bdk_chain::chain_oracle::ChainOracle::Error">Error</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static,<br> C: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + <a class="trait" href="../bdk_chain/tx_data_traits/trait.Append.html" title="trait bdk_chain::tx_data_traits::Append">Append</a> + <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> + <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="type" href="type.KeychainChangeSet.html" title="type example_cli::KeychainChangeSet">KeychainChangeSet</a><A>>,</span></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="example_cli" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+<!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 `handle_commands` fn in crate `example_cli`."><meta name="keywords" content="rust, rustlang, rust-lang, handle_commands"><title>handle_commands in example_cli - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In example_cli</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="index.html">example_cli</a>::<wbr><a class="fn" href="#">handle_commands</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/example_cli/lib.rs.html#450-669">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn handle_commands<CS: Subcommand, S: Args, A: Anchor, O: ChainOracle, C>(<br> graph: &<a class="struct" href="https://doc.rust-lang.org/nightly/std/sync/mutex/struct.Mutex.html" title="struct std::sync::mutex::Mutex">Mutex</a><<a class="type" href="type.KeychainTxGraph.html" title="type example_cli::KeychainTxGraph">KeychainTxGraph</a><A>>,<br> db: &<a class="struct" href="https://doc.rust-lang.org/nightly/std/sync/mutex/struct.Mutex.html" title="struct std::sync::mutex::Mutex">Mutex</a><Persist<C>>,<br> chain: &<a class="struct" href="https://doc.rust-lang.org/nightly/std/sync/mutex/struct.Mutex.html" title="struct std::sync::mutex::Mutex">Mutex</a><O>,<br> keymap: &<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><DescriptorPublicKey, DescriptorSecretKey>,<br> network: Network,<br> broadcast: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(S, &Transaction) -> <a class="type" href="https://docs.rs/anyhow/1.0.83/anyhow/type.Result.html" title="type anyhow::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>>,<br> cmd: <a class="enum" href="enum.Commands.html" title="enum example_cli::Commands">Commands</a><CS, S><br>) -> <a class="type" href="https://docs.rs/anyhow/1.0.83/anyhow/type.Result.html" title="type anyhow::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>><span class="where fmt-newline">where<br> O::Error: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static,<br> C: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + Append + <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> + <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="type" href="type.KeychainChangeSet.html" title="type example_cli::KeychainChangeSet">KeychainChangeSet</a><A>>,</span></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="example_cli" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
-<!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="Parses command line arguments and initializes all components, creating a file store with the given parameters, or loading one if it exists."><meta name="keywords" content="rust, rustlang, rust-lang, init"><title>init in example_cli - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In example_cli</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="index.html">example_cli</a>::<wbr><a class="fn" href="#">init</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/example_cli/lib.rs.html#687-739">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn init<CS: Subcommand, S: Args, C>(<br> db_magic: &[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],<br> db_default_path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a><br>) -> <a class="type" href="https://docs.rs/anyhow/1.0.83/anyhow/type.Result.html" title="type anyhow::Result">Result</a><<a class="struct" href="struct.Init.html" title="struct example_cli::Init">Init</a><CS, S, C>><span class="where fmt-newline">where<br> C: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + <a class="trait" href="../bdk_chain/tx_data_traits/trait.Append.html" title="trait bdk_chain::tx_data_traits::Append">Append</a> + <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> + <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static,</span></code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Parses command line arguments and initializes all components, creating
+<!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="Parses command line arguments and initializes all components, creating a file store with the given parameters, or loading one if it exists."><meta name="keywords" content="rust, rustlang, rust-lang, init"><title>init in example_cli - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In example_cli</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="index.html">example_cli</a>::<wbr><a class="fn" href="#">init</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/example_cli/lib.rs.html#687-739">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn init<CS: Subcommand, S: Args, C>(<br> db_magic: &[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],<br> db_default_path: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a><br>) -> <a class="type" href="https://docs.rs/anyhow/1.0.83/anyhow/type.Result.html" title="type anyhow::Result">Result</a><<a class="struct" href="struct.Init.html" title="struct example_cli::Init">Init</a><CS, S, C>><span class="where fmt-newline">where<br> C: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + Append + <a class="trait" href="https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> + <a class="trait" href="https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static,</span></code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Parses command line arguments and initializes all components, creating
a file store with the given parameters, or loading one if it exists.</p>
</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="example_cli" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
-<!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 `planned_utxos` fn in crate `example_cli`."><meta name="keywords" content="rust, rustlang, rust-lang, planned_utxos"><title>planned_utxos in example_cli - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In example_cli</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="index.html">example_cli</a>::<wbr><a class="fn" href="#">planned_utxos</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/example_cli/lib.rs.html#421-448">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn planned_utxos<A: <a class="trait" href="../bdk_chain/tx_data_traits/trait.Anchor.html" title="trait bdk_chain::tx_data_traits::Anchor">Anchor</a>, O: <a class="trait" href="../bdk_chain/chain_oracle/trait.ChainOracle.html" title="trait bdk_chain::chain_oracle::ChainOracle">ChainOracle</a>, K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + CanDerive>(<br> graph: &<a class="type" href="type.KeychainTxGraph.html" title="type example_cli::KeychainTxGraph">KeychainTxGraph</a><A>,<br> chain: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>O,<br> assets: &Assets<K><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="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="type" href="type.PlannedUtxo.html" title="type example_cli::PlannedUtxo">PlannedUtxo</a><K, A>>, O::<a class="associatedtype" href="../bdk_chain/chain_oracle/trait.ChainOracle.html#associatedtype.Error" title="type bdk_chain::chain_oracle::ChainOracle::Error">Error</a>></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="example_cli" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+<!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 `planned_utxos` fn in crate `example_cli`."><meta name="keywords" content="rust, rustlang, rust-lang, planned_utxos"><title>planned_utxos in example_cli - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In example_cli</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="index.html">example_cli</a>::<wbr><a class="fn" href="#">planned_utxos</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/example_cli/lib.rs.html#421-448">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn planned_utxos<A: Anchor, O: ChainOracle, K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + CanDerive>(<br> graph: &<a class="type" href="type.KeychainTxGraph.html" title="type example_cli::KeychainTxGraph">KeychainTxGraph</a><A>,<br> chain: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>O,<br> assets: &Assets<K><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="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="type" href="type.PlannedUtxo.html" title="type example_cli::PlannedUtxo">PlannedUtxo</a><K, A>>, O::Error></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="example_cli" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
<!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 `CreateTxChange` struct in crate `example_cli`."><meta name="keywords" content="rust, rustlang, rust-lang, CreateTxChange"><title>CreateTxChange in example_cli - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">CreateTxChange</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.change_keychain">change_keychain</a></li><li><a href="#structfield.index">index</a></li><li><a href="#structfield.index_changeset">index_changeset</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-CreateTxChange">RefUnwindSafe</a></li><li><a href="#impl-Send-for-CreateTxChange">Send</a></li><li><a href="#impl-Sync-for-CreateTxChange">Sync</a></li><li><a href="#impl-Unpin-for-CreateTxChange">Unpin</a></li><li><a href="#impl-UnwindSafe-for-CreateTxChange">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-CreateTxChange">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-CreateTxChange">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-CreateTxChange">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-CreateTxChange">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-CreateTxChange">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-CreateTxChange">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-CreateTxChange">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-CreateTxChange">VZip<V></a></li></ul></section><h2><a href="index.html">In example_cli</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="index.html">example_cli</a>::<wbr><a class="struct" href="#">CreateTxChange</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/example_cli/lib.rs.html#193-197">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct CreateTxChange {
- pub index_changeset: <a class="struct" href="../bdk_chain/keychain/txout_index/struct.ChangeSet.html" title="struct bdk_chain::keychain::txout_index::ChangeSet">ChangeSet</a><<a class="enum" href="enum.Keychain.html" title="enum example_cli::Keychain">Keychain</a>>,
+ pub index_changeset: ChangeSet<<a class="enum" href="enum.Keychain.html" title="enum example_cli::Keychain">Keychain</a>>,
pub change_keychain: <a class="enum" href="enum.Keychain.html" title="enum example_cli::Keychain">Keychain</a>,
pub index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
-}</code></pre></div><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.index_changeset" class="structfield small-section-header"><a href="#structfield.index_changeset" class="anchor field">§</a><code>index_changeset: <a class="struct" href="../bdk_chain/keychain/txout_index/struct.ChangeSet.html" title="struct bdk_chain::keychain::txout_index::ChangeSet">ChangeSet</a><<a class="enum" href="enum.Keychain.html" title="enum example_cli::Keychain">Keychain</a>></code></span><span id="structfield.change_keychain" class="structfield small-section-header"><a href="#structfield.change_keychain" class="anchor field">§</a><code>change_keychain: <a class="enum" href="enum.Keychain.html" title="enum example_cli::Keychain">Keychain</a></code></span><span id="structfield.index" class="structfield small-section-header"><a href="#structfield.index" class="anchor field">§</a><code>index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></code></span><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-CreateTxChange" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-CreateTxChange" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.CreateTxChange.html" title="struct example_cli::CreateTxChange">CreateTxChange</a></h3></section><section id="impl-Send-for-CreateTxChange" class="impl has-srclink"><a href="#impl-Send-for-CreateTxChange" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.CreateTxChange.html" title="struct example_cli::CreateTxChange">CreateTxChange</a></h3></section><section id="impl-Sync-for-CreateTxChange" class="impl has-srclink"><a href="#impl-Sync-for-CreateTxChange" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.CreateTxChange.html" title="struct example_cli::CreateTxChange">CreateTxChange</a></h3></section><section id="impl-Unpin-for-CreateTxChange" class="impl has-srclink"><a href="#impl-Unpin-for-CreateTxChange" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.CreateTxChange.html" title="struct example_cli::CreateTxChange">CreateTxChange</a></h3></section><section id="impl-UnwindSafe-for-CreateTxChange" class="impl has-srclink"><a href="#impl-UnwindSafe-for-CreateTxChange" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.CreateTxChange.html" title="struct example_cli::CreateTxChange">CreateTxChange</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-CreateTxChange" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-CreateTxChange" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-CreateTxChange" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-CreateTxChange" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-CreateTxChange" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-CreateTxChange" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-CreateTxChange" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-CreateTxChange" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+}</code></pre></div><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.index_changeset" class="structfield small-section-header"><a href="#structfield.index_changeset" class="anchor field">§</a><code>index_changeset: ChangeSet<<a class="enum" href="enum.Keychain.html" title="enum example_cli::Keychain">Keychain</a>></code></span><span id="structfield.change_keychain" class="structfield small-section-header"><a href="#structfield.change_keychain" class="anchor field">§</a><code>change_keychain: <a class="enum" href="enum.Keychain.html" title="enum example_cli::Keychain">Keychain</a></code></span><span id="structfield.index" class="structfield small-section-header"><a href="#structfield.index" class="anchor field">§</a><code>index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></code></span><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-CreateTxChange" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-CreateTxChange" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.CreateTxChange.html" title="struct example_cli::CreateTxChange">CreateTxChange</a></h3></section><section id="impl-Send-for-CreateTxChange" class="impl has-srclink"><a href="#impl-Send-for-CreateTxChange" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.CreateTxChange.html" title="struct example_cli::CreateTxChange">CreateTxChange</a></h3></section><section id="impl-Sync-for-CreateTxChange" class="impl has-srclink"><a href="#impl-Sync-for-CreateTxChange" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.CreateTxChange.html" title="struct example_cli::CreateTxChange">CreateTxChange</a></h3></section><section id="impl-Unpin-for-CreateTxChange" class="impl has-srclink"><a href="#impl-Unpin-for-CreateTxChange" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.CreateTxChange.html" title="struct example_cli::CreateTxChange">CreateTxChange</a></h3></section><section id="impl-UnwindSafe-for-CreateTxChange" class="impl has-srclink"><a href="#impl-UnwindSafe-for-CreateTxChange" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.CreateTxChange.html" title="struct example_cli::CreateTxChange">CreateTxChange</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-CreateTxChange" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-CreateTxChange" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-CreateTxChange" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-CreateTxChange" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-CreateTxChange" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-CreateTxChange" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-CreateTxChange" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-CreateTxChange" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-CreateTxChange" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-CreateTxChange" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<p>That is, this conversion is whatever the implementation of
<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a><T> for U</code> chooses to do.</p>
<!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="The initial state returned by [`init`]."><meta name="keywords" content="rust, rustlang, rust-lang, Init"><title>Init in example_cli - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">Init</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.args">args</a></li><li><a href="#structfield.db">db</a></li><li><a href="#structfield.index">index</a></li><li><a href="#structfield.init_changeset">init_changeset</a></li><li><a href="#structfield.keymap">keymap</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Init%3CCS%2C%20S%2C%20C%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Init%3CCS%2C%20S%2C%20C%3E">Send</a></li><li><a href="#impl-Sync-for-Init%3CCS%2C%20S%2C%20C%3E">Sync</a></li><li><a href="#impl-Unpin-for-Init%3CCS%2C%20S%2C%20C%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Init%3CCS%2C%20S%2C%20C%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Init%3CCS%2C%20S%2C%20C%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Init%3CCS%2C%20S%2C%20C%3E">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Init%3CCS%2C%20S%2C%20C%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Init%3CCS%2C%20S%2C%20C%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Init%3CCS%2C%20S%2C%20C%3E">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-Init%3CCS%2C%20S%2C%20C%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Init%3CCS%2C%20S%2C%20C%3E">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Init%3CCS%2C%20S%2C%20C%3E">VZip<V></a></li></ul></section><h2><a href="index.html">In example_cli</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="index.html">example_cli</a>::<wbr><a class="struct" href="#">Init</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/example_cli/lib.rs.html#672-683">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Init<CS: Subcommand, S: Args, C> {
pub args: <a class="struct" href="struct.Args.html" title="struct example_cli::Args">Args</a><CS, S>,
pub keymap: KeyMap,
- pub index: <a class="struct" href="../bdk_chain/keychain/txout_index/struct.KeychainTxOutIndex.html" title="struct bdk_chain::keychain::txout_index::KeychainTxOutIndex">KeychainTxOutIndex</a><<a class="enum" href="enum.Keychain.html" title="enum example_cli::Keychain">Keychain</a>>,
+ pub index: KeychainTxOutIndex<<a class="enum" href="enum.Keychain.html" title="enum example_cli::Keychain">Keychain</a>>,
pub db: <a class="struct" href="https://doc.rust-lang.org/nightly/std/sync/mutex/struct.Mutex.html" title="struct std::sync::mutex::Mutex">Mutex</a><Persist<C>>,
pub init_changeset: C,
}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The initial state returned by <a href="fn.init.html" title="init"><code>init</code></a>.</p>
</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.args" class="structfield small-section-header"><a href="#structfield.args" class="anchor field">§</a><code>args: <a class="struct" href="struct.Args.html" title="struct example_cli::Args">Args</a><CS, S></code></span><div class="docblock"><p>Arguments parsed by the cli.</p>
</div><span id="structfield.keymap" class="structfield small-section-header"><a href="#structfield.keymap" class="anchor field">§</a><code>keymap: KeyMap</code></span><div class="docblock"><p>Descriptor keymap.</p>
-</div><span id="structfield.index" class="structfield small-section-header"><a href="#structfield.index" class="anchor field">§</a><code>index: <a class="struct" href="../bdk_chain/keychain/txout_index/struct.KeychainTxOutIndex.html" title="struct bdk_chain::keychain::txout_index::KeychainTxOutIndex">KeychainTxOutIndex</a><<a class="enum" href="enum.Keychain.html" title="enum example_cli::Keychain">Keychain</a>></code></span><div class="docblock"><p>Keychain-txout index.</p>
+</div><span id="structfield.index" class="structfield small-section-header"><a href="#structfield.index" class="anchor field">§</a><code>index: KeychainTxOutIndex<<a class="enum" href="enum.Keychain.html" title="enum example_cli::Keychain">Keychain</a>></code></span><div class="docblock"><p>Keychain-txout index.</p>
</div><span id="structfield.db" class="structfield small-section-header"><a href="#structfield.db" class="anchor field">§</a><code>db: <a class="struct" href="https://doc.rust-lang.org/nightly/std/sync/mutex/struct.Mutex.html" title="struct std::sync::mutex::Mutex">Mutex</a><Persist<C>></code></span><div class="docblock"><p>Persistence backend.</p>
</div><span id="structfield.init_changeset" class="structfield small-section-header"><a href="#structfield.init_changeset" class="anchor field">§</a><code>init_changeset: C</code></span><div class="docblock"><p>Initial changeset.</p>
</div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Init%3CCS%2C%20S%2C%20C%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Init%3CCS%2C%20S%2C%20C%3E" class="anchor">§</a><h3 class="code-header">impl<CS, S, C> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Init.html" title="struct example_cli::Init">Init</a><CS, S, C><span class="where fmt-newline">where<br> C: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> CS: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,<br> S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-Init%3CCS%2C%20S%2C%20C%3E" class="impl has-srclink"><a href="#impl-Send-for-Init%3CCS%2C%20S%2C%20C%3E" class="anchor">§</a><h3 class="code-header">impl<CS, S, C> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Init.html" title="struct example_cli::Init">Init</a><CS, S, C><span class="where fmt-newline">where<br> C: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,<br> CS: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,<br> S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-Init%3CCS%2C%20S%2C%20C%3E" class="impl has-srclink"><a href="#impl-Sync-for-Init%3CCS%2C%20S%2C%20C%3E" class="anchor">§</a><h3 class="code-header">impl<CS, S, C> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Init.html" title="struct example_cli::Init">Init</a><CS, S, C><span class="where fmt-newline">where<br> C: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> CS: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br> S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-Init%3CCS%2C%20S%2C%20C%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Init%3CCS%2C%20S%2C%20C%3E" class="anchor">§</a><h3 class="code-header">impl<CS, S, C> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Init.html" title="struct example_cli::Init">Init</a><CS, S, C><span class="where fmt-newline">where<br> C: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> CS: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br> S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-Init%3CCS%2C%20S%2C%20C%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Init%3CCS%2C%20S%2C%20C%3E" class="anchor">§</a><h3 class="code-header">impl<CS, S, C> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Init.html" title="struct example_cli::Init">Init</a><CS, S, C><span class="where fmt-newline">where<br> C: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,<br> CS: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,<br> S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Init%3CCS%2C%20S%2C%20C%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Init%3CCS%2C%20S%2C%20C%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Init%3CCS%2C%20S%2C%20C%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Init%3CCS%2C%20S%2C%20C%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Init%3CCS%2C%20S%2C%20C%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Init%3CCS%2C%20S%2C%20C%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Init%3CCS%2C%20S%2C%20C%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Init%3CCS%2C%20S%2C%20C%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
-<!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 `KeychainChangeSet` type in crate `example_cli`."><meta name="keywords" content="rust, rustlang, rust-lang, KeychainChangeSet"><title>KeychainChangeSet in example_cli - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">KeychainChangeSet</a></h2><div class="sidebar-elems"><h2><a href="index.html">In example_cli</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="index.html">example_cli</a>::<wbr><a class="type" href="#">KeychainChangeSet</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/example_cli/lib.rs.html#31-34">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub type KeychainChangeSet<A> = (<a class="type" href="../bdk_chain/local_chain/type.ChangeSet.html" title="type bdk_chain::local_chain::ChangeSet">ChangeSet</a>, <a class="struct" href="../bdk_chain/indexed_tx_graph/struct.ChangeSet.html" title="struct bdk_chain::indexed_tx_graph::ChangeSet">ChangeSet</a><A, <a class="struct" href="../bdk_chain/keychain/txout_index/struct.ChangeSet.html" title="struct bdk_chain::keychain::txout_index::ChangeSet">ChangeSet</a><<a class="enum" href="enum.Keychain.html" title="enum example_cli::Keychain">Keychain</a>>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="example_cli" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+<!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 `KeychainChangeSet` type in crate `example_cli`."><meta name="keywords" content="rust, rustlang, rust-lang, KeychainChangeSet"><title>KeychainChangeSet in example_cli - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">KeychainChangeSet</a></h2><div class="sidebar-elems"><h2><a href="index.html">In example_cli</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="index.html">example_cli</a>::<wbr><a class="type" href="#">KeychainChangeSet</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/example_cli/lib.rs.html#31-34">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub type KeychainChangeSet<A> = (ChangeSet, ChangeSet<A, ChangeSet<<a class="enum" href="enum.Keychain.html" title="enum example_cli::Keychain">Keychain</a>>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="example_cli" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
-<!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 `KeychainTxGraph` type in crate `example_cli`."><meta name="keywords" content="rust, rustlang, rust-lang, KeychainTxGraph"><title>KeychainTxGraph in example_cli - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">KeychainTxGraph</a></h2><div class="sidebar-elems"><h2><a href="index.html">In example_cli</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="index.html">example_cli</a>::<wbr><a class="type" href="#">KeychainTxGraph</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/example_cli/lib.rs.html#30">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub type KeychainTxGraph<A> = <a class="struct" href="../bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html" title="struct bdk_chain::indexed_tx_graph::IndexedTxGraph">IndexedTxGraph</a><A, <a class="struct" href="../bdk_chain/keychain/txout_index/struct.KeychainTxOutIndex.html" title="struct bdk_chain::keychain::txout_index::KeychainTxOutIndex">KeychainTxOutIndex</a><<a class="enum" href="enum.Keychain.html" title="enum example_cli::Keychain">Keychain</a>>>;</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="example_cli" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+<!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 `KeychainTxGraph` type in crate `example_cli`."><meta name="keywords" content="rust, rustlang, rust-lang, KeychainTxGraph"><title>KeychainTxGraph in example_cli - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">KeychainTxGraph</a></h2><div class="sidebar-elems"><h2><a href="index.html">In example_cli</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="index.html">example_cli</a>::<wbr><a class="type" href="#">KeychainTxGraph</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/example_cli/lib.rs.html#30">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub type KeychainTxGraph<A> = IndexedTxGraph<A, KeychainTxOutIndex<<a class="enum" href="enum.Keychain.html" title="enum example_cli::Keychain">Keychain</a>>>;</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="example_cli" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
-<!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 `PlannedUtxo` type in crate `example_cli`."><meta name="keywords" content="rust, rustlang, rust-lang, PlannedUtxo"><title>PlannedUtxo in example_cli - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">PlannedUtxo</a></h2><div class="sidebar-elems"><h2><a href="index.html">In example_cli</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="index.html">example_cli</a>::<wbr><a class="type" href="#">PlannedUtxo</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/example_cli/lib.rs.html#419">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub type PlannedUtxo<K, A> = (Plan<K>, <a class="struct" href="../bdk_chain/chain_data/struct.FullTxOut.html" title="struct bdk_chain::chain_data::FullTxOut">FullTxOut</a><A>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="example_cli" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+<!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 `PlannedUtxo` type in crate `example_cli`."><meta name="keywords" content="rust, rustlang, rust-lang, PlannedUtxo"><title>PlannedUtxo in example_cli - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../example_cli/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">PlannedUtxo</a></h2><div class="sidebar-elems"><h2><a href="index.html">In example_cli</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="index.html">example_cli</a>::<wbr><a class="type" href="#">PlannedUtxo</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/example_cli/lib.rs.html#419">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub type PlannedUtxo<K, A> = (Plan<K>, FullTxOut<A>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="example_cli" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
-<!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 `ChangeSet` type in crate `example_electrum`."><meta name="keywords" content="rust, rustlang, rust-lang, ChangeSet"><title>ChangeSet in example_electrum - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../example_electrum/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../example_electrum/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">ChangeSet</a></h2><div class="sidebar-elems"><h2><a href="index.html">In example_electrum</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="index.html">example_electrum</a>::<wbr><a class="type" href="#">ChangeSet</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/example_electrum/main.rs.html#101-104">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub(crate) type ChangeSet = (<a class="type" href="../bdk_chain/local_chain/type.ChangeSet.html" title="type bdk_chain::local_chain::ChangeSet">ChangeSet</a>, <a class="struct" href="../bdk_chain/indexed_tx_graph/struct.ChangeSet.html" title="struct bdk_chain::indexed_tx_graph::ChangeSet">ChangeSet</a><<a class="struct" href="../bdk_chain/chain_data/struct.ConfirmationHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationHeightAnchor">ConfirmationHeightAnchor</a>, <a class="struct" href="../bdk_chain/keychain/txout_index/struct.ChangeSet.html" title="struct bdk_chain::keychain::txout_index::ChangeSet">ChangeSet</a><<a class="enum" href="../example_cli/enum.Keychain.html" title="enum example_cli::Keychain">Keychain</a>>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="example_electrum" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+<!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 `ChangeSet` type in crate `example_electrum`."><meta name="keywords" content="rust, rustlang, rust-lang, ChangeSet"><title>ChangeSet in example_electrum - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../example_electrum/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../example_electrum/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">ChangeSet</a></h2><div class="sidebar-elems"><h2><a href="index.html">In example_electrum</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="index.html">example_electrum</a>::<wbr><a class="type" href="#">ChangeSet</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/example_electrum/main.rs.html#101-104">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub(crate) type ChangeSet = (ChangeSet, ChangeSet<ConfirmationHeightAnchor, ChangeSet<Keychain>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="example_electrum" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
-<!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 `ChangeSet` type in crate `example_esplora`."><meta name="keywords" content="rust, rustlang, rust-lang, ChangeSet"><title>ChangeSet in example_esplora - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../example_esplora/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../example_esplora/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">ChangeSet</a></h2><div class="sidebar-elems"><h2><a href="index.html">In example_esplora</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="index.html">example_esplora</a>::<wbr><a class="type" href="#">ChangeSet</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/example_esplora/main.rs.html#27-30">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub(crate) type ChangeSet = (<a class="type" href="../bdk_chain/local_chain/type.ChangeSet.html" title="type bdk_chain::local_chain::ChangeSet">ChangeSet</a>, <a class="struct" href="../bdk_chain/indexed_tx_graph/struct.ChangeSet.html" title="struct bdk_chain::indexed_tx_graph::ChangeSet">ChangeSet</a><<a class="struct" href="../bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html" title="struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor">ConfirmationTimeHeightAnchor</a>, <a class="struct" href="../bdk_chain/keychain/txout_index/struct.ChangeSet.html" title="struct bdk_chain::keychain::txout_index::ChangeSet">ChangeSet</a><<a class="enum" href="../example_cli/enum.Keychain.html" title="enum example_cli::Keychain">Keychain</a>>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="example_esplora" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+<!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 `ChangeSet` type in crate `example_esplora`."><meta name="keywords" content="rust, rustlang, rust-lang, ChangeSet"><title>ChangeSet in example_esplora - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../example_esplora/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../example_esplora/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">ChangeSet</a></h2><div class="sidebar-elems"><h2><a href="index.html">In example_esplora</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Type Definition <a href="index.html">example_esplora</a>::<wbr><a class="type" href="#">ChangeSet</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/example_esplora/main.rs.html#27-30">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust typedef"><code>pub(crate) type ChangeSet = (ChangeSet, ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<Keychain>>);</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="example_esplora" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
-<!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="Documentation for Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc help</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="./static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="./static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="./bdk_esplora/index.html"><div class="logo-container"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="./bdk_esplora/index.html"><div class="logo-container"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location">Help</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Rustdoc help</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section><p>You need to enable Javascript to use keyboard commands or search.</p><p>For more information, browse the <a href="https://doc.rust-lang.org/rustdoc/">rustdoc handbook</a>.</p></section></noscript></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="bdk_esplora" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+<!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="Documentation for Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc help</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="./static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="./static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="./bdk_testenv/index.html"><div class="logo-container"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="./bdk_testenv/index.html"><div class="logo-container"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location">Help</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Rustdoc help</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section><p>You need to enable Javascript to use keyboard commands or search.</p><p>For more information, browse the <a href="https://doc.rust-lang.org/rustdoc/">rustdoc handbook</a>.</p></section></noscript></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="bdk_testenv" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-(function() {var implementors = {
-"bdk":[]
-};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
+++ /dev/null
-(function() {var implementors = {
-"bdk":[]
-};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
+++ /dev/null
-(function() {var implementors = {
-"bdk":[]
-};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
+++ /dev/null
-(function() {var implementors = {
-"bdk":[]
-};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
+++ /dev/null
-(function() {var implementors = {
-"bdk":[]
-};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
+++ /dev/null
-(function() {var implementors = {
-"bdk":[]
-};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
+++ /dev/null
-(function() {var implementors = {
-"bdk":[]
-};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
+++ /dev/null
-(function() {var implementors = {
-"bdk":[]
-};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
+++ /dev/null
-(function() {var implementors = {
-"bdk":[]
-};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
+++ /dev/null
-(function() {var implementors = {
-"bdk":[]
-};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
+++ /dev/null
-(function() {var implementors = {
-"bdk":[]
-};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
+++ /dev/null
-(function() {var implementors = {
-"bdk":[],
-"bdk_hwi":[["impl SignerCommon for <a class=\"struct\" href=\"bdk_hwi/struct.HWISigner.html\" title=\"struct bdk_hwi::HWISigner\">HWISigner</a>"]]
-};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
+++ /dev/null
-(function() {var implementors = {
-"bdk":[],
-"bdk_hwi":[["impl TransactionSigner for <a class=\"struct\" href=\"bdk_hwi/struct.HWISigner.html\" title=\"struct bdk_hwi::HWISigner\">HWISigner</a>"]]
-};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
+++ /dev/null
-(function() {var implementors = {
-"bdk":[]
-};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
+++ /dev/null
-(function() {var implementors = {
-"bdk":[]
-};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
(function() {var implementors = {
-"bdk":[["impl <a class=\"trait\" href=\"bdk_chain/tx_data_traits/trait.Append.html\" title=\"trait bdk_chain::tx_data_traits::Append\">Append</a> for <a class=\"struct\" href=\"bdk/wallet/struct.ChangeSet.html\" title=\"struct bdk::wallet::ChangeSet\">ChangeSet</a>"]],
-"bdk_chain":[]
+"bdk_chain":[],
+"bdk_wallet":[["impl Append for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.ChangeSet.html\" title=\"struct bdk_wallet::wallet::ChangeSet\">ChangeSet</a>"]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
(function() {var implementors = {
-"bdk_file_store":[["impl<C> PersistBackend<C> for <a class=\"struct\" href=\"bdk_file_store/struct.Store.html\" title=\"struct bdk_file_store::Store\">Store</a><C><span class=\"where fmt-newline\">where<br> C: <a class=\"trait\" href=\"bdk_chain/tx_data_traits/trait.Append.html\" title=\"trait bdk_chain::tx_data_traits::Append\">Append</a> + <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> + <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html\" title=\"trait serde::de::DeserializeOwned\">DeserializeOwned</a> + <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> + <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>"]],
+"bdk_file_store":[["impl<C> PersistBackend<C> for <a class=\"struct\" href=\"bdk_file_store/struct.Store.html\" title=\"struct bdk_file_store::Store\">Store</a><C><span class=\"where fmt-newline\">where<br> C: Append + <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> + <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/de/trait.DeserializeOwned.html\" title=\"trait serde::de::DeserializeOwned\">DeserializeOwned</a> + <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> + <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>"]],
"bdk_persist":[]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
--- /dev/null
+(function() {var implementors = {
+"bdk_wallet":[]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
--- /dev/null
+(function() {var implementors = {
+"bdk_wallet":[]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
--- /dev/null
+(function() {var implementors = {
+"bdk_wallet":[]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
--- /dev/null
+(function() {var implementors = {
+"bdk_wallet":[]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
--- /dev/null
+(function() {var implementors = {
+"bdk_wallet":[]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
--- /dev/null
+(function() {var implementors = {
+"bdk_wallet":[]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
--- /dev/null
+(function() {var implementors = {
+"bdk_wallet":[]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
--- /dev/null
+(function() {var implementors = {
+"bdk_wallet":[]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
--- /dev/null
+(function() {var implementors = {
+"bdk_wallet":[]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
--- /dev/null
+(function() {var implementors = {
+"bdk_wallet":[]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
--- /dev/null
+(function() {var implementors = {
+"bdk_wallet":[]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
--- /dev/null
+(function() {var implementors = {
+"bdk_hwi":[["impl SignerCommon for <a class=\"struct\" href=\"bdk_hwi/struct.HWISigner.html\" title=\"struct bdk_hwi::HWISigner\">HWISigner</a>"]],
+"bdk_wallet":[]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
--- /dev/null
+(function() {var implementors = {
+"bdk_hwi":[["impl TransactionSigner for <a class=\"struct\" href=\"bdk_hwi/struct.HWISigner.html\" title=\"struct bdk_hwi::HWISigner\">HWISigner</a>"]],
+"bdk_wallet":[]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
--- /dev/null
+(function() {var implementors = {
+"bdk_wallet":[]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
--- /dev/null
+(function() {var implementors = {
+"bdk_wallet":[]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
(function() {var implementors = {
-"bdk":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk::descriptor::policy::PkOrF\">PkOrF</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk::descriptor::policy::Satisfaction\">Satisfaction</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Policy.html\" title=\"struct bdk::descriptor::policy::Policy\">Policy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Condition.html\" title=\"struct bdk::descriptor::policy::Condition\">Condition</a>"],["impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.BuildSatisfaction.html\" title=\"enum bdk::descriptor::policy::BuildSatisfaction\">BuildSatisfaction</a><'a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk/keys/enum.ScriptContextEnum.html\" title=\"enum bdk::keys::ScriptContextEnum\">ScriptContextEnum</a>"],["impl<K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a>, Ctx: <a class=\"trait\" href=\"bdk/keys/trait.ScriptContext.html\" title=\"trait bdk::keys::ScriptContext\">ScriptContext</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk/keys/struct.GeneratedKey.html\" title=\"struct bdk::keys::GeneratedKey\">GeneratedKey</a><K, Ctx>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk/keys/struct.PrivateKeyGenerateOptions.html\" title=\"struct bdk::keys::PrivateKeyGenerateOptions\">PrivateKeyGenerateOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk/enum.KeychainKind.html\" title=\"enum bdk::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk/struct.LocalOutput.html\" title=\"struct bdk::LocalOutput\">LocalOutput</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk/struct.WeightedUtxo.html\" title=\"struct bdk::WeightedUtxo\">WeightedUtxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk/enum.Utxo.html\" title=\"enum bdk::Utxo\">Utxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.LargestFirstCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::LargestFirstCoinSelection\">LargestFirstCoinSelection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.OldestFirstCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::OldestFirstCoinSelection\">OldestFirstCoinSelection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::BranchAndBoundCoinSelection\">BranchAndBoundCoinSelection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerId.html\" title=\"enum bdk::wallet::signer::SignerId\">SignerId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerContext.html\" title=\"enum bdk::wallet::signer::SignerContext\">SignerContext</a>"],["impl<S: <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/marker/trait.Sized.html\" title=\"trait core::marker::Sized\">Sized</a> + <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> + <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/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerWrapper.html\" title=\"struct bdk::wallet::signer::SignerWrapper\">SignerWrapper</a><S>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk::wallet::signer::SignerOrdering\">SignerOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignersContainer.html\" title=\"struct bdk::wallet::signer::SignersContainer\">SignersContainer</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignOptions.html\" title=\"struct bdk::wallet::signer::SignOptions\">SignOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.CreateTx.html\" title=\"struct bdk::wallet::tx_builder::CreateTx\">CreateTx</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.BumpFee.html\" title=\"struct bdk::wallet::tx_builder::BumpFee\">BumpFee</a>"],["impl<'a, Cs: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a>, Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.TxBuilder.html\" title=\"struct bdk::wallet::tx_builder::TxBuilder\">TxBuilder</a><'a, Cs, Ctx>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk::wallet::tx_builder::TxOrdering\">TxOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.MiniscriptPsbtError.html\" title=\"enum bdk::wallet::error::MiniscriptPsbtError\">MiniscriptPsbtError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk/wallet/struct.Update.html\" title=\"struct bdk::wallet::Update\">Update</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk/wallet/struct.ChangeSet.html\" title=\"struct bdk::wallet::ChangeSet\">ChangeSet</a>"]],
"bdk_chain":[["impl<I: <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/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_chain/struct.SpkTxOutIndex.html\" title=\"struct bdk_chain::SpkTxOutIndex\">SpkTxOutIndex</a><I>"],["impl<A: <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/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk_chain/enum.ChainPosition.html\" title=\"enum bdk_chain::ChainPosition\">ChainPosition</a><A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk_chain/enum.ConfirmationTime.html\" title=\"enum bdk_chain::ConfirmationTime\">ConfirmationTime</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationHeightAnchor\">ConfirmationHeightAnchor</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>"],["impl<A: <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/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_chain/struct.FullTxOut.html\" title=\"struct bdk_chain::FullTxOut\">FullTxOut</a><A>"],["impl<A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a>, IA: <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/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, IA>"],["impl<K: <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/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.ChangeSet.html\" title=\"struct bdk_chain::keychain::ChangeSet\">ChangeSet</a><K>"],["impl<K: <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/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.KeychainTxOutIndex.html\" title=\"struct bdk_chain::keychain::KeychainTxOutIndex\">KeychainTxOutIndex</a><K>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.Balance.html\" title=\"struct bdk_chain::keychain::Balance\">Balance</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CheckPoint.html\" title=\"struct bdk_chain::local_chain::CheckPoint\">CheckPoint</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.LocalChain.html\" title=\"struct bdk_chain::local_chain::LocalChain\">LocalChain</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.MissingGenesisError.html\" title=\"struct bdk_chain::local_chain::MissingGenesisError\">MissingGenesisError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.AlterCheckPointError.html\" title=\"struct bdk_chain::local_chain::AlterCheckPointError\">AlterCheckPointError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CannotConnectError.html\" title=\"struct bdk_chain::local_chain::CannotConnectError\">CannotConnectError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk_chain/local_chain/enum.ApplyHeaderError.html\" title=\"enum bdk_chain::local_chain::ApplyHeaderError\">ApplyHeaderError</a>"],["impl<A: <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/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\">TxGraph</a><A>"],["impl<'a, T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a>, A: <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/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxNode.html\" title=\"struct bdk_chain::tx_graph::TxNode\">TxNode</a><'a, T, A>"],["impl<'a, T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a>, A: <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/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.CanonicalTx.html\" title=\"struct bdk_chain::tx_graph::CanonicalTx\">CanonicalTx</a><'a, T, A>"],["impl<A: <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/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::tx_graph::ChangeSet\">ChangeSet</a><A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>"],["impl<D: <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/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_chain/struct.SpkIterator.html\" title=\"struct bdk_chain::SpkIterator\">SpkIterator</a><D>"]],
"bdk_coin_select":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.WeightedValue.html\" title=\"struct bdk_coin_select::WeightedValue\">WeightedValue</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.CoinSelectorOpt.html\" title=\"struct bdk_coin_select::CoinSelectorOpt\">CoinSelectorOpt</a>"],["impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.CoinSelector.html\" title=\"struct bdk_coin_select::CoinSelector\">CoinSelector</a><'a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.SelectionError.html\" title=\"struct bdk_coin_select::SelectionError\">SelectionError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.SelectionConstraint.html\" title=\"enum bdk_coin_select::SelectionConstraint\">SelectionConstraint</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.Selection.html\" title=\"struct bdk_coin_select::Selection\">Selection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.ExcessStrategyKind.html\" title=\"enum bdk_coin_select::ExcessStrategyKind\">ExcessStrategyKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.ExcessStrategy.html\" title=\"struct bdk_coin_select::ExcessStrategy\">ExcessStrategy</a>"]],
"bdk_tmp_plan":[["impl<Ak: <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/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Requirements.html\" title=\"struct bdk_tmp_plan::Requirements\">Requirements</a><Ak>"],["impl<Ak: <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/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.RequiredSignatures.html\" title=\"enum bdk_tmp_plan::RequiredSignatures\">RequiredSignatures</a><Ak>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.SigningError.html\" title=\"enum bdk_tmp_plan::SigningError\">SigningError</a>"],["impl<Ak: <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/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.PlanKey.html\" title=\"struct bdk_tmp_plan::PlanKey\">PlanKey</a><Ak>"],["impl<AK: <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/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Plan.html\" title=\"struct bdk_tmp_plan::Plan\">Plan</a><AK>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.SatisfactionMaterial.html\" title=\"struct bdk_tmp_plan::SatisfactionMaterial\">SatisfactionMaterial</a>"],["impl<K: <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/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Assets.html\" title=\"struct bdk_tmp_plan::Assets\">Assets</a><K>"]],
+"bdk_wallet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk_wallet::descriptor::policy::PkOrF\">PkOrF</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk_wallet::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::Satisfaction\">Satisfaction</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Policy.html\" title=\"struct bdk_wallet::descriptor::policy::Policy\">Policy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Condition.html\" title=\"struct bdk_wallet::descriptor::policy::Condition\">Condition</a>"],["impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.BuildSatisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::BuildSatisfaction\">BuildSatisfaction</a><'a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.ScriptContextEnum.html\" title=\"enum bdk_wallet::keys::ScriptContextEnum\">ScriptContextEnum</a>"],["impl<K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a>, Ctx: <a class=\"trait\" href=\"bdk_wallet/keys/trait.ScriptContext.html\" title=\"trait bdk_wallet::keys::ScriptContext\">ScriptContext</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_wallet/keys/struct.GeneratedKey.html\" title=\"struct bdk_wallet::keys::GeneratedKey\">GeneratedKey</a><K, Ctx>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_wallet/keys/struct.PrivateKeyGenerateOptions.html\" title=\"struct bdk_wallet::keys::PrivateKeyGenerateOptions\">PrivateKeyGenerateOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_wallet/struct.LocalOutput.html\" title=\"struct bdk_wallet::LocalOutput\">LocalOutput</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_wallet/struct.WeightedUtxo.html\" title=\"struct bdk_wallet::WeightedUtxo\">WeightedUtxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk_wallet/enum.Utxo.html\" title=\"enum bdk_wallet::Utxo\">Utxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.LargestFirstCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection\">LargestFirstCoinSelection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.OldestFirstCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection\">OldestFirstCoinSelection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection\">BranchAndBoundCoinSelection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerId.html\" title=\"enum bdk_wallet::wallet::signer::SignerId\">SignerId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerContext.html\" title=\"enum bdk_wallet::wallet::signer::SignerContext\">SignerContext</a>"],["impl<S: <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/marker/trait.Sized.html\" title=\"trait core::marker::Sized\">Sized</a> + <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> + <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/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerWrapper.html\" title=\"struct bdk_wallet::wallet::signer::SignerWrapper\">SignerWrapper</a><S>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk_wallet::wallet::signer::SignerOrdering\">SignerOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignersContainer.html\" title=\"struct bdk_wallet::wallet::signer::SignersContainer\">SignersContainer</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignOptions.html\" title=\"struct bdk_wallet::wallet::signer::SignOptions\">SignOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk_wallet::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.CreateTx.html\" title=\"struct bdk_wallet::wallet::tx_builder::CreateTx\">CreateTx</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.BumpFee.html\" title=\"struct bdk_wallet::wallet::tx_builder::BumpFee\">BumpFee</a>"],["impl<'a, Cs: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a>, Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.TxBuilder.html\" title=\"struct bdk_wallet::wallet::tx_builder::TxBuilder\">TxBuilder</a><'a, Cs, Ctx>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk_wallet::wallet::tx_builder::TxOrdering\">TxOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.MiniscriptPsbtError.html\" title=\"enum bdk_wallet::wallet::error::MiniscriptPsbtError\">MiniscriptPsbtError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.Update.html\" title=\"struct bdk_wallet::wallet::Update\">Update</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.ChangeSet.html\" title=\"struct bdk_wallet::wallet::ChangeSet\">ChangeSet</a>"]],
"example_bitcoind_rpc_polling":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"example_bitcoind_rpc_polling/struct.RpcArgs.html\" title=\"struct example_bitcoind_rpc_polling::RpcArgs\">RpcArgs</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"example_bitcoind_rpc_polling/enum.RpcCommands.html\" title=\"enum example_bitcoind_rpc_polling::RpcCommands\">RpcCommands</a>"]],
"example_cli":[["impl<CS: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> + Subcommand, S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> + Args> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"example_cli/enum.Commands.html\" title=\"enum example_cli::Commands\">Commands</a><CS, S>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"example_cli/enum.CoinSelectionAlgo.html\" title=\"enum example_cli::CoinSelectionAlgo\">CoinSelectionAlgo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"example_cli/enum.AddressCmd.html\" title=\"enum example_cli::AddressCmd\">AddressCmd</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"example_cli/enum.TxOutCmd.html\" title=\"enum example_cli::TxOutCmd\">TxOutCmd</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"example_cli/enum.Keychain.html\" title=\"enum example_cli::Keychain\">Keychain</a>"]],
"example_electrum":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"example_electrum/enum.ElectrumCommands.html\" title=\"enum example_electrum::ElectrumCommands\">ElectrumCommands</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"example_electrum/struct.ElectrumArgs.html\" title=\"struct example_electrum::ElectrumArgs\">ElectrumArgs</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"example_electrum/struct.ScanOptions.html\" title=\"struct example_electrum::ScanOptions\">ScanOptions</a>"]],
(function() {var implementors = {
-"bdk":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk::descriptor::policy::PkOrF\">PkOrF</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk::descriptor::policy::Satisfaction\">Satisfaction</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Policy.html\" title=\"struct bdk::descriptor::policy::Policy\">Policy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Condition.html\" title=\"struct bdk::descriptor::policy::Condition\">Condition</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk::descriptor::policy::PolicyError\">PolicyError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk/keys/enum.ScriptContextEnum.html\" title=\"enum bdk::keys::ScriptContextEnum\">ScriptContextEnum</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk/enum.KeychainKind.html\" title=\"enum bdk::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"bdk/struct.LocalOutput.html\" title=\"struct bdk::LocalOutput\">LocalOutput</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"bdk/struct.WeightedUtxo.html\" title=\"struct bdk::WeightedUtxo\">WeightedUtxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk/enum.Utxo.html\" title=\"enum bdk::Utxo\">Utxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerId.html\" title=\"enum bdk::wallet::signer::SignerId\">SignerId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerContext.html\" title=\"enum bdk::wallet::signer::SignerContext\">SignerContext</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk::wallet::signer::SignerOrdering\">SignerOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk::wallet::tx_builder::TxOrdering\">TxOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"bdk/wallet/struct.AddressInfo.html\" title=\"struct bdk::wallet::AddressInfo\">AddressInfo</a>"]],
"bdk_chain":[["impl<A: <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.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk_chain/enum.ChainPosition.html\" title=\"enum bdk_chain::ChainPosition\">ChainPosition</a><A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk_chain/enum.ConfirmationTime.html\" title=\"enum bdk_chain::ConfirmationTime\">ConfirmationTime</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationHeightAnchor\">ConfirmationHeightAnchor</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>"],["impl<A: <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.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"bdk_chain/struct.FullTxOut.html\" title=\"struct bdk_chain::FullTxOut\">FullTxOut</a><A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.Balance.html\" title=\"struct bdk_chain::keychain::Balance\">Balance</a>"],["impl<'a, T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a>, A: <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.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxNode.html\" title=\"struct bdk_chain::tx_graph::TxNode\">TxNode</a><'a, T, A>"],["impl<'a, T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a>, A: <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.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.CanonicalTx.html\" title=\"struct bdk_chain::tx_graph::CanonicalTx\">CanonicalTx</a><'a, T, A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk_chain/tx_graph/enum.CalculateFeeError.html\" title=\"enum bdk_chain::tx_graph::CalculateFeeError\">CalculateFeeError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>"]],
"bdk_coin_select":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.SelectionConstraint.html\" title=\"enum bdk_coin_select::SelectionConstraint\">SelectionConstraint</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.ExcessStrategyKind.html\" title=\"enum bdk_coin_select::ExcessStrategyKind\">ExcessStrategyKind</a>"]],
+"bdk_wallet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk_wallet::descriptor::policy::PkOrF\">PkOrF</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk_wallet::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::Satisfaction\">Satisfaction</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Policy.html\" title=\"struct bdk_wallet::descriptor::policy::Policy\">Policy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Condition.html\" title=\"struct bdk_wallet::descriptor::policy::Condition\">Condition</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk_wallet::descriptor::policy::PolicyError\">PolicyError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.ScriptContextEnum.html\" title=\"enum bdk_wallet::keys::ScriptContextEnum\">ScriptContextEnum</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"bdk_wallet/struct.LocalOutput.html\" title=\"struct bdk_wallet::LocalOutput\">LocalOutput</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"bdk_wallet/struct.WeightedUtxo.html\" title=\"struct bdk_wallet::WeightedUtxo\">WeightedUtxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk_wallet/enum.Utxo.html\" title=\"enum bdk_wallet::Utxo\">Utxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerId.html\" title=\"enum bdk_wallet::wallet::signer::SignerId\">SignerId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerContext.html\" title=\"enum bdk_wallet::wallet::signer::SignerContext\">SignerContext</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk_wallet::wallet::signer::SignerOrdering\">SignerOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk_wallet::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk_wallet::wallet::tx_builder::TxOrdering\">TxOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.AddressInfo.html\" title=\"struct bdk_wallet::wallet::AddressInfo\">AddressInfo</a>"]],
"example_cli":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"example_cli/enum.Keychain.html\" title=\"enum example_cli::Keychain\">Keychain</a>"]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
(function() {var implementors = {
-"bdk":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"enum\" href=\"bdk/enum.KeychainKind.html\" title=\"enum bdk::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerId.html\" title=\"enum bdk::wallet::signer::SignerId\">SignerId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk::wallet::signer::SignerOrdering\">SignerOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk::wallet::tx_builder::TxOrdering\">TxOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>"]],
"bdk_chain":[["impl<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.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"enum\" href=\"bdk_chain/enum.ChainPosition.html\" title=\"enum bdk_chain::ChainPosition\">ChainPosition</a><A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"enum\" href=\"bdk_chain/enum.ConfirmationTime.html\" title=\"enum bdk_chain::ConfirmationTime\">ConfirmationTime</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationHeightAnchor\">ConfirmationHeightAnchor</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>"],["impl<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.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"struct\" href=\"bdk_chain/struct.FullTxOut.html\" title=\"struct bdk_chain::FullTxOut\">FullTxOut</a><A>"],["impl<'a, T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a>, 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.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxNode.html\" title=\"struct bdk_chain::tx_graph::TxNode\">TxNode</a><'a, T, A>"],["impl<'a, T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a>, 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.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.CanonicalTx.html\" title=\"struct bdk_chain::tx_graph::CanonicalTx\">CanonicalTx</a><'a, T, A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>"]],
"bdk_coin_select":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.ExcessStrategyKind.html\" title=\"enum bdk_coin_select::ExcessStrategyKind\">ExcessStrategyKind</a>"]],
+"bdk_wallet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerId.html\" title=\"enum bdk_wallet::wallet::signer::SignerId\">SignerId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk_wallet::wallet::signer::SignerOrdering\">SignerOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk_wallet::wallet::tx_builder::TxOrdering\">TxOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>"]],
"example_cli":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"enum\" href=\"example_cli/enum.Keychain.html\" title=\"enum example_cli::Keychain\">Keychain</a>"]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
(function() {var implementors = {
-"bdk":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk::descriptor::policy::PkOrF\">PkOrF</a>> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk::descriptor::policy::PkOrF\">PkOrF</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk::descriptor::policy::Satisfaction\">Satisfaction</a>> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk::descriptor::policy::Satisfaction\">Satisfaction</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk/descriptor/policy/struct.Policy.html\" title=\"struct bdk::descriptor::policy::Policy\">Policy</a>> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Policy.html\" title=\"struct bdk::descriptor::policy::Policy\">Policy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk/descriptor/policy/struct.Condition.html\" title=\"struct bdk::descriptor::policy::Condition\">Condition</a>> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Condition.html\" title=\"struct bdk::descriptor::policy::Condition\">Condition</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk::descriptor::policy::PolicyError\">PolicyError</a>> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk::descriptor::policy::PolicyError\">PolicyError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk/keys/enum.ScriptContextEnum.html\" title=\"enum bdk::keys::ScriptContextEnum\">ScriptContextEnum</a>> for <a class=\"enum\" href=\"bdk/keys/enum.ScriptContextEnum.html\" title=\"enum bdk::keys::ScriptContextEnum\">ScriptContextEnum</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk/enum.KeychainKind.html\" title=\"enum bdk::KeychainKind\">KeychainKind</a>> for <a class=\"enum\" href=\"bdk/enum.KeychainKind.html\" title=\"enum bdk::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk/struct.LocalOutput.html\" title=\"struct bdk::LocalOutput\">LocalOutput</a>> for <a class=\"struct\" href=\"bdk/struct.LocalOutput.html\" title=\"struct bdk::LocalOutput\">LocalOutput</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk/struct.WeightedUtxo.html\" title=\"struct bdk::WeightedUtxo\">WeightedUtxo</a>> for <a class=\"struct\" href=\"bdk/struct.WeightedUtxo.html\" title=\"struct bdk::WeightedUtxo\">WeightedUtxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk/enum.Utxo.html\" title=\"enum bdk::Utxo\">Utxo</a>> for <a class=\"enum\" href=\"bdk/enum.Utxo.html\" title=\"enum bdk::Utxo\">Utxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerId.html\" title=\"enum bdk::wallet::signer::SignerId\">SignerId</a>> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerId.html\" title=\"enum bdk::wallet::signer::SignerId\">SignerId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerContext.html\" title=\"enum bdk::wallet::signer::SignerContext\">SignerContext</a>> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerContext.html\" title=\"enum bdk::wallet::signer::SignerContext\">SignerContext</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk::wallet::signer::SignerOrdering\">SignerOrdering</a>> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk::wallet::signer::SignerOrdering\">SignerOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk::wallet::tx_builder::TxOrdering\">TxOrdering</a>> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk::wallet::tx_builder::TxOrdering\">TxOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk/wallet/struct.ChangeSet.html\" title=\"struct bdk::wallet::ChangeSet\">ChangeSet</a>> for <a class=\"struct\" href=\"bdk/wallet/struct.ChangeSet.html\" title=\"struct bdk::wallet::ChangeSet\">ChangeSet</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk/wallet/struct.AddressInfo.html\" title=\"struct bdk::wallet::AddressInfo\">AddressInfo</a>> for <a class=\"struct\" href=\"bdk/wallet/struct.AddressInfo.html\" title=\"struct bdk::wallet::AddressInfo\">AddressInfo</a>"]],
"bdk_chain":[["impl<A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk_chain/enum.ChainPosition.html\" title=\"enum bdk_chain::ChainPosition\">ChainPosition</a><A>> for <a class=\"enum\" href=\"bdk_chain/enum.ChainPosition.html\" title=\"enum bdk_chain::ChainPosition\">ChainPosition</a><A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk_chain/enum.ConfirmationTime.html\" title=\"enum bdk_chain::ConfirmationTime\">ConfirmationTime</a>> for <a class=\"enum\" href=\"bdk_chain/enum.ConfirmationTime.html\" title=\"enum bdk_chain::ConfirmationTime\">ConfirmationTime</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>> for <a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_chain/struct.ConfirmationHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationHeightAnchor\">ConfirmationHeightAnchor</a>> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationHeightAnchor\">ConfirmationHeightAnchor</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_chain/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>"],["impl<A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_chain/struct.FullTxOut.html\" title=\"struct bdk_chain::FullTxOut\">FullTxOut</a><A>> for <a class=\"struct\" href=\"bdk_chain/struct.FullTxOut.html\" title=\"struct bdk_chain::FullTxOut\">FullTxOut</a><A>"],["impl<A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a>, IA: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, IA>> for <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, IA>"],["impl<K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_chain/keychain/struct.ChangeSet.html\" title=\"struct bdk_chain::keychain::ChangeSet\">ChangeSet</a><K>> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.ChangeSet.html\" title=\"struct bdk_chain::keychain::ChangeSet\">ChangeSet</a><K>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_chain/keychain/struct.Balance.html\" title=\"struct bdk_chain::keychain::Balance\">Balance</a>> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.Balance.html\" title=\"struct bdk_chain::keychain::Balance\">Balance</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_chain/local_chain/struct.CheckPoint.html\" title=\"struct bdk_chain::local_chain::CheckPoint\">CheckPoint</a>> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CheckPoint.html\" title=\"struct bdk_chain::local_chain::CheckPoint\">CheckPoint</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_chain/local_chain/struct.LocalChain.html\" title=\"struct bdk_chain::local_chain::LocalChain\">LocalChain</a>> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.LocalChain.html\" title=\"struct bdk_chain::local_chain::LocalChain\">LocalChain</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_chain/local_chain/struct.MissingGenesisError.html\" title=\"struct bdk_chain::local_chain::MissingGenesisError\">MissingGenesisError</a>> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.MissingGenesisError.html\" title=\"struct bdk_chain::local_chain::MissingGenesisError\">MissingGenesisError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_chain/local_chain/struct.AlterCheckPointError.html\" title=\"struct bdk_chain::local_chain::AlterCheckPointError\">AlterCheckPointError</a>> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.AlterCheckPointError.html\" title=\"struct bdk_chain::local_chain::AlterCheckPointError\">AlterCheckPointError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_chain/local_chain/struct.CannotConnectError.html\" title=\"struct bdk_chain::local_chain::CannotConnectError\">CannotConnectError</a>> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CannotConnectError.html\" title=\"struct bdk_chain::local_chain::CannotConnectError\">CannotConnectError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk_chain/local_chain/enum.ApplyHeaderError.html\" title=\"enum bdk_chain::local_chain::ApplyHeaderError\">ApplyHeaderError</a>> for <a class=\"enum\" href=\"bdk_chain/local_chain/enum.ApplyHeaderError.html\" title=\"enum bdk_chain::local_chain::ApplyHeaderError\">ApplyHeaderError</a>"],["impl<A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\">TxGraph</a><A>> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\">TxGraph</a><A>"],["impl<'a, T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a>, A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxNode.html\" title=\"struct bdk_chain::tx_graph::TxNode\">TxNode</a><'a, T, A>> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxNode.html\" title=\"struct bdk_chain::tx_graph::TxNode\">TxNode</a><'a, T, A>"],["impl<'a, T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a>, A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_chain/tx_graph/struct.CanonicalTx.html\" title=\"struct bdk_chain::tx_graph::CanonicalTx\">CanonicalTx</a><'a, T, A>> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.CanonicalTx.html\" title=\"struct bdk_chain::tx_graph::CanonicalTx\">CanonicalTx</a><'a, T, A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk_chain/tx_graph/enum.CalculateFeeError.html\" title=\"enum bdk_chain::tx_graph::CalculateFeeError\">CalculateFeeError</a>> for <a class=\"enum\" href=\"bdk_chain/tx_graph/enum.CalculateFeeError.html\" title=\"enum bdk_chain::tx_graph::CalculateFeeError\">CalculateFeeError</a>"],["impl<A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_chain/tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::tx_graph::ChangeSet\">ChangeSet</a><A>> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::tx_graph::ChangeSet\">ChangeSet</a><A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>"]],
"bdk_coin_select":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk_coin_select/enum.SelectionConstraint.html\" title=\"enum bdk_coin_select::SelectionConstraint\">SelectionConstraint</a>> for <a class=\"enum\" href=\"bdk_coin_select/enum.SelectionConstraint.html\" title=\"enum bdk_coin_select::SelectionConstraint\">SelectionConstraint</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk_coin_select/enum.ExcessStrategyKind.html\" title=\"enum bdk_coin_select::ExcessStrategyKind\">ExcessStrategyKind</a>> for <a class=\"enum\" href=\"bdk_coin_select/enum.ExcessStrategyKind.html\" title=\"enum bdk_coin_select::ExcessStrategyKind\">ExcessStrategyKind</a>"]],
+"bdk_wallet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk_wallet::descriptor::policy::PkOrF\">PkOrF</a>> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk_wallet::descriptor::policy::PkOrF\">PkOrF</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk_wallet::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk_wallet::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::Satisfaction\">Satisfaction</a>> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::Satisfaction\">Satisfaction</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Policy.html\" title=\"struct bdk_wallet::descriptor::policy::Policy\">Policy</a>> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Policy.html\" title=\"struct bdk_wallet::descriptor::policy::Policy\">Policy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Condition.html\" title=\"struct bdk_wallet::descriptor::policy::Condition\">Condition</a>> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Condition.html\" title=\"struct bdk_wallet::descriptor::policy::Condition\">Condition</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk_wallet::descriptor::policy::PolicyError\">PolicyError</a>> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk_wallet::descriptor::policy::PolicyError\">PolicyError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk_wallet/keys/enum.ScriptContextEnum.html\" title=\"enum bdk_wallet::keys::ScriptContextEnum\">ScriptContextEnum</a>> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.ScriptContextEnum.html\" title=\"enum bdk_wallet::keys::ScriptContextEnum\">ScriptContextEnum</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>> for <a class=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_wallet/struct.LocalOutput.html\" title=\"struct bdk_wallet::LocalOutput\">LocalOutput</a>> for <a class=\"struct\" href=\"bdk_wallet/struct.LocalOutput.html\" title=\"struct bdk_wallet::LocalOutput\">LocalOutput</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_wallet/struct.WeightedUtxo.html\" title=\"struct bdk_wallet::WeightedUtxo\">WeightedUtxo</a>> for <a class=\"struct\" href=\"bdk_wallet/struct.WeightedUtxo.html\" title=\"struct bdk_wallet::WeightedUtxo\">WeightedUtxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk_wallet/enum.Utxo.html\" title=\"enum bdk_wallet::Utxo\">Utxo</a>> for <a class=\"enum\" href=\"bdk_wallet/enum.Utxo.html\" title=\"enum bdk_wallet::Utxo\">Utxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerId.html\" title=\"enum bdk_wallet::wallet::signer::SignerId\">SignerId</a>> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerId.html\" title=\"enum bdk_wallet::wallet::signer::SignerId\">SignerId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerContext.html\" title=\"enum bdk_wallet::wallet::signer::SignerContext\">SignerContext</a>> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerContext.html\" title=\"enum bdk_wallet::wallet::signer::SignerContext\">SignerContext</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk_wallet::wallet::signer::SignerOrdering\">SignerOrdering</a>> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk_wallet::wallet::signer::SignerOrdering\">SignerOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk_wallet::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk_wallet::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk_wallet::wallet::tx_builder::TxOrdering\">TxOrdering</a>> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk_wallet::wallet::tx_builder::TxOrdering\">TxOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_wallet/wallet/struct.ChangeSet.html\" title=\"struct bdk_wallet::wallet::ChangeSet\">ChangeSet</a>> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.ChangeSet.html\" title=\"struct bdk_wallet::wallet::ChangeSet\">ChangeSet</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"bdk_wallet/wallet/struct.AddressInfo.html\" title=\"struct bdk_wallet::wallet::AddressInfo\">AddressInfo</a>> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.AddressInfo.html\" title=\"struct bdk_wallet::wallet::AddressInfo\">AddressInfo</a>"]],
"example_cli":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"example_cli/enum.Keychain.html\" title=\"enum example_cli::Keychain\">Keychain</a>> for <a class=\"enum\" href=\"example_cli/enum.Keychain.html\" title=\"enum example_cli::Keychain\">Keychain</a>"]],
"example_electrum":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"example_electrum/struct.ScanOptions.html\" title=\"struct example_electrum::ScanOptions\">ScanOptions</a>> for <a class=\"struct\" href=\"example_electrum/struct.ScanOptions.html\" title=\"struct example_electrum::ScanOptions\">ScanOptions</a>"]],
"example_esplora":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"struct\" href=\"example_esplora/struct.ScanOptions.html\" title=\"struct example_esplora::ScanOptions\">ScanOptions</a>> for <a class=\"struct\" href=\"example_esplora/struct.ScanOptions.html\" title=\"struct example_esplora::ScanOptions\">ScanOptions</a>"]]
(function() {var implementors = {
-"bdk":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a><<a class=\"struct\" href=\"bdk/descriptor/policy/struct.Condition.html\" title=\"struct bdk::descriptor::policy::Condition\">Condition</a>> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Condition.html\" title=\"struct bdk::descriptor::policy::Condition\">Condition</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a><<a class=\"enum\" href=\"bdk/enum.KeychainKind.html\" title=\"enum bdk::KeychainKind\">KeychainKind</a>> for <a class=\"enum\" href=\"bdk/enum.KeychainKind.html\" title=\"enum bdk::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a><<a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerId.html\" title=\"enum bdk::wallet::signer::SignerId\">SignerId</a>> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerId.html\" title=\"enum bdk::wallet::signer::SignerId\">SignerId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a><<a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk::wallet::signer::SignerOrdering\">SignerOrdering</a>> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk::wallet::signer::SignerOrdering\">SignerOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a><<a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk::wallet::tx_builder::TxOrdering\">TxOrdering</a>> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk::wallet::tx_builder::TxOrdering\">TxOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a><<a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>"]],
"bdk_chain":[["impl<A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a><<a class=\"enum\" href=\"bdk_chain/enum.ChainPosition.html\" title=\"enum bdk_chain::ChainPosition\">ChainPosition</a><A>> for <a class=\"enum\" href=\"bdk_chain/enum.ChainPosition.html\" title=\"enum bdk_chain::ChainPosition\">ChainPosition</a><A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a><<a class=\"enum\" href=\"bdk_chain/enum.ConfirmationTime.html\" title=\"enum bdk_chain::ConfirmationTime\">ConfirmationTime</a>> for <a class=\"enum\" href=\"bdk_chain/enum.ConfirmationTime.html\" title=\"enum bdk_chain::ConfirmationTime\">ConfirmationTime</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a><<a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>> for <a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a><<a class=\"struct\" href=\"bdk_chain/struct.ConfirmationHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationHeightAnchor\">ConfirmationHeightAnchor</a>> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationHeightAnchor\">ConfirmationHeightAnchor</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a><<a class=\"struct\" href=\"bdk_chain/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>"],["impl<A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a><<a class=\"struct\" href=\"bdk_chain/struct.FullTxOut.html\" title=\"struct bdk_chain::FullTxOut\">FullTxOut</a><A>> for <a class=\"struct\" href=\"bdk_chain/struct.FullTxOut.html\" title=\"struct bdk_chain::FullTxOut\">FullTxOut</a><A>"],["impl<'a, T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a>, A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a><<a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxNode.html\" title=\"struct bdk_chain::tx_graph::TxNode\">TxNode</a><'a, T, A>> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxNode.html\" title=\"struct bdk_chain::tx_graph::TxNode\">TxNode</a><'a, T, A>"],["impl<'a, T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a>, A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a><<a class=\"struct\" href=\"bdk_chain/tx_graph/struct.CanonicalTx.html\" title=\"struct bdk_chain::tx_graph::CanonicalTx\">CanonicalTx</a><'a, T, A>> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.CanonicalTx.html\" title=\"struct bdk_chain::tx_graph::CanonicalTx\">CanonicalTx</a><'a, T, A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a><<a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>"]],
"bdk_coin_select":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a><<a class=\"enum\" href=\"bdk_coin_select/enum.ExcessStrategyKind.html\" title=\"enum bdk_coin_select::ExcessStrategyKind\">ExcessStrategyKind</a>> for <a class=\"enum\" href=\"bdk_coin_select/enum.ExcessStrategyKind.html\" title=\"enum bdk_coin_select::ExcessStrategyKind\">ExcessStrategyKind</a>"]],
+"bdk_wallet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a><<a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Condition.html\" title=\"struct bdk_wallet::descriptor::policy::Condition\">Condition</a>> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Condition.html\" title=\"struct bdk_wallet::descriptor::policy::Condition\">Condition</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a><<a class=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>> for <a class=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a><<a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerId.html\" title=\"enum bdk_wallet::wallet::signer::SignerId\">SignerId</a>> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerId.html\" title=\"enum bdk_wallet::wallet::signer::SignerId\">SignerId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a><<a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk_wallet::wallet::signer::SignerOrdering\">SignerOrdering</a>> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk_wallet::wallet::signer::SignerOrdering\">SignerOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a><<a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk_wallet::wallet::tx_builder::TxOrdering\">TxOrdering</a>> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk_wallet::wallet::tx_builder::TxOrdering\">TxOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a><<a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>"]],
"example_cli":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a><<a class=\"enum\" href=\"example_cli/enum.Keychain.html\" title=\"enum example_cli::Keychain\">Keychain</a>> for <a class=\"enum\" href=\"example_cli/enum.Keychain.html\" title=\"enum example_cli::Keychain\">Keychain</a>"]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
(function() {var implementors = {
-"bdk":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html\" title=\"trait core::convert::AsRef\">AsRef</a><[<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>]> for <a class=\"enum\" href=\"bdk/enum.KeychainKind.html\" title=\"enum bdk::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html\" title=\"trait core::convert::AsRef\">AsRef</a><<a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\">TxGraph</a><<a class=\"struct\" href=\"bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>>> for <a class=\"struct\" href=\"bdk/wallet/struct.Wallet.html\" title=\"struct bdk::wallet::Wallet\">Wallet</a>"]],
-"bdk_chain":[["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html\" title=\"trait core::convert::AsRef\">AsRef</a><<a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\">TxGraph</a><A>> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\">TxGraph</a><A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html\" title=\"trait core::convert::AsRef\">AsRef</a><[<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>]> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html\" title=\"trait core::convert::AsRef\">AsRef</a><[<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>; <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.array.html\">32</a>]> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>"]]
+"bdk_chain":[["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html\" title=\"trait core::convert::AsRef\">AsRef</a><<a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\">TxGraph</a><A>> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\">TxGraph</a><A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html\" title=\"trait core::convert::AsRef\">AsRef</a><[<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>]> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html\" title=\"trait core::convert::AsRef\">AsRef</a><[<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>; <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.array.html\">32</a>]> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>"]],
+"bdk_wallet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html\" title=\"trait core::convert::AsRef\">AsRef</a><[<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>]> for <a class=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html\" title=\"trait core::convert::AsRef\">AsRef</a><TxGraph<ConfirmationTimeHeightAnchor>> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.Wallet.html\" title=\"struct bdk_wallet::wallet::Wallet\">Wallet</a>"]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
(function() {var implementors = {
-"bdk":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"enum\" href=\"bdk/keys/enum.KeyError.html\" title=\"enum bdk::keys::KeyError\">KeyError</a>> for <a class=\"enum\" href=\"bdk/descriptor/error/enum.Error.html\" title=\"enum bdk::descriptor::error::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Error> for <a class=\"enum\" href=\"bdk/descriptor/error/enum.Error.html\" title=\"enum bdk::descriptor::error::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Error> for <a class=\"enum\" href=\"bdk/descriptor/error/enum.Error.html\" title=\"enum bdk::descriptor::error::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Error> for <a class=\"enum\" href=\"bdk/descriptor/error/enum.Error.html\" title=\"enum bdk::descriptor::error::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Error> for <a class=\"enum\" href=\"bdk/descriptor/error/enum.Error.html\" title=\"enum bdk::descriptor::error::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><HexToBytesError> for <a class=\"enum\" href=\"bdk/descriptor/error/enum.Error.html\" title=\"enum bdk::descriptor::error::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"enum\" href=\"bdk/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk::descriptor::policy::PolicyError\">PolicyError</a>> for <a class=\"enum\" href=\"bdk/descriptor/error/enum.Error.html\" title=\"enum bdk::descriptor::error::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.bool.html\">bool</a>> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk::descriptor::policy::Satisfaction\">Satisfaction</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"enum\" href=\"bdk/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Policy.html\" title=\"struct bdk::descriptor::policy::Policy\">Policy</a>"],["impl<Ctx: <a class=\"trait\" href=\"bdk/keys/trait.ScriptContext.html\" title=\"trait bdk::keys::ScriptContext\">ScriptContext</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Xpub> for <a class=\"enum\" href=\"bdk/keys/enum.ExtendedKey.html\" title=\"enum bdk::keys::ExtendedKey\">ExtendedKey</a><Ctx>"],["impl<Ctx: <a class=\"trait\" href=\"bdk/keys/trait.ScriptContext.html\" title=\"trait bdk::keys::ScriptContext\">ScriptContext</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Xpriv> for <a class=\"enum\" href=\"bdk/keys/enum.ExtendedKey.html\" title=\"enum bdk::keys::ExtendedKey\">ExtendedKey</a><Ctx>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Error> for <a class=\"enum\" href=\"bdk/keys/enum.KeyError.html\" title=\"enum bdk::keys::KeyError\">KeyError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Error> for <a class=\"enum\" href=\"bdk/keys/enum.KeyError.html\" title=\"enum bdk::keys::KeyError\">KeyError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Hash> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerId.html\" title=\"enum bdk::wallet::signer::SignerId\">SignerId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Fingerprint> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerId.html\" title=\"enum bdk::wallet::signer::SignerId\">SignerId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Error> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerError.html\" title=\"enum bdk::wallet::signer::SignerError\">SignerError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"enum\" href=\"bdk/descriptor/error/enum.Error.html\" title=\"enum bdk::descriptor::error::Error\">Error</a>> for <a class=\"enum\" href=\"bdk/wallet/error/enum.CreateTxError.html\" title=\"enum bdk::wallet::error::CreateTxError\">CreateTxError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"enum\" href=\"bdk/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk::descriptor::policy::PolicyError\">PolicyError</a>> for <a class=\"enum\" href=\"bdk/wallet/error/enum.CreateTxError.html\" title=\"enum bdk::wallet::error::CreateTxError\">CreateTxError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"enum\" href=\"bdk/wallet/error/enum.MiniscriptPsbtError.html\" title=\"enum bdk::wallet::error::MiniscriptPsbtError\">MiniscriptPsbtError</a>> for <a class=\"enum\" href=\"bdk/wallet/error/enum.CreateTxError.html\" title=\"enum bdk::wallet::error::CreateTxError\">CreateTxError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Error> for <a class=\"enum\" href=\"bdk/wallet/error/enum.CreateTxError.html\" title=\"enum bdk::wallet::error::CreateTxError\">CreateTxError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"enum\" href=\"bdk/wallet/coin_selection/enum.Error.html\" title=\"enum bdk::wallet::coin_selection::Error\">Error</a>> for <a class=\"enum\" href=\"bdk/wallet/error/enum.CreateTxError.html\" title=\"enum bdk::wallet::error::CreateTxError\">CreateTxError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"struct\" href=\"bdk_chain/spk_client/struct.FullScanResult.html\" title=\"struct bdk_chain::spk_client::FullScanResult\">FullScanResult</a><<a class=\"enum\" href=\"bdk/enum.KeychainKind.html\" title=\"enum bdk::KeychainKind\">KeychainKind</a>, <a class=\"struct\" href=\"bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>>> for <a class=\"struct\" href=\"bdk/wallet/struct.Update.html\" title=\"struct bdk::wallet::Update\">Update</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"struct\" href=\"bdk_chain/spk_client/struct.SyncResult.html\" title=\"struct bdk_chain::spk_client::SyncResult\">SyncResult</a><<a class=\"struct\" href=\"bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>>> for <a class=\"struct\" href=\"bdk/wallet/struct.Update.html\" title=\"struct bdk::wallet::Update\">Update</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<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><<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u32.html\">u32</a>, <a class=\"enum\" href=\"https://doc.rust-lang.org/nightly/core/option/enum.Option.html\" title=\"enum core::option::Option\">Option</a><BlockHash>, <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html\" title=\"struct alloc::alloc::Global\">Global</a>>> for <a class=\"struct\" href=\"bdk/wallet/struct.ChangeSet.html\" title=\"struct bdk::wallet::ChangeSet\">ChangeSet</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><<a class=\"struct\" href=\"bdk_chain/chain_data/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::chain_data::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>, <a class=\"struct\" href=\"bdk_chain/keychain/txout_index/struct.ChangeSet.html\" title=\"struct bdk_chain::keychain::txout_index::ChangeSet\">ChangeSet</a><<a class=\"enum\" href=\"bdk/enum.KeychainKind.html\" title=\"enum bdk::KeychainKind\">KeychainKind</a>>>> for <a class=\"struct\" href=\"bdk/wallet/struct.ChangeSet.html\" title=\"struct bdk::wallet::ChangeSet\">ChangeSet</a>"]],
"bdk_chain":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"enum\" href=\"bdk_chain/enum.ChainPosition.html\" title=\"enum bdk_chain::ChainPosition\">ChainPosition</a><<a class=\"struct\" href=\"bdk_chain/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>>> for <a class=\"enum\" href=\"bdk_chain/enum.ConfirmationTime.html\" title=\"enum bdk_chain::ConfirmationTime\">ConfirmationTime</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><(<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u32.html\">u32</a>, BlockHash)> for <a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>> for (<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u32.html\">u32</a>, BlockHash)"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><(&<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u32.html\">u32</a>, &BlockHash)> for <a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>"],["impl<A, IA: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"struct\" href=\"bdk_chain/tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::tx_graph::ChangeSet\">ChangeSet</a><A>> for <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, IA>"],["impl<A, K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"struct\" href=\"bdk_chain/keychain/struct.ChangeSet.html\" title=\"struct bdk_chain::keychain::ChangeSet\">ChangeSet</a><K>> for <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, <a class=\"struct\" href=\"bdk_chain/keychain/struct.ChangeSet.html\" title=\"struct bdk_chain::keychain::ChangeSet\">ChangeSet</a><K>>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Hash> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>> for Hash"]],
"bdk_coin_select":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.usize.html\">usize</a>> for <a class=\"enum\" href=\"bdk_coin_select/enum.BnbLimit.html\" title=\"enum bdk_coin_select::BnbLimit\">BnbLimit</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/time/struct.Duration.html\" title=\"struct core::time::Duration\">Duration</a>> for <a class=\"enum\" href=\"bdk_coin_select/enum.BnbLimit.html\" title=\"enum bdk_coin_select::BnbLimit\">BnbLimit</a>"]],
"bdk_file_store":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html\" title=\"struct std::io::error::Error\">Error</a>> for <a class=\"enum\" href=\"bdk_file_store/enum.IterError.html\" title=\"enum bdk_file_store::IterError\">IterError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html\" title=\"struct std::io::error::Error\">Error</a>> for <a class=\"enum\" href=\"bdk_file_store/enum.FileError.html\" title=\"enum bdk_file_store::FileError\">FileError</a>"]],
"bdk_tmp_plan":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Error> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.SigningError.html\" title=\"enum bdk_tmp_plan::SigningError\">SigningError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Error> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.SigningError.html\" title=\"enum bdk_tmp_plan::SigningError\">SigningError</a>"]],
+"bdk_wallet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"enum\" href=\"bdk_wallet/keys/enum.KeyError.html\" title=\"enum bdk_wallet::keys::KeyError\">KeyError</a>> for <a class=\"enum\" href=\"bdk_wallet/descriptor/error/enum.Error.html\" title=\"enum bdk_wallet::descriptor::error::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Error> for <a class=\"enum\" href=\"bdk_wallet/descriptor/error/enum.Error.html\" title=\"enum bdk_wallet::descriptor::error::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Error> for <a class=\"enum\" href=\"bdk_wallet/descriptor/error/enum.Error.html\" title=\"enum bdk_wallet::descriptor::error::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Error> for <a class=\"enum\" href=\"bdk_wallet/descriptor/error/enum.Error.html\" title=\"enum bdk_wallet::descriptor::error::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Error> for <a class=\"enum\" href=\"bdk_wallet/descriptor/error/enum.Error.html\" title=\"enum bdk_wallet::descriptor::error::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><HexToBytesError> for <a class=\"enum\" href=\"bdk_wallet/descriptor/error/enum.Error.html\" title=\"enum bdk_wallet::descriptor::error::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk_wallet::descriptor::policy::PolicyError\">PolicyError</a>> for <a class=\"enum\" href=\"bdk_wallet/descriptor/error/enum.Error.html\" title=\"enum bdk_wallet::descriptor::error::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.bool.html\">bool</a>> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::Satisfaction\">Satisfaction</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk_wallet::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Policy.html\" title=\"struct bdk_wallet::descriptor::policy::Policy\">Policy</a>"],["impl<Ctx: <a class=\"trait\" href=\"bdk_wallet/keys/trait.ScriptContext.html\" title=\"trait bdk_wallet::keys::ScriptContext\">ScriptContext</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Xpub> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.ExtendedKey.html\" title=\"enum bdk_wallet::keys::ExtendedKey\">ExtendedKey</a><Ctx>"],["impl<Ctx: <a class=\"trait\" href=\"bdk_wallet/keys/trait.ScriptContext.html\" title=\"trait bdk_wallet::keys::ScriptContext\">ScriptContext</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Xpriv> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.ExtendedKey.html\" title=\"enum bdk_wallet::keys::ExtendedKey\">ExtendedKey</a><Ctx>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Error> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.KeyError.html\" title=\"enum bdk_wallet::keys::KeyError\">KeyError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Error> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.KeyError.html\" title=\"enum bdk_wallet::keys::KeyError\">KeyError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Hash> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerId.html\" title=\"enum bdk_wallet::wallet::signer::SignerId\">SignerId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Fingerprint> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerId.html\" title=\"enum bdk_wallet::wallet::signer::SignerId\">SignerId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Error> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerError.html\" title=\"enum bdk_wallet::wallet::signer::SignerError\">SignerError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"enum\" href=\"bdk_wallet/descriptor/error/enum.Error.html\" title=\"enum bdk_wallet::descriptor::error::Error\">Error</a>> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.CreateTxError.html\" title=\"enum bdk_wallet::wallet::error::CreateTxError\">CreateTxError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk_wallet::descriptor::policy::PolicyError\">PolicyError</a>> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.CreateTxError.html\" title=\"enum bdk_wallet::wallet::error::CreateTxError\">CreateTxError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.MiniscriptPsbtError.html\" title=\"enum bdk_wallet::wallet::error::MiniscriptPsbtError\">MiniscriptPsbtError</a>> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.CreateTxError.html\" title=\"enum bdk_wallet::wallet::error::CreateTxError\">CreateTxError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><Error> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.CreateTxError.html\" title=\"enum bdk_wallet::wallet::error::CreateTxError\">CreateTxError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"enum\" href=\"bdk_wallet/wallet/coin_selection/enum.Error.html\" title=\"enum bdk_wallet::wallet::coin_selection::Error\">Error</a>> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.CreateTxError.html\" title=\"enum bdk_wallet::wallet::error::CreateTxError\">CreateTxError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><FullScanResult<<a class=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>, ConfirmationTimeHeightAnchor>> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.Update.html\" title=\"struct bdk_wallet::wallet::Update\">Update</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><SyncResult<ConfirmationTimeHeightAnchor>> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.Update.html\" title=\"struct bdk_wallet::wallet::Update\">Update</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<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><<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u32.html\">u32</a>, <a class=\"enum\" href=\"https://doc.rust-lang.org/nightly/core/option/enum.Option.html\" title=\"enum core::option::Option\">Option</a><BlockHash>, <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html\" title=\"struct alloc::alloc::Global\">Global</a>>> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.ChangeSet.html\" title=\"struct bdk_wallet::wallet::ChangeSet\">ChangeSet</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><ChangeSet<ConfirmationTimeHeightAnchor, ChangeSet<<a class=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>>>> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.ChangeSet.html\" title=\"struct bdk_wallet::wallet::ChangeSet\">ChangeSet</a>"]],
"example_bitcoind_rpc_polling":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"struct\" href=\"example_bitcoind_rpc_polling/struct.RpcArgs.html\" title=\"struct example_bitcoind_rpc_polling::RpcArgs\">RpcArgs</a>> for Auth"]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
(function() {var implementors = {
-"bdk":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Condition.html\" title=\"struct bdk::descriptor::policy::Condition\">Condition</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk/keys/struct.PrivateKeyGenerateOptions.html\" title=\"struct bdk::keys::PrivateKeyGenerateOptions\">PrivateKeyGenerateOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.LargestFirstCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::LargestFirstCoinSelection\">LargestFirstCoinSelection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.OldestFirstCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::OldestFirstCoinSelection\">OldestFirstCoinSelection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::BranchAndBoundCoinSelection\">BranchAndBoundCoinSelection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk::wallet::signer::SignerOrdering\">SignerOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignersContainer.html\" title=\"struct bdk::wallet::signer::SignersContainer\">SignersContainer</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignOptions.html\" title=\"struct bdk::wallet::signer::SignOptions\">SignOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.CreateTx.html\" title=\"struct bdk::wallet::tx_builder::CreateTx\">CreateTx</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.BumpFee.html\" title=\"struct bdk::wallet::tx_builder::BumpFee\">BumpFee</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk::wallet::tx_builder::TxOrdering\">TxOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk/wallet/struct.Update.html\" title=\"struct bdk::wallet::Update\">Update</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk/wallet/struct.ChangeSet.html\" title=\"struct bdk::wallet::ChangeSet\">ChangeSet</a>"]],
"bdk_chain":[["impl<I> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_chain/struct.SpkTxOutIndex.html\" title=\"struct bdk_chain::SpkTxOutIndex\">SpkTxOutIndex</a><I>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationHeightAnchor\">ConfirmationHeightAnchor</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>"],["impl<A, I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\">IndexedTxGraph</a><A, I>"],["impl<A, IA: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, IA>"],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.ChangeSet.html\" title=\"struct bdk_chain::keychain::ChangeSet\">ChangeSet</a><K>"],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.KeychainTxOutIndex.html\" title=\"struct bdk_chain::keychain::KeychainTxOutIndex\">KeychainTxOutIndex</a><K>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.Balance.html\" title=\"struct bdk_chain::keychain::Balance\">Balance</a>"],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\">TxGraph</a><A>"],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::tx_graph::ChangeSet\">ChangeSet</a><A>"]],
"bdk_tmp_plan":[["impl<Ak> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.RequiredSignatures.html\" title=\"enum bdk_tmp_plan::RequiredSignatures\">RequiredSignatures</a><Ak>"],["impl<Ak> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Requirements.html\" title=\"struct bdk_tmp_plan::Requirements\">Requirements</a><Ak>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.SatisfactionMaterial.html\" title=\"struct bdk_tmp_plan::SatisfactionMaterial\">SatisfactionMaterial</a>"],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Assets.html\" title=\"struct bdk_tmp_plan::Assets\">Assets</a><K>"]],
+"bdk_wallet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Condition.html\" title=\"struct bdk_wallet::descriptor::policy::Condition\">Condition</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_wallet/keys/struct.PrivateKeyGenerateOptions.html\" title=\"struct bdk_wallet::keys::PrivateKeyGenerateOptions\">PrivateKeyGenerateOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.LargestFirstCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection\">LargestFirstCoinSelection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.OldestFirstCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection\">OldestFirstCoinSelection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection\">BranchAndBoundCoinSelection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk_wallet::wallet::signer::SignerOrdering\">SignerOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignersContainer.html\" title=\"struct bdk_wallet::wallet::signer::SignersContainer\">SignersContainer</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk_wallet::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignOptions.html\" title=\"struct bdk_wallet::wallet::signer::SignOptions\">SignOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.CreateTx.html\" title=\"struct bdk_wallet::wallet::tx_builder::CreateTx\">CreateTx</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.BumpFee.html\" title=\"struct bdk_wallet::wallet::tx_builder::BumpFee\">BumpFee</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk_wallet::wallet::tx_builder::TxOrdering\">TxOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.Update.html\" title=\"struct bdk_wallet::wallet::Update\">Update</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.ChangeSet.html\" title=\"struct bdk_wallet::wallet::ChangeSet\">ChangeSet</a>"]],
"example_cli":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"enum\" href=\"example_cli/enum.CoinSelectionAlgo.html\" title=\"enum example_cli::CoinSelectionAlgo\">CoinSelectionAlgo</a>"]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
(function() {var implementors = {
-"bdk":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk/descriptor/error/enum.Error.html\" title=\"enum bdk::descriptor::error::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk::descriptor::policy::PolicyError\">PolicyError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk/keys/enum.KeyError.html\" title=\"enum bdk::keys::KeyError\">KeyError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk/wallet/coin_selection/enum.Error.html\" title=\"enum bdk::wallet::coin_selection::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerError.html\" title=\"enum bdk::wallet::signer::SignerError\">SignerError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AddUtxoError.html\" title=\"enum bdk::wallet::tx_builder::AddUtxoError\">AddUtxoError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AddForeignUtxoError.html\" title=\"enum bdk::wallet::tx_builder::AddForeignUtxoError\">AddForeignUtxoError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AllowShrinkingError.html\" title=\"enum bdk::wallet::tx_builder::AllowShrinkingError\">AllowShrinkingError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.MiniscriptPsbtError.html\" title=\"enum bdk::wallet::error::MiniscriptPsbtError\">MiniscriptPsbtError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.CreateTxError.html\" title=\"enum bdk::wallet::error::CreateTxError\">CreateTxError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.BuildFeeBumpError.html\" title=\"enum bdk::wallet::error::BuildFeeBumpError\">BuildFeeBumpError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk/wallet/enum.NewError.html\" title=\"enum bdk::wallet::NewError\">NewError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk/wallet/enum.LoadError.html\" title=\"enum bdk::wallet::LoadError\">LoadError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk/wallet/enum.NewOrLoadError.html\" title=\"enum bdk::wallet::NewOrLoadError\">NewOrLoadError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk/wallet/enum.InsertTxError.html\" title=\"enum bdk::wallet::InsertTxError\">InsertTxError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk/wallet/enum.ApplyBlockError.html\" title=\"enum bdk::wallet::ApplyBlockError\">ApplyBlockError</a>"]],
"bdk_chain":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.MissingGenesisError.html\" title=\"struct bdk_chain::local_chain::MissingGenesisError\">MissingGenesisError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.AlterCheckPointError.html\" title=\"struct bdk_chain::local_chain::AlterCheckPointError\">AlterCheckPointError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CannotConnectError.html\" title=\"struct bdk_chain::local_chain::CannotConnectError\">CannotConnectError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk_chain/local_chain/enum.ApplyHeaderError.html\" title=\"enum bdk_chain::local_chain::ApplyHeaderError\">ApplyHeaderError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk_chain/tx_graph/enum.CalculateFeeError.html\" title=\"enum bdk_chain::tx_graph::CalculateFeeError\">CalculateFeeError</a>"]],
"bdk_coin_select":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.SelectionError.html\" title=\"struct bdk_coin_select::SelectionError\">SelectionError</a>"]],
"bdk_file_store":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk_file_store/enum.IterError.html\" title=\"enum bdk_file_store::IterError\">IterError</a>"],["impl<C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"struct\" href=\"bdk_file_store/struct.AggregateChangesetsError.html\" title=\"struct bdk_file_store::AggregateChangesetsError\">AggregateChangesetsError</a><C>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk_file_store/enum.FileError.html\" title=\"enum bdk_file_store::FileError\">FileError</a>"]],
-"bdk_tmp_plan":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.SigningError.html\" title=\"enum bdk_tmp_plan::SigningError\">SigningError</a>"]]
+"bdk_tmp_plan":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.SigningError.html\" title=\"enum bdk_tmp_plan::SigningError\">SigningError</a>"]],
+"bdk_wallet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/error/enum.Error.html\" title=\"enum bdk_wallet::descriptor::error::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk_wallet::descriptor::policy::PolicyError\">PolicyError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.KeyError.html\" title=\"enum bdk_wallet::keys::KeyError\">KeyError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/coin_selection/enum.Error.html\" title=\"enum bdk_wallet::wallet::coin_selection::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerError.html\" title=\"enum bdk_wallet::wallet::signer::SignerError\">SignerError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AddUtxoError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AddUtxoError\">AddUtxoError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AddForeignUtxoError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AddForeignUtxoError\">AddForeignUtxoError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AllowShrinkingError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AllowShrinkingError\">AllowShrinkingError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.MiniscriptPsbtError.html\" title=\"enum bdk_wallet::wallet::error::MiniscriptPsbtError\">MiniscriptPsbtError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.CreateTxError.html\" title=\"enum bdk_wallet::wallet::error::CreateTxError\">CreateTxError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.BuildFeeBumpError.html\" title=\"enum bdk_wallet::wallet::error::BuildFeeBumpError\">BuildFeeBumpError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.NewError.html\" title=\"enum bdk_wallet::wallet::NewError\">NewError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.LoadError.html\" title=\"enum bdk_wallet::wallet::LoadError\">LoadError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.NewOrLoadError.html\" title=\"enum bdk_wallet::wallet::NewOrLoadError\">NewOrLoadError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.InsertTxError.html\" title=\"enum bdk_wallet::wallet::InsertTxError\">InsertTxError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.ApplyBlockError.html\" title=\"enum bdk_wallet::wallet::ApplyBlockError\">ApplyBlockError</a>"]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
(function() {var implementors = {
-"bdk":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/descriptor/error/enum.Error.html\" title=\"enum bdk::descriptor::error::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk::descriptor::policy::PkOrF\">PkOrF</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk::descriptor::policy::Satisfaction\">Satisfaction</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Policy.html\" title=\"struct bdk::descriptor::policy::Policy\">Policy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Condition.html\" title=\"struct bdk::descriptor::policy::Condition\">Condition</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk::descriptor::policy::PolicyError\">PolicyError</a>"],["impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.BuildSatisfaction.html\" title=\"enum bdk::descriptor::policy::BuildSatisfaction\">BuildSatisfaction</a><'a>"],["impl<Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> + <a class=\"trait\" href=\"bdk/keys/trait.ScriptContext.html\" title=\"trait bdk::keys::ScriptContext\">ScriptContext</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/keys/enum.DescriptorKey.html\" title=\"enum bdk::keys::DescriptorKey\">DescriptorKey</a><Ctx>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/keys/enum.ScriptContextEnum.html\" title=\"enum bdk::keys::ScriptContextEnum\">ScriptContextEnum</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk/keys/struct.PrivateKeyGenerateOptions.html\" title=\"struct bdk::keys::PrivateKeyGenerateOptions\">PrivateKeyGenerateOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/keys/enum.KeyError.html\" title=\"enum bdk::keys::KeyError\">KeyError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/enum.KeychainKind.html\" title=\"enum bdk::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk/struct.LocalOutput.html\" title=\"struct bdk::LocalOutput\">LocalOutput</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk/struct.WeightedUtxo.html\" title=\"struct bdk::WeightedUtxo\">WeightedUtxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/enum.Utxo.html\" title=\"enum bdk::Utxo\">Utxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/wallet/coin_selection/enum.Error.html\" title=\"enum bdk::wallet::coin_selection::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/wallet/coin_selection/enum.Excess.html\" title=\"enum bdk::wallet::coin_selection::Excess\">Excess</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.CoinSelectionResult.html\" title=\"struct bdk::wallet::coin_selection::CoinSelectionResult\">CoinSelectionResult</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.LargestFirstCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::LargestFirstCoinSelection\">LargestFirstCoinSelection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.OldestFirstCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::OldestFirstCoinSelection\">OldestFirstCoinSelection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::BranchAndBoundCoinSelection\">BranchAndBoundCoinSelection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk/wallet/export/struct.FullyNodedExport.html\" title=\"struct bdk::wallet::export::FullyNodedExport\">FullyNodedExport</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerId.html\" title=\"enum bdk::wallet::signer::SignerId\">SignerId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerError.html\" title=\"enum bdk::wallet::signer::SignerError\">SignerError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerContext.html\" title=\"enum bdk::wallet::signer::SignerContext\">SignerContext</a>"],["impl<S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> + <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html\" title=\"trait core::marker::Sized\">Sized</a> + <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> + <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/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerWrapper.html\" title=\"struct bdk::wallet::signer::SignerWrapper\">SignerWrapper</a><S>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk::wallet::signer::SignerOrdering\">SignerOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignersContainer.html\" title=\"struct bdk::wallet::signer::SignersContainer\">SignersContainer</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignOptions.html\" title=\"struct bdk::wallet::signer::SignOptions\">SignOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.CreateTx.html\" title=\"struct bdk::wallet::tx_builder::CreateTx\">CreateTx</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.BumpFee.html\" title=\"struct bdk::wallet::tx_builder::BumpFee\">BumpFee</a>"],["impl<'a, Cs: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>, Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.TxBuilder.html\" title=\"struct bdk::wallet::tx_builder::TxBuilder\">TxBuilder</a><'a, Cs, Ctx>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AddUtxoError.html\" title=\"enum bdk::wallet::tx_builder::AddUtxoError\">AddUtxoError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AddForeignUtxoError.html\" title=\"enum bdk::wallet::tx_builder::AddForeignUtxoError\">AddForeignUtxoError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AllowShrinkingError.html\" title=\"enum bdk::wallet::tx_builder::AllowShrinkingError\">AllowShrinkingError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk::wallet::tx_builder::TxOrdering\">TxOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.MiniscriptPsbtError.html\" title=\"enum bdk::wallet::error::MiniscriptPsbtError\">MiniscriptPsbtError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.CreateTxError.html\" title=\"enum bdk::wallet::error::CreateTxError\">CreateTxError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.BuildFeeBumpError.html\" title=\"enum bdk::wallet::error::BuildFeeBumpError\">BuildFeeBumpError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk/wallet/struct.Wallet.html\" title=\"struct bdk::wallet::Wallet\">Wallet</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk/wallet/struct.Update.html\" title=\"struct bdk::wallet::Update\">Update</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk/wallet/struct.ChangeSet.html\" title=\"struct bdk::wallet::ChangeSet\">ChangeSet</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk/wallet/struct.AddressInfo.html\" title=\"struct bdk::wallet::AddressInfo\">AddressInfo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/wallet/enum.NewError.html\" title=\"enum bdk::wallet::NewError\">NewError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/wallet/enum.LoadError.html\" title=\"enum bdk::wallet::LoadError\">LoadError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/wallet/enum.NewOrLoadError.html\" title=\"enum bdk::wallet::NewOrLoadError\">NewOrLoadError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/wallet/enum.InsertTxError.html\" title=\"enum bdk::wallet::InsertTxError\">InsertTxError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk/wallet/enum.ApplyBlockError.html\" title=\"enum bdk::wallet::ApplyBlockError\">ApplyBlockError</a>"]],
"bdk_bitcoind_rpc":[["impl<B: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_bitcoind_rpc/struct.BlockEvent.html\" title=\"struct bdk_bitcoind_rpc::BlockEvent\">BlockEvent</a><B>"]],
"bdk_chain":[["impl<I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_chain/struct.SpkTxOutIndex.html\" title=\"struct bdk_chain::SpkTxOutIndex\">SpkTxOutIndex</a><I>"],["impl<A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_chain/enum.ChainPosition.html\" title=\"enum bdk_chain::ChainPosition\">ChainPosition</a><A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_chain/enum.ConfirmationTime.html\" title=\"enum bdk_chain::ConfirmationTime\">ConfirmationTime</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationHeightAnchor\">ConfirmationHeightAnchor</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>"],["impl<A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_chain/struct.FullTxOut.html\" title=\"struct bdk_chain::FullTxOut\">FullTxOut</a><A>"],["impl<A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>, I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\">IndexedTxGraph</a><A, I>"],["impl<A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>, IA: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, IA>"],["impl<K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.ChangeSet.html\" title=\"struct bdk_chain::keychain::ChangeSet\">ChangeSet</a><K>"],["impl<K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.KeychainTxOutIndex.html\" title=\"struct bdk_chain::keychain::KeychainTxOutIndex\">KeychainTxOutIndex</a><K>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.Balance.html\" title=\"struct bdk_chain::keychain::Balance\">Balance</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CheckPoint.html\" title=\"struct bdk_chain::local_chain::CheckPoint\">CheckPoint</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.LocalChain.html\" title=\"struct bdk_chain::local_chain::LocalChain\">LocalChain</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.MissingGenesisError.html\" title=\"struct bdk_chain::local_chain::MissingGenesisError\">MissingGenesisError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.AlterCheckPointError.html\" title=\"struct bdk_chain::local_chain::AlterCheckPointError\">AlterCheckPointError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CannotConnectError.html\" title=\"struct bdk_chain::local_chain::CannotConnectError\">CannotConnectError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_chain/local_chain/enum.ApplyHeaderError.html\" title=\"enum bdk_chain::local_chain::ApplyHeaderError\">ApplyHeaderError</a>"],["impl<A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\">TxGraph</a><A>"],["impl<'a, T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>, A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxNode.html\" title=\"struct bdk_chain::tx_graph::TxNode\">TxNode</a><'a, T, A>"],["impl<'a, T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>, A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.CanonicalTx.html\" title=\"struct bdk_chain::tx_graph::CanonicalTx\">CanonicalTx</a><'a, T, A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_chain/tx_graph/enum.CalculateFeeError.html\" title=\"enum bdk_chain::tx_graph::CalculateFeeError\">CalculateFeeError</a>"],["impl<A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::tx_graph::ChangeSet\">ChangeSet</a><A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>"]],
"bdk_coin_select":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.WeightedValue.html\" title=\"struct bdk_coin_select::WeightedValue\">WeightedValue</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.CoinSelectorOpt.html\" title=\"struct bdk_coin_select::CoinSelectorOpt\">CoinSelectorOpt</a>"],["impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.CoinSelector.html\" title=\"struct bdk_coin_select::CoinSelector\">CoinSelector</a><'a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.SelectionError.html\" title=\"struct bdk_coin_select::SelectionError\">SelectionError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.SelectionConstraint.html\" title=\"enum bdk_coin_select::SelectionConstraint\">SelectionConstraint</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.Selection.html\" title=\"struct bdk_coin_select::Selection\">Selection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.ExcessStrategyKind.html\" title=\"enum bdk_coin_select::ExcessStrategyKind\">ExcessStrategyKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.ExcessStrategy.html\" title=\"struct bdk_coin_select::ExcessStrategy\">ExcessStrategy</a>"]],
"bdk_hwi":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_hwi/struct.HWISigner.html\" title=\"struct bdk_hwi::HWISigner\">HWISigner</a>"]],
"bdk_persist":[["impl<C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_persist/struct.Persist.html\" title=\"struct bdk_persist::Persist\">Persist</a><C>"]],
"bdk_tmp_plan":[["impl<Ak: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Requirements.html\" title=\"struct bdk_tmp_plan::Requirements\">Requirements</a><Ak>"],["impl<Ak: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.RequiredSignatures.html\" title=\"enum bdk_tmp_plan::RequiredSignatures\">RequiredSignatures</a><Ak>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.SigningError.html\" title=\"enum bdk_tmp_plan::SigningError\">SigningError</a>"],["impl<Ak: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.PlanKey.html\" title=\"struct bdk_tmp_plan::PlanKey\">PlanKey</a><Ak>"],["impl<AK: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Plan.html\" title=\"struct bdk_tmp_plan::Plan\">Plan</a><AK>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.SatisfactionMaterial.html\" title=\"struct bdk_tmp_plan::SatisfactionMaterial\">SatisfactionMaterial</a>"],["impl<K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Assets.html\" title=\"struct bdk_tmp_plan::Assets\">Assets</a><K>"]],
+"bdk_wallet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/error/enum.Error.html\" title=\"enum bdk_wallet::descriptor::error::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk_wallet::descriptor::policy::PkOrF\">PkOrF</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk_wallet::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::Satisfaction\">Satisfaction</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Policy.html\" title=\"struct bdk_wallet::descriptor::policy::Policy\">Policy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Condition.html\" title=\"struct bdk_wallet::descriptor::policy::Condition\">Condition</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk_wallet::descriptor::policy::PolicyError\">PolicyError</a>"],["impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.BuildSatisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::BuildSatisfaction\">BuildSatisfaction</a><'a>"],["impl<Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> + <a class=\"trait\" href=\"bdk_wallet/keys/trait.ScriptContext.html\" title=\"trait bdk_wallet::keys::ScriptContext\">ScriptContext</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.DescriptorKey.html\" title=\"enum bdk_wallet::keys::DescriptorKey\">DescriptorKey</a><Ctx>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.ScriptContextEnum.html\" title=\"enum bdk_wallet::keys::ScriptContextEnum\">ScriptContextEnum</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_wallet/keys/struct.PrivateKeyGenerateOptions.html\" title=\"struct bdk_wallet::keys::PrivateKeyGenerateOptions\">PrivateKeyGenerateOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.KeyError.html\" title=\"enum bdk_wallet::keys::KeyError\">KeyError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_wallet/struct.LocalOutput.html\" title=\"struct bdk_wallet::LocalOutput\">LocalOutput</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_wallet/struct.WeightedUtxo.html\" title=\"struct bdk_wallet::WeightedUtxo\">WeightedUtxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/enum.Utxo.html\" title=\"enum bdk_wallet::Utxo\">Utxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/coin_selection/enum.Error.html\" title=\"enum bdk_wallet::wallet::coin_selection::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/coin_selection/enum.Excess.html\" title=\"enum bdk_wallet::wallet::coin_selection::Excess\">Excess</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.CoinSelectionResult.html\" title=\"struct bdk_wallet::wallet::coin_selection::CoinSelectionResult\">CoinSelectionResult</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.LargestFirstCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection\">LargestFirstCoinSelection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.OldestFirstCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection\">OldestFirstCoinSelection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection\">BranchAndBoundCoinSelection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/export/struct.FullyNodedExport.html\" title=\"struct bdk_wallet::wallet::export::FullyNodedExport\">FullyNodedExport</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerId.html\" title=\"enum bdk_wallet::wallet::signer::SignerId\">SignerId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerError.html\" title=\"enum bdk_wallet::wallet::signer::SignerError\">SignerError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerContext.html\" title=\"enum bdk_wallet::wallet::signer::SignerContext\">SignerContext</a>"],["impl<S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> + <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html\" title=\"trait core::marker::Sized\">Sized</a> + <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> + <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/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerWrapper.html\" title=\"struct bdk_wallet::wallet::signer::SignerWrapper\">SignerWrapper</a><S>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk_wallet::wallet::signer::SignerOrdering\">SignerOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignersContainer.html\" title=\"struct bdk_wallet::wallet::signer::SignersContainer\">SignersContainer</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignOptions.html\" title=\"struct bdk_wallet::wallet::signer::SignOptions\">SignOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk_wallet::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.CreateTx.html\" title=\"struct bdk_wallet::wallet::tx_builder::CreateTx\">CreateTx</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.BumpFee.html\" title=\"struct bdk_wallet::wallet::tx_builder::BumpFee\">BumpFee</a>"],["impl<'a, Cs: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>, Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.TxBuilder.html\" title=\"struct bdk_wallet::wallet::tx_builder::TxBuilder\">TxBuilder</a><'a, Cs, Ctx>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AddUtxoError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AddUtxoError\">AddUtxoError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AddForeignUtxoError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AddForeignUtxoError\">AddForeignUtxoError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AllowShrinkingError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AllowShrinkingError\">AllowShrinkingError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk_wallet::wallet::tx_builder::TxOrdering\">TxOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.MiniscriptPsbtError.html\" title=\"enum bdk_wallet::wallet::error::MiniscriptPsbtError\">MiniscriptPsbtError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.CreateTxError.html\" title=\"enum bdk_wallet::wallet::error::CreateTxError\">CreateTxError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.BuildFeeBumpError.html\" title=\"enum bdk_wallet::wallet::error::BuildFeeBumpError\">BuildFeeBumpError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.Wallet.html\" title=\"struct bdk_wallet::wallet::Wallet\">Wallet</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.Update.html\" title=\"struct bdk_wallet::wallet::Update\">Update</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.ChangeSet.html\" title=\"struct bdk_wallet::wallet::ChangeSet\">ChangeSet</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.AddressInfo.html\" title=\"struct bdk_wallet::wallet::AddressInfo\">AddressInfo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.NewError.html\" title=\"enum bdk_wallet::wallet::NewError\">NewError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.LoadError.html\" title=\"enum bdk_wallet::wallet::LoadError\">LoadError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.NewOrLoadError.html\" title=\"enum bdk_wallet::wallet::NewOrLoadError\">NewOrLoadError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.InsertTxError.html\" title=\"enum bdk_wallet::wallet::InsertTxError\">InsertTxError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.ApplyBlockError.html\" title=\"enum bdk_wallet::wallet::ApplyBlockError\">ApplyBlockError</a>"]],
"example_bitcoind_rpc_polling":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"example_bitcoind_rpc_polling/enum.Emission.html\" title=\"enum example_bitcoind_rpc_polling::Emission\">Emission</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"example_bitcoind_rpc_polling/struct.RpcArgs.html\" title=\"struct example_bitcoind_rpc_polling::RpcArgs\">RpcArgs</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"example_bitcoind_rpc_polling/enum.RpcCommands.html\" title=\"enum example_bitcoind_rpc_polling::RpcCommands\">RpcCommands</a>"]],
"example_cli":[["impl<CS: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> + Subcommand, S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> + Args> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"example_cli/enum.Commands.html\" title=\"enum example_cli::Commands\">Commands</a><CS, S>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"example_cli/enum.CoinSelectionAlgo.html\" title=\"enum example_cli::CoinSelectionAlgo\">CoinSelectionAlgo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"example_cli/enum.AddressCmd.html\" title=\"enum example_cli::AddressCmd\">AddressCmd</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"example_cli/enum.TxOutCmd.html\" title=\"enum example_cli::TxOutCmd\">TxOutCmd</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"example_cli/enum.Keychain.html\" title=\"enum example_cli::Keychain\">Keychain</a>"]],
"example_electrum":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"example_electrum/enum.ElectrumCommands.html\" title=\"enum example_electrum::ElectrumCommands\">ElectrumCommands</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"example_electrum/struct.ElectrumArgs.html\" title=\"struct example_electrum::ElectrumArgs\">ElectrumArgs</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"example_electrum/struct.ScanOptions.html\" title=\"struct example_electrum::ScanOptions\">ScanOptions</a>"]],
(function() {var implementors = {
-"bdk":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk/descriptor/error/enum.Error.html\" title=\"enum bdk::descriptor::error::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk::descriptor::policy::PolicyError\">PolicyError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk/keys/enum.KeyError.html\" title=\"enum bdk::keys::KeyError\">KeyError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk/wallet/coin_selection/enum.Error.html\" title=\"enum bdk::wallet::coin_selection::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"bdk/wallet/export/struct.FullyNodedExport.html\" title=\"struct bdk::wallet::export::FullyNodedExport\">FullyNodedExport</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerError.html\" title=\"enum bdk::wallet::signer::SignerError\">SignerError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AddUtxoError.html\" title=\"enum bdk::wallet::tx_builder::AddUtxoError\">AddUtxoError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AddForeignUtxoError.html\" title=\"enum bdk::wallet::tx_builder::AddForeignUtxoError\">AddForeignUtxoError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AllowShrinkingError.html\" title=\"enum bdk::wallet::tx_builder::AllowShrinkingError\">AllowShrinkingError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.MiniscriptPsbtError.html\" title=\"enum bdk::wallet::error::MiniscriptPsbtError\">MiniscriptPsbtError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.CreateTxError.html\" title=\"enum bdk::wallet::error::CreateTxError\">CreateTxError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.BuildFeeBumpError.html\" title=\"enum bdk::wallet::error::BuildFeeBumpError\">BuildFeeBumpError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"bdk/wallet/struct.AddressInfo.html\" title=\"struct bdk::wallet::AddressInfo\">AddressInfo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk/wallet/enum.NewError.html\" title=\"enum bdk::wallet::NewError\">NewError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk/wallet/enum.LoadError.html\" title=\"enum bdk::wallet::LoadError\">LoadError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk/wallet/enum.NewOrLoadError.html\" title=\"enum bdk::wallet::NewOrLoadError\">NewOrLoadError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk/wallet/enum.InsertTxError.html\" title=\"enum bdk::wallet::InsertTxError\">InsertTxError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk/wallet/enum.ApplyBlockError.html\" title=\"enum bdk::wallet::ApplyBlockError\">ApplyBlockError</a>"]],
"bdk_chain":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.Balance.html\" title=\"struct bdk_chain::keychain::Balance\">Balance</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.MissingGenesisError.html\" title=\"struct bdk_chain::local_chain::MissingGenesisError\">MissingGenesisError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.AlterCheckPointError.html\" title=\"struct bdk_chain::local_chain::AlterCheckPointError\">AlterCheckPointError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CannotConnectError.html\" title=\"struct bdk_chain::local_chain::CannotConnectError\">CannotConnectError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk_chain/local_chain/enum.ApplyHeaderError.html\" title=\"enum bdk_chain::local_chain::ApplyHeaderError\">ApplyHeaderError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk_chain/tx_graph/enum.CalculateFeeError.html\" title=\"enum bdk_chain::tx_graph::CalculateFeeError\">CalculateFeeError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>"]],
"bdk_coin_select":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.SelectionError.html\" title=\"struct bdk_coin_select::SelectionError\">SelectionError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.SelectionConstraint.html\" title=\"enum bdk_coin_select::SelectionConstraint\">SelectionConstraint</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.ExcessStrategyKind.html\" title=\"enum bdk_coin_select::ExcessStrategyKind\">ExcessStrategyKind</a>"]],
"bdk_file_store":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk_file_store/enum.IterError.html\" title=\"enum bdk_file_store::IterError\">IterError</a>"],["impl<C> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"bdk_file_store/struct.AggregateChangesetsError.html\" title=\"struct bdk_file_store::AggregateChangesetsError\">AggregateChangesetsError</a><C>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk_file_store/enum.FileError.html\" title=\"enum bdk_file_store::FileError\">FileError</a>"]],
"bdk_tmp_plan":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.SigningError.html\" title=\"enum bdk_tmp_plan::SigningError\">SigningError</a>"]],
+"bdk_wallet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/error/enum.Error.html\" title=\"enum bdk_wallet::descriptor::error::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk_wallet::descriptor::policy::PolicyError\">PolicyError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.KeyError.html\" title=\"enum bdk_wallet::keys::KeyError\">KeyError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/coin_selection/enum.Error.html\" title=\"enum bdk_wallet::wallet::coin_selection::Error\">Error</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/export/struct.FullyNodedExport.html\" title=\"struct bdk_wallet::wallet::export::FullyNodedExport\">FullyNodedExport</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerError.html\" title=\"enum bdk_wallet::wallet::signer::SignerError\">SignerError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AddUtxoError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AddUtxoError\">AddUtxoError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AddForeignUtxoError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AddForeignUtxoError\">AddForeignUtxoError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AllowShrinkingError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AllowShrinkingError\">AllowShrinkingError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.MiniscriptPsbtError.html\" title=\"enum bdk_wallet::wallet::error::MiniscriptPsbtError\">MiniscriptPsbtError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.CreateTxError.html\" title=\"enum bdk_wallet::wallet::error::CreateTxError\">CreateTxError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.BuildFeeBumpError.html\" title=\"enum bdk_wallet::wallet::error::BuildFeeBumpError\">BuildFeeBumpError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.AddressInfo.html\" title=\"struct bdk_wallet::wallet::AddressInfo\">AddressInfo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.NewError.html\" title=\"enum bdk_wallet::wallet::NewError\">NewError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.LoadError.html\" title=\"enum bdk_wallet::wallet::LoadError\">LoadError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.NewOrLoadError.html\" title=\"enum bdk_wallet::wallet::NewOrLoadError\">NewOrLoadError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.InsertTxError.html\" title=\"enum bdk_wallet::wallet::InsertTxError\">InsertTxError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.ApplyBlockError.html\" title=\"enum bdk_wallet::wallet::ApplyBlockError\">ApplyBlockError</a>"]],
"example_cli":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"example_cli/enum.CoinSelectionAlgo.html\" title=\"enum example_cli::CoinSelectionAlgo\">CoinSelectionAlgo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"example_cli/enum.Keychain.html\" title=\"enum example_cli::Keychain\">Keychain</a>"]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
(function() {var implementors = {
-"bdk":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk::descriptor::policy::PkOrF\">PkOrF</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Condition.html\" title=\"struct bdk::descriptor::policy::Condition\">Condition</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"bdk/enum.KeychainKind.html\" title=\"enum bdk::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"struct\" href=\"bdk/struct.LocalOutput.html\" title=\"struct bdk::LocalOutput\">LocalOutput</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerId.html\" title=\"enum bdk::wallet::signer::SignerId\">SignerId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk::wallet::tx_builder::TxOrdering\">TxOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>"]],
"bdk_chain":[["impl<A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"bdk_chain/enum.ChainPosition.html\" title=\"enum bdk_chain::ChainPosition\">ChainPosition</a><A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"bdk_chain/enum.ConfirmationTime.html\" title=\"enum bdk_chain::ConfirmationTime\">ConfirmationTime</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationHeightAnchor\">ConfirmationHeightAnchor</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>"]],
-"bdk_coin_select":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.ExcessStrategyKind.html\" title=\"enum bdk_coin_select::ExcessStrategyKind\">ExcessStrategyKind</a>"]]
+"bdk_coin_select":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.ExcessStrategyKind.html\" title=\"enum bdk_coin_select::ExcessStrategyKind\">ExcessStrategyKind</a>"]],
+"bdk_wallet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk_wallet::descriptor::policy::PkOrF\">PkOrF</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Condition.html\" title=\"struct bdk_wallet::descriptor::policy::Condition\">Condition</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"struct\" href=\"bdk_wallet/struct.LocalOutput.html\" title=\"struct bdk_wallet::LocalOutput\">LocalOutput</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerId.html\" title=\"enum bdk_wallet::wallet::signer::SignerId\">SignerId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk_wallet::wallet::tx_builder::TxOrdering\">TxOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>"]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
(function() {var implementors = {
-"bdk":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Condition.html\" title=\"struct bdk::descriptor::policy::Condition\">Condition</a>"],["impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.BuildSatisfaction.html\" title=\"enum bdk::descriptor::policy::BuildSatisfaction\">BuildSatisfaction</a><'a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"bdk/keys/enum.ScriptContextEnum.html\" title=\"enum bdk::keys::ScriptContextEnum\">ScriptContextEnum</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"struct\" href=\"bdk/keys/struct.PrivateKeyGenerateOptions.html\" title=\"struct bdk::keys::PrivateKeyGenerateOptions\">PrivateKeyGenerateOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"bdk/enum.KeychainKind.html\" title=\"enum bdk::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.LargestFirstCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::LargestFirstCoinSelection\">LargestFirstCoinSelection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.OldestFirstCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::OldestFirstCoinSelection\">OldestFirstCoinSelection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerContext.html\" title=\"enum bdk::wallet::signer::SignerContext\">SignerContext</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk::wallet::tx_builder::TxOrdering\">TxOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>"]],
"bdk_chain":[["impl<A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"bdk_chain/enum.ChainPosition.html\" title=\"enum bdk_chain::ChainPosition\">ChainPosition</a><A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"bdk_chain/enum.ConfirmationTime.html\" title=\"enum bdk_chain::ConfirmationTime\">ConfirmationTime</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationHeightAnchor\">ConfirmationHeightAnchor</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>"]],
"bdk_coin_select":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.WeightedValue.html\" title=\"struct bdk_coin_select::WeightedValue\">WeightedValue</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.CoinSelectorOpt.html\" title=\"struct bdk_coin_select::CoinSelectorOpt\">CoinSelectorOpt</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.SelectionConstraint.html\" title=\"enum bdk_coin_select::SelectionConstraint\">SelectionConstraint</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.ExcessStrategyKind.html\" title=\"enum bdk_coin_select::ExcessStrategyKind\">ExcessStrategyKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.ExcessStrategy.html\" title=\"struct bdk_coin_select::ExcessStrategy\">ExcessStrategy</a>"]],
+"bdk_wallet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Condition.html\" title=\"struct bdk_wallet::descriptor::policy::Condition\">Condition</a>"],["impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.BuildSatisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::BuildSatisfaction\">BuildSatisfaction</a><'a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.ScriptContextEnum.html\" title=\"enum bdk_wallet::keys::ScriptContextEnum\">ScriptContextEnum</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"struct\" href=\"bdk_wallet/keys/struct.PrivateKeyGenerateOptions.html\" title=\"struct bdk_wallet::keys::PrivateKeyGenerateOptions\">PrivateKeyGenerateOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.LargestFirstCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection\">LargestFirstCoinSelection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.OldestFirstCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection\">OldestFirstCoinSelection</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerContext.html\" title=\"enum bdk_wallet::wallet::signer::SignerContext\">SignerContext</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk_wallet::wallet::tx_builder::TxOrdering\">TxOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>"]],
"example_cli":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"example_cli/enum.Keychain.html\" title=\"enum example_cli::Keychain\">Keychain</a>"]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
(function() {var implementors = {
-"bdk":[["impl Freeze for <a class=\"enum\" href=\"bdk/descriptor/error/enum.Error.html\" title=\"enum bdk::descriptor::error::Error\">Error</a>",1,["bdk::descriptor::error::Error"]],["impl Freeze for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk::descriptor::policy::PkOrF\">PkOrF</a>",1,["bdk::descriptor::policy::PkOrF"]],["impl Freeze for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>",1,["bdk::descriptor::policy::SatisfiableItem"]],["impl Freeze for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk::descriptor::policy::Satisfaction\">Satisfaction</a>",1,["bdk::descriptor::policy::Satisfaction"]],["impl Freeze for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Policy.html\" title=\"struct bdk::descriptor::policy::Policy\">Policy</a>",1,["bdk::descriptor::policy::Policy"]],["impl Freeze for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Condition.html\" title=\"struct bdk::descriptor::policy::Condition\">Condition</a>",1,["bdk::descriptor::policy::Condition"]],["impl Freeze for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk::descriptor::policy::PolicyError\">PolicyError</a>",1,["bdk::descriptor::policy::PolicyError"]],["impl<'a> Freeze for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.BuildSatisfaction.html\" title=\"enum bdk::descriptor::policy::BuildSatisfaction\">BuildSatisfaction</a><'a>",1,["bdk::descriptor::policy::BuildSatisfaction"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2Pkh.html\" title=\"struct bdk::descriptor::template::P2Pkh\">P2Pkh</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk::descriptor::template::P2Pkh"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2Wpkh_P2Sh.html\" title=\"struct bdk::descriptor::template::P2Wpkh_P2Sh\">P2Wpkh_P2Sh</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk::descriptor::template::P2Wpkh_P2Sh"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2Wpkh.html\" title=\"struct bdk::descriptor::template::P2Wpkh\">P2Wpkh</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk::descriptor::template::P2Wpkh"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2TR.html\" title=\"struct bdk::descriptor::template::P2TR\">P2TR</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk::descriptor::template::P2TR"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip44.html\" title=\"struct bdk::descriptor::template::Bip44\">Bip44</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk::descriptor::template::Bip44"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip44Public.html\" title=\"struct bdk::descriptor::template::Bip44Public\">Bip44Public</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk::descriptor::template::Bip44Public"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip49.html\" title=\"struct bdk::descriptor::template::Bip49\">Bip49</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk::descriptor::template::Bip49"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip49Public.html\" title=\"struct bdk::descriptor::template::Bip49Public\">Bip49Public</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk::descriptor::template::Bip49Public"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip84.html\" title=\"struct bdk::descriptor::template::Bip84\">Bip84</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk::descriptor::template::Bip84"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip84Public.html\" title=\"struct bdk::descriptor::template::Bip84Public\">Bip84Public</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk::descriptor::template::Bip84Public"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip86.html\" title=\"struct bdk::descriptor::template::Bip86\">Bip86</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk::descriptor::template::Bip86"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip86Public.html\" title=\"struct bdk::descriptor::template::Bip86Public\">Bip86Public</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk::descriptor::template::Bip86Public"]],["impl<Ctx> Freeze for <a class=\"enum\" href=\"bdk/keys/enum.DescriptorKey.html\" title=\"enum bdk::keys::DescriptorKey\">DescriptorKey</a><Ctx>",1,["bdk::keys::DescriptorKey"]],["impl Freeze for <a class=\"enum\" href=\"bdk/keys/enum.ScriptContextEnum.html\" title=\"enum bdk::keys::ScriptContextEnum\">ScriptContextEnum</a>",1,["bdk::keys::ScriptContextEnum"]],["impl<Ctx> Freeze for <a class=\"enum\" href=\"bdk/keys/enum.ExtendedKey.html\" title=\"enum bdk::keys::ExtendedKey\">ExtendedKey</a><Ctx>",1,["bdk::keys::ExtendedKey"]],["impl<K, Ctx> Freeze for <a class=\"struct\" href=\"bdk/keys/struct.GeneratedKey.html\" title=\"struct bdk::keys::GeneratedKey\">GeneratedKey</a><K, Ctx><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk::keys::GeneratedKey"]],["impl Freeze for <a class=\"struct\" href=\"bdk/keys/struct.PrivateKeyGenerateOptions.html\" title=\"struct bdk::keys::PrivateKeyGenerateOptions\">PrivateKeyGenerateOptions</a>",1,["bdk::keys::PrivateKeyGenerateOptions"]],["impl Freeze for <a class=\"enum\" href=\"bdk/keys/enum.KeyError.html\" title=\"enum bdk::keys::KeyError\">KeyError</a>",1,["bdk::keys::KeyError"]],["impl Freeze for <a class=\"enum\" href=\"bdk/enum.KeychainKind.html\" title=\"enum bdk::KeychainKind\">KeychainKind</a>",1,["bdk::types::KeychainKind"]],["impl Freeze for <a class=\"struct\" href=\"bdk/struct.LocalOutput.html\" title=\"struct bdk::LocalOutput\">LocalOutput</a>",1,["bdk::types::LocalOutput"]],["impl Freeze for <a class=\"struct\" href=\"bdk/struct.WeightedUtxo.html\" title=\"struct bdk::WeightedUtxo\">WeightedUtxo</a>",1,["bdk::types::WeightedUtxo"]],["impl Freeze for <a class=\"enum\" href=\"bdk/enum.Utxo.html\" title=\"enum bdk::Utxo\">Utxo</a>",1,["bdk::types::Utxo"]],["impl Freeze for <a class=\"enum\" href=\"bdk/wallet/coin_selection/enum.Error.html\" title=\"enum bdk::wallet::coin_selection::Error\">Error</a>",1,["bdk::wallet::coin_selection::Error"]],["impl Freeze for <a class=\"enum\" href=\"bdk/wallet/coin_selection/enum.Excess.html\" title=\"enum bdk::wallet::coin_selection::Excess\">Excess</a>",1,["bdk::wallet::coin_selection::Excess"]],["impl Freeze for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.CoinSelectionResult.html\" title=\"struct bdk::wallet::coin_selection::CoinSelectionResult\">CoinSelectionResult</a>",1,["bdk::wallet::coin_selection::CoinSelectionResult"]],["impl Freeze for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.LargestFirstCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::LargestFirstCoinSelection\">LargestFirstCoinSelection</a>",1,["bdk::wallet::coin_selection::LargestFirstCoinSelection"]],["impl Freeze for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.OldestFirstCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::OldestFirstCoinSelection\">OldestFirstCoinSelection</a>",1,["bdk::wallet::coin_selection::OldestFirstCoinSelection"]],["impl Freeze for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::BranchAndBoundCoinSelection\">BranchAndBoundCoinSelection</a>",1,["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl Freeze for <a class=\"struct\" href=\"bdk/wallet/export/struct.FullyNodedExport.html\" title=\"struct bdk::wallet::export::FullyNodedExport\">FullyNodedExport</a>",1,["bdk::wallet::export::FullyNodedExport"]],["impl Freeze for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerId.html\" title=\"enum bdk::wallet::signer::SignerId\">SignerId</a>",1,["bdk::wallet::signer::SignerId"]],["impl Freeze for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerError.html\" title=\"enum bdk::wallet::signer::SignerError\">SignerError</a>",1,["bdk::wallet::signer::SignerError"]],["impl Freeze for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerContext.html\" title=\"enum bdk::wallet::signer::SignerContext\">SignerContext</a>",1,["bdk::wallet::signer::SignerContext"]],["impl<S> Freeze for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerWrapper.html\" title=\"struct bdk::wallet::signer::SignerWrapper\">SignerWrapper</a><S><span class=\"where fmt-newline\">where<br> S: Freeze,</span>",1,["bdk::wallet::signer::SignerWrapper"]],["impl Freeze for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk::wallet::signer::SignerOrdering\">SignerOrdering</a>",1,["bdk::wallet::signer::SignerOrdering"]],["impl Freeze for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignersContainer.html\" title=\"struct bdk::wallet::signer::SignersContainer\">SignersContainer</a>",1,["bdk::wallet::signer::SignersContainer"]],["impl Freeze for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignOptions.html\" title=\"struct bdk::wallet::signer::SignOptions\">SignOptions</a>",1,["bdk::wallet::signer::SignOptions"]],["impl Freeze for <a class=\"enum\" href=\"bdk/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>",1,["bdk::wallet::signer::TapLeavesOptions"]],["impl Freeze for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.CreateTx.html\" title=\"struct bdk::wallet::tx_builder::CreateTx\">CreateTx</a>",1,["bdk::wallet::tx_builder::CreateTx"]],["impl Freeze for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.BumpFee.html\" title=\"struct bdk::wallet::tx_builder::BumpFee\">BumpFee</a>",1,["bdk::wallet::tx_builder::BumpFee"]],["impl<'a, Cs, Ctx> Freeze for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.TxBuilder.html\" title=\"struct bdk::wallet::tx_builder::TxBuilder\">TxBuilder</a><'a, Cs, Ctx><span class=\"where fmt-newline\">where<br> Cs: Freeze,</span>",1,["bdk::wallet::tx_builder::TxBuilder"]],["impl Freeze for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AddUtxoError.html\" title=\"enum bdk::wallet::tx_builder::AddUtxoError\">AddUtxoError</a>",1,["bdk::wallet::tx_builder::AddUtxoError"]],["impl Freeze for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AddForeignUtxoError.html\" title=\"enum bdk::wallet::tx_builder::AddForeignUtxoError\">AddForeignUtxoError</a>",1,["bdk::wallet::tx_builder::AddForeignUtxoError"]],["impl Freeze for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AllowShrinkingError.html\" title=\"enum bdk::wallet::tx_builder::AllowShrinkingError\">AllowShrinkingError</a>",1,["bdk::wallet::tx_builder::AllowShrinkingError"]],["impl Freeze for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk::wallet::tx_builder::TxOrdering\">TxOrdering</a>",1,["bdk::wallet::tx_builder::TxOrdering"]],["impl Freeze for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>",1,["bdk::wallet::tx_builder::ChangeSpendPolicy"]],["impl Freeze for <a class=\"enum\" href=\"bdk/wallet/error/enum.MiniscriptPsbtError.html\" title=\"enum bdk::wallet::error::MiniscriptPsbtError\">MiniscriptPsbtError</a>",1,["bdk::wallet::error::MiniscriptPsbtError"]],["impl Freeze for <a class=\"enum\" href=\"bdk/wallet/error/enum.CreateTxError.html\" title=\"enum bdk::wallet::error::CreateTxError\">CreateTxError</a>",1,["bdk::wallet::error::CreateTxError"]],["impl Freeze for <a class=\"enum\" href=\"bdk/wallet/error/enum.BuildFeeBumpError.html\" title=\"enum bdk::wallet::error::BuildFeeBumpError\">BuildFeeBumpError</a>",1,["bdk::wallet::error::BuildFeeBumpError"]],["impl Freeze for <a class=\"struct\" href=\"bdk/wallet/struct.Wallet.html\" title=\"struct bdk::wallet::Wallet\">Wallet</a>",1,["bdk::wallet::Wallet"]],["impl Freeze for <a class=\"struct\" href=\"bdk/wallet/struct.Update.html\" title=\"struct bdk::wallet::Update\">Update</a>",1,["bdk::wallet::Update"]],["impl Freeze for <a class=\"struct\" href=\"bdk/wallet/struct.ChangeSet.html\" title=\"struct bdk::wallet::ChangeSet\">ChangeSet</a>",1,["bdk::wallet::ChangeSet"]],["impl Freeze for <a class=\"struct\" href=\"bdk/wallet/struct.AddressInfo.html\" title=\"struct bdk::wallet::AddressInfo\">AddressInfo</a>",1,["bdk::wallet::AddressInfo"]],["impl Freeze for <a class=\"enum\" href=\"bdk/wallet/enum.NewError.html\" title=\"enum bdk::wallet::NewError\">NewError</a>",1,["bdk::wallet::NewError"]],["impl Freeze for <a class=\"enum\" href=\"bdk/wallet/enum.LoadError.html\" title=\"enum bdk::wallet::LoadError\">LoadError</a>",1,["bdk::wallet::LoadError"]],["impl !Freeze for <a class=\"enum\" href=\"bdk/wallet/enum.NewOrLoadError.html\" title=\"enum bdk::wallet::NewOrLoadError\">NewOrLoadError</a>",1,["bdk::wallet::NewOrLoadError"]],["impl Freeze for <a class=\"enum\" href=\"bdk/wallet/enum.InsertTxError.html\" title=\"enum bdk::wallet::InsertTxError\">InsertTxError</a>",1,["bdk::wallet::InsertTxError"]],["impl Freeze for <a class=\"enum\" href=\"bdk/wallet/enum.ApplyBlockError.html\" title=\"enum bdk::wallet::ApplyBlockError\">ApplyBlockError</a>",1,["bdk::wallet::ApplyBlockError"]]],
"bdk_bitcoind_rpc":[["impl<'c, C> Freeze for <a class=\"struct\" href=\"bdk_bitcoind_rpc/struct.Emitter.html\" title=\"struct bdk_bitcoind_rpc::Emitter\">Emitter</a><'c, C>",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> Freeze for <a class=\"struct\" href=\"bdk_bitcoind_rpc/struct.BlockEvent.html\" title=\"struct bdk_bitcoind_rpc::BlockEvent\">BlockEvent</a><B><span class=\"where fmt-newline\">where<br> B: Freeze,</span>",1,["bdk_bitcoind_rpc::BlockEvent"]]],
"bdk_chain":[["impl<I> Freeze for <a class=\"struct\" href=\"bdk_chain/struct.SpkTxOutIndex.html\" title=\"struct bdk_chain::SpkTxOutIndex\">SpkTxOutIndex</a><I>",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<A> Freeze for <a class=\"enum\" href=\"bdk_chain/enum.ChainPosition.html\" title=\"enum bdk_chain::ChainPosition\">ChainPosition</a><A><span class=\"where fmt-newline\">where<br> A: Freeze,</span>",1,["bdk_chain::chain_data::ChainPosition"]],["impl Freeze for <a class=\"enum\" href=\"bdk_chain/enum.ConfirmationTime.html\" title=\"enum bdk_chain::ConfirmationTime\">ConfirmationTime</a>",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl Freeze for <a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>",1,["bdk_chain::chain_data::BlockId"]],["impl Freeze for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationHeightAnchor\">ConfirmationHeightAnchor</a>",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl Freeze for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl<A> Freeze for <a class=\"struct\" href=\"bdk_chain/struct.FullTxOut.html\" title=\"struct bdk_chain::FullTxOut\">FullTxOut</a><A><span class=\"where fmt-newline\">where<br> A: Freeze,</span>",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A, I> Freeze for <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\">IndexedTxGraph</a><A, I><span class=\"where fmt-newline\">where<br> I: Freeze,</span>",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> Freeze for <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, IA><span class=\"where fmt-newline\">where<br> IA: Freeze,</span>",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk_chain/keychain/struct.ChangeSet.html\" title=\"struct bdk_chain::keychain::ChangeSet\">ChangeSet</a><K>",1,["bdk_chain::keychain::txout_index::ChangeSet"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk_chain/keychain/struct.KeychainTxOutIndex.html\" title=\"struct bdk_chain::keychain::KeychainTxOutIndex\">KeychainTxOutIndex</a><K>",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl Freeze for <a class=\"struct\" href=\"bdk_chain/keychain/struct.Balance.html\" title=\"struct bdk_chain::keychain::Balance\">Balance</a>",1,["bdk_chain::keychain::Balance"]],["impl Freeze for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CheckPoint.html\" title=\"struct bdk_chain::local_chain::CheckPoint\">CheckPoint</a>",1,["bdk_chain::local_chain::CheckPoint"]],["impl Freeze for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CheckPointIter.html\" title=\"struct bdk_chain::local_chain::CheckPointIter\">CheckPointIter</a>",1,["bdk_chain::local_chain::CheckPointIter"]],["impl Freeze for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.LocalChain.html\" title=\"struct bdk_chain::local_chain::LocalChain\">LocalChain</a>",1,["bdk_chain::local_chain::LocalChain"]],["impl Freeze for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.MissingGenesisError.html\" title=\"struct bdk_chain::local_chain::MissingGenesisError\">MissingGenesisError</a>",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl Freeze for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.AlterCheckPointError.html\" title=\"struct bdk_chain::local_chain::AlterCheckPointError\">AlterCheckPointError</a>",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl Freeze for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CannotConnectError.html\" title=\"struct bdk_chain::local_chain::CannotConnectError\">CannotConnectError</a>",1,["bdk_chain::local_chain::CannotConnectError"]],["impl Freeze for <a class=\"enum\" href=\"bdk_chain/local_chain/enum.ApplyHeaderError.html\" title=\"enum bdk_chain::local_chain::ApplyHeaderError\">ApplyHeaderError</a>",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl<A> Freeze for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\">TxGraph</a><A>",1,["bdk_chain::tx_graph::TxGraph"]],["impl<'a, T, A> Freeze for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxNode.html\" title=\"struct bdk_chain::tx_graph::TxNode\">TxNode</a><'a, T, A><span class=\"where fmt-newline\">where<br> T: Freeze,</span>",1,["bdk_chain::tx_graph::TxNode"]],["impl<'a, T, A> Freeze for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.CanonicalTx.html\" title=\"struct bdk_chain::tx_graph::CanonicalTx\">CanonicalTx</a><'a, T, A><span class=\"where fmt-newline\">where<br> T: Freeze,</span>",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl Freeze for <a class=\"enum\" href=\"bdk_chain/tx_graph/enum.CalculateFeeError.html\" title=\"enum bdk_chain::tx_graph::CalculateFeeError\">CalculateFeeError</a>",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl<A> Freeze for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::tx_graph::ChangeSet\">ChangeSet</a><A>",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<'g, A, F> Freeze for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxAncestors.html\" title=\"struct bdk_chain::tx_graph::TxAncestors\">TxAncestors</a><'g, A, F><span class=\"where fmt-newline\">where<br> F: Freeze,</span>",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> Freeze for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxDescendants.html\" title=\"struct bdk_chain::tx_graph::TxDescendants\">TxDescendants</a><'g, A, F><span class=\"where fmt-newline\">where<br> F: Freeze,</span>",1,["bdk_chain::tx_graph::TxDescendants"]],["impl Freeze for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<D> Freeze for <a class=\"struct\" href=\"bdk_chain/struct.SpkIterator.html\" title=\"struct bdk_chain::SpkIterator\">SpkIterator</a><D><span class=\"where fmt-newline\">where<br> D: Freeze,</span>",1,["bdk_chain::spk_iter::SpkIterator"]],["impl Freeze for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.SyncRequest.html\" title=\"struct bdk_chain::spk_client::SyncRequest\">SyncRequest</a>",1,["bdk_chain::spk_client::SyncRequest"]],["impl<A> Freeze for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.SyncResult.html\" title=\"struct bdk_chain::spk_client::SyncResult\">SyncResult</a><A>",1,["bdk_chain::spk_client::SyncResult"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.FullScanRequest.html\" title=\"struct bdk_chain::spk_client::FullScanRequest\">FullScanRequest</a><K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K, A> Freeze for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.FullScanResult.html\" title=\"struct bdk_chain::spk_client::FullScanResult\">FullScanResult</a><K, A>",1,["bdk_chain::spk_client::FullScanResult"]]],
"bdk_coin_select":[["impl Freeze for <a class=\"struct\" href=\"bdk_coin_select/struct.WeightedValue.html\" title=\"struct bdk_coin_select::WeightedValue\">WeightedValue</a>",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl Freeze for <a class=\"struct\" href=\"bdk_coin_select/struct.CoinSelectorOpt.html\" title=\"struct bdk_coin_select::CoinSelectorOpt\">CoinSelectorOpt</a>",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl<'a> Freeze for <a class=\"struct\" href=\"bdk_coin_select/struct.CoinSelector.html\" title=\"struct bdk_coin_select::CoinSelector\">CoinSelector</a><'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl Freeze for <a class=\"struct\" href=\"bdk_coin_select/struct.SelectionError.html\" title=\"struct bdk_coin_select::SelectionError\">SelectionError</a>",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl Freeze for <a class=\"enum\" href=\"bdk_coin_select/enum.SelectionConstraint.html\" title=\"enum bdk_coin_select::SelectionConstraint\">SelectionConstraint</a>",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl Freeze for <a class=\"struct\" href=\"bdk_coin_select/struct.Selection.html\" title=\"struct bdk_coin_select::Selection\">Selection</a>",1,["bdk_coin_select::coin_selector::Selection"]],["impl Freeze for <a class=\"enum\" href=\"bdk_coin_select/enum.ExcessStrategyKind.html\" title=\"enum bdk_coin_select::ExcessStrategyKind\">ExcessStrategyKind</a>",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl Freeze for <a class=\"struct\" href=\"bdk_coin_select/struct.ExcessStrategy.html\" title=\"struct bdk_coin_select::ExcessStrategy\">ExcessStrategy</a>",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl Freeze for <a class=\"enum\" href=\"bdk_coin_select/enum.BranchStrategy.html\" title=\"enum bdk_coin_select::BranchStrategy\">BranchStrategy</a>",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl<'c, S> Freeze for <a class=\"struct\" href=\"bdk_coin_select/struct.Bnb.html\" title=\"struct bdk_coin_select::Bnb\">Bnb</a><'c, S><span class=\"where fmt-newline\">where<br> S: Freeze,</span>",1,["bdk_coin_select::bnb::Bnb"]],["impl<'c, 'f, S> Freeze for <a class=\"struct\" href=\"bdk_coin_select/struct.BnbIter.html\" title=\"struct bdk_coin_select::BnbIter\">BnbIter</a><'c, 'f, S><span class=\"where fmt-newline\">where<br> S: Freeze,</span>",1,["bdk_coin_select::bnb::BnbIter"]],["impl Freeze for <a class=\"enum\" href=\"bdk_coin_select/enum.BnbLimit.html\" title=\"enum bdk_coin_select::BnbLimit\">BnbLimit</a>",1,["bdk_coin_select::bnb::BnbLimit"]]],
"bdk_persist":[["impl<C> Freeze for <a class=\"struct\" href=\"bdk_persist/struct.Persist.html\" title=\"struct bdk_persist::Persist\">Persist</a><C><span class=\"where fmt-newline\">where<br> C: Freeze,</span>",1,["bdk_persist::persist::Persist"]]],
"bdk_testenv":[["impl !Freeze for <a class=\"struct\" href=\"bdk_testenv/struct.TestEnv.html\" title=\"struct bdk_testenv::TestEnv\">TestEnv</a>",1,["bdk_testenv::TestEnv"]]],
"bdk_tmp_plan":[["impl<Ak> Freeze for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Requirements.html\" title=\"struct bdk_tmp_plan::Requirements\">Requirements</a><Ak><span class=\"where fmt-newline\">where<br> Ak: Freeze,</span>",1,["bdk_tmp_plan::requirements::Requirements"]],["impl<Ak> Freeze for <a class=\"enum\" href=\"bdk_tmp_plan/enum.RequiredSignatures.html\" title=\"enum bdk_tmp_plan::RequiredSignatures\">RequiredSignatures</a><Ak><span class=\"where fmt-newline\">where<br> Ak: Freeze,</span>",1,["bdk_tmp_plan::requirements::RequiredSignatures"]],["impl Freeze for <a class=\"enum\" href=\"bdk_tmp_plan/enum.SigningError.html\" title=\"enum bdk_tmp_plan::SigningError\">SigningError</a>",1,["bdk_tmp_plan::requirements::SigningError"]],["impl<Ak> Freeze for <a class=\"struct\" href=\"bdk_tmp_plan/struct.PlanKey.html\" title=\"struct bdk_tmp_plan::PlanKey\">PlanKey</a><Ak><span class=\"where fmt-newline\">where<br> Ak: Freeze,</span>",1,["bdk_tmp_plan::template::PlanKey"]],["impl<AK> !Freeze for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Plan.html\" title=\"struct bdk_tmp_plan::Plan\">Plan</a><AK>",1,["bdk_tmp_plan::Plan"]],["impl Freeze for <a class=\"struct\" href=\"bdk_tmp_plan/struct.SatisfactionMaterial.html\" title=\"struct bdk_tmp_plan::SatisfactionMaterial\">SatisfactionMaterial</a>",1,["bdk_tmp_plan::SatisfactionMaterial"]],["impl<Ak> Freeze for <a class=\"enum\" href=\"bdk_tmp_plan/enum.PlanState.html\" title=\"enum bdk_tmp_plan::PlanState\">PlanState</a><Ak><span class=\"where fmt-newline\">where<br> Ak: Freeze,</span>",1,["bdk_tmp_plan::PlanState"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Assets.html\" title=\"struct bdk_tmp_plan::Assets\">Assets</a><K>",1,["bdk_tmp_plan::Assets"]]],
+"bdk_wallet":[["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/descriptor/error/enum.Error.html\" title=\"enum bdk_wallet::descriptor::error::Error\">Error</a>",1,["bdk_wallet::descriptor::error::Error"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk_wallet::descriptor::policy::PkOrF\">PkOrF</a>",1,["bdk_wallet::descriptor::policy::PkOrF"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk_wallet::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>",1,["bdk_wallet::descriptor::policy::SatisfiableItem"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::Satisfaction\">Satisfaction</a>",1,["bdk_wallet::descriptor::policy::Satisfaction"]],["impl Freeze for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Policy.html\" title=\"struct bdk_wallet::descriptor::policy::Policy\">Policy</a>",1,["bdk_wallet::descriptor::policy::Policy"]],["impl Freeze for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Condition.html\" title=\"struct bdk_wallet::descriptor::policy::Condition\">Condition</a>",1,["bdk_wallet::descriptor::policy::Condition"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk_wallet::descriptor::policy::PolicyError\">PolicyError</a>",1,["bdk_wallet::descriptor::policy::PolicyError"]],["impl<'a> Freeze for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.BuildSatisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::BuildSatisfaction\">BuildSatisfaction</a><'a>",1,["bdk_wallet::descriptor::policy::BuildSatisfaction"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2Pkh.html\" title=\"struct bdk_wallet::descriptor::template::P2Pkh\">P2Pkh</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk_wallet::descriptor::template::P2Pkh"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2Wpkh_P2Sh.html\" title=\"struct bdk_wallet::descriptor::template::P2Wpkh_P2Sh\">P2Wpkh_P2Sh</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk_wallet::descriptor::template::P2Wpkh_P2Sh"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2Wpkh.html\" title=\"struct bdk_wallet::descriptor::template::P2Wpkh\">P2Wpkh</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk_wallet::descriptor::template::P2Wpkh"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2TR.html\" title=\"struct bdk_wallet::descriptor::template::P2TR\">P2TR</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk_wallet::descriptor::template::P2TR"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip44.html\" title=\"struct bdk_wallet::descriptor::template::Bip44\">Bip44</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk_wallet::descriptor::template::Bip44"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip44Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip44Public\">Bip44Public</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk_wallet::descriptor::template::Bip44Public"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip49.html\" title=\"struct bdk_wallet::descriptor::template::Bip49\">Bip49</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk_wallet::descriptor::template::Bip49"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip49Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip49Public\">Bip49Public</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk_wallet::descriptor::template::Bip49Public"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip84.html\" title=\"struct bdk_wallet::descriptor::template::Bip84\">Bip84</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk_wallet::descriptor::template::Bip84"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip84Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip84Public\">Bip84Public</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk_wallet::descriptor::template::Bip84Public"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip86.html\" title=\"struct bdk_wallet::descriptor::template::Bip86\">Bip86</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk_wallet::descriptor::template::Bip86"]],["impl<K> Freeze for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip86Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip86Public\">Bip86Public</a><K><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk_wallet::descriptor::template::Bip86Public"]],["impl<Ctx> Freeze for <a class=\"enum\" href=\"bdk_wallet/keys/enum.DescriptorKey.html\" title=\"enum bdk_wallet::keys::DescriptorKey\">DescriptorKey</a><Ctx>",1,["bdk_wallet::keys::DescriptorKey"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/keys/enum.ScriptContextEnum.html\" title=\"enum bdk_wallet::keys::ScriptContextEnum\">ScriptContextEnum</a>",1,["bdk_wallet::keys::ScriptContextEnum"]],["impl<Ctx> Freeze for <a class=\"enum\" href=\"bdk_wallet/keys/enum.ExtendedKey.html\" title=\"enum bdk_wallet::keys::ExtendedKey\">ExtendedKey</a><Ctx>",1,["bdk_wallet::keys::ExtendedKey"]],["impl<K, Ctx> Freeze for <a class=\"struct\" href=\"bdk_wallet/keys/struct.GeneratedKey.html\" title=\"struct bdk_wallet::keys::GeneratedKey\">GeneratedKey</a><K, Ctx><span class=\"where fmt-newline\">where<br> K: Freeze,</span>",1,["bdk_wallet::keys::GeneratedKey"]],["impl Freeze for <a class=\"struct\" href=\"bdk_wallet/keys/struct.PrivateKeyGenerateOptions.html\" title=\"struct bdk_wallet::keys::PrivateKeyGenerateOptions\">PrivateKeyGenerateOptions</a>",1,["bdk_wallet::keys::PrivateKeyGenerateOptions"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/keys/enum.KeyError.html\" title=\"enum bdk_wallet::keys::KeyError\">KeyError</a>",1,["bdk_wallet::keys::KeyError"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>",1,["bdk_wallet::types::KeychainKind"]],["impl Freeze for <a class=\"struct\" href=\"bdk_wallet/struct.LocalOutput.html\" title=\"struct bdk_wallet::LocalOutput\">LocalOutput</a>",1,["bdk_wallet::types::LocalOutput"]],["impl Freeze for <a class=\"struct\" href=\"bdk_wallet/struct.WeightedUtxo.html\" title=\"struct bdk_wallet::WeightedUtxo\">WeightedUtxo</a>",1,["bdk_wallet::types::WeightedUtxo"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/enum.Utxo.html\" title=\"enum bdk_wallet::Utxo\">Utxo</a>",1,["bdk_wallet::types::Utxo"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/wallet/coin_selection/enum.Error.html\" title=\"enum bdk_wallet::wallet::coin_selection::Error\">Error</a>",1,["bdk_wallet::wallet::coin_selection::Error"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/wallet/coin_selection/enum.Excess.html\" title=\"enum bdk_wallet::wallet::coin_selection::Excess\">Excess</a>",1,["bdk_wallet::wallet::coin_selection::Excess"]],["impl Freeze for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.CoinSelectionResult.html\" title=\"struct bdk_wallet::wallet::coin_selection::CoinSelectionResult\">CoinSelectionResult</a>",1,["bdk_wallet::wallet::coin_selection::CoinSelectionResult"]],["impl Freeze for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.LargestFirstCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection\">LargestFirstCoinSelection</a>",1,["bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection"]],["impl Freeze for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.OldestFirstCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection\">OldestFirstCoinSelection</a>",1,["bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection"]],["impl Freeze for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection\">BranchAndBoundCoinSelection</a>",1,["bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl Freeze for <a class=\"struct\" href=\"bdk_wallet/wallet/export/struct.FullyNodedExport.html\" title=\"struct bdk_wallet::wallet::export::FullyNodedExport\">FullyNodedExport</a>",1,["bdk_wallet::wallet::export::FullyNodedExport"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerId.html\" title=\"enum bdk_wallet::wallet::signer::SignerId\">SignerId</a>",1,["bdk_wallet::wallet::signer::SignerId"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerError.html\" title=\"enum bdk_wallet::wallet::signer::SignerError\">SignerError</a>",1,["bdk_wallet::wallet::signer::SignerError"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerContext.html\" title=\"enum bdk_wallet::wallet::signer::SignerContext\">SignerContext</a>",1,["bdk_wallet::wallet::signer::SignerContext"]],["impl<S> Freeze for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerWrapper.html\" title=\"struct bdk_wallet::wallet::signer::SignerWrapper\">SignerWrapper</a><S><span class=\"where fmt-newline\">where<br> S: Freeze,</span>",1,["bdk_wallet::wallet::signer::SignerWrapper"]],["impl Freeze for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk_wallet::wallet::signer::SignerOrdering\">SignerOrdering</a>",1,["bdk_wallet::wallet::signer::SignerOrdering"]],["impl Freeze for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignersContainer.html\" title=\"struct bdk_wallet::wallet::signer::SignersContainer\">SignersContainer</a>",1,["bdk_wallet::wallet::signer::SignersContainer"]],["impl Freeze for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignOptions.html\" title=\"struct bdk_wallet::wallet::signer::SignOptions\">SignOptions</a>",1,["bdk_wallet::wallet::signer::SignOptions"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk_wallet::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>",1,["bdk_wallet::wallet::signer::TapLeavesOptions"]],["impl Freeze for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.CreateTx.html\" title=\"struct bdk_wallet::wallet::tx_builder::CreateTx\">CreateTx</a>",1,["bdk_wallet::wallet::tx_builder::CreateTx"]],["impl Freeze for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.BumpFee.html\" title=\"struct bdk_wallet::wallet::tx_builder::BumpFee\">BumpFee</a>",1,["bdk_wallet::wallet::tx_builder::BumpFee"]],["impl<'a, Cs, Ctx> Freeze for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.TxBuilder.html\" title=\"struct bdk_wallet::wallet::tx_builder::TxBuilder\">TxBuilder</a><'a, Cs, Ctx><span class=\"where fmt-newline\">where<br> Cs: Freeze,</span>",1,["bdk_wallet::wallet::tx_builder::TxBuilder"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AddUtxoError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AddUtxoError\">AddUtxoError</a>",1,["bdk_wallet::wallet::tx_builder::AddUtxoError"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AddForeignUtxoError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AddForeignUtxoError\">AddForeignUtxoError</a>",1,["bdk_wallet::wallet::tx_builder::AddForeignUtxoError"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AllowShrinkingError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AllowShrinkingError\">AllowShrinkingError</a>",1,["bdk_wallet::wallet::tx_builder::AllowShrinkingError"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk_wallet::wallet::tx_builder::TxOrdering\">TxOrdering</a>",1,["bdk_wallet::wallet::tx_builder::TxOrdering"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>",1,["bdk_wallet::wallet::tx_builder::ChangeSpendPolicy"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.MiniscriptPsbtError.html\" title=\"enum bdk_wallet::wallet::error::MiniscriptPsbtError\">MiniscriptPsbtError</a>",1,["bdk_wallet::wallet::error::MiniscriptPsbtError"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.CreateTxError.html\" title=\"enum bdk_wallet::wallet::error::CreateTxError\">CreateTxError</a>",1,["bdk_wallet::wallet::error::CreateTxError"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.BuildFeeBumpError.html\" title=\"enum bdk_wallet::wallet::error::BuildFeeBumpError\">BuildFeeBumpError</a>",1,["bdk_wallet::wallet::error::BuildFeeBumpError"]],["impl Freeze for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.Wallet.html\" title=\"struct bdk_wallet::wallet::Wallet\">Wallet</a>",1,["bdk_wallet::wallet::Wallet"]],["impl Freeze for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.Update.html\" title=\"struct bdk_wallet::wallet::Update\">Update</a>",1,["bdk_wallet::wallet::Update"]],["impl Freeze for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.ChangeSet.html\" title=\"struct bdk_wallet::wallet::ChangeSet\">ChangeSet</a>",1,["bdk_wallet::wallet::ChangeSet"]],["impl Freeze for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.AddressInfo.html\" title=\"struct bdk_wallet::wallet::AddressInfo\">AddressInfo</a>",1,["bdk_wallet::wallet::AddressInfo"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.NewError.html\" title=\"enum bdk_wallet::wallet::NewError\">NewError</a>",1,["bdk_wallet::wallet::NewError"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.LoadError.html\" title=\"enum bdk_wallet::wallet::LoadError\">LoadError</a>",1,["bdk_wallet::wallet::LoadError"]],["impl !Freeze for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.NewOrLoadError.html\" title=\"enum bdk_wallet::wallet::NewOrLoadError\">NewOrLoadError</a>",1,["bdk_wallet::wallet::NewOrLoadError"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.InsertTxError.html\" title=\"enum bdk_wallet::wallet::InsertTxError\">InsertTxError</a>",1,["bdk_wallet::wallet::InsertTxError"]],["impl Freeze for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.ApplyBlockError.html\" title=\"enum bdk_wallet::wallet::ApplyBlockError\">ApplyBlockError</a>",1,["bdk_wallet::wallet::ApplyBlockError"]]],
"example_bitcoind_rpc_polling":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</a> for <a class=\"enum\" href=\"example_bitcoind_rpc_polling/enum.Emission.html\" title=\"enum example_bitcoind_rpc_polling::Emission\">Emission</a>",1,["example_bitcoind_rpc_polling::Emission"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</a> for <a class=\"struct\" href=\"example_bitcoind_rpc_polling/struct.RpcArgs.html\" title=\"struct example_bitcoind_rpc_polling::RpcArgs\">RpcArgs</a>",1,["example_bitcoind_rpc_polling::RpcArgs"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</a> for <a class=\"enum\" href=\"example_bitcoind_rpc_polling/enum.RpcCommands.html\" title=\"enum example_bitcoind_rpc_polling::RpcCommands\">RpcCommands</a>",1,["example_bitcoind_rpc_polling::RpcCommands"]]],
"example_cli":[["impl<CS, S> Freeze for <a class=\"struct\" href=\"example_cli/struct.Args.html\" title=\"struct example_cli::Args\">Args</a><CS, S><span class=\"where fmt-newline\">where<br> CS: Freeze,<br> S: Freeze,</span>",1,["example_cli::Args"]],["impl<CS, S> Freeze for <a class=\"enum\" href=\"example_cli/enum.Commands.html\" title=\"enum example_cli::Commands\">Commands</a><CS, S><span class=\"where fmt-newline\">where<br> CS: Freeze,<br> S: Freeze,</span>",1,["example_cli::Commands"]],["impl Freeze for <a class=\"enum\" href=\"example_cli/enum.CoinSelectionAlgo.html\" title=\"enum example_cli::CoinSelectionAlgo\">CoinSelectionAlgo</a>",1,["example_cli::CoinSelectionAlgo"]],["impl Freeze for <a class=\"enum\" href=\"example_cli/enum.AddressCmd.html\" title=\"enum example_cli::AddressCmd\">AddressCmd</a>",1,["example_cli::AddressCmd"]],["impl Freeze for <a class=\"enum\" href=\"example_cli/enum.TxOutCmd.html\" title=\"enum example_cli::TxOutCmd\">TxOutCmd</a>",1,["example_cli::TxOutCmd"]],["impl Freeze for <a class=\"enum\" href=\"example_cli/enum.Keychain.html\" title=\"enum example_cli::Keychain\">Keychain</a>",1,["example_cli::Keychain"]],["impl Freeze for <a class=\"struct\" href=\"example_cli/struct.CreateTxChange.html\" title=\"struct example_cli::CreateTxChange\">CreateTxChange</a>",1,["example_cli::CreateTxChange"]],["impl<CS, S, C> !Freeze for <a class=\"struct\" href=\"example_cli/struct.Init.html\" title=\"struct example_cli::Init\">Init</a><CS, S, C>",1,["example_cli::Init"]]],
"example_electrum":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</a> for <a class=\"enum\" href=\"example_electrum/enum.ElectrumCommands.html\" title=\"enum example_electrum::ElectrumCommands\">ElectrumCommands</a>",1,["example_electrum::ElectrumCommands"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</a> for <a class=\"struct\" href=\"example_electrum/struct.ElectrumArgs.html\" title=\"struct example_electrum::ElectrumArgs\">ElectrumArgs</a>",1,["example_electrum::ElectrumArgs"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\" title=\"trait core::marker::Freeze\">Freeze</a> for <a class=\"struct\" href=\"example_electrum/struct.ScanOptions.html\" title=\"struct example_electrum::ScanOptions\">ScanOptions</a>",1,["example_electrum::ScanOptions"]]],
(function() {var implementors = {
-"bdk":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/descriptor/error/enum.Error.html\" title=\"enum bdk::descriptor::error::Error\">Error</a>",1,["bdk::descriptor::error::Error"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk::descriptor::policy::PkOrF\">PkOrF</a>",1,["bdk::descriptor::policy::PkOrF"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>",1,["bdk::descriptor::policy::SatisfiableItem"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk::descriptor::policy::Satisfaction\">Satisfaction</a>",1,["bdk::descriptor::policy::Satisfaction"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Policy.html\" title=\"struct bdk::descriptor::policy::Policy\">Policy</a>",1,["bdk::descriptor::policy::Policy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Condition.html\" title=\"struct bdk::descriptor::policy::Condition\">Condition</a>",1,["bdk::descriptor::policy::Condition"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk::descriptor::policy::PolicyError\">PolicyError</a>",1,["bdk::descriptor::policy::PolicyError"]],["impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.BuildSatisfaction.html\" title=\"enum bdk::descriptor::policy::BuildSatisfaction\">BuildSatisfaction</a><'a>",1,["bdk::descriptor::policy::BuildSatisfaction"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2Pkh.html\" title=\"struct bdk::descriptor::template::P2Pkh\">P2Pkh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk::descriptor::template::P2Pkh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2Wpkh_P2Sh.html\" title=\"struct bdk::descriptor::template::P2Wpkh_P2Sh\">P2Wpkh_P2Sh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk::descriptor::template::P2Wpkh_P2Sh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2Wpkh.html\" title=\"struct bdk::descriptor::template::P2Wpkh\">P2Wpkh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk::descriptor::template::P2Wpkh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2TR.html\" title=\"struct bdk::descriptor::template::P2TR\">P2TR</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk::descriptor::template::P2TR"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip44.html\" title=\"struct bdk::descriptor::template::Bip44\">Bip44</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk::descriptor::template::Bip44"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip44Public.html\" title=\"struct bdk::descriptor::template::Bip44Public\">Bip44Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk::descriptor::template::Bip44Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip49.html\" title=\"struct bdk::descriptor::template::Bip49\">Bip49</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk::descriptor::template::Bip49"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip49Public.html\" title=\"struct bdk::descriptor::template::Bip49Public\">Bip49Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk::descriptor::template::Bip49Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip84.html\" title=\"struct bdk::descriptor::template::Bip84\">Bip84</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk::descriptor::template::Bip84"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip84Public.html\" title=\"struct bdk::descriptor::template::Bip84Public\">Bip84Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk::descriptor::template::Bip84Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip86.html\" title=\"struct bdk::descriptor::template::Bip86\">Bip86</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk::descriptor::template::Bip86"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip86Public.html\" title=\"struct bdk::descriptor::template::Bip86Public\">Bip86Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk::descriptor::template::Bip86Public"]],["impl<Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/keys/enum.DescriptorKey.html\" title=\"enum bdk::keys::DescriptorKey\">DescriptorKey</a><Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk::keys::DescriptorKey"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/keys/enum.ScriptContextEnum.html\" title=\"enum bdk::keys::ScriptContextEnum\">ScriptContextEnum</a>",1,["bdk::keys::ScriptContextEnum"]],["impl<Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/keys/enum.ExtendedKey.html\" title=\"enum bdk::keys::ExtendedKey\">ExtendedKey</a><Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk::keys::ExtendedKey"]],["impl<K, Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/keys/struct.GeneratedKey.html\" title=\"struct bdk::keys::GeneratedKey\">GeneratedKey</a><K, Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk::keys::GeneratedKey"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/keys/struct.PrivateKeyGenerateOptions.html\" title=\"struct bdk::keys::PrivateKeyGenerateOptions\">PrivateKeyGenerateOptions</a>",1,["bdk::keys::PrivateKeyGenerateOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/keys/enum.KeyError.html\" title=\"enum bdk::keys::KeyError\">KeyError</a>",1,["bdk::keys::KeyError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/enum.KeychainKind.html\" title=\"enum bdk::KeychainKind\">KeychainKind</a>",1,["bdk::types::KeychainKind"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/struct.LocalOutput.html\" title=\"struct bdk::LocalOutput\">LocalOutput</a>",1,["bdk::types::LocalOutput"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/struct.WeightedUtxo.html\" title=\"struct bdk::WeightedUtxo\">WeightedUtxo</a>",1,["bdk::types::WeightedUtxo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/enum.Utxo.html\" title=\"enum bdk::Utxo\">Utxo</a>",1,["bdk::types::Utxo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/wallet/coin_selection/enum.Error.html\" title=\"enum bdk::wallet::coin_selection::Error\">Error</a>",1,["bdk::wallet::coin_selection::Error"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/wallet/coin_selection/enum.Excess.html\" title=\"enum bdk::wallet::coin_selection::Excess\">Excess</a>",1,["bdk::wallet::coin_selection::Excess"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.CoinSelectionResult.html\" title=\"struct bdk::wallet::coin_selection::CoinSelectionResult\">CoinSelectionResult</a>",1,["bdk::wallet::coin_selection::CoinSelectionResult"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.LargestFirstCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::LargestFirstCoinSelection\">LargestFirstCoinSelection</a>",1,["bdk::wallet::coin_selection::LargestFirstCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.OldestFirstCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::OldestFirstCoinSelection\">OldestFirstCoinSelection</a>",1,["bdk::wallet::coin_selection::OldestFirstCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::BranchAndBoundCoinSelection\">BranchAndBoundCoinSelection</a>",1,["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/wallet/export/struct.FullyNodedExport.html\" title=\"struct bdk::wallet::export::FullyNodedExport\">FullyNodedExport</a>",1,["bdk::wallet::export::FullyNodedExport"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerId.html\" title=\"enum bdk::wallet::signer::SignerId\">SignerId</a>",1,["bdk::wallet::signer::SignerId"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerError.html\" title=\"enum bdk::wallet::signer::SignerError\">SignerError</a>",1,["bdk::wallet::signer::SignerError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerContext.html\" title=\"enum bdk::wallet::signer::SignerContext\">SignerContext</a>",1,["bdk::wallet::signer::SignerContext"]],["impl<S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerWrapper.html\" title=\"struct bdk::wallet::signer::SignerWrapper\">SignerWrapper</a><S><span class=\"where fmt-newline\">where<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk::wallet::signer::SignerWrapper"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk::wallet::signer::SignerOrdering\">SignerOrdering</a>",1,["bdk::wallet::signer::SignerOrdering"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignersContainer.html\" title=\"struct bdk::wallet::signer::SignersContainer\">SignersContainer</a>",1,["bdk::wallet::signer::SignersContainer"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignOptions.html\" title=\"struct bdk::wallet::signer::SignOptions\">SignOptions</a>",1,["bdk::wallet::signer::SignOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>",1,["bdk::wallet::signer::TapLeavesOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.CreateTx.html\" title=\"struct bdk::wallet::tx_builder::CreateTx\">CreateTx</a>",1,["bdk::wallet::tx_builder::CreateTx"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.BumpFee.html\" title=\"struct bdk::wallet::tx_builder::BumpFee\">BumpFee</a>",1,["bdk::wallet::tx_builder::BumpFee"]],["impl<'a, Cs, Ctx> !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.TxBuilder.html\" title=\"struct bdk::wallet::tx_builder::TxBuilder\">TxBuilder</a><'a, Cs, Ctx>",1,["bdk::wallet::tx_builder::TxBuilder"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AddUtxoError.html\" title=\"enum bdk::wallet::tx_builder::AddUtxoError\">AddUtxoError</a>",1,["bdk::wallet::tx_builder::AddUtxoError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AddForeignUtxoError.html\" title=\"enum bdk::wallet::tx_builder::AddForeignUtxoError\">AddForeignUtxoError</a>",1,["bdk::wallet::tx_builder::AddForeignUtxoError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AllowShrinkingError.html\" title=\"enum bdk::wallet::tx_builder::AllowShrinkingError\">AllowShrinkingError</a>",1,["bdk::wallet::tx_builder::AllowShrinkingError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk::wallet::tx_builder::TxOrdering\">TxOrdering</a>",1,["bdk::wallet::tx_builder::TxOrdering"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>",1,["bdk::wallet::tx_builder::ChangeSpendPolicy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.MiniscriptPsbtError.html\" title=\"enum bdk::wallet::error::MiniscriptPsbtError\">MiniscriptPsbtError</a>",1,["bdk::wallet::error::MiniscriptPsbtError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.CreateTxError.html\" title=\"enum bdk::wallet::error::CreateTxError\">CreateTxError</a>",1,["bdk::wallet::error::CreateTxError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.BuildFeeBumpError.html\" title=\"enum bdk::wallet::error::BuildFeeBumpError\">BuildFeeBumpError</a>",1,["bdk::wallet::error::BuildFeeBumpError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/wallet/struct.Wallet.html\" title=\"struct bdk::wallet::Wallet\">Wallet</a>",1,["bdk::wallet::Wallet"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/wallet/struct.Update.html\" title=\"struct bdk::wallet::Update\">Update</a>",1,["bdk::wallet::Update"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/wallet/struct.ChangeSet.html\" title=\"struct bdk::wallet::ChangeSet\">ChangeSet</a>",1,["bdk::wallet::ChangeSet"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk/wallet/struct.AddressInfo.html\" title=\"struct bdk::wallet::AddressInfo\">AddressInfo</a>",1,["bdk::wallet::AddressInfo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/wallet/enum.NewError.html\" title=\"enum bdk::wallet::NewError\">NewError</a>",1,["bdk::wallet::NewError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/wallet/enum.LoadError.html\" title=\"enum bdk::wallet::LoadError\">LoadError</a>",1,["bdk::wallet::LoadError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/wallet/enum.NewOrLoadError.html\" title=\"enum bdk::wallet::NewOrLoadError\">NewOrLoadError</a>",1,["bdk::wallet::NewOrLoadError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/wallet/enum.InsertTxError.html\" title=\"enum bdk::wallet::InsertTxError\">InsertTxError</a>",1,["bdk::wallet::InsertTxError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk/wallet/enum.ApplyBlockError.html\" title=\"enum bdk::wallet::ApplyBlockError\">ApplyBlockError</a>",1,["bdk::wallet::ApplyBlockError"]]],
"bdk_bitcoind_rpc":[["impl<'c, C> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_bitcoind_rpc/struct.Emitter.html\" title=\"struct bdk_bitcoind_rpc::Emitter\">Emitter</a><'c, C><span class=\"where fmt-newline\">where<br> C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_bitcoind_rpc/struct.BlockEvent.html\" title=\"struct bdk_bitcoind_rpc::BlockEvent\">BlockEvent</a><B><span class=\"where fmt-newline\">where<br> B: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_bitcoind_rpc::BlockEvent"]]],
"bdk_chain":[["impl<I> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/struct.SpkTxOutIndex.html\" title=\"struct bdk_chain::SpkTxOutIndex\">SpkTxOutIndex</a><I><span class=\"where fmt-newline\">where<br> I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_chain/enum.ChainPosition.html\" title=\"enum bdk_chain::ChainPosition\">ChainPosition</a><A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_chain::chain_data::ChainPosition"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_chain/enum.ConfirmationTime.html\" title=\"enum bdk_chain::ConfirmationTime\">ConfirmationTime</a>",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>",1,["bdk_chain::chain_data::BlockId"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationHeightAnchor\">ConfirmationHeightAnchor</a>",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/struct.FullTxOut.html\" title=\"struct bdk_chain::FullTxOut\">FullTxOut</a><A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A, I> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\">IndexedTxGraph</a><A, I><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,<br> I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, IA><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,<br> IA: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.ChangeSet.html\" title=\"struct bdk_chain::keychain::ChangeSet\">ChangeSet</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_chain::keychain::txout_index::ChangeSet"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.KeychainTxOutIndex.html\" title=\"struct bdk_chain::keychain::KeychainTxOutIndex\">KeychainTxOutIndex</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.Balance.html\" title=\"struct bdk_chain::keychain::Balance\">Balance</a>",1,["bdk_chain::keychain::Balance"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CheckPoint.html\" title=\"struct bdk_chain::local_chain::CheckPoint\">CheckPoint</a>",1,["bdk_chain::local_chain::CheckPoint"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CheckPointIter.html\" title=\"struct bdk_chain::local_chain::CheckPointIter\">CheckPointIter</a>",1,["bdk_chain::local_chain::CheckPointIter"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.LocalChain.html\" title=\"struct bdk_chain::local_chain::LocalChain\">LocalChain</a>",1,["bdk_chain::local_chain::LocalChain"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.MissingGenesisError.html\" title=\"struct bdk_chain::local_chain::MissingGenesisError\">MissingGenesisError</a>",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.AlterCheckPointError.html\" title=\"struct bdk_chain::local_chain::AlterCheckPointError\">AlterCheckPointError</a>",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CannotConnectError.html\" title=\"struct bdk_chain::local_chain::CannotConnectError\">CannotConnectError</a>",1,["bdk_chain::local_chain::CannotConnectError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_chain/local_chain/enum.ApplyHeaderError.html\" title=\"enum bdk_chain::local_chain::ApplyHeaderError\">ApplyHeaderError</a>",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\">TxGraph</a><A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_chain::tx_graph::TxGraph"]],["impl<'a, T, A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxNode.html\" title=\"struct bdk_chain::tx_graph::TxNode\">TxNode</a><'a, T, A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,<br> T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_chain::tx_graph::TxNode"]],["impl<'a, T, A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.CanonicalTx.html\" title=\"struct bdk_chain::tx_graph::CanonicalTx\">CanonicalTx</a><'a, T, A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,<br> T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_chain/tx_graph/enum.CalculateFeeError.html\" title=\"enum bdk_chain::tx_graph::CalculateFeeError\">CalculateFeeError</a>",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::tx_graph::ChangeSet\">ChangeSet</a><A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<'g, A, F> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxAncestors.html\" title=\"struct bdk_chain::tx_graph::TxAncestors\">TxAncestors</a><'g, A, F><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,<br> F: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxDescendants.html\" title=\"struct bdk_chain::tx_graph::TxDescendants\">TxDescendants</a><'g, A, F><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,<br> F: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_chain::tx_graph::TxDescendants"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<D> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/struct.SpkIterator.html\" title=\"struct bdk_chain::SpkIterator\">SpkIterator</a><D><span class=\"where fmt-newline\">where<br> D: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_chain::spk_iter::SpkIterator"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.SyncRequest.html\" title=\"struct bdk_chain::spk_client::SyncRequest\">SyncRequest</a>",1,["bdk_chain::spk_client::SyncRequest"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.SyncResult.html\" title=\"struct bdk_chain::spk_client::SyncResult\">SyncResult</a><A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_chain::spk_client::SyncResult"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.FullScanRequest.html\" title=\"struct bdk_chain::spk_client::FullScanRequest\">FullScanRequest</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K, A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.FullScanResult.html\" title=\"struct bdk_chain::spk_client::FullScanResult\">FullScanResult</a><K, A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_chain::spk_client::FullScanResult"]]],
"bdk_coin_select":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.WeightedValue.html\" title=\"struct bdk_coin_select::WeightedValue\">WeightedValue</a>",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.CoinSelectorOpt.html\" title=\"struct bdk_coin_select::CoinSelectorOpt\">CoinSelectorOpt</a>",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.CoinSelector.html\" title=\"struct bdk_coin_select::CoinSelector\">CoinSelector</a><'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.SelectionError.html\" title=\"struct bdk_coin_select::SelectionError\">SelectionError</a>",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.SelectionConstraint.html\" title=\"enum bdk_coin_select::SelectionConstraint\">SelectionConstraint</a>",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.Selection.html\" title=\"struct bdk_coin_select::Selection\">Selection</a>",1,["bdk_coin_select::coin_selector::Selection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.ExcessStrategyKind.html\" title=\"enum bdk_coin_select::ExcessStrategyKind\">ExcessStrategyKind</a>",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.ExcessStrategy.html\" title=\"struct bdk_coin_select::ExcessStrategy\">ExcessStrategy</a>",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.BranchStrategy.html\" title=\"enum bdk_coin_select::BranchStrategy\">BranchStrategy</a>",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl<'c, S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.Bnb.html\" title=\"struct bdk_coin_select::Bnb\">Bnb</a><'c, S><span class=\"where fmt-newline\">where<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_coin_select::bnb::Bnb"]],["impl<'c, 'f, S> !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.BnbIter.html\" title=\"struct bdk_coin_select::BnbIter\">BnbIter</a><'c, 'f, S>",1,["bdk_coin_select::bnb::BnbIter"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.BnbLimit.html\" title=\"enum bdk_coin_select::BnbLimit\">BnbLimit</a>",1,["bdk_coin_select::bnb::BnbLimit"]]],
"bdk_persist":[["impl<C> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_persist/struct.Persist.html\" title=\"struct bdk_persist::Persist\">Persist</a><C><span class=\"where fmt-newline\">where<br> C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_persist::persist::Persist"]]],
"bdk_testenv":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_testenv/struct.TestEnv.html\" title=\"struct bdk_testenv::TestEnv\">TestEnv</a>",1,["bdk_testenv::TestEnv"]]],
"bdk_tmp_plan":[["impl<Ak> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Requirements.html\" title=\"struct bdk_tmp_plan::Requirements\">Requirements</a><Ak><span class=\"where fmt-newline\">where<br> Ak: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_tmp_plan::requirements::Requirements"]],["impl<Ak> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.RequiredSignatures.html\" title=\"enum bdk_tmp_plan::RequiredSignatures\">RequiredSignatures</a><Ak><span class=\"where fmt-newline\">where<br> Ak: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_tmp_plan::requirements::RequiredSignatures"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.SigningError.html\" title=\"enum bdk_tmp_plan::SigningError\">SigningError</a>",1,["bdk_tmp_plan::requirements::SigningError"]],["impl<Ak> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.PlanKey.html\" title=\"struct bdk_tmp_plan::PlanKey\">PlanKey</a><Ak><span class=\"where fmt-newline\">where<br> Ak: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_tmp_plan::template::PlanKey"]],["impl<AK> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Plan.html\" title=\"struct bdk_tmp_plan::Plan\">Plan</a><AK><span class=\"where fmt-newline\">where<br> AK: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_tmp_plan::Plan"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.SatisfactionMaterial.html\" title=\"struct bdk_tmp_plan::SatisfactionMaterial\">SatisfactionMaterial</a>",1,["bdk_tmp_plan::SatisfactionMaterial"]],["impl<Ak> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.PlanState.html\" title=\"enum bdk_tmp_plan::PlanState\">PlanState</a><Ak><span class=\"where fmt-newline\">where<br> Ak: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_tmp_plan::PlanState"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Assets.html\" title=\"struct bdk_tmp_plan::Assets\">Assets</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_tmp_plan::Assets"]]],
+"bdk_wallet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/error/enum.Error.html\" title=\"enum bdk_wallet::descriptor::error::Error\">Error</a>",1,["bdk_wallet::descriptor::error::Error"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk_wallet::descriptor::policy::PkOrF\">PkOrF</a>",1,["bdk_wallet::descriptor::policy::PkOrF"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk_wallet::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>",1,["bdk_wallet::descriptor::policy::SatisfiableItem"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::Satisfaction\">Satisfaction</a>",1,["bdk_wallet::descriptor::policy::Satisfaction"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Policy.html\" title=\"struct bdk_wallet::descriptor::policy::Policy\">Policy</a>",1,["bdk_wallet::descriptor::policy::Policy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Condition.html\" title=\"struct bdk_wallet::descriptor::policy::Condition\">Condition</a>",1,["bdk_wallet::descriptor::policy::Condition"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk_wallet::descriptor::policy::PolicyError\">PolicyError</a>",1,["bdk_wallet::descriptor::policy::PolicyError"]],["impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.BuildSatisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::BuildSatisfaction\">BuildSatisfaction</a><'a>",1,["bdk_wallet::descriptor::policy::BuildSatisfaction"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2Pkh.html\" title=\"struct bdk_wallet::descriptor::template::P2Pkh\">P2Pkh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_wallet::descriptor::template::P2Pkh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2Wpkh_P2Sh.html\" title=\"struct bdk_wallet::descriptor::template::P2Wpkh_P2Sh\">P2Wpkh_P2Sh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_wallet::descriptor::template::P2Wpkh_P2Sh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2Wpkh.html\" title=\"struct bdk_wallet::descriptor::template::P2Wpkh\">P2Wpkh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_wallet::descriptor::template::P2Wpkh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2TR.html\" title=\"struct bdk_wallet::descriptor::template::P2TR\">P2TR</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_wallet::descriptor::template::P2TR"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip44.html\" title=\"struct bdk_wallet::descriptor::template::Bip44\">Bip44</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_wallet::descriptor::template::Bip44"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip44Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip44Public\">Bip44Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_wallet::descriptor::template::Bip44Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip49.html\" title=\"struct bdk_wallet::descriptor::template::Bip49\">Bip49</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_wallet::descriptor::template::Bip49"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip49Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip49Public\">Bip49Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_wallet::descriptor::template::Bip49Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip84.html\" title=\"struct bdk_wallet::descriptor::template::Bip84\">Bip84</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_wallet::descriptor::template::Bip84"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip84Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip84Public\">Bip84Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_wallet::descriptor::template::Bip84Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip86.html\" title=\"struct bdk_wallet::descriptor::template::Bip86\">Bip86</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_wallet::descriptor::template::Bip86"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip86Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip86Public\">Bip86Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_wallet::descriptor::template::Bip86Public"]],["impl<Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.DescriptorKey.html\" title=\"enum bdk_wallet::keys::DescriptorKey\">DescriptorKey</a><Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_wallet::keys::DescriptorKey"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.ScriptContextEnum.html\" title=\"enum bdk_wallet::keys::ScriptContextEnum\">ScriptContextEnum</a>",1,["bdk_wallet::keys::ScriptContextEnum"]],["impl<Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.ExtendedKey.html\" title=\"enum bdk_wallet::keys::ExtendedKey\">ExtendedKey</a><Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_wallet::keys::ExtendedKey"]],["impl<K, Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/keys/struct.GeneratedKey.html\" title=\"struct bdk_wallet::keys::GeneratedKey\">GeneratedKey</a><K, Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_wallet::keys::GeneratedKey"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/keys/struct.PrivateKeyGenerateOptions.html\" title=\"struct bdk_wallet::keys::PrivateKeyGenerateOptions\">PrivateKeyGenerateOptions</a>",1,["bdk_wallet::keys::PrivateKeyGenerateOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.KeyError.html\" title=\"enum bdk_wallet::keys::KeyError\">KeyError</a>",1,["bdk_wallet::keys::KeyError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>",1,["bdk_wallet::types::KeychainKind"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/struct.LocalOutput.html\" title=\"struct bdk_wallet::LocalOutput\">LocalOutput</a>",1,["bdk_wallet::types::LocalOutput"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/struct.WeightedUtxo.html\" title=\"struct bdk_wallet::WeightedUtxo\">WeightedUtxo</a>",1,["bdk_wallet::types::WeightedUtxo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/enum.Utxo.html\" title=\"enum bdk_wallet::Utxo\">Utxo</a>",1,["bdk_wallet::types::Utxo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/coin_selection/enum.Error.html\" title=\"enum bdk_wallet::wallet::coin_selection::Error\">Error</a>",1,["bdk_wallet::wallet::coin_selection::Error"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/coin_selection/enum.Excess.html\" title=\"enum bdk_wallet::wallet::coin_selection::Excess\">Excess</a>",1,["bdk_wallet::wallet::coin_selection::Excess"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.CoinSelectionResult.html\" title=\"struct bdk_wallet::wallet::coin_selection::CoinSelectionResult\">CoinSelectionResult</a>",1,["bdk_wallet::wallet::coin_selection::CoinSelectionResult"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.LargestFirstCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection\">LargestFirstCoinSelection</a>",1,["bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.OldestFirstCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection\">OldestFirstCoinSelection</a>",1,["bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection\">BranchAndBoundCoinSelection</a>",1,["bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/export/struct.FullyNodedExport.html\" title=\"struct bdk_wallet::wallet::export::FullyNodedExport\">FullyNodedExport</a>",1,["bdk_wallet::wallet::export::FullyNodedExport"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerId.html\" title=\"enum bdk_wallet::wallet::signer::SignerId\">SignerId</a>",1,["bdk_wallet::wallet::signer::SignerId"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerError.html\" title=\"enum bdk_wallet::wallet::signer::SignerError\">SignerError</a>",1,["bdk_wallet::wallet::signer::SignerError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerContext.html\" title=\"enum bdk_wallet::wallet::signer::SignerContext\">SignerContext</a>",1,["bdk_wallet::wallet::signer::SignerContext"]],["impl<S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerWrapper.html\" title=\"struct bdk_wallet::wallet::signer::SignerWrapper\">SignerWrapper</a><S><span class=\"where fmt-newline\">where<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["bdk_wallet::wallet::signer::SignerWrapper"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk_wallet::wallet::signer::SignerOrdering\">SignerOrdering</a>",1,["bdk_wallet::wallet::signer::SignerOrdering"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignersContainer.html\" title=\"struct bdk_wallet::wallet::signer::SignersContainer\">SignersContainer</a>",1,["bdk_wallet::wallet::signer::SignersContainer"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignOptions.html\" title=\"struct bdk_wallet::wallet::signer::SignOptions\">SignOptions</a>",1,["bdk_wallet::wallet::signer::SignOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk_wallet::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>",1,["bdk_wallet::wallet::signer::TapLeavesOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.CreateTx.html\" title=\"struct bdk_wallet::wallet::tx_builder::CreateTx\">CreateTx</a>",1,["bdk_wallet::wallet::tx_builder::CreateTx"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.BumpFee.html\" title=\"struct bdk_wallet::wallet::tx_builder::BumpFee\">BumpFee</a>",1,["bdk_wallet::wallet::tx_builder::BumpFee"]],["impl<'a, Cs, Ctx> !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.TxBuilder.html\" title=\"struct bdk_wallet::wallet::tx_builder::TxBuilder\">TxBuilder</a><'a, Cs, Ctx>",1,["bdk_wallet::wallet::tx_builder::TxBuilder"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AddUtxoError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AddUtxoError\">AddUtxoError</a>",1,["bdk_wallet::wallet::tx_builder::AddUtxoError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AddForeignUtxoError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AddForeignUtxoError\">AddForeignUtxoError</a>",1,["bdk_wallet::wallet::tx_builder::AddForeignUtxoError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AllowShrinkingError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AllowShrinkingError\">AllowShrinkingError</a>",1,["bdk_wallet::wallet::tx_builder::AllowShrinkingError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk_wallet::wallet::tx_builder::TxOrdering\">TxOrdering</a>",1,["bdk_wallet::wallet::tx_builder::TxOrdering"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>",1,["bdk_wallet::wallet::tx_builder::ChangeSpendPolicy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.MiniscriptPsbtError.html\" title=\"enum bdk_wallet::wallet::error::MiniscriptPsbtError\">MiniscriptPsbtError</a>",1,["bdk_wallet::wallet::error::MiniscriptPsbtError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.CreateTxError.html\" title=\"enum bdk_wallet::wallet::error::CreateTxError\">CreateTxError</a>",1,["bdk_wallet::wallet::error::CreateTxError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.BuildFeeBumpError.html\" title=\"enum bdk_wallet::wallet::error::BuildFeeBumpError\">BuildFeeBumpError</a>",1,["bdk_wallet::wallet::error::BuildFeeBumpError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.Wallet.html\" title=\"struct bdk_wallet::wallet::Wallet\">Wallet</a>",1,["bdk_wallet::wallet::Wallet"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.Update.html\" title=\"struct bdk_wallet::wallet::Update\">Update</a>",1,["bdk_wallet::wallet::Update"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.ChangeSet.html\" title=\"struct bdk_wallet::wallet::ChangeSet\">ChangeSet</a>",1,["bdk_wallet::wallet::ChangeSet"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.AddressInfo.html\" title=\"struct bdk_wallet::wallet::AddressInfo\">AddressInfo</a>",1,["bdk_wallet::wallet::AddressInfo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.NewError.html\" title=\"enum bdk_wallet::wallet::NewError\">NewError</a>",1,["bdk_wallet::wallet::NewError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.LoadError.html\" title=\"enum bdk_wallet::wallet::LoadError\">LoadError</a>",1,["bdk_wallet::wallet::LoadError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.NewOrLoadError.html\" title=\"enum bdk_wallet::wallet::NewOrLoadError\">NewOrLoadError</a>",1,["bdk_wallet::wallet::NewOrLoadError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.InsertTxError.html\" title=\"enum bdk_wallet::wallet::InsertTxError\">InsertTxError</a>",1,["bdk_wallet::wallet::InsertTxError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.ApplyBlockError.html\" title=\"enum bdk_wallet::wallet::ApplyBlockError\">ApplyBlockError</a>",1,["bdk_wallet::wallet::ApplyBlockError"]]],
"example_bitcoind_rpc_polling":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"example_bitcoind_rpc_polling/enum.Emission.html\" title=\"enum example_bitcoind_rpc_polling::Emission\">Emission</a>",1,["example_bitcoind_rpc_polling::Emission"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"example_bitcoind_rpc_polling/struct.RpcArgs.html\" title=\"struct example_bitcoind_rpc_polling::RpcArgs\">RpcArgs</a>",1,["example_bitcoind_rpc_polling::RpcArgs"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"example_bitcoind_rpc_polling/enum.RpcCommands.html\" title=\"enum example_bitcoind_rpc_polling::RpcCommands\">RpcCommands</a>",1,["example_bitcoind_rpc_polling::RpcCommands"]]],
"example_cli":[["impl<CS, S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"example_cli/struct.Args.html\" title=\"struct example_cli::Args\">Args</a><CS, S><span class=\"where fmt-newline\">where<br> CS: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["example_cli::Args"]],["impl<CS, S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"example_cli/enum.Commands.html\" title=\"enum example_cli::Commands\">Commands</a><CS, S><span class=\"where fmt-newline\">where<br> CS: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["example_cli::Commands"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"example_cli/enum.CoinSelectionAlgo.html\" title=\"enum example_cli::CoinSelectionAlgo\">CoinSelectionAlgo</a>",1,["example_cli::CoinSelectionAlgo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"example_cli/enum.AddressCmd.html\" title=\"enum example_cli::AddressCmd\">AddressCmd</a>",1,["example_cli::AddressCmd"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"example_cli/enum.TxOutCmd.html\" title=\"enum example_cli::TxOutCmd\">TxOutCmd</a>",1,["example_cli::TxOutCmd"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"example_cli/enum.Keychain.html\" title=\"enum example_cli::Keychain\">Keychain</a>",1,["example_cli::Keychain"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"example_cli/struct.CreateTxChange.html\" title=\"struct example_cli::CreateTxChange\">CreateTxChange</a>",1,["example_cli::CreateTxChange"]],["impl<CS, S, C> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"example_cli/struct.Init.html\" title=\"struct example_cli::Init\">Init</a><CS, S, C><span class=\"where fmt-newline\">where<br> C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,<br> CS: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a>,</span>",1,["example_cli::Init"]]],
"example_electrum":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" href=\"example_electrum/enum.ElectrumCommands.html\" title=\"enum example_electrum::ElectrumCommands\">ElectrumCommands</a>",1,["example_electrum::ElectrumCommands"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"example_electrum/struct.ElectrumArgs.html\" title=\"struct example_electrum::ElectrumArgs\">ElectrumArgs</a>",1,["example_electrum::ElectrumArgs"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" href=\"example_electrum/struct.ScanOptions.html\" title=\"struct example_electrum::ScanOptions\">ScanOptions</a>",1,["example_electrum::ScanOptions"]]],
(function() {var implementors = {
-"bdk":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk::descriptor::policy::PkOrF\">PkOrF</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk::descriptor::policy::Satisfaction\">Satisfaction</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Policy.html\" title=\"struct bdk::descriptor::policy::Policy\">Policy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Condition.html\" title=\"struct bdk::descriptor::policy::Condition\">Condition</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk::descriptor::policy::PolicyError\">PolicyError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk/keys/enum.ScriptContextEnum.html\" title=\"enum bdk::keys::ScriptContextEnum\">ScriptContextEnum</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk/enum.KeychainKind.html\" title=\"enum bdk::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"bdk/struct.LocalOutput.html\" title=\"struct bdk::LocalOutput\">LocalOutput</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"bdk/struct.WeightedUtxo.html\" title=\"struct bdk::WeightedUtxo\">WeightedUtxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk/enum.Utxo.html\" title=\"enum bdk::Utxo\">Utxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerId.html\" title=\"enum bdk::wallet::signer::SignerId\">SignerId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerContext.html\" title=\"enum bdk::wallet::signer::SignerContext\">SignerContext</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk::wallet::signer::SignerOrdering\">SignerOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk::wallet::tx_builder::TxOrdering\">TxOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"bdk/wallet/struct.AddressInfo.html\" title=\"struct bdk::wallet::AddressInfo\">AddressInfo</a>"]],
"bdk_chain":[["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk_chain/enum.ChainPosition.html\" title=\"enum bdk_chain::ChainPosition\">ChainPosition</a><A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk_chain/enum.ConfirmationTime.html\" title=\"enum bdk_chain::ConfirmationTime\">ConfirmationTime</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationHeightAnchor\">ConfirmationHeightAnchor</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>"],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"bdk_chain/struct.FullTxOut.html\" title=\"struct bdk_chain::FullTxOut\">FullTxOut</a><A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.Balance.html\" title=\"struct bdk_chain::keychain::Balance\">Balance</a>"],["impl<'a, T, A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxNode.html\" title=\"struct bdk_chain::tx_graph::TxNode\">TxNode</a><'a, T, A>"],["impl<'a, T, A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.CanonicalTx.html\" title=\"struct bdk_chain::tx_graph::CanonicalTx\">CanonicalTx</a><'a, T, A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk_chain/tx_graph/enum.CalculateFeeError.html\" title=\"enum bdk_chain::tx_graph::CalculateFeeError\">CalculateFeeError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>"]],
"bdk_coin_select":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.SelectionConstraint.html\" title=\"enum bdk_coin_select::SelectionConstraint\">SelectionConstraint</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.ExcessStrategyKind.html\" title=\"enum bdk_coin_select::ExcessStrategyKind\">ExcessStrategyKind</a>"]],
+"bdk_wallet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk_wallet::descriptor::policy::PkOrF\">PkOrF</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk_wallet::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::Satisfaction\">Satisfaction</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Policy.html\" title=\"struct bdk_wallet::descriptor::policy::Policy\">Policy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Condition.html\" title=\"struct bdk_wallet::descriptor::policy::Condition\">Condition</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk_wallet::descriptor::policy::PolicyError\">PolicyError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.ScriptContextEnum.html\" title=\"enum bdk_wallet::keys::ScriptContextEnum\">ScriptContextEnum</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"bdk_wallet/struct.LocalOutput.html\" title=\"struct bdk_wallet::LocalOutput\">LocalOutput</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"bdk_wallet/struct.WeightedUtxo.html\" title=\"struct bdk_wallet::WeightedUtxo\">WeightedUtxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk_wallet/enum.Utxo.html\" title=\"enum bdk_wallet::Utxo\">Utxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerId.html\" title=\"enum bdk_wallet::wallet::signer::SignerId\">SignerId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerContext.html\" title=\"enum bdk_wallet::wallet::signer::SignerContext\">SignerContext</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk_wallet::wallet::signer::SignerOrdering\">SignerOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk_wallet::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk_wallet::wallet::tx_builder::TxOrdering\">TxOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.AddressInfo.html\" title=\"struct bdk_wallet::wallet::AddressInfo\">AddressInfo</a>"]],
"example_cli":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"example_cli/enum.Keychain.html\" title=\"enum example_cli::Keychain\">Keychain</a>"]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
(function() {var implementors = {
-"bdk":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk::descriptor::policy::PkOrF\">PkOrF</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk::descriptor::policy::Satisfaction\">Satisfaction</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Policy.html\" title=\"struct bdk::descriptor::policy::Policy\">Policy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Condition.html\" title=\"struct bdk::descriptor::policy::Condition\">Condition</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk::descriptor::policy::PolicyError\">PolicyError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk/keys/enum.ScriptContextEnum.html\" title=\"enum bdk::keys::ScriptContextEnum\">ScriptContextEnum</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk/enum.KeychainKind.html\" title=\"enum bdk::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk/struct.LocalOutput.html\" title=\"struct bdk::LocalOutput\">LocalOutput</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk/struct.WeightedUtxo.html\" title=\"struct bdk::WeightedUtxo\">WeightedUtxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk/enum.Utxo.html\" title=\"enum bdk::Utxo\">Utxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerId.html\" title=\"enum bdk::wallet::signer::SignerId\">SignerId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerContext.html\" title=\"enum bdk::wallet::signer::SignerContext\">SignerContext</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk::wallet::signer::SignerOrdering\">SignerOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk::wallet::tx_builder::TxOrdering\">TxOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk/wallet/struct.ChangeSet.html\" title=\"struct bdk::wallet::ChangeSet\">ChangeSet</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk/wallet/struct.AddressInfo.html\" title=\"struct bdk::wallet::AddressInfo\">AddressInfo</a>"]],
"bdk_chain":[["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk_chain/enum.ChainPosition.html\" title=\"enum bdk_chain::ChainPosition\">ChainPosition</a><A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk_chain/enum.ConfirmationTime.html\" title=\"enum bdk_chain::ConfirmationTime\">ConfirmationTime</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationHeightAnchor\">ConfirmationHeightAnchor</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>"],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk_chain/struct.FullTxOut.html\" title=\"struct bdk_chain::FullTxOut\">FullTxOut</a><A>"],["impl<A, IA> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, IA>"],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.ChangeSet.html\" title=\"struct bdk_chain::keychain::ChangeSet\">ChangeSet</a><K>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.Balance.html\" title=\"struct bdk_chain::keychain::Balance\">Balance</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.LocalChain.html\" title=\"struct bdk_chain::local_chain::LocalChain\">LocalChain</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.MissingGenesisError.html\" title=\"struct bdk_chain::local_chain::MissingGenesisError\">MissingGenesisError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.AlterCheckPointError.html\" title=\"struct bdk_chain::local_chain::AlterCheckPointError\">AlterCheckPointError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CannotConnectError.html\" title=\"struct bdk_chain::local_chain::CannotConnectError\">CannotConnectError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk_chain/local_chain/enum.ApplyHeaderError.html\" title=\"enum bdk_chain::local_chain::ApplyHeaderError\">ApplyHeaderError</a>"],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\">TxGraph</a><A>"],["impl<'a, T, A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxNode.html\" title=\"struct bdk_chain::tx_graph::TxNode\">TxNode</a><'a, T, A>"],["impl<'a, T, A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.CanonicalTx.html\" title=\"struct bdk_chain::tx_graph::CanonicalTx\">CanonicalTx</a><'a, T, A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk_chain/tx_graph/enum.CalculateFeeError.html\" title=\"enum bdk_chain::tx_graph::CalculateFeeError\">CalculateFeeError</a>"],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::tx_graph::ChangeSet\">ChangeSet</a><A>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>"]],
"bdk_coin_select":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.SelectionConstraint.html\" title=\"enum bdk_coin_select::SelectionConstraint\">SelectionConstraint</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.ExcessStrategyKind.html\" title=\"enum bdk_coin_select::ExcessStrategyKind\">ExcessStrategyKind</a>"]],
+"bdk_wallet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk_wallet::descriptor::policy::PkOrF\">PkOrF</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk_wallet::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::Satisfaction\">Satisfaction</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Policy.html\" title=\"struct bdk_wallet::descriptor::policy::Policy\">Policy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Condition.html\" title=\"struct bdk_wallet::descriptor::policy::Condition\">Condition</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk_wallet::descriptor::policy::PolicyError\">PolicyError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.ScriptContextEnum.html\" title=\"enum bdk_wallet::keys::ScriptContextEnum\">ScriptContextEnum</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk_wallet/struct.LocalOutput.html\" title=\"struct bdk_wallet::LocalOutput\">LocalOutput</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk_wallet/struct.WeightedUtxo.html\" title=\"struct bdk_wallet::WeightedUtxo\">WeightedUtxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk_wallet/enum.Utxo.html\" title=\"enum bdk_wallet::Utxo\">Utxo</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerId.html\" title=\"enum bdk_wallet::wallet::signer::SignerId\">SignerId</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerContext.html\" title=\"enum bdk_wallet::wallet::signer::SignerContext\">SignerContext</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk_wallet::wallet::signer::SignerOrdering\">SignerOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk_wallet::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk_wallet::wallet::tx_builder::TxOrdering\">TxOrdering</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.ChangeSet.html\" title=\"struct bdk_wallet::wallet::ChangeSet\">ChangeSet</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.AddressInfo.html\" title=\"struct bdk_wallet::wallet::AddressInfo\">AddressInfo</a>"]],
"example_cli":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"example_cli/enum.Keychain.html\" title=\"enum example_cli::Keychain\">Keychain</a>"]],
"example_electrum":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"example_electrum/struct.ScanOptions.html\" title=\"struct example_electrum::ScanOptions\">ScanOptions</a>"]],
"example_esplora":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"example_esplora/struct.ScanOptions.html\" title=\"struct example_esplora::ScanOptions\">ScanOptions</a>"]]
(function() {var implementors = {
-"bdk":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/descriptor/error/enum.Error.html\" title=\"enum bdk::descriptor::error::Error\">Error</a>",1,["bdk::descriptor::error::Error"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk::descriptor::policy::PkOrF\">PkOrF</a>",1,["bdk::descriptor::policy::PkOrF"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>",1,["bdk::descriptor::policy::SatisfiableItem"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk::descriptor::policy::Satisfaction\">Satisfaction</a>",1,["bdk::descriptor::policy::Satisfaction"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Policy.html\" title=\"struct bdk::descriptor::policy::Policy\">Policy</a>",1,["bdk::descriptor::policy::Policy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Condition.html\" title=\"struct bdk::descriptor::policy::Condition\">Condition</a>",1,["bdk::descriptor::policy::Condition"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk::descriptor::policy::PolicyError\">PolicyError</a>",1,["bdk::descriptor::policy::PolicyError"]],["impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.BuildSatisfaction.html\" title=\"enum bdk::descriptor::policy::BuildSatisfaction\">BuildSatisfaction</a><'a>",1,["bdk::descriptor::policy::BuildSatisfaction"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2Pkh.html\" title=\"struct bdk::descriptor::template::P2Pkh\">P2Pkh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk::descriptor::template::P2Pkh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2Wpkh_P2Sh.html\" title=\"struct bdk::descriptor::template::P2Wpkh_P2Sh\">P2Wpkh_P2Sh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk::descriptor::template::P2Wpkh_P2Sh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2Wpkh.html\" title=\"struct bdk::descriptor::template::P2Wpkh\">P2Wpkh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk::descriptor::template::P2Wpkh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2TR.html\" title=\"struct bdk::descriptor::template::P2TR\">P2TR</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk::descriptor::template::P2TR"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip44.html\" title=\"struct bdk::descriptor::template::Bip44\">Bip44</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk::descriptor::template::Bip44"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip44Public.html\" title=\"struct bdk::descriptor::template::Bip44Public\">Bip44Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk::descriptor::template::Bip44Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip49.html\" title=\"struct bdk::descriptor::template::Bip49\">Bip49</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk::descriptor::template::Bip49"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip49Public.html\" title=\"struct bdk::descriptor::template::Bip49Public\">Bip49Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk::descriptor::template::Bip49Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip84.html\" title=\"struct bdk::descriptor::template::Bip84\">Bip84</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk::descriptor::template::Bip84"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip84Public.html\" title=\"struct bdk::descriptor::template::Bip84Public\">Bip84Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk::descriptor::template::Bip84Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip86.html\" title=\"struct bdk::descriptor::template::Bip86\">Bip86</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk::descriptor::template::Bip86"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip86Public.html\" title=\"struct bdk::descriptor::template::Bip86Public\">Bip86Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk::descriptor::template::Bip86Public"]],["impl<Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/keys/enum.DescriptorKey.html\" title=\"enum bdk::keys::DescriptorKey\">DescriptorKey</a><Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk::keys::DescriptorKey"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/keys/enum.ScriptContextEnum.html\" title=\"enum bdk::keys::ScriptContextEnum\">ScriptContextEnum</a>",1,["bdk::keys::ScriptContextEnum"]],["impl<Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/keys/enum.ExtendedKey.html\" title=\"enum bdk::keys::ExtendedKey\">ExtendedKey</a><Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk::keys::ExtendedKey"]],["impl<K, Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/keys/struct.GeneratedKey.html\" title=\"struct bdk::keys::GeneratedKey\">GeneratedKey</a><K, Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk::keys::GeneratedKey"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/keys/struct.PrivateKeyGenerateOptions.html\" title=\"struct bdk::keys::PrivateKeyGenerateOptions\">PrivateKeyGenerateOptions</a>",1,["bdk::keys::PrivateKeyGenerateOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/keys/enum.KeyError.html\" title=\"enum bdk::keys::KeyError\">KeyError</a>",1,["bdk::keys::KeyError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/enum.KeychainKind.html\" title=\"enum bdk::KeychainKind\">KeychainKind</a>",1,["bdk::types::KeychainKind"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/struct.LocalOutput.html\" title=\"struct bdk::LocalOutput\">LocalOutput</a>",1,["bdk::types::LocalOutput"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/struct.WeightedUtxo.html\" title=\"struct bdk::WeightedUtxo\">WeightedUtxo</a>",1,["bdk::types::WeightedUtxo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/enum.Utxo.html\" title=\"enum bdk::Utxo\">Utxo</a>",1,["bdk::types::Utxo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/wallet/coin_selection/enum.Error.html\" title=\"enum bdk::wallet::coin_selection::Error\">Error</a>",1,["bdk::wallet::coin_selection::Error"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/wallet/coin_selection/enum.Excess.html\" title=\"enum bdk::wallet::coin_selection::Excess\">Excess</a>",1,["bdk::wallet::coin_selection::Excess"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.CoinSelectionResult.html\" title=\"struct bdk::wallet::coin_selection::CoinSelectionResult\">CoinSelectionResult</a>",1,["bdk::wallet::coin_selection::CoinSelectionResult"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.LargestFirstCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::LargestFirstCoinSelection\">LargestFirstCoinSelection</a>",1,["bdk::wallet::coin_selection::LargestFirstCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.OldestFirstCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::OldestFirstCoinSelection\">OldestFirstCoinSelection</a>",1,["bdk::wallet::coin_selection::OldestFirstCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::BranchAndBoundCoinSelection\">BranchAndBoundCoinSelection</a>",1,["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/wallet/export/struct.FullyNodedExport.html\" title=\"struct bdk::wallet::export::FullyNodedExport\">FullyNodedExport</a>",1,["bdk::wallet::export::FullyNodedExport"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerId.html\" title=\"enum bdk::wallet::signer::SignerId\">SignerId</a>",1,["bdk::wallet::signer::SignerId"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerError.html\" title=\"enum bdk::wallet::signer::SignerError\">SignerError</a>",1,["bdk::wallet::signer::SignerError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerContext.html\" title=\"enum bdk::wallet::signer::SignerContext\">SignerContext</a>",1,["bdk::wallet::signer::SignerContext"]],["impl<S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerWrapper.html\" title=\"struct bdk::wallet::signer::SignerWrapper\">SignerWrapper</a><S><span class=\"where fmt-newline\">where<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk::wallet::signer::SignerWrapper"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk::wallet::signer::SignerOrdering\">SignerOrdering</a>",1,["bdk::wallet::signer::SignerOrdering"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignersContainer.html\" title=\"struct bdk::wallet::signer::SignersContainer\">SignersContainer</a>",1,["bdk::wallet::signer::SignersContainer"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignOptions.html\" title=\"struct bdk::wallet::signer::SignOptions\">SignOptions</a>",1,["bdk::wallet::signer::SignOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>",1,["bdk::wallet::signer::TapLeavesOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.CreateTx.html\" title=\"struct bdk::wallet::tx_builder::CreateTx\">CreateTx</a>",1,["bdk::wallet::tx_builder::CreateTx"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.BumpFee.html\" title=\"struct bdk::wallet::tx_builder::BumpFee\">BumpFee</a>",1,["bdk::wallet::tx_builder::BumpFee"]],["impl<'a, Cs, Ctx> !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.TxBuilder.html\" title=\"struct bdk::wallet::tx_builder::TxBuilder\">TxBuilder</a><'a, Cs, Ctx>",1,["bdk::wallet::tx_builder::TxBuilder"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AddUtxoError.html\" title=\"enum bdk::wallet::tx_builder::AddUtxoError\">AddUtxoError</a>",1,["bdk::wallet::tx_builder::AddUtxoError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AddForeignUtxoError.html\" title=\"enum bdk::wallet::tx_builder::AddForeignUtxoError\">AddForeignUtxoError</a>",1,["bdk::wallet::tx_builder::AddForeignUtxoError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AllowShrinkingError.html\" title=\"enum bdk::wallet::tx_builder::AllowShrinkingError\">AllowShrinkingError</a>",1,["bdk::wallet::tx_builder::AllowShrinkingError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk::wallet::tx_builder::TxOrdering\">TxOrdering</a>",1,["bdk::wallet::tx_builder::TxOrdering"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>",1,["bdk::wallet::tx_builder::ChangeSpendPolicy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.MiniscriptPsbtError.html\" title=\"enum bdk::wallet::error::MiniscriptPsbtError\">MiniscriptPsbtError</a>",1,["bdk::wallet::error::MiniscriptPsbtError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.CreateTxError.html\" title=\"enum bdk::wallet::error::CreateTxError\">CreateTxError</a>",1,["bdk::wallet::error::CreateTxError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.BuildFeeBumpError.html\" title=\"enum bdk::wallet::error::BuildFeeBumpError\">BuildFeeBumpError</a>",1,["bdk::wallet::error::BuildFeeBumpError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/wallet/struct.Wallet.html\" title=\"struct bdk::wallet::Wallet\">Wallet</a>",1,["bdk::wallet::Wallet"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/wallet/struct.Update.html\" title=\"struct bdk::wallet::Update\">Update</a>",1,["bdk::wallet::Update"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/wallet/struct.ChangeSet.html\" title=\"struct bdk::wallet::ChangeSet\">ChangeSet</a>",1,["bdk::wallet::ChangeSet"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk/wallet/struct.AddressInfo.html\" title=\"struct bdk::wallet::AddressInfo\">AddressInfo</a>",1,["bdk::wallet::AddressInfo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/wallet/enum.NewError.html\" title=\"enum bdk::wallet::NewError\">NewError</a>",1,["bdk::wallet::NewError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/wallet/enum.LoadError.html\" title=\"enum bdk::wallet::LoadError\">LoadError</a>",1,["bdk::wallet::LoadError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/wallet/enum.NewOrLoadError.html\" title=\"enum bdk::wallet::NewOrLoadError\">NewOrLoadError</a>",1,["bdk::wallet::NewOrLoadError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/wallet/enum.InsertTxError.html\" title=\"enum bdk::wallet::InsertTxError\">InsertTxError</a>",1,["bdk::wallet::InsertTxError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk/wallet/enum.ApplyBlockError.html\" title=\"enum bdk::wallet::ApplyBlockError\">ApplyBlockError</a>",1,["bdk::wallet::ApplyBlockError"]]],
"bdk_bitcoind_rpc":[["impl<'c, C> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_bitcoind_rpc/struct.Emitter.html\" title=\"struct bdk_bitcoind_rpc::Emitter\">Emitter</a><'c, C><span class=\"where fmt-newline\">where<br> C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_bitcoind_rpc/struct.BlockEvent.html\" title=\"struct bdk_bitcoind_rpc::BlockEvent\">BlockEvent</a><B><span class=\"where fmt-newline\">where<br> B: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_bitcoind_rpc::BlockEvent"]]],
"bdk_chain":[["impl<I> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/struct.SpkTxOutIndex.html\" title=\"struct bdk_chain::SpkTxOutIndex\">SpkTxOutIndex</a><I><span class=\"where fmt-newline\">where<br> I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_chain/enum.ChainPosition.html\" title=\"enum bdk_chain::ChainPosition\">ChainPosition</a><A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_chain::chain_data::ChainPosition"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_chain/enum.ConfirmationTime.html\" title=\"enum bdk_chain::ConfirmationTime\">ConfirmationTime</a>",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>",1,["bdk_chain::chain_data::BlockId"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationHeightAnchor\">ConfirmationHeightAnchor</a>",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/struct.FullTxOut.html\" title=\"struct bdk_chain::FullTxOut\">FullTxOut</a><A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A, I> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\">IndexedTxGraph</a><A, I><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,<br> I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, IA><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,<br> IA: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.ChangeSet.html\" title=\"struct bdk_chain::keychain::ChangeSet\">ChangeSet</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_chain::keychain::txout_index::ChangeSet"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.KeychainTxOutIndex.html\" title=\"struct bdk_chain::keychain::KeychainTxOutIndex\">KeychainTxOutIndex</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.Balance.html\" title=\"struct bdk_chain::keychain::Balance\">Balance</a>",1,["bdk_chain::keychain::Balance"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CheckPoint.html\" title=\"struct bdk_chain::local_chain::CheckPoint\">CheckPoint</a>",1,["bdk_chain::local_chain::CheckPoint"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CheckPointIter.html\" title=\"struct bdk_chain::local_chain::CheckPointIter\">CheckPointIter</a>",1,["bdk_chain::local_chain::CheckPointIter"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.LocalChain.html\" title=\"struct bdk_chain::local_chain::LocalChain\">LocalChain</a>",1,["bdk_chain::local_chain::LocalChain"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.MissingGenesisError.html\" title=\"struct bdk_chain::local_chain::MissingGenesisError\">MissingGenesisError</a>",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.AlterCheckPointError.html\" title=\"struct bdk_chain::local_chain::AlterCheckPointError\">AlterCheckPointError</a>",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CannotConnectError.html\" title=\"struct bdk_chain::local_chain::CannotConnectError\">CannotConnectError</a>",1,["bdk_chain::local_chain::CannotConnectError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_chain/local_chain/enum.ApplyHeaderError.html\" title=\"enum bdk_chain::local_chain::ApplyHeaderError\">ApplyHeaderError</a>",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\">TxGraph</a><A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_chain::tx_graph::TxGraph"]],["impl<'a, T, A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxNode.html\" title=\"struct bdk_chain::tx_graph::TxNode\">TxNode</a><'a, T, A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,<br> T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_chain::tx_graph::TxNode"]],["impl<'a, T, A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.CanonicalTx.html\" title=\"struct bdk_chain::tx_graph::CanonicalTx\">CanonicalTx</a><'a, T, A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,<br> T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_chain/tx_graph/enum.CalculateFeeError.html\" title=\"enum bdk_chain::tx_graph::CalculateFeeError\">CalculateFeeError</a>",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::tx_graph::ChangeSet\">ChangeSet</a><A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<'g, A, F> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxAncestors.html\" title=\"struct bdk_chain::tx_graph::TxAncestors\">TxAncestors</a><'g, A, F><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,<br> F: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxDescendants.html\" title=\"struct bdk_chain::tx_graph::TxDescendants\">TxDescendants</a><'g, A, F><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,<br> F: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_chain::tx_graph::TxDescendants"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<D> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/struct.SpkIterator.html\" title=\"struct bdk_chain::SpkIterator\">SpkIterator</a><D><span class=\"where fmt-newline\">where<br> D: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_chain::spk_iter::SpkIterator"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.SyncRequest.html\" title=\"struct bdk_chain::spk_client::SyncRequest\">SyncRequest</a>",1,["bdk_chain::spk_client::SyncRequest"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.SyncResult.html\" title=\"struct bdk_chain::spk_client::SyncResult\">SyncResult</a><A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_chain::spk_client::SyncResult"]],["impl<K> !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.FullScanRequest.html\" title=\"struct bdk_chain::spk_client::FullScanRequest\">FullScanRequest</a><K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K, A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.FullScanResult.html\" title=\"struct bdk_chain::spk_client::FullScanResult\">FullScanResult</a><K, A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_chain::spk_client::FullScanResult"]]],
"bdk_coin_select":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.WeightedValue.html\" title=\"struct bdk_coin_select::WeightedValue\">WeightedValue</a>",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.CoinSelectorOpt.html\" title=\"struct bdk_coin_select::CoinSelectorOpt\">CoinSelectorOpt</a>",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.CoinSelector.html\" title=\"struct bdk_coin_select::CoinSelector\">CoinSelector</a><'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.SelectionError.html\" title=\"struct bdk_coin_select::SelectionError\">SelectionError</a>",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.SelectionConstraint.html\" title=\"enum bdk_coin_select::SelectionConstraint\">SelectionConstraint</a>",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.Selection.html\" title=\"struct bdk_coin_select::Selection\">Selection</a>",1,["bdk_coin_select::coin_selector::Selection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.ExcessStrategyKind.html\" title=\"enum bdk_coin_select::ExcessStrategyKind\">ExcessStrategyKind</a>",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.ExcessStrategy.html\" title=\"struct bdk_coin_select::ExcessStrategy\">ExcessStrategy</a>",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.BranchStrategy.html\" title=\"enum bdk_coin_select::BranchStrategy\">BranchStrategy</a>",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl<'c, S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.Bnb.html\" title=\"struct bdk_coin_select::Bnb\">Bnb</a><'c, S><span class=\"where fmt-newline\">where<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_coin_select::bnb::Bnb"]],["impl<'c, 'f, S> !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.BnbIter.html\" title=\"struct bdk_coin_select::BnbIter\">BnbIter</a><'c, 'f, S>",1,["bdk_coin_select::bnb::BnbIter"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.BnbLimit.html\" title=\"enum bdk_coin_select::BnbLimit\">BnbLimit</a>",1,["bdk_coin_select::bnb::BnbLimit"]]],
"bdk_persist":[["impl<C> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_persist/struct.Persist.html\" title=\"struct bdk_persist::Persist\">Persist</a><C><span class=\"where fmt-newline\">where<br> C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_persist::persist::Persist"]]],
"bdk_testenv":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_testenv/struct.TestEnv.html\" title=\"struct bdk_testenv::TestEnv\">TestEnv</a>",1,["bdk_testenv::TestEnv"]]],
"bdk_tmp_plan":[["impl<Ak> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Requirements.html\" title=\"struct bdk_tmp_plan::Requirements\">Requirements</a><Ak><span class=\"where fmt-newline\">where<br> Ak: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_tmp_plan::requirements::Requirements"]],["impl<Ak> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.RequiredSignatures.html\" title=\"enum bdk_tmp_plan::RequiredSignatures\">RequiredSignatures</a><Ak><span class=\"where fmt-newline\">where<br> Ak: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_tmp_plan::requirements::RequiredSignatures"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.SigningError.html\" title=\"enum bdk_tmp_plan::SigningError\">SigningError</a>",1,["bdk_tmp_plan::requirements::SigningError"]],["impl<Ak> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.PlanKey.html\" title=\"struct bdk_tmp_plan::PlanKey\">PlanKey</a><Ak><span class=\"where fmt-newline\">where<br> Ak: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_tmp_plan::template::PlanKey"]],["impl<AK> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Plan.html\" title=\"struct bdk_tmp_plan::Plan\">Plan</a><AK><span class=\"where fmt-newline\">where<br> AK: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_tmp_plan::Plan"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.SatisfactionMaterial.html\" title=\"struct bdk_tmp_plan::SatisfactionMaterial\">SatisfactionMaterial</a>",1,["bdk_tmp_plan::SatisfactionMaterial"]],["impl<Ak> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.PlanState.html\" title=\"enum bdk_tmp_plan::PlanState\">PlanState</a><Ak><span class=\"where fmt-newline\">where<br> Ak: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_tmp_plan::PlanState"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Assets.html\" title=\"struct bdk_tmp_plan::Assets\">Assets</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_tmp_plan::Assets"]]],
+"bdk_wallet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/error/enum.Error.html\" title=\"enum bdk_wallet::descriptor::error::Error\">Error</a>",1,["bdk_wallet::descriptor::error::Error"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk_wallet::descriptor::policy::PkOrF\">PkOrF</a>",1,["bdk_wallet::descriptor::policy::PkOrF"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk_wallet::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>",1,["bdk_wallet::descriptor::policy::SatisfiableItem"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::Satisfaction\">Satisfaction</a>",1,["bdk_wallet::descriptor::policy::Satisfaction"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Policy.html\" title=\"struct bdk_wallet::descriptor::policy::Policy\">Policy</a>",1,["bdk_wallet::descriptor::policy::Policy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Condition.html\" title=\"struct bdk_wallet::descriptor::policy::Condition\">Condition</a>",1,["bdk_wallet::descriptor::policy::Condition"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk_wallet::descriptor::policy::PolicyError\">PolicyError</a>",1,["bdk_wallet::descriptor::policy::PolicyError"]],["impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.BuildSatisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::BuildSatisfaction\">BuildSatisfaction</a><'a>",1,["bdk_wallet::descriptor::policy::BuildSatisfaction"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2Pkh.html\" title=\"struct bdk_wallet::descriptor::template::P2Pkh\">P2Pkh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_wallet::descriptor::template::P2Pkh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2Wpkh_P2Sh.html\" title=\"struct bdk_wallet::descriptor::template::P2Wpkh_P2Sh\">P2Wpkh_P2Sh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_wallet::descriptor::template::P2Wpkh_P2Sh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2Wpkh.html\" title=\"struct bdk_wallet::descriptor::template::P2Wpkh\">P2Wpkh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_wallet::descriptor::template::P2Wpkh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2TR.html\" title=\"struct bdk_wallet::descriptor::template::P2TR\">P2TR</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_wallet::descriptor::template::P2TR"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip44.html\" title=\"struct bdk_wallet::descriptor::template::Bip44\">Bip44</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_wallet::descriptor::template::Bip44"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip44Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip44Public\">Bip44Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_wallet::descriptor::template::Bip44Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip49.html\" title=\"struct bdk_wallet::descriptor::template::Bip49\">Bip49</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_wallet::descriptor::template::Bip49"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip49Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip49Public\">Bip49Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_wallet::descriptor::template::Bip49Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip84.html\" title=\"struct bdk_wallet::descriptor::template::Bip84\">Bip84</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_wallet::descriptor::template::Bip84"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip84Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip84Public\">Bip84Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_wallet::descriptor::template::Bip84Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip86.html\" title=\"struct bdk_wallet::descriptor::template::Bip86\">Bip86</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_wallet::descriptor::template::Bip86"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip86Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip86Public\">Bip86Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_wallet::descriptor::template::Bip86Public"]],["impl<Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.DescriptorKey.html\" title=\"enum bdk_wallet::keys::DescriptorKey\">DescriptorKey</a><Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_wallet::keys::DescriptorKey"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.ScriptContextEnum.html\" title=\"enum bdk_wallet::keys::ScriptContextEnum\">ScriptContextEnum</a>",1,["bdk_wallet::keys::ScriptContextEnum"]],["impl<Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.ExtendedKey.html\" title=\"enum bdk_wallet::keys::ExtendedKey\">ExtendedKey</a><Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_wallet::keys::ExtendedKey"]],["impl<K, Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/keys/struct.GeneratedKey.html\" title=\"struct bdk_wallet::keys::GeneratedKey\">GeneratedKey</a><K, Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_wallet::keys::GeneratedKey"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/keys/struct.PrivateKeyGenerateOptions.html\" title=\"struct bdk_wallet::keys::PrivateKeyGenerateOptions\">PrivateKeyGenerateOptions</a>",1,["bdk_wallet::keys::PrivateKeyGenerateOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.KeyError.html\" title=\"enum bdk_wallet::keys::KeyError\">KeyError</a>",1,["bdk_wallet::keys::KeyError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>",1,["bdk_wallet::types::KeychainKind"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/struct.LocalOutput.html\" title=\"struct bdk_wallet::LocalOutput\">LocalOutput</a>",1,["bdk_wallet::types::LocalOutput"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/struct.WeightedUtxo.html\" title=\"struct bdk_wallet::WeightedUtxo\">WeightedUtxo</a>",1,["bdk_wallet::types::WeightedUtxo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/enum.Utxo.html\" title=\"enum bdk_wallet::Utxo\">Utxo</a>",1,["bdk_wallet::types::Utxo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/coin_selection/enum.Error.html\" title=\"enum bdk_wallet::wallet::coin_selection::Error\">Error</a>",1,["bdk_wallet::wallet::coin_selection::Error"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/coin_selection/enum.Excess.html\" title=\"enum bdk_wallet::wallet::coin_selection::Excess\">Excess</a>",1,["bdk_wallet::wallet::coin_selection::Excess"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.CoinSelectionResult.html\" title=\"struct bdk_wallet::wallet::coin_selection::CoinSelectionResult\">CoinSelectionResult</a>",1,["bdk_wallet::wallet::coin_selection::CoinSelectionResult"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.LargestFirstCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection\">LargestFirstCoinSelection</a>",1,["bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.OldestFirstCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection\">OldestFirstCoinSelection</a>",1,["bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection\">BranchAndBoundCoinSelection</a>",1,["bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/export/struct.FullyNodedExport.html\" title=\"struct bdk_wallet::wallet::export::FullyNodedExport\">FullyNodedExport</a>",1,["bdk_wallet::wallet::export::FullyNodedExport"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerId.html\" title=\"enum bdk_wallet::wallet::signer::SignerId\">SignerId</a>",1,["bdk_wallet::wallet::signer::SignerId"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerError.html\" title=\"enum bdk_wallet::wallet::signer::SignerError\">SignerError</a>",1,["bdk_wallet::wallet::signer::SignerError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerContext.html\" title=\"enum bdk_wallet::wallet::signer::SignerContext\">SignerContext</a>",1,["bdk_wallet::wallet::signer::SignerContext"]],["impl<S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerWrapper.html\" title=\"struct bdk_wallet::wallet::signer::SignerWrapper\">SignerWrapper</a><S><span class=\"where fmt-newline\">where<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["bdk_wallet::wallet::signer::SignerWrapper"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk_wallet::wallet::signer::SignerOrdering\">SignerOrdering</a>",1,["bdk_wallet::wallet::signer::SignerOrdering"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignersContainer.html\" title=\"struct bdk_wallet::wallet::signer::SignersContainer\">SignersContainer</a>",1,["bdk_wallet::wallet::signer::SignersContainer"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignOptions.html\" title=\"struct bdk_wallet::wallet::signer::SignOptions\">SignOptions</a>",1,["bdk_wallet::wallet::signer::SignOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk_wallet::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>",1,["bdk_wallet::wallet::signer::TapLeavesOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.CreateTx.html\" title=\"struct bdk_wallet::wallet::tx_builder::CreateTx\">CreateTx</a>",1,["bdk_wallet::wallet::tx_builder::CreateTx"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.BumpFee.html\" title=\"struct bdk_wallet::wallet::tx_builder::BumpFee\">BumpFee</a>",1,["bdk_wallet::wallet::tx_builder::BumpFee"]],["impl<'a, Cs, Ctx> !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.TxBuilder.html\" title=\"struct bdk_wallet::wallet::tx_builder::TxBuilder\">TxBuilder</a><'a, Cs, Ctx>",1,["bdk_wallet::wallet::tx_builder::TxBuilder"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AddUtxoError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AddUtxoError\">AddUtxoError</a>",1,["bdk_wallet::wallet::tx_builder::AddUtxoError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AddForeignUtxoError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AddForeignUtxoError\">AddForeignUtxoError</a>",1,["bdk_wallet::wallet::tx_builder::AddForeignUtxoError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AllowShrinkingError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AllowShrinkingError\">AllowShrinkingError</a>",1,["bdk_wallet::wallet::tx_builder::AllowShrinkingError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk_wallet::wallet::tx_builder::TxOrdering\">TxOrdering</a>",1,["bdk_wallet::wallet::tx_builder::TxOrdering"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>",1,["bdk_wallet::wallet::tx_builder::ChangeSpendPolicy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.MiniscriptPsbtError.html\" title=\"enum bdk_wallet::wallet::error::MiniscriptPsbtError\">MiniscriptPsbtError</a>",1,["bdk_wallet::wallet::error::MiniscriptPsbtError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.CreateTxError.html\" title=\"enum bdk_wallet::wallet::error::CreateTxError\">CreateTxError</a>",1,["bdk_wallet::wallet::error::CreateTxError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.BuildFeeBumpError.html\" title=\"enum bdk_wallet::wallet::error::BuildFeeBumpError\">BuildFeeBumpError</a>",1,["bdk_wallet::wallet::error::BuildFeeBumpError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.Wallet.html\" title=\"struct bdk_wallet::wallet::Wallet\">Wallet</a>",1,["bdk_wallet::wallet::Wallet"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.Update.html\" title=\"struct bdk_wallet::wallet::Update\">Update</a>",1,["bdk_wallet::wallet::Update"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.ChangeSet.html\" title=\"struct bdk_wallet::wallet::ChangeSet\">ChangeSet</a>",1,["bdk_wallet::wallet::ChangeSet"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.AddressInfo.html\" title=\"struct bdk_wallet::wallet::AddressInfo\">AddressInfo</a>",1,["bdk_wallet::wallet::AddressInfo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.NewError.html\" title=\"enum bdk_wallet::wallet::NewError\">NewError</a>",1,["bdk_wallet::wallet::NewError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.LoadError.html\" title=\"enum bdk_wallet::wallet::LoadError\">LoadError</a>",1,["bdk_wallet::wallet::LoadError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.NewOrLoadError.html\" title=\"enum bdk_wallet::wallet::NewOrLoadError\">NewOrLoadError</a>",1,["bdk_wallet::wallet::NewOrLoadError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.InsertTxError.html\" title=\"enum bdk_wallet::wallet::InsertTxError\">InsertTxError</a>",1,["bdk_wallet::wallet::InsertTxError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.ApplyBlockError.html\" title=\"enum bdk_wallet::wallet::ApplyBlockError\">ApplyBlockError</a>",1,["bdk_wallet::wallet::ApplyBlockError"]]],
"example_bitcoind_rpc_polling":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"example_bitcoind_rpc_polling/enum.Emission.html\" title=\"enum example_bitcoind_rpc_polling::Emission\">Emission</a>",1,["example_bitcoind_rpc_polling::Emission"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"example_bitcoind_rpc_polling/struct.RpcArgs.html\" title=\"struct example_bitcoind_rpc_polling::RpcArgs\">RpcArgs</a>",1,["example_bitcoind_rpc_polling::RpcArgs"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"example_bitcoind_rpc_polling/enum.RpcCommands.html\" title=\"enum example_bitcoind_rpc_polling::RpcCommands\">RpcCommands</a>",1,["example_bitcoind_rpc_polling::RpcCommands"]]],
"example_cli":[["impl<CS, S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"example_cli/struct.Args.html\" title=\"struct example_cli::Args\">Args</a><CS, S><span class=\"where fmt-newline\">where<br> CS: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["example_cli::Args"]],["impl<CS, S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"example_cli/enum.Commands.html\" title=\"enum example_cli::Commands\">Commands</a><CS, S><span class=\"where fmt-newline\">where<br> CS: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["example_cli::Commands"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"example_cli/enum.CoinSelectionAlgo.html\" title=\"enum example_cli::CoinSelectionAlgo\">CoinSelectionAlgo</a>",1,["example_cli::CoinSelectionAlgo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"example_cli/enum.AddressCmd.html\" title=\"enum example_cli::AddressCmd\">AddressCmd</a>",1,["example_cli::AddressCmd"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"example_cli/enum.TxOutCmd.html\" title=\"enum example_cli::TxOutCmd\">TxOutCmd</a>",1,["example_cli::TxOutCmd"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"example_cli/enum.Keychain.html\" title=\"enum example_cli::Keychain\">Keychain</a>",1,["example_cli::Keychain"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"example_cli/struct.CreateTxChange.html\" title=\"struct example_cli::CreateTxChange\">CreateTxChange</a>",1,["example_cli::CreateTxChange"]],["impl<CS, S, C> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"example_cli/struct.Init.html\" title=\"struct example_cli::Init\">Init</a><CS, S, C><span class=\"where fmt-newline\">where<br> C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\" title=\"trait core::marker::Send\">Send</a> + <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,<br> CS: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a>,</span>",1,["example_cli::Init"]]],
"example_electrum":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"example_electrum/enum.ElectrumCommands.html\" title=\"enum example_electrum::ElectrumCommands\">ElectrumCommands</a>",1,["example_electrum::ElectrumCommands"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"example_electrum/struct.ElectrumArgs.html\" title=\"struct example_electrum::ElectrumArgs\">ElectrumArgs</a>",1,["example_electrum::ElectrumArgs"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"example_electrum/struct.ScanOptions.html\" title=\"struct example_electrum::ScanOptions\">ScanOptions</a>",1,["example_electrum::ScanOptions"]]],
(function() {var implementors = {
-"bdk":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/descriptor/error/enum.Error.html\" title=\"enum bdk::descriptor::error::Error\">Error</a>",1,["bdk::descriptor::error::Error"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk::descriptor::policy::PkOrF\">PkOrF</a>",1,["bdk::descriptor::policy::PkOrF"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>",1,["bdk::descriptor::policy::SatisfiableItem"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk::descriptor::policy::Satisfaction\">Satisfaction</a>",1,["bdk::descriptor::policy::Satisfaction"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Policy.html\" title=\"struct bdk::descriptor::policy::Policy\">Policy</a>",1,["bdk::descriptor::policy::Policy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Condition.html\" title=\"struct bdk::descriptor::policy::Condition\">Condition</a>",1,["bdk::descriptor::policy::Condition"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk::descriptor::policy::PolicyError\">PolicyError</a>",1,["bdk::descriptor::policy::PolicyError"]],["impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.BuildSatisfaction.html\" title=\"enum bdk::descriptor::policy::BuildSatisfaction\">BuildSatisfaction</a><'a>",1,["bdk::descriptor::policy::BuildSatisfaction"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2Pkh.html\" title=\"struct bdk::descriptor::template::P2Pkh\">P2Pkh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk::descriptor::template::P2Pkh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2Wpkh_P2Sh.html\" title=\"struct bdk::descriptor::template::P2Wpkh_P2Sh\">P2Wpkh_P2Sh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk::descriptor::template::P2Wpkh_P2Sh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2Wpkh.html\" title=\"struct bdk::descriptor::template::P2Wpkh\">P2Wpkh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk::descriptor::template::P2Wpkh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2TR.html\" title=\"struct bdk::descriptor::template::P2TR\">P2TR</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk::descriptor::template::P2TR"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip44.html\" title=\"struct bdk::descriptor::template::Bip44\">Bip44</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk::descriptor::template::Bip44"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip44Public.html\" title=\"struct bdk::descriptor::template::Bip44Public\">Bip44Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk::descriptor::template::Bip44Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip49.html\" title=\"struct bdk::descriptor::template::Bip49\">Bip49</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk::descriptor::template::Bip49"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip49Public.html\" title=\"struct bdk::descriptor::template::Bip49Public\">Bip49Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk::descriptor::template::Bip49Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip84.html\" title=\"struct bdk::descriptor::template::Bip84\">Bip84</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk::descriptor::template::Bip84"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip84Public.html\" title=\"struct bdk::descriptor::template::Bip84Public\">Bip84Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk::descriptor::template::Bip84Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip86.html\" title=\"struct bdk::descriptor::template::Bip86\">Bip86</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk::descriptor::template::Bip86"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip86Public.html\" title=\"struct bdk::descriptor::template::Bip86Public\">Bip86Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk::descriptor::template::Bip86Public"]],["impl<Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/keys/enum.DescriptorKey.html\" title=\"enum bdk::keys::DescriptorKey\">DescriptorKey</a><Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk::keys::DescriptorKey"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/keys/enum.ScriptContextEnum.html\" title=\"enum bdk::keys::ScriptContextEnum\">ScriptContextEnum</a>",1,["bdk::keys::ScriptContextEnum"]],["impl<Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/keys/enum.ExtendedKey.html\" title=\"enum bdk::keys::ExtendedKey\">ExtendedKey</a><Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk::keys::ExtendedKey"]],["impl<K, Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/keys/struct.GeneratedKey.html\" title=\"struct bdk::keys::GeneratedKey\">GeneratedKey</a><K, Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk::keys::GeneratedKey"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/keys/struct.PrivateKeyGenerateOptions.html\" title=\"struct bdk::keys::PrivateKeyGenerateOptions\">PrivateKeyGenerateOptions</a>",1,["bdk::keys::PrivateKeyGenerateOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/keys/enum.KeyError.html\" title=\"enum bdk::keys::KeyError\">KeyError</a>",1,["bdk::keys::KeyError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/enum.KeychainKind.html\" title=\"enum bdk::KeychainKind\">KeychainKind</a>",1,["bdk::types::KeychainKind"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/struct.LocalOutput.html\" title=\"struct bdk::LocalOutput\">LocalOutput</a>",1,["bdk::types::LocalOutput"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/struct.WeightedUtxo.html\" title=\"struct bdk::WeightedUtxo\">WeightedUtxo</a>",1,["bdk::types::WeightedUtxo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/enum.Utxo.html\" title=\"enum bdk::Utxo\">Utxo</a>",1,["bdk::types::Utxo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/wallet/coin_selection/enum.Error.html\" title=\"enum bdk::wallet::coin_selection::Error\">Error</a>",1,["bdk::wallet::coin_selection::Error"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/wallet/coin_selection/enum.Excess.html\" title=\"enum bdk::wallet::coin_selection::Excess\">Excess</a>",1,["bdk::wallet::coin_selection::Excess"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.CoinSelectionResult.html\" title=\"struct bdk::wallet::coin_selection::CoinSelectionResult\">CoinSelectionResult</a>",1,["bdk::wallet::coin_selection::CoinSelectionResult"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.LargestFirstCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::LargestFirstCoinSelection\">LargestFirstCoinSelection</a>",1,["bdk::wallet::coin_selection::LargestFirstCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.OldestFirstCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::OldestFirstCoinSelection\">OldestFirstCoinSelection</a>",1,["bdk::wallet::coin_selection::OldestFirstCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::BranchAndBoundCoinSelection\">BranchAndBoundCoinSelection</a>",1,["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/wallet/export/struct.FullyNodedExport.html\" title=\"struct bdk::wallet::export::FullyNodedExport\">FullyNodedExport</a>",1,["bdk::wallet::export::FullyNodedExport"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerId.html\" title=\"enum bdk::wallet::signer::SignerId\">SignerId</a>",1,["bdk::wallet::signer::SignerId"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerError.html\" title=\"enum bdk::wallet::signer::SignerError\">SignerError</a>",1,["bdk::wallet::signer::SignerError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerContext.html\" title=\"enum bdk::wallet::signer::SignerContext\">SignerContext</a>",1,["bdk::wallet::signer::SignerContext"]],["impl<S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerWrapper.html\" title=\"struct bdk::wallet::signer::SignerWrapper\">SignerWrapper</a><S><span class=\"where fmt-newline\">where<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk::wallet::signer::SignerWrapper"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk::wallet::signer::SignerOrdering\">SignerOrdering</a>",1,["bdk::wallet::signer::SignerOrdering"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignersContainer.html\" title=\"struct bdk::wallet::signer::SignersContainer\">SignersContainer</a>",1,["bdk::wallet::signer::SignersContainer"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignOptions.html\" title=\"struct bdk::wallet::signer::SignOptions\">SignOptions</a>",1,["bdk::wallet::signer::SignOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>",1,["bdk::wallet::signer::TapLeavesOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.CreateTx.html\" title=\"struct bdk::wallet::tx_builder::CreateTx\">CreateTx</a>",1,["bdk::wallet::tx_builder::CreateTx"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.BumpFee.html\" title=\"struct bdk::wallet::tx_builder::BumpFee\">BumpFee</a>",1,["bdk::wallet::tx_builder::BumpFee"]],["impl<'a, Cs, Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.TxBuilder.html\" title=\"struct bdk::wallet::tx_builder::TxBuilder\">TxBuilder</a><'a, Cs, Ctx><span class=\"where fmt-newline\">where<br> Cs: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk::wallet::tx_builder::TxBuilder"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AddUtxoError.html\" title=\"enum bdk::wallet::tx_builder::AddUtxoError\">AddUtxoError</a>",1,["bdk::wallet::tx_builder::AddUtxoError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AddForeignUtxoError.html\" title=\"enum bdk::wallet::tx_builder::AddForeignUtxoError\">AddForeignUtxoError</a>",1,["bdk::wallet::tx_builder::AddForeignUtxoError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AllowShrinkingError.html\" title=\"enum bdk::wallet::tx_builder::AllowShrinkingError\">AllowShrinkingError</a>",1,["bdk::wallet::tx_builder::AllowShrinkingError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk::wallet::tx_builder::TxOrdering\">TxOrdering</a>",1,["bdk::wallet::tx_builder::TxOrdering"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>",1,["bdk::wallet::tx_builder::ChangeSpendPolicy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.MiniscriptPsbtError.html\" title=\"enum bdk::wallet::error::MiniscriptPsbtError\">MiniscriptPsbtError</a>",1,["bdk::wallet::error::MiniscriptPsbtError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.CreateTxError.html\" title=\"enum bdk::wallet::error::CreateTxError\">CreateTxError</a>",1,["bdk::wallet::error::CreateTxError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.BuildFeeBumpError.html\" title=\"enum bdk::wallet::error::BuildFeeBumpError\">BuildFeeBumpError</a>",1,["bdk::wallet::error::BuildFeeBumpError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/wallet/struct.Wallet.html\" title=\"struct bdk::wallet::Wallet\">Wallet</a>",1,["bdk::wallet::Wallet"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/wallet/struct.Update.html\" title=\"struct bdk::wallet::Update\">Update</a>",1,["bdk::wallet::Update"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/wallet/struct.ChangeSet.html\" title=\"struct bdk::wallet::ChangeSet\">ChangeSet</a>",1,["bdk::wallet::ChangeSet"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk/wallet/struct.AddressInfo.html\" title=\"struct bdk::wallet::AddressInfo\">AddressInfo</a>",1,["bdk::wallet::AddressInfo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/wallet/enum.NewError.html\" title=\"enum bdk::wallet::NewError\">NewError</a>",1,["bdk::wallet::NewError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/wallet/enum.LoadError.html\" title=\"enum bdk::wallet::LoadError\">LoadError</a>",1,["bdk::wallet::LoadError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/wallet/enum.NewOrLoadError.html\" title=\"enum bdk::wallet::NewOrLoadError\">NewOrLoadError</a>",1,["bdk::wallet::NewOrLoadError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/wallet/enum.InsertTxError.html\" title=\"enum bdk::wallet::InsertTxError\">InsertTxError</a>",1,["bdk::wallet::InsertTxError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk/wallet/enum.ApplyBlockError.html\" title=\"enum bdk::wallet::ApplyBlockError\">ApplyBlockError</a>",1,["bdk::wallet::ApplyBlockError"]]],
"bdk_bitcoind_rpc":[["impl<'c, C> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_bitcoind_rpc/struct.Emitter.html\" title=\"struct bdk_bitcoind_rpc::Emitter\">Emitter</a><'c, C>",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_bitcoind_rpc/struct.BlockEvent.html\" title=\"struct bdk_bitcoind_rpc::BlockEvent\">BlockEvent</a><B><span class=\"where fmt-newline\">where<br> B: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_bitcoind_rpc::BlockEvent"]]],
"bdk_chain":[["impl<I> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/struct.SpkTxOutIndex.html\" title=\"struct bdk_chain::SpkTxOutIndex\">SpkTxOutIndex</a><I><span class=\"where fmt-newline\">where<br> I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_chain/enum.ChainPosition.html\" title=\"enum bdk_chain::ChainPosition\">ChainPosition</a><A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_chain::chain_data::ChainPosition"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_chain/enum.ConfirmationTime.html\" title=\"enum bdk_chain::ConfirmationTime\">ConfirmationTime</a>",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>",1,["bdk_chain::chain_data::BlockId"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationHeightAnchor\">ConfirmationHeightAnchor</a>",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/struct.FullTxOut.html\" title=\"struct bdk_chain::FullTxOut\">FullTxOut</a><A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A, I> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\">IndexedTxGraph</a><A, I><span class=\"where fmt-newline\">where<br> I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, IA><span class=\"where fmt-newline\">where<br> IA: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.ChangeSet.html\" title=\"struct bdk_chain::keychain::ChangeSet\">ChangeSet</a><K>",1,["bdk_chain::keychain::txout_index::ChangeSet"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.KeychainTxOutIndex.html\" title=\"struct bdk_chain::keychain::KeychainTxOutIndex\">KeychainTxOutIndex</a><K>",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.Balance.html\" title=\"struct bdk_chain::keychain::Balance\">Balance</a>",1,["bdk_chain::keychain::Balance"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CheckPoint.html\" title=\"struct bdk_chain::local_chain::CheckPoint\">CheckPoint</a>",1,["bdk_chain::local_chain::CheckPoint"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CheckPointIter.html\" title=\"struct bdk_chain::local_chain::CheckPointIter\">CheckPointIter</a>",1,["bdk_chain::local_chain::CheckPointIter"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.LocalChain.html\" title=\"struct bdk_chain::local_chain::LocalChain\">LocalChain</a>",1,["bdk_chain::local_chain::LocalChain"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.MissingGenesisError.html\" title=\"struct bdk_chain::local_chain::MissingGenesisError\">MissingGenesisError</a>",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.AlterCheckPointError.html\" title=\"struct bdk_chain::local_chain::AlterCheckPointError\">AlterCheckPointError</a>",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CannotConnectError.html\" title=\"struct bdk_chain::local_chain::CannotConnectError\">CannotConnectError</a>",1,["bdk_chain::local_chain::CannotConnectError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_chain/local_chain/enum.ApplyHeaderError.html\" title=\"enum bdk_chain::local_chain::ApplyHeaderError\">ApplyHeaderError</a>",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\">TxGraph</a><A>",1,["bdk_chain::tx_graph::TxGraph"]],["impl<'a, T, A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxNode.html\" title=\"struct bdk_chain::tx_graph::TxNode\">TxNode</a><'a, T, A><span class=\"where fmt-newline\">where<br> T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_chain::tx_graph::TxNode"]],["impl<'a, T, A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.CanonicalTx.html\" title=\"struct bdk_chain::tx_graph::CanonicalTx\">CanonicalTx</a><'a, T, A><span class=\"where fmt-newline\">where<br> T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_chain/tx_graph/enum.CalculateFeeError.html\" title=\"enum bdk_chain::tx_graph::CalculateFeeError\">CalculateFeeError</a>",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::tx_graph::ChangeSet\">ChangeSet</a><A>",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<'g, A, F> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxAncestors.html\" title=\"struct bdk_chain::tx_graph::TxAncestors\">TxAncestors</a><'g, A, F><span class=\"where fmt-newline\">where<br> F: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxDescendants.html\" title=\"struct bdk_chain::tx_graph::TxDescendants\">TxDescendants</a><'g, A, F><span class=\"where fmt-newline\">where<br> F: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_chain::tx_graph::TxDescendants"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<D> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/struct.SpkIterator.html\" title=\"struct bdk_chain::SpkIterator\">SpkIterator</a><D><span class=\"where fmt-newline\">where<br> D: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_chain::spk_iter::SpkIterator"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.SyncRequest.html\" title=\"struct bdk_chain::spk_client::SyncRequest\">SyncRequest</a>",1,["bdk_chain::spk_client::SyncRequest"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.SyncResult.html\" title=\"struct bdk_chain::spk_client::SyncResult\">SyncResult</a><A>",1,["bdk_chain::spk_client::SyncResult"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.FullScanRequest.html\" title=\"struct bdk_chain::spk_client::FullScanRequest\">FullScanRequest</a><K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K, A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.FullScanResult.html\" title=\"struct bdk_chain::spk_client::FullScanResult\">FullScanResult</a><K, A>",1,["bdk_chain::spk_client::FullScanResult"]]],
"bdk_coin_select":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.WeightedValue.html\" title=\"struct bdk_coin_select::WeightedValue\">WeightedValue</a>",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.CoinSelectorOpt.html\" title=\"struct bdk_coin_select::CoinSelectorOpt\">CoinSelectorOpt</a>",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.CoinSelector.html\" title=\"struct bdk_coin_select::CoinSelector\">CoinSelector</a><'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.SelectionError.html\" title=\"struct bdk_coin_select::SelectionError\">SelectionError</a>",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.SelectionConstraint.html\" title=\"enum bdk_coin_select::SelectionConstraint\">SelectionConstraint</a>",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.Selection.html\" title=\"struct bdk_coin_select::Selection\">Selection</a>",1,["bdk_coin_select::coin_selector::Selection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.ExcessStrategyKind.html\" title=\"enum bdk_coin_select::ExcessStrategyKind\">ExcessStrategyKind</a>",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.ExcessStrategy.html\" title=\"struct bdk_coin_select::ExcessStrategy\">ExcessStrategy</a>",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.BranchStrategy.html\" title=\"enum bdk_coin_select::BranchStrategy\">BranchStrategy</a>",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl<'c, S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.Bnb.html\" title=\"struct bdk_coin_select::Bnb\">Bnb</a><'c, S><span class=\"where fmt-newline\">where<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_coin_select::bnb::Bnb"]],["impl<'c, 'f, S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.BnbIter.html\" title=\"struct bdk_coin_select::BnbIter\">BnbIter</a><'c, 'f, S><span class=\"where fmt-newline\">where<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,<br> 'c: 'f,</span>",1,["bdk_coin_select::bnb::BnbIter"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.BnbLimit.html\" title=\"enum bdk_coin_select::BnbLimit\">BnbLimit</a>",1,["bdk_coin_select::bnb::BnbLimit"]]],
"bdk_persist":[["impl<C> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_persist/struct.Persist.html\" title=\"struct bdk_persist::Persist\">Persist</a><C><span class=\"where fmt-newline\">where<br> C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_persist::persist::Persist"]]],
"bdk_testenv":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_testenv/struct.TestEnv.html\" title=\"struct bdk_testenv::TestEnv\">TestEnv</a>",1,["bdk_testenv::TestEnv"]]],
"bdk_tmp_plan":[["impl<Ak> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Requirements.html\" title=\"struct bdk_tmp_plan::Requirements\">Requirements</a><Ak><span class=\"where fmt-newline\">where<br> Ak: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_tmp_plan::requirements::Requirements"]],["impl<Ak> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.RequiredSignatures.html\" title=\"enum bdk_tmp_plan::RequiredSignatures\">RequiredSignatures</a><Ak><span class=\"where fmt-newline\">where<br> Ak: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_tmp_plan::requirements::RequiredSignatures"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.SigningError.html\" title=\"enum bdk_tmp_plan::SigningError\">SigningError</a>",1,["bdk_tmp_plan::requirements::SigningError"]],["impl<Ak> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.PlanKey.html\" title=\"struct bdk_tmp_plan::PlanKey\">PlanKey</a><Ak><span class=\"where fmt-newline\">where<br> Ak: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_tmp_plan::template::PlanKey"]],["impl<AK> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Plan.html\" title=\"struct bdk_tmp_plan::Plan\">Plan</a><AK><span class=\"where fmt-newline\">where<br> AK: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_tmp_plan::Plan"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.SatisfactionMaterial.html\" title=\"struct bdk_tmp_plan::SatisfactionMaterial\">SatisfactionMaterial</a>",1,["bdk_tmp_plan::SatisfactionMaterial"]],["impl<Ak> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.PlanState.html\" title=\"enum bdk_tmp_plan::PlanState\">PlanState</a><Ak><span class=\"where fmt-newline\">where<br> Ak: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_tmp_plan::PlanState"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Assets.html\" title=\"struct bdk_tmp_plan::Assets\">Assets</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_tmp_plan::Assets"]]],
+"bdk_wallet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/error/enum.Error.html\" title=\"enum bdk_wallet::descriptor::error::Error\">Error</a>",1,["bdk_wallet::descriptor::error::Error"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk_wallet::descriptor::policy::PkOrF\">PkOrF</a>",1,["bdk_wallet::descriptor::policy::PkOrF"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk_wallet::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>",1,["bdk_wallet::descriptor::policy::SatisfiableItem"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::Satisfaction\">Satisfaction</a>",1,["bdk_wallet::descriptor::policy::Satisfaction"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Policy.html\" title=\"struct bdk_wallet::descriptor::policy::Policy\">Policy</a>",1,["bdk_wallet::descriptor::policy::Policy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Condition.html\" title=\"struct bdk_wallet::descriptor::policy::Condition\">Condition</a>",1,["bdk_wallet::descriptor::policy::Condition"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk_wallet::descriptor::policy::PolicyError\">PolicyError</a>",1,["bdk_wallet::descriptor::policy::PolicyError"]],["impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.BuildSatisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::BuildSatisfaction\">BuildSatisfaction</a><'a>",1,["bdk_wallet::descriptor::policy::BuildSatisfaction"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2Pkh.html\" title=\"struct bdk_wallet::descriptor::template::P2Pkh\">P2Pkh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_wallet::descriptor::template::P2Pkh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2Wpkh_P2Sh.html\" title=\"struct bdk_wallet::descriptor::template::P2Wpkh_P2Sh\">P2Wpkh_P2Sh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_wallet::descriptor::template::P2Wpkh_P2Sh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2Wpkh.html\" title=\"struct bdk_wallet::descriptor::template::P2Wpkh\">P2Wpkh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_wallet::descriptor::template::P2Wpkh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2TR.html\" title=\"struct bdk_wallet::descriptor::template::P2TR\">P2TR</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_wallet::descriptor::template::P2TR"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip44.html\" title=\"struct bdk_wallet::descriptor::template::Bip44\">Bip44</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_wallet::descriptor::template::Bip44"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip44Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip44Public\">Bip44Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_wallet::descriptor::template::Bip44Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip49.html\" title=\"struct bdk_wallet::descriptor::template::Bip49\">Bip49</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_wallet::descriptor::template::Bip49"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip49Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip49Public\">Bip49Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_wallet::descriptor::template::Bip49Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip84.html\" title=\"struct bdk_wallet::descriptor::template::Bip84\">Bip84</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_wallet::descriptor::template::Bip84"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip84Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip84Public\">Bip84Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_wallet::descriptor::template::Bip84Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip86.html\" title=\"struct bdk_wallet::descriptor::template::Bip86\">Bip86</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_wallet::descriptor::template::Bip86"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip86Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip86Public\">Bip86Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_wallet::descriptor::template::Bip86Public"]],["impl<Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.DescriptorKey.html\" title=\"enum bdk_wallet::keys::DescriptorKey\">DescriptorKey</a><Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_wallet::keys::DescriptorKey"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.ScriptContextEnum.html\" title=\"enum bdk_wallet::keys::ScriptContextEnum\">ScriptContextEnum</a>",1,["bdk_wallet::keys::ScriptContextEnum"]],["impl<Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.ExtendedKey.html\" title=\"enum bdk_wallet::keys::ExtendedKey\">ExtendedKey</a><Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_wallet::keys::ExtendedKey"]],["impl<K, Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/keys/struct.GeneratedKey.html\" title=\"struct bdk_wallet::keys::GeneratedKey\">GeneratedKey</a><K, Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_wallet::keys::GeneratedKey"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/keys/struct.PrivateKeyGenerateOptions.html\" title=\"struct bdk_wallet::keys::PrivateKeyGenerateOptions\">PrivateKeyGenerateOptions</a>",1,["bdk_wallet::keys::PrivateKeyGenerateOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.KeyError.html\" title=\"enum bdk_wallet::keys::KeyError\">KeyError</a>",1,["bdk_wallet::keys::KeyError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>",1,["bdk_wallet::types::KeychainKind"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/struct.LocalOutput.html\" title=\"struct bdk_wallet::LocalOutput\">LocalOutput</a>",1,["bdk_wallet::types::LocalOutput"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/struct.WeightedUtxo.html\" title=\"struct bdk_wallet::WeightedUtxo\">WeightedUtxo</a>",1,["bdk_wallet::types::WeightedUtxo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/enum.Utxo.html\" title=\"enum bdk_wallet::Utxo\">Utxo</a>",1,["bdk_wallet::types::Utxo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/coin_selection/enum.Error.html\" title=\"enum bdk_wallet::wallet::coin_selection::Error\">Error</a>",1,["bdk_wallet::wallet::coin_selection::Error"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/coin_selection/enum.Excess.html\" title=\"enum bdk_wallet::wallet::coin_selection::Excess\">Excess</a>",1,["bdk_wallet::wallet::coin_selection::Excess"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.CoinSelectionResult.html\" title=\"struct bdk_wallet::wallet::coin_selection::CoinSelectionResult\">CoinSelectionResult</a>",1,["bdk_wallet::wallet::coin_selection::CoinSelectionResult"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.LargestFirstCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection\">LargestFirstCoinSelection</a>",1,["bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.OldestFirstCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection\">OldestFirstCoinSelection</a>",1,["bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection\">BranchAndBoundCoinSelection</a>",1,["bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/export/struct.FullyNodedExport.html\" title=\"struct bdk_wallet::wallet::export::FullyNodedExport\">FullyNodedExport</a>",1,["bdk_wallet::wallet::export::FullyNodedExport"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerId.html\" title=\"enum bdk_wallet::wallet::signer::SignerId\">SignerId</a>",1,["bdk_wallet::wallet::signer::SignerId"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerError.html\" title=\"enum bdk_wallet::wallet::signer::SignerError\">SignerError</a>",1,["bdk_wallet::wallet::signer::SignerError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerContext.html\" title=\"enum bdk_wallet::wallet::signer::SignerContext\">SignerContext</a>",1,["bdk_wallet::wallet::signer::SignerContext"]],["impl<S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerWrapper.html\" title=\"struct bdk_wallet::wallet::signer::SignerWrapper\">SignerWrapper</a><S><span class=\"where fmt-newline\">where<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_wallet::wallet::signer::SignerWrapper"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk_wallet::wallet::signer::SignerOrdering\">SignerOrdering</a>",1,["bdk_wallet::wallet::signer::SignerOrdering"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignersContainer.html\" title=\"struct bdk_wallet::wallet::signer::SignersContainer\">SignersContainer</a>",1,["bdk_wallet::wallet::signer::SignersContainer"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignOptions.html\" title=\"struct bdk_wallet::wallet::signer::SignOptions\">SignOptions</a>",1,["bdk_wallet::wallet::signer::SignOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk_wallet::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>",1,["bdk_wallet::wallet::signer::TapLeavesOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.CreateTx.html\" title=\"struct bdk_wallet::wallet::tx_builder::CreateTx\">CreateTx</a>",1,["bdk_wallet::wallet::tx_builder::CreateTx"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.BumpFee.html\" title=\"struct bdk_wallet::wallet::tx_builder::BumpFee\">BumpFee</a>",1,["bdk_wallet::wallet::tx_builder::BumpFee"]],["impl<'a, Cs, Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.TxBuilder.html\" title=\"struct bdk_wallet::wallet::tx_builder::TxBuilder\">TxBuilder</a><'a, Cs, Ctx><span class=\"where fmt-newline\">where<br> Cs: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["bdk_wallet::wallet::tx_builder::TxBuilder"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AddUtxoError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AddUtxoError\">AddUtxoError</a>",1,["bdk_wallet::wallet::tx_builder::AddUtxoError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AddForeignUtxoError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AddForeignUtxoError\">AddForeignUtxoError</a>",1,["bdk_wallet::wallet::tx_builder::AddForeignUtxoError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AllowShrinkingError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AllowShrinkingError\">AllowShrinkingError</a>",1,["bdk_wallet::wallet::tx_builder::AllowShrinkingError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk_wallet::wallet::tx_builder::TxOrdering\">TxOrdering</a>",1,["bdk_wallet::wallet::tx_builder::TxOrdering"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>",1,["bdk_wallet::wallet::tx_builder::ChangeSpendPolicy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.MiniscriptPsbtError.html\" title=\"enum bdk_wallet::wallet::error::MiniscriptPsbtError\">MiniscriptPsbtError</a>",1,["bdk_wallet::wallet::error::MiniscriptPsbtError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.CreateTxError.html\" title=\"enum bdk_wallet::wallet::error::CreateTxError\">CreateTxError</a>",1,["bdk_wallet::wallet::error::CreateTxError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.BuildFeeBumpError.html\" title=\"enum bdk_wallet::wallet::error::BuildFeeBumpError\">BuildFeeBumpError</a>",1,["bdk_wallet::wallet::error::BuildFeeBumpError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.Wallet.html\" title=\"struct bdk_wallet::wallet::Wallet\">Wallet</a>",1,["bdk_wallet::wallet::Wallet"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.Update.html\" title=\"struct bdk_wallet::wallet::Update\">Update</a>",1,["bdk_wallet::wallet::Update"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.ChangeSet.html\" title=\"struct bdk_wallet::wallet::ChangeSet\">ChangeSet</a>",1,["bdk_wallet::wallet::ChangeSet"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.AddressInfo.html\" title=\"struct bdk_wallet::wallet::AddressInfo\">AddressInfo</a>",1,["bdk_wallet::wallet::AddressInfo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.NewError.html\" title=\"enum bdk_wallet::wallet::NewError\">NewError</a>",1,["bdk_wallet::wallet::NewError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.LoadError.html\" title=\"enum bdk_wallet::wallet::LoadError\">LoadError</a>",1,["bdk_wallet::wallet::LoadError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.NewOrLoadError.html\" title=\"enum bdk_wallet::wallet::NewOrLoadError\">NewOrLoadError</a>",1,["bdk_wallet::wallet::NewOrLoadError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.InsertTxError.html\" title=\"enum bdk_wallet::wallet::InsertTxError\">InsertTxError</a>",1,["bdk_wallet::wallet::InsertTxError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.ApplyBlockError.html\" title=\"enum bdk_wallet::wallet::ApplyBlockError\">ApplyBlockError</a>",1,["bdk_wallet::wallet::ApplyBlockError"]]],
"example_bitcoind_rpc_polling":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"example_bitcoind_rpc_polling/enum.Emission.html\" title=\"enum example_bitcoind_rpc_polling::Emission\">Emission</a>",1,["example_bitcoind_rpc_polling::Emission"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"example_bitcoind_rpc_polling/struct.RpcArgs.html\" title=\"struct example_bitcoind_rpc_polling::RpcArgs\">RpcArgs</a>",1,["example_bitcoind_rpc_polling::RpcArgs"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"example_bitcoind_rpc_polling/enum.RpcCommands.html\" title=\"enum example_bitcoind_rpc_polling::RpcCommands\">RpcCommands</a>",1,["example_bitcoind_rpc_polling::RpcCommands"]]],
"example_cli":[["impl<CS, S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"example_cli/struct.Args.html\" title=\"struct example_cli::Args\">Args</a><CS, S><span class=\"where fmt-newline\">where<br> CS: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["example_cli::Args"]],["impl<CS, S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"example_cli/enum.Commands.html\" title=\"enum example_cli::Commands\">Commands</a><CS, S><span class=\"where fmt-newline\">where<br> CS: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["example_cli::Commands"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"example_cli/enum.CoinSelectionAlgo.html\" title=\"enum example_cli::CoinSelectionAlgo\">CoinSelectionAlgo</a>",1,["example_cli::CoinSelectionAlgo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"example_cli/enum.AddressCmd.html\" title=\"enum example_cli::AddressCmd\">AddressCmd</a>",1,["example_cli::AddressCmd"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"example_cli/enum.TxOutCmd.html\" title=\"enum example_cli::TxOutCmd\">TxOutCmd</a>",1,["example_cli::TxOutCmd"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"example_cli/enum.Keychain.html\" title=\"enum example_cli::Keychain\">Keychain</a>",1,["example_cli::Keychain"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"example_cli/struct.CreateTxChange.html\" title=\"struct example_cli::CreateTxChange\">CreateTxChange</a>",1,["example_cli::CreateTxChange"]],["impl<CS, S, C> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"example_cli/struct.Init.html\" title=\"struct example_cli::Init\">Init</a><CS, S, C><span class=\"where fmt-newline\">where<br> C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,<br> CS: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a>,</span>",1,["example_cli::Init"]]],
"example_electrum":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" href=\"example_electrum/enum.ElectrumCommands.html\" title=\"enum example_electrum::ElectrumCommands\">ElectrumCommands</a>",1,["example_electrum::ElectrumCommands"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"example_electrum/struct.ElectrumArgs.html\" title=\"struct example_electrum::ElectrumArgs\">ElectrumArgs</a>",1,["example_electrum::ElectrumArgs"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\" title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" href=\"example_electrum/struct.ScanOptions.html\" title=\"struct example_electrum::ScanOptions\">ScanOptions</a>",1,["example_electrum::ScanOptions"]]],
(function() {var implementors = {
-"bdk":[["impl<K, Ctx: <a class=\"trait\" href=\"bdk/keys/trait.ScriptContext.html\" title=\"trait bdk::keys::ScriptContext\">ScriptContext</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html\" title=\"trait core::ops::deref::Deref\">Deref</a> for <a class=\"struct\" href=\"bdk/keys/struct.GeneratedKey.html\" title=\"struct bdk::keys::GeneratedKey\">GeneratedKey</a><K, Ctx>"],["impl<S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html\" title=\"trait core::marker::Sized\">Sized</a> + <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> + <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/ops/deref/trait.Deref.html\" title=\"trait core::ops::deref::Deref\">Deref</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerWrapper.html\" title=\"struct bdk::wallet::signer::SignerWrapper\">SignerWrapper</a><S>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html\" title=\"trait core::ops::deref::Deref\">Deref</a> for <a class=\"struct\" href=\"bdk/wallet/struct.AddressInfo.html\" title=\"struct bdk::wallet::AddressInfo\">AddressInfo</a>"]],
-"bdk_chain":[["impl<'a, T, A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html\" title=\"trait core::ops::deref::Deref\">Deref</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxNode.html\" title=\"struct bdk_chain::tx_graph::TxNode\">TxNode</a><'a, T, A>"]]
+"bdk_chain":[["impl<'a, T, A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html\" title=\"trait core::ops::deref::Deref\">Deref</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxNode.html\" title=\"struct bdk_chain::tx_graph::TxNode\">TxNode</a><'a, T, A>"]],
+"bdk_wallet":[["impl<K, Ctx: <a class=\"trait\" href=\"bdk_wallet/keys/trait.ScriptContext.html\" title=\"trait bdk_wallet::keys::ScriptContext\">ScriptContext</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html\" title=\"trait core::ops::deref::Deref\">Deref</a> for <a class=\"struct\" href=\"bdk_wallet/keys/struct.GeneratedKey.html\" title=\"struct bdk_wallet::keys::GeneratedKey\">GeneratedKey</a><K, Ctx>"],["impl<S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html\" title=\"trait core::marker::Sized\">Sized</a> + <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> + <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/ops/deref/trait.Deref.html\" title=\"trait core::ops::deref::Deref\">Deref</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerWrapper.html\" title=\"struct bdk_wallet::wallet::signer::SignerWrapper\">SignerWrapper</a><S>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html\" title=\"trait core::ops::deref::Deref\">Deref</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.AddressInfo.html\" title=\"struct bdk_wallet::wallet::AddressInfo\">AddressInfo</a>"]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
(function() {var implementors = {
-"bdk":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/descriptor/error/enum.Error.html\" title=\"enum bdk::descriptor::error::Error\">Error</a>",1,["bdk::descriptor::error::Error"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk::descriptor::policy::PkOrF\">PkOrF</a>",1,["bdk::descriptor::policy::PkOrF"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>",1,["bdk::descriptor::policy::SatisfiableItem"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk::descriptor::policy::Satisfaction\">Satisfaction</a>",1,["bdk::descriptor::policy::Satisfaction"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Policy.html\" title=\"struct bdk::descriptor::policy::Policy\">Policy</a>",1,["bdk::descriptor::policy::Policy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Condition.html\" title=\"struct bdk::descriptor::policy::Condition\">Condition</a>",1,["bdk::descriptor::policy::Condition"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk::descriptor::policy::PolicyError\">PolicyError</a>",1,["bdk::descriptor::policy::PolicyError"]],["impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.BuildSatisfaction.html\" title=\"enum bdk::descriptor::policy::BuildSatisfaction\">BuildSatisfaction</a><'a>",1,["bdk::descriptor::policy::BuildSatisfaction"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2Pkh.html\" title=\"struct bdk::descriptor::template::P2Pkh\">P2Pkh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk::descriptor::template::P2Pkh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2Wpkh_P2Sh.html\" title=\"struct bdk::descriptor::template::P2Wpkh_P2Sh\">P2Wpkh_P2Sh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk::descriptor::template::P2Wpkh_P2Sh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2Wpkh.html\" title=\"struct bdk::descriptor::template::P2Wpkh\">P2Wpkh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk::descriptor::template::P2Wpkh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2TR.html\" title=\"struct bdk::descriptor::template::P2TR\">P2TR</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk::descriptor::template::P2TR"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip44.html\" title=\"struct bdk::descriptor::template::Bip44\">Bip44</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk::descriptor::template::Bip44"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip44Public.html\" title=\"struct bdk::descriptor::template::Bip44Public\">Bip44Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk::descriptor::template::Bip44Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip49.html\" title=\"struct bdk::descriptor::template::Bip49\">Bip49</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk::descriptor::template::Bip49"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip49Public.html\" title=\"struct bdk::descriptor::template::Bip49Public\">Bip49Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk::descriptor::template::Bip49Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip84.html\" title=\"struct bdk::descriptor::template::Bip84\">Bip84</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk::descriptor::template::Bip84"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip84Public.html\" title=\"struct bdk::descriptor::template::Bip84Public\">Bip84Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk::descriptor::template::Bip84Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip86.html\" title=\"struct bdk::descriptor::template::Bip86\">Bip86</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk::descriptor::template::Bip86"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip86Public.html\" title=\"struct bdk::descriptor::template::Bip86Public\">Bip86Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk::descriptor::template::Bip86Public"]],["impl<Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/keys/enum.DescriptorKey.html\" title=\"enum bdk::keys::DescriptorKey\">DescriptorKey</a><Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk::keys::DescriptorKey"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/keys/enum.ScriptContextEnum.html\" title=\"enum bdk::keys::ScriptContextEnum\">ScriptContextEnum</a>",1,["bdk::keys::ScriptContextEnum"]],["impl<Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/keys/enum.ExtendedKey.html\" title=\"enum bdk::keys::ExtendedKey\">ExtendedKey</a><Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk::keys::ExtendedKey"]],["impl<K, Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/keys/struct.GeneratedKey.html\" title=\"struct bdk::keys::GeneratedKey\">GeneratedKey</a><K, Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk::keys::GeneratedKey"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/keys/struct.PrivateKeyGenerateOptions.html\" title=\"struct bdk::keys::PrivateKeyGenerateOptions\">PrivateKeyGenerateOptions</a>",1,["bdk::keys::PrivateKeyGenerateOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/keys/enum.KeyError.html\" title=\"enum bdk::keys::KeyError\">KeyError</a>",1,["bdk::keys::KeyError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/enum.KeychainKind.html\" title=\"enum bdk::KeychainKind\">KeychainKind</a>",1,["bdk::types::KeychainKind"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/struct.LocalOutput.html\" title=\"struct bdk::LocalOutput\">LocalOutput</a>",1,["bdk::types::LocalOutput"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/struct.WeightedUtxo.html\" title=\"struct bdk::WeightedUtxo\">WeightedUtxo</a>",1,["bdk::types::WeightedUtxo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/enum.Utxo.html\" title=\"enum bdk::Utxo\">Utxo</a>",1,["bdk::types::Utxo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/coin_selection/enum.Error.html\" title=\"enum bdk::wallet::coin_selection::Error\">Error</a>",1,["bdk::wallet::coin_selection::Error"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/coin_selection/enum.Excess.html\" title=\"enum bdk::wallet::coin_selection::Excess\">Excess</a>",1,["bdk::wallet::coin_selection::Excess"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.CoinSelectionResult.html\" title=\"struct bdk::wallet::coin_selection::CoinSelectionResult\">CoinSelectionResult</a>",1,["bdk::wallet::coin_selection::CoinSelectionResult"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.LargestFirstCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::LargestFirstCoinSelection\">LargestFirstCoinSelection</a>",1,["bdk::wallet::coin_selection::LargestFirstCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.OldestFirstCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::OldestFirstCoinSelection\">OldestFirstCoinSelection</a>",1,["bdk::wallet::coin_selection::OldestFirstCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::BranchAndBoundCoinSelection\">BranchAndBoundCoinSelection</a>",1,["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/export/struct.FullyNodedExport.html\" title=\"struct bdk::wallet::export::FullyNodedExport\">FullyNodedExport</a>",1,["bdk::wallet::export::FullyNodedExport"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerId.html\" title=\"enum bdk::wallet::signer::SignerId\">SignerId</a>",1,["bdk::wallet::signer::SignerId"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerError.html\" title=\"enum bdk::wallet::signer::SignerError\">SignerError</a>",1,["bdk::wallet::signer::SignerError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerContext.html\" title=\"enum bdk::wallet::signer::SignerContext\">SignerContext</a>",1,["bdk::wallet::signer::SignerContext"]],["impl<S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerWrapper.html\" title=\"struct bdk::wallet::signer::SignerWrapper\">SignerWrapper</a><S><span class=\"where fmt-newline\">where<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk::wallet::signer::SignerWrapper"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk::wallet::signer::SignerOrdering\">SignerOrdering</a>",1,["bdk::wallet::signer::SignerOrdering"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignersContainer.html\" title=\"struct bdk::wallet::signer::SignersContainer\">SignersContainer</a>",1,["bdk::wallet::signer::SignersContainer"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignOptions.html\" title=\"struct bdk::wallet::signer::SignOptions\">SignOptions</a>",1,["bdk::wallet::signer::SignOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>",1,["bdk::wallet::signer::TapLeavesOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.CreateTx.html\" title=\"struct bdk::wallet::tx_builder::CreateTx\">CreateTx</a>",1,["bdk::wallet::tx_builder::CreateTx"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.BumpFee.html\" title=\"struct bdk::wallet::tx_builder::BumpFee\">BumpFee</a>",1,["bdk::wallet::tx_builder::BumpFee"]],["impl<'a, Cs, Ctx> !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.TxBuilder.html\" title=\"struct bdk::wallet::tx_builder::TxBuilder\">TxBuilder</a><'a, Cs, Ctx>",1,["bdk::wallet::tx_builder::TxBuilder"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AddUtxoError.html\" title=\"enum bdk::wallet::tx_builder::AddUtxoError\">AddUtxoError</a>",1,["bdk::wallet::tx_builder::AddUtxoError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AddForeignUtxoError.html\" title=\"enum bdk::wallet::tx_builder::AddForeignUtxoError\">AddForeignUtxoError</a>",1,["bdk::wallet::tx_builder::AddForeignUtxoError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AllowShrinkingError.html\" title=\"enum bdk::wallet::tx_builder::AllowShrinkingError\">AllowShrinkingError</a>",1,["bdk::wallet::tx_builder::AllowShrinkingError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk::wallet::tx_builder::TxOrdering\">TxOrdering</a>",1,["bdk::wallet::tx_builder::TxOrdering"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>",1,["bdk::wallet::tx_builder::ChangeSpendPolicy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.MiniscriptPsbtError.html\" title=\"enum bdk::wallet::error::MiniscriptPsbtError\">MiniscriptPsbtError</a>",1,["bdk::wallet::error::MiniscriptPsbtError"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.CreateTxError.html\" title=\"enum bdk::wallet::error::CreateTxError\">CreateTxError</a>",1,["bdk::wallet::error::CreateTxError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.BuildFeeBumpError.html\" title=\"enum bdk::wallet::error::BuildFeeBumpError\">BuildFeeBumpError</a>",1,["bdk::wallet::error::BuildFeeBumpError"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/struct.Wallet.html\" title=\"struct bdk::wallet::Wallet\">Wallet</a>",1,["bdk::wallet::Wallet"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/struct.Update.html\" title=\"struct bdk::wallet::Update\">Update</a>",1,["bdk::wallet::Update"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/struct.ChangeSet.html\" title=\"struct bdk::wallet::ChangeSet\">ChangeSet</a>",1,["bdk::wallet::ChangeSet"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/struct.AddressInfo.html\" title=\"struct bdk::wallet::AddressInfo\">AddressInfo</a>",1,["bdk::wallet::AddressInfo"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/enum.NewError.html\" title=\"enum bdk::wallet::NewError\">NewError</a>",1,["bdk::wallet::NewError"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/enum.LoadError.html\" title=\"enum bdk::wallet::LoadError\">LoadError</a>",1,["bdk::wallet::LoadError"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/enum.NewOrLoadError.html\" title=\"enum bdk::wallet::NewOrLoadError\">NewOrLoadError</a>",1,["bdk::wallet::NewOrLoadError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/enum.InsertTxError.html\" title=\"enum bdk::wallet::InsertTxError\">InsertTxError</a>",1,["bdk::wallet::InsertTxError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/enum.ApplyBlockError.html\" title=\"enum bdk::wallet::ApplyBlockError\">ApplyBlockError</a>",1,["bdk::wallet::ApplyBlockError"]]],
"bdk_bitcoind_rpc":[["impl<'c, C> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_bitcoind_rpc/struct.Emitter.html\" title=\"struct bdk_bitcoind_rpc::Emitter\">Emitter</a><'c, C><span class=\"where fmt-newline\">where<br> C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_bitcoind_rpc/struct.BlockEvent.html\" title=\"struct bdk_bitcoind_rpc::BlockEvent\">BlockEvent</a><B><span class=\"where fmt-newline\">where<br> B: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_bitcoind_rpc::BlockEvent"]]],
"bdk_chain":[["impl<I> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/struct.SpkTxOutIndex.html\" title=\"struct bdk_chain::SpkTxOutIndex\">SpkTxOutIndex</a><I><span class=\"where fmt-newline\">where<br> I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_chain/enum.ChainPosition.html\" title=\"enum bdk_chain::ChainPosition\">ChainPosition</a><A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_chain::chain_data::ChainPosition"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_chain/enum.ConfirmationTime.html\" title=\"enum bdk_chain::ConfirmationTime\">ConfirmationTime</a>",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>",1,["bdk_chain::chain_data::BlockId"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationHeightAnchor\">ConfirmationHeightAnchor</a>",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/struct.FullTxOut.html\" title=\"struct bdk_chain::FullTxOut\">FullTxOut</a><A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A, I> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\">IndexedTxGraph</a><A, I><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,<br> I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, IA><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,<br> IA: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.ChangeSet.html\" title=\"struct bdk_chain::keychain::ChangeSet\">ChangeSet</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_chain::keychain::txout_index::ChangeSet"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.KeychainTxOutIndex.html\" title=\"struct bdk_chain::keychain::KeychainTxOutIndex\">KeychainTxOutIndex</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.Balance.html\" title=\"struct bdk_chain::keychain::Balance\">Balance</a>",1,["bdk_chain::keychain::Balance"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CheckPoint.html\" title=\"struct bdk_chain::local_chain::CheckPoint\">CheckPoint</a>",1,["bdk_chain::local_chain::CheckPoint"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CheckPointIter.html\" title=\"struct bdk_chain::local_chain::CheckPointIter\">CheckPointIter</a>",1,["bdk_chain::local_chain::CheckPointIter"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.LocalChain.html\" title=\"struct bdk_chain::local_chain::LocalChain\">LocalChain</a>",1,["bdk_chain::local_chain::LocalChain"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.MissingGenesisError.html\" title=\"struct bdk_chain::local_chain::MissingGenesisError\">MissingGenesisError</a>",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.AlterCheckPointError.html\" title=\"struct bdk_chain::local_chain::AlterCheckPointError\">AlterCheckPointError</a>",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CannotConnectError.html\" title=\"struct bdk_chain::local_chain::CannotConnectError\">CannotConnectError</a>",1,["bdk_chain::local_chain::CannotConnectError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_chain/local_chain/enum.ApplyHeaderError.html\" title=\"enum bdk_chain::local_chain::ApplyHeaderError\">ApplyHeaderError</a>",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\">TxGraph</a><A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_chain::tx_graph::TxGraph"]],["impl<'a, T, A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxNode.html\" title=\"struct bdk_chain::tx_graph::TxNode\">TxNode</a><'a, T, A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,<br> T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_chain::tx_graph::TxNode"]],["impl<'a, T, A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.CanonicalTx.html\" title=\"struct bdk_chain::tx_graph::CanonicalTx\">CanonicalTx</a><'a, T, A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,<br> T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_chain/tx_graph/enum.CalculateFeeError.html\" title=\"enum bdk_chain::tx_graph::CalculateFeeError\">CalculateFeeError</a>",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::tx_graph::ChangeSet\">ChangeSet</a><A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<'g, A, F> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxAncestors.html\" title=\"struct bdk_chain::tx_graph::TxAncestors\">TxAncestors</a><'g, A, F><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,<br> F: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxDescendants.html\" title=\"struct bdk_chain::tx_graph::TxDescendants\">TxDescendants</a><'g, A, F><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,<br> F: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_chain::tx_graph::TxDescendants"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<D> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/struct.SpkIterator.html\" title=\"struct bdk_chain::SpkIterator\">SpkIterator</a><D><span class=\"where fmt-newline\">where<br> D: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_chain::spk_iter::SpkIterator"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.SyncRequest.html\" title=\"struct bdk_chain::spk_client::SyncRequest\">SyncRequest</a>",1,["bdk_chain::spk_client::SyncRequest"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.SyncResult.html\" title=\"struct bdk_chain::spk_client::SyncResult\">SyncResult</a><A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_chain::spk_client::SyncResult"]],["impl<K> !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.FullScanRequest.html\" title=\"struct bdk_chain::spk_client::FullScanRequest\">FullScanRequest</a><K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K, A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.FullScanResult.html\" title=\"struct bdk_chain::spk_client::FullScanResult\">FullScanResult</a><K, A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_chain::spk_client::FullScanResult"]]],
"bdk_coin_select":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.WeightedValue.html\" title=\"struct bdk_coin_select::WeightedValue\">WeightedValue</a>",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.CoinSelectorOpt.html\" title=\"struct bdk_coin_select::CoinSelectorOpt\">CoinSelectorOpt</a>",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.CoinSelector.html\" title=\"struct bdk_coin_select::CoinSelector\">CoinSelector</a><'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.SelectionError.html\" title=\"struct bdk_coin_select::SelectionError\">SelectionError</a>",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.SelectionConstraint.html\" title=\"enum bdk_coin_select::SelectionConstraint\">SelectionConstraint</a>",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.Selection.html\" title=\"struct bdk_coin_select::Selection\">Selection</a>",1,["bdk_coin_select::coin_selector::Selection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.ExcessStrategyKind.html\" title=\"enum bdk_coin_select::ExcessStrategyKind\">ExcessStrategyKind</a>",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.ExcessStrategy.html\" title=\"struct bdk_coin_select::ExcessStrategy\">ExcessStrategy</a>",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.BranchStrategy.html\" title=\"enum bdk_coin_select::BranchStrategy\">BranchStrategy</a>",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl<'c, S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.Bnb.html\" title=\"struct bdk_coin_select::Bnb\">Bnb</a><'c, S><span class=\"where fmt-newline\">where<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_coin_select::bnb::Bnb"]],["impl<'c, 'f, S> !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.BnbIter.html\" title=\"struct bdk_coin_select::BnbIter\">BnbIter</a><'c, 'f, S>",1,["bdk_coin_select::bnb::BnbIter"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.BnbLimit.html\" title=\"enum bdk_coin_select::BnbLimit\">BnbLimit</a>",1,["bdk_coin_select::bnb::BnbLimit"]]],
"bdk_persist":[["impl<C> !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_persist/struct.Persist.html\" title=\"struct bdk_persist::Persist\">Persist</a><C>",1,["bdk_persist::persist::Persist"]]],
"bdk_testenv":[["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_testenv/struct.TestEnv.html\" title=\"struct bdk_testenv::TestEnv\">TestEnv</a>",1,["bdk_testenv::TestEnv"]]],
"bdk_tmp_plan":[["impl<Ak> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Requirements.html\" title=\"struct bdk_tmp_plan::Requirements\">Requirements</a><Ak><span class=\"where fmt-newline\">where<br> Ak: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_tmp_plan::requirements::Requirements"]],["impl<Ak> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.RequiredSignatures.html\" title=\"enum bdk_tmp_plan::RequiredSignatures\">RequiredSignatures</a><Ak><span class=\"where fmt-newline\">where<br> Ak: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_tmp_plan::requirements::RequiredSignatures"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.SigningError.html\" title=\"enum bdk_tmp_plan::SigningError\">SigningError</a>",1,["bdk_tmp_plan::requirements::SigningError"]],["impl<Ak> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.PlanKey.html\" title=\"struct bdk_tmp_plan::PlanKey\">PlanKey</a><Ak><span class=\"where fmt-newline\">where<br> Ak: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_tmp_plan::template::PlanKey"]],["impl<AK> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Plan.html\" title=\"struct bdk_tmp_plan::Plan\">Plan</a><AK><span class=\"where fmt-newline\">where<br> AK: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_tmp_plan::Plan"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.SatisfactionMaterial.html\" title=\"struct bdk_tmp_plan::SatisfactionMaterial\">SatisfactionMaterial</a>",1,["bdk_tmp_plan::SatisfactionMaterial"]],["impl<Ak> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.PlanState.html\" title=\"enum bdk_tmp_plan::PlanState\">PlanState</a><Ak><span class=\"where fmt-newline\">where<br> Ak: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_tmp_plan::PlanState"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Assets.html\" title=\"struct bdk_tmp_plan::Assets\">Assets</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_tmp_plan::Assets"]]],
+"bdk_wallet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/error/enum.Error.html\" title=\"enum bdk_wallet::descriptor::error::Error\">Error</a>",1,["bdk_wallet::descriptor::error::Error"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk_wallet::descriptor::policy::PkOrF\">PkOrF</a>",1,["bdk_wallet::descriptor::policy::PkOrF"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk_wallet::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>",1,["bdk_wallet::descriptor::policy::SatisfiableItem"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::Satisfaction\">Satisfaction</a>",1,["bdk_wallet::descriptor::policy::Satisfaction"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Policy.html\" title=\"struct bdk_wallet::descriptor::policy::Policy\">Policy</a>",1,["bdk_wallet::descriptor::policy::Policy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Condition.html\" title=\"struct bdk_wallet::descriptor::policy::Condition\">Condition</a>",1,["bdk_wallet::descriptor::policy::Condition"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk_wallet::descriptor::policy::PolicyError\">PolicyError</a>",1,["bdk_wallet::descriptor::policy::PolicyError"]],["impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.BuildSatisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::BuildSatisfaction\">BuildSatisfaction</a><'a>",1,["bdk_wallet::descriptor::policy::BuildSatisfaction"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2Pkh.html\" title=\"struct bdk_wallet::descriptor::template::P2Pkh\">P2Pkh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::P2Pkh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2Wpkh_P2Sh.html\" title=\"struct bdk_wallet::descriptor::template::P2Wpkh_P2Sh\">P2Wpkh_P2Sh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::P2Wpkh_P2Sh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2Wpkh.html\" title=\"struct bdk_wallet::descriptor::template::P2Wpkh\">P2Wpkh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::P2Wpkh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2TR.html\" title=\"struct bdk_wallet::descriptor::template::P2TR\">P2TR</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::P2TR"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip44.html\" title=\"struct bdk_wallet::descriptor::template::Bip44\">Bip44</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::Bip44"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip44Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip44Public\">Bip44Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::Bip44Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip49.html\" title=\"struct bdk_wallet::descriptor::template::Bip49\">Bip49</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::Bip49"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip49Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip49Public\">Bip49Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::Bip49Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip84.html\" title=\"struct bdk_wallet::descriptor::template::Bip84\">Bip84</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::Bip84"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip84Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip84Public\">Bip84Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::Bip84Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip86.html\" title=\"struct bdk_wallet::descriptor::template::Bip86\">Bip86</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::Bip86"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip86Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip86Public\">Bip86Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::Bip86Public"]],["impl<Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.DescriptorKey.html\" title=\"enum bdk_wallet::keys::DescriptorKey\">DescriptorKey</a><Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_wallet::keys::DescriptorKey"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.ScriptContextEnum.html\" title=\"enum bdk_wallet::keys::ScriptContextEnum\">ScriptContextEnum</a>",1,["bdk_wallet::keys::ScriptContextEnum"]],["impl<Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.ExtendedKey.html\" title=\"enum bdk_wallet::keys::ExtendedKey\">ExtendedKey</a><Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_wallet::keys::ExtendedKey"]],["impl<K, Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/keys/struct.GeneratedKey.html\" title=\"struct bdk_wallet::keys::GeneratedKey\">GeneratedKey</a><K, Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_wallet::keys::GeneratedKey"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/keys/struct.PrivateKeyGenerateOptions.html\" title=\"struct bdk_wallet::keys::PrivateKeyGenerateOptions\">PrivateKeyGenerateOptions</a>",1,["bdk_wallet::keys::PrivateKeyGenerateOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.KeyError.html\" title=\"enum bdk_wallet::keys::KeyError\">KeyError</a>",1,["bdk_wallet::keys::KeyError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>",1,["bdk_wallet::types::KeychainKind"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/struct.LocalOutput.html\" title=\"struct bdk_wallet::LocalOutput\">LocalOutput</a>",1,["bdk_wallet::types::LocalOutput"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/struct.WeightedUtxo.html\" title=\"struct bdk_wallet::WeightedUtxo\">WeightedUtxo</a>",1,["bdk_wallet::types::WeightedUtxo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/enum.Utxo.html\" title=\"enum bdk_wallet::Utxo\">Utxo</a>",1,["bdk_wallet::types::Utxo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/coin_selection/enum.Error.html\" title=\"enum bdk_wallet::wallet::coin_selection::Error\">Error</a>",1,["bdk_wallet::wallet::coin_selection::Error"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/coin_selection/enum.Excess.html\" title=\"enum bdk_wallet::wallet::coin_selection::Excess\">Excess</a>",1,["bdk_wallet::wallet::coin_selection::Excess"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.CoinSelectionResult.html\" title=\"struct bdk_wallet::wallet::coin_selection::CoinSelectionResult\">CoinSelectionResult</a>",1,["bdk_wallet::wallet::coin_selection::CoinSelectionResult"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.LargestFirstCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection\">LargestFirstCoinSelection</a>",1,["bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.OldestFirstCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection\">OldestFirstCoinSelection</a>",1,["bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection\">BranchAndBoundCoinSelection</a>",1,["bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/export/struct.FullyNodedExport.html\" title=\"struct bdk_wallet::wallet::export::FullyNodedExport\">FullyNodedExport</a>",1,["bdk_wallet::wallet::export::FullyNodedExport"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerId.html\" title=\"enum bdk_wallet::wallet::signer::SignerId\">SignerId</a>",1,["bdk_wallet::wallet::signer::SignerId"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerError.html\" title=\"enum bdk_wallet::wallet::signer::SignerError\">SignerError</a>",1,["bdk_wallet::wallet::signer::SignerError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerContext.html\" title=\"enum bdk_wallet::wallet::signer::SignerContext\">SignerContext</a>",1,["bdk_wallet::wallet::signer::SignerContext"]],["impl<S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerWrapper.html\" title=\"struct bdk_wallet::wallet::signer::SignerWrapper\">SignerWrapper</a><S><span class=\"where fmt-newline\">where<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_wallet::wallet::signer::SignerWrapper"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk_wallet::wallet::signer::SignerOrdering\">SignerOrdering</a>",1,["bdk_wallet::wallet::signer::SignerOrdering"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignersContainer.html\" title=\"struct bdk_wallet::wallet::signer::SignersContainer\">SignersContainer</a>",1,["bdk_wallet::wallet::signer::SignersContainer"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignOptions.html\" title=\"struct bdk_wallet::wallet::signer::SignOptions\">SignOptions</a>",1,["bdk_wallet::wallet::signer::SignOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk_wallet::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>",1,["bdk_wallet::wallet::signer::TapLeavesOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.CreateTx.html\" title=\"struct bdk_wallet::wallet::tx_builder::CreateTx\">CreateTx</a>",1,["bdk_wallet::wallet::tx_builder::CreateTx"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.BumpFee.html\" title=\"struct bdk_wallet::wallet::tx_builder::BumpFee\">BumpFee</a>",1,["bdk_wallet::wallet::tx_builder::BumpFee"]],["impl<'a, Cs, Ctx> !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.TxBuilder.html\" title=\"struct bdk_wallet::wallet::tx_builder::TxBuilder\">TxBuilder</a><'a, Cs, Ctx>",1,["bdk_wallet::wallet::tx_builder::TxBuilder"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AddUtxoError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AddUtxoError\">AddUtxoError</a>",1,["bdk_wallet::wallet::tx_builder::AddUtxoError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AddForeignUtxoError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AddForeignUtxoError\">AddForeignUtxoError</a>",1,["bdk_wallet::wallet::tx_builder::AddForeignUtxoError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AllowShrinkingError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AllowShrinkingError\">AllowShrinkingError</a>",1,["bdk_wallet::wallet::tx_builder::AllowShrinkingError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk_wallet::wallet::tx_builder::TxOrdering\">TxOrdering</a>",1,["bdk_wallet::wallet::tx_builder::TxOrdering"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>",1,["bdk_wallet::wallet::tx_builder::ChangeSpendPolicy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.MiniscriptPsbtError.html\" title=\"enum bdk_wallet::wallet::error::MiniscriptPsbtError\">MiniscriptPsbtError</a>",1,["bdk_wallet::wallet::error::MiniscriptPsbtError"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.CreateTxError.html\" title=\"enum bdk_wallet::wallet::error::CreateTxError\">CreateTxError</a>",1,["bdk_wallet::wallet::error::CreateTxError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.BuildFeeBumpError.html\" title=\"enum bdk_wallet::wallet::error::BuildFeeBumpError\">BuildFeeBumpError</a>",1,["bdk_wallet::wallet::error::BuildFeeBumpError"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.Wallet.html\" title=\"struct bdk_wallet::wallet::Wallet\">Wallet</a>",1,["bdk_wallet::wallet::Wallet"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.Update.html\" title=\"struct bdk_wallet::wallet::Update\">Update</a>",1,["bdk_wallet::wallet::Update"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.ChangeSet.html\" title=\"struct bdk_wallet::wallet::ChangeSet\">ChangeSet</a>",1,["bdk_wallet::wallet::ChangeSet"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.AddressInfo.html\" title=\"struct bdk_wallet::wallet::AddressInfo\">AddressInfo</a>",1,["bdk_wallet::wallet::AddressInfo"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.NewError.html\" title=\"enum bdk_wallet::wallet::NewError\">NewError</a>",1,["bdk_wallet::wallet::NewError"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.LoadError.html\" title=\"enum bdk_wallet::wallet::LoadError\">LoadError</a>",1,["bdk_wallet::wallet::LoadError"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.NewOrLoadError.html\" title=\"enum bdk_wallet::wallet::NewOrLoadError\">NewOrLoadError</a>",1,["bdk_wallet::wallet::NewOrLoadError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.InsertTxError.html\" title=\"enum bdk_wallet::wallet::InsertTxError\">InsertTxError</a>",1,["bdk_wallet::wallet::InsertTxError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.ApplyBlockError.html\" title=\"enum bdk_wallet::wallet::ApplyBlockError\">ApplyBlockError</a>",1,["bdk_wallet::wallet::ApplyBlockError"]]],
"example_bitcoind_rpc_polling":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"example_bitcoind_rpc_polling/enum.Emission.html\" title=\"enum example_bitcoind_rpc_polling::Emission\">Emission</a>",1,["example_bitcoind_rpc_polling::Emission"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"example_bitcoind_rpc_polling/struct.RpcArgs.html\" title=\"struct example_bitcoind_rpc_polling::RpcArgs\">RpcArgs</a>",1,["example_bitcoind_rpc_polling::RpcArgs"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"example_bitcoind_rpc_polling/enum.RpcCommands.html\" title=\"enum example_bitcoind_rpc_polling::RpcCommands\">RpcCommands</a>",1,["example_bitcoind_rpc_polling::RpcCommands"]]],
"example_cli":[["impl<CS, S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"example_cli/struct.Args.html\" title=\"struct example_cli::Args\">Args</a><CS, S><span class=\"where fmt-newline\">where<br> CS: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["example_cli::Args"]],["impl<CS, S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"example_cli/enum.Commands.html\" title=\"enum example_cli::Commands\">Commands</a><CS, S><span class=\"where fmt-newline\">where<br> CS: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["example_cli::Commands"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"example_cli/enum.CoinSelectionAlgo.html\" title=\"enum example_cli::CoinSelectionAlgo\">CoinSelectionAlgo</a>",1,["example_cli::CoinSelectionAlgo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"example_cli/enum.AddressCmd.html\" title=\"enum example_cli::AddressCmd\">AddressCmd</a>",1,["example_cli::AddressCmd"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"example_cli/enum.TxOutCmd.html\" title=\"enum example_cli::TxOutCmd\">TxOutCmd</a>",1,["example_cli::TxOutCmd"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"example_cli/enum.Keychain.html\" title=\"enum example_cli::Keychain\">Keychain</a>",1,["example_cli::Keychain"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"example_cli/struct.CreateTxChange.html\" title=\"struct example_cli::CreateTxChange\">CreateTxChange</a>",1,["example_cli::CreateTxChange"]],["impl<CS, S, C> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"example_cli/struct.Init.html\" title=\"struct example_cli::Init\">Init</a><CS, S, C><span class=\"where fmt-newline\">where<br> C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,<br> CS: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["example_cli::Init"]]],
"example_electrum":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"enum\" href=\"example_electrum/enum.ElectrumCommands.html\" title=\"enum example_electrum::ElectrumCommands\">ElectrumCommands</a>",1,["example_electrum::ElectrumCommands"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"example_electrum/struct.ElectrumArgs.html\" title=\"struct example_electrum::ElectrumArgs\">ElectrumArgs</a>",1,["example_electrum::ElectrumArgs"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for <a class=\"struct\" href=\"example_electrum/struct.ScanOptions.html\" title=\"struct example_electrum::ScanOptions\">ScanOptions</a>",1,["example_electrum::ScanOptions"]]],
(function() {var implementors = {
-"bdk":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/descriptor/error/enum.Error.html\" title=\"enum bdk::descriptor::error::Error\">Error</a>",1,["bdk::descriptor::error::Error"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk::descriptor::policy::PkOrF\">PkOrF</a>",1,["bdk::descriptor::policy::PkOrF"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>",1,["bdk::descriptor::policy::SatisfiableItem"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk::descriptor::policy::Satisfaction\">Satisfaction</a>",1,["bdk::descriptor::policy::Satisfaction"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Policy.html\" title=\"struct bdk::descriptor::policy::Policy\">Policy</a>",1,["bdk::descriptor::policy::Policy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Condition.html\" title=\"struct bdk::descriptor::policy::Condition\">Condition</a>",1,["bdk::descriptor::policy::Condition"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk::descriptor::policy::PolicyError\">PolicyError</a>",1,["bdk::descriptor::policy::PolicyError"]],["impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.BuildSatisfaction.html\" title=\"enum bdk::descriptor::policy::BuildSatisfaction\">BuildSatisfaction</a><'a>",1,["bdk::descriptor::policy::BuildSatisfaction"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2Pkh.html\" title=\"struct bdk::descriptor::template::P2Pkh\">P2Pkh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk::descriptor::template::P2Pkh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2Wpkh_P2Sh.html\" title=\"struct bdk::descriptor::template::P2Wpkh_P2Sh\">P2Wpkh_P2Sh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk::descriptor::template::P2Wpkh_P2Sh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2Wpkh.html\" title=\"struct bdk::descriptor::template::P2Wpkh\">P2Wpkh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk::descriptor::template::P2Wpkh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.P2TR.html\" title=\"struct bdk::descriptor::template::P2TR\">P2TR</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk::descriptor::template::P2TR"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip44.html\" title=\"struct bdk::descriptor::template::Bip44\">Bip44</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk::descriptor::template::Bip44"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip44Public.html\" title=\"struct bdk::descriptor::template::Bip44Public\">Bip44Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk::descriptor::template::Bip44Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip49.html\" title=\"struct bdk::descriptor::template::Bip49\">Bip49</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk::descriptor::template::Bip49"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip49Public.html\" title=\"struct bdk::descriptor::template::Bip49Public\">Bip49Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk::descriptor::template::Bip49Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip84.html\" title=\"struct bdk::descriptor::template::Bip84\">Bip84</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk::descriptor::template::Bip84"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip84Public.html\" title=\"struct bdk::descriptor::template::Bip84Public\">Bip84Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk::descriptor::template::Bip84Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip86.html\" title=\"struct bdk::descriptor::template::Bip86\">Bip86</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk::descriptor::template::Bip86"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/descriptor/template/struct.Bip86Public.html\" title=\"struct bdk::descriptor::template::Bip86Public\">Bip86Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk::descriptor::template::Bip86Public"]],["impl<Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/keys/enum.DescriptorKey.html\" title=\"enum bdk::keys::DescriptorKey\">DescriptorKey</a><Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk::keys::DescriptorKey"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/keys/enum.ScriptContextEnum.html\" title=\"enum bdk::keys::ScriptContextEnum\">ScriptContextEnum</a>",1,["bdk::keys::ScriptContextEnum"]],["impl<Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/keys/enum.ExtendedKey.html\" title=\"enum bdk::keys::ExtendedKey\">ExtendedKey</a><Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk::keys::ExtendedKey"]],["impl<K, Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/keys/struct.GeneratedKey.html\" title=\"struct bdk::keys::GeneratedKey\">GeneratedKey</a><K, Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk::keys::GeneratedKey"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/keys/struct.PrivateKeyGenerateOptions.html\" title=\"struct bdk::keys::PrivateKeyGenerateOptions\">PrivateKeyGenerateOptions</a>",1,["bdk::keys::PrivateKeyGenerateOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/keys/enum.KeyError.html\" title=\"enum bdk::keys::KeyError\">KeyError</a>",1,["bdk::keys::KeyError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/enum.KeychainKind.html\" title=\"enum bdk::KeychainKind\">KeychainKind</a>",1,["bdk::types::KeychainKind"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/struct.LocalOutput.html\" title=\"struct bdk::LocalOutput\">LocalOutput</a>",1,["bdk::types::LocalOutput"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/struct.WeightedUtxo.html\" title=\"struct bdk::WeightedUtxo\">WeightedUtxo</a>",1,["bdk::types::WeightedUtxo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/enum.Utxo.html\" title=\"enum bdk::Utxo\">Utxo</a>",1,["bdk::types::Utxo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/coin_selection/enum.Error.html\" title=\"enum bdk::wallet::coin_selection::Error\">Error</a>",1,["bdk::wallet::coin_selection::Error"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/coin_selection/enum.Excess.html\" title=\"enum bdk::wallet::coin_selection::Excess\">Excess</a>",1,["bdk::wallet::coin_selection::Excess"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.CoinSelectionResult.html\" title=\"struct bdk::wallet::coin_selection::CoinSelectionResult\">CoinSelectionResult</a>",1,["bdk::wallet::coin_selection::CoinSelectionResult"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.LargestFirstCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::LargestFirstCoinSelection\">LargestFirstCoinSelection</a>",1,["bdk::wallet::coin_selection::LargestFirstCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.OldestFirstCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::OldestFirstCoinSelection\">OldestFirstCoinSelection</a>",1,["bdk::wallet::coin_selection::OldestFirstCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html\" title=\"struct bdk::wallet::coin_selection::BranchAndBoundCoinSelection\">BranchAndBoundCoinSelection</a>",1,["bdk::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/export/struct.FullyNodedExport.html\" title=\"struct bdk::wallet::export::FullyNodedExport\">FullyNodedExport</a>",1,["bdk::wallet::export::FullyNodedExport"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerId.html\" title=\"enum bdk::wallet::signer::SignerId\">SignerId</a>",1,["bdk::wallet::signer::SignerId"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerError.html\" title=\"enum bdk::wallet::signer::SignerError\">SignerError</a>",1,["bdk::wallet::signer::SignerError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.SignerContext.html\" title=\"enum bdk::wallet::signer::SignerContext\">SignerContext</a>",1,["bdk::wallet::signer::SignerContext"]],["impl<S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerWrapper.html\" title=\"struct bdk::wallet::signer::SignerWrapper\">SignerWrapper</a><S><span class=\"where fmt-newline\">where<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk::wallet::signer::SignerWrapper"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk::wallet::signer::SignerOrdering\">SignerOrdering</a>",1,["bdk::wallet::signer::SignerOrdering"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignersContainer.html\" title=\"struct bdk::wallet::signer::SignersContainer\">SignersContainer</a>",1,["bdk::wallet::signer::SignersContainer"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/signer/struct.SignOptions.html\" title=\"struct bdk::wallet::signer::SignOptions\">SignOptions</a>",1,["bdk::wallet::signer::SignOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>",1,["bdk::wallet::signer::TapLeavesOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.CreateTx.html\" title=\"struct bdk::wallet::tx_builder::CreateTx\">CreateTx</a>",1,["bdk::wallet::tx_builder::CreateTx"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.BumpFee.html\" title=\"struct bdk::wallet::tx_builder::BumpFee\">BumpFee</a>",1,["bdk::wallet::tx_builder::BumpFee"]],["impl<'a, Cs, Ctx> !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/tx_builder/struct.TxBuilder.html\" title=\"struct bdk::wallet::tx_builder::TxBuilder\">TxBuilder</a><'a, Cs, Ctx>",1,["bdk::wallet::tx_builder::TxBuilder"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AddUtxoError.html\" title=\"enum bdk::wallet::tx_builder::AddUtxoError\">AddUtxoError</a>",1,["bdk::wallet::tx_builder::AddUtxoError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AddForeignUtxoError.html\" title=\"enum bdk::wallet::tx_builder::AddForeignUtxoError\">AddForeignUtxoError</a>",1,["bdk::wallet::tx_builder::AddForeignUtxoError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.AllowShrinkingError.html\" title=\"enum bdk::wallet::tx_builder::AllowShrinkingError\">AllowShrinkingError</a>",1,["bdk::wallet::tx_builder::AllowShrinkingError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk::wallet::tx_builder::TxOrdering\">TxOrdering</a>",1,["bdk::wallet::tx_builder::TxOrdering"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>",1,["bdk::wallet::tx_builder::ChangeSpendPolicy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.MiniscriptPsbtError.html\" title=\"enum bdk::wallet::error::MiniscriptPsbtError\">MiniscriptPsbtError</a>",1,["bdk::wallet::error::MiniscriptPsbtError"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.CreateTxError.html\" title=\"enum bdk::wallet::error::CreateTxError\">CreateTxError</a>",1,["bdk::wallet::error::CreateTxError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/error/enum.BuildFeeBumpError.html\" title=\"enum bdk::wallet::error::BuildFeeBumpError\">BuildFeeBumpError</a>",1,["bdk::wallet::error::BuildFeeBumpError"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/struct.Wallet.html\" title=\"struct bdk::wallet::Wallet\">Wallet</a>",1,["bdk::wallet::Wallet"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/struct.Update.html\" title=\"struct bdk::wallet::Update\">Update</a>",1,["bdk::wallet::Update"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/struct.ChangeSet.html\" title=\"struct bdk::wallet::ChangeSet\">ChangeSet</a>",1,["bdk::wallet::ChangeSet"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk/wallet/struct.AddressInfo.html\" title=\"struct bdk::wallet::AddressInfo\">AddressInfo</a>",1,["bdk::wallet::AddressInfo"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/enum.NewError.html\" title=\"enum bdk::wallet::NewError\">NewError</a>",1,["bdk::wallet::NewError"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/enum.LoadError.html\" title=\"enum bdk::wallet::LoadError\">LoadError</a>",1,["bdk::wallet::LoadError"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/enum.NewOrLoadError.html\" title=\"enum bdk::wallet::NewOrLoadError\">NewOrLoadError</a>",1,["bdk::wallet::NewOrLoadError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/enum.InsertTxError.html\" title=\"enum bdk::wallet::InsertTxError\">InsertTxError</a>",1,["bdk::wallet::InsertTxError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk/wallet/enum.ApplyBlockError.html\" title=\"enum bdk::wallet::ApplyBlockError\">ApplyBlockError</a>",1,["bdk::wallet::ApplyBlockError"]]],
"bdk_bitcoind_rpc":[["impl<'c, C> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_bitcoind_rpc/struct.Emitter.html\" title=\"struct bdk_bitcoind_rpc::Emitter\">Emitter</a><'c, C><span class=\"where fmt-newline\">where<br> C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_bitcoind_rpc::Emitter"]],["impl<B> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_bitcoind_rpc/struct.BlockEvent.html\" title=\"struct bdk_bitcoind_rpc::BlockEvent\">BlockEvent</a><B><span class=\"where fmt-newline\">where<br> B: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_bitcoind_rpc::BlockEvent"]]],
"bdk_chain":[["impl<I> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/struct.SpkTxOutIndex.html\" title=\"struct bdk_chain::SpkTxOutIndex\">SpkTxOutIndex</a><I><span class=\"where fmt-newline\">where<br> I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> + <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_chain::spk_txout_index::SpkTxOutIndex"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_chain/enum.ChainPosition.html\" title=\"enum bdk_chain::ChainPosition\">ChainPosition</a><A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_chain::chain_data::ChainPosition"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_chain/enum.ConfirmationTime.html\" title=\"enum bdk_chain::ConfirmationTime\">ConfirmationTime</a>",1,["bdk_chain::chain_data::ConfirmationTime"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>",1,["bdk_chain::chain_data::BlockId"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationHeightAnchor\">ConfirmationHeightAnchor</a>",1,["bdk_chain::chain_data::ConfirmationHeightAnchor"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>",1,["bdk_chain::chain_data::ConfirmationTimeHeightAnchor"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/struct.FullTxOut.html\" title=\"struct bdk_chain::FullTxOut\">FullTxOut</a><A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_chain::chain_data::FullTxOut"]],["impl<A, I> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.IndexedTxGraph.html\" title=\"struct bdk_chain::indexed_tx_graph::IndexedTxGraph\">IndexedTxGraph</a><A, I><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,<br> I: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_chain::indexed_tx_graph::IndexedTxGraph"]],["impl<A, IA> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, IA><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,<br> IA: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_chain::indexed_tx_graph::ChangeSet"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.ChangeSet.html\" title=\"struct bdk_chain::keychain::ChangeSet\">ChangeSet</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_chain::keychain::txout_index::ChangeSet"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.KeychainTxOutIndex.html\" title=\"struct bdk_chain::keychain::KeychainTxOutIndex\">KeychainTxOutIndex</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_chain::keychain::txout_index::KeychainTxOutIndex"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.Balance.html\" title=\"struct bdk_chain::keychain::Balance\">Balance</a>",1,["bdk_chain::keychain::Balance"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CheckPoint.html\" title=\"struct bdk_chain::local_chain::CheckPoint\">CheckPoint</a>",1,["bdk_chain::local_chain::CheckPoint"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CheckPointIter.html\" title=\"struct bdk_chain::local_chain::CheckPointIter\">CheckPointIter</a>",1,["bdk_chain::local_chain::CheckPointIter"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.LocalChain.html\" title=\"struct bdk_chain::local_chain::LocalChain\">LocalChain</a>",1,["bdk_chain::local_chain::LocalChain"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.MissingGenesisError.html\" title=\"struct bdk_chain::local_chain::MissingGenesisError\">MissingGenesisError</a>",1,["bdk_chain::local_chain::MissingGenesisError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.AlterCheckPointError.html\" title=\"struct bdk_chain::local_chain::AlterCheckPointError\">AlterCheckPointError</a>",1,["bdk_chain::local_chain::AlterCheckPointError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/local_chain/struct.CannotConnectError.html\" title=\"struct bdk_chain::local_chain::CannotConnectError\">CannotConnectError</a>",1,["bdk_chain::local_chain::CannotConnectError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_chain/local_chain/enum.ApplyHeaderError.html\" title=\"enum bdk_chain::local_chain::ApplyHeaderError\">ApplyHeaderError</a>",1,["bdk_chain::local_chain::ApplyHeaderError"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxGraph.html\" title=\"struct bdk_chain::tx_graph::TxGraph\">TxGraph</a><A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_chain::tx_graph::TxGraph"]],["impl<'a, T, A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxNode.html\" title=\"struct bdk_chain::tx_graph::TxNode\">TxNode</a><'a, T, A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,<br> T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_chain::tx_graph::TxNode"]],["impl<'a, T, A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.CanonicalTx.html\" title=\"struct bdk_chain::tx_graph::CanonicalTx\">CanonicalTx</a><'a, T, A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,<br> T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_chain::tx_graph::CanonicalTx"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_chain/tx_graph/enum.CalculateFeeError.html\" title=\"enum bdk_chain::tx_graph::CalculateFeeError\">CalculateFeeError</a>",1,["bdk_chain::tx_graph::CalculateFeeError"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::tx_graph::ChangeSet\">ChangeSet</a><A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_chain::tx_graph::ChangeSet"]],["impl<'g, A, F> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxAncestors.html\" title=\"struct bdk_chain::tx_graph::TxAncestors\">TxAncestors</a><'g, A, F><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,<br> F: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_chain::tx_graph::TxAncestors"]],["impl<'g, A, F> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.TxDescendants.html\" title=\"struct bdk_chain::tx_graph::TxDescendants\">TxDescendants</a><'g, A, F><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,<br> F: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_chain::tx_graph::TxDescendants"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>",1,["bdk_chain::descriptor_ext::DescriptorId"]],["impl<D> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/struct.SpkIterator.html\" title=\"struct bdk_chain::SpkIterator\">SpkIterator</a><D><span class=\"where fmt-newline\">where<br> D: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_chain::spk_iter::SpkIterator"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.SyncRequest.html\" title=\"struct bdk_chain::spk_client::SyncRequest\">SyncRequest</a>",1,["bdk_chain::spk_client::SyncRequest"]],["impl<A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.SyncResult.html\" title=\"struct bdk_chain::spk_client::SyncResult\">SyncResult</a><A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_chain::spk_client::SyncResult"]],["impl<K> !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.FullScanRequest.html\" title=\"struct bdk_chain::spk_client::FullScanRequest\">FullScanRequest</a><K>",1,["bdk_chain::spk_client::FullScanRequest"]],["impl<K, A> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_chain/spk_client/struct.FullScanResult.html\" title=\"struct bdk_chain::spk_client::FullScanResult\">FullScanResult</a><K, A><span class=\"where fmt-newline\">where<br> A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\" title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a>,</span>",1,["bdk_chain::spk_client::FullScanResult"]]],
"bdk_coin_select":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.WeightedValue.html\" title=\"struct bdk_coin_select::WeightedValue\">WeightedValue</a>",1,["bdk_coin_select::coin_selector::WeightedValue"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.CoinSelectorOpt.html\" title=\"struct bdk_coin_select::CoinSelectorOpt\">CoinSelectorOpt</a>",1,["bdk_coin_select::coin_selector::CoinSelectorOpt"]],["impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.CoinSelector.html\" title=\"struct bdk_coin_select::CoinSelector\">CoinSelector</a><'a>",1,["bdk_coin_select::coin_selector::CoinSelector"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.SelectionError.html\" title=\"struct bdk_coin_select::SelectionError\">SelectionError</a>",1,["bdk_coin_select::coin_selector::SelectionError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.SelectionConstraint.html\" title=\"enum bdk_coin_select::SelectionConstraint\">SelectionConstraint</a>",1,["bdk_coin_select::coin_selector::SelectionConstraint"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.Selection.html\" title=\"struct bdk_coin_select::Selection\">Selection</a>",1,["bdk_coin_select::coin_selector::Selection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.ExcessStrategyKind.html\" title=\"enum bdk_coin_select::ExcessStrategyKind\">ExcessStrategyKind</a>",1,["bdk_coin_select::coin_selector::ExcessStrategyKind"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.ExcessStrategy.html\" title=\"struct bdk_coin_select::ExcessStrategy\">ExcessStrategy</a>",1,["bdk_coin_select::coin_selector::ExcessStrategy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.BranchStrategy.html\" title=\"enum bdk_coin_select::BranchStrategy\">BranchStrategy</a>",1,["bdk_coin_select::bnb::BranchStrategy"]],["impl<'c, S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.Bnb.html\" title=\"struct bdk_coin_select::Bnb\">Bnb</a><'c, S><span class=\"where fmt-newline\">where<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_coin_select::bnb::Bnb"]],["impl<'c, 'f, S> !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_coin_select/struct.BnbIter.html\" title=\"struct bdk_coin_select::BnbIter\">BnbIter</a><'c, 'f, S>",1,["bdk_coin_select::bnb::BnbIter"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_coin_select/enum.BnbLimit.html\" title=\"enum bdk_coin_select::BnbLimit\">BnbLimit</a>",1,["bdk_coin_select::bnb::BnbLimit"]]],
"bdk_persist":[["impl<C> !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_persist/struct.Persist.html\" title=\"struct bdk_persist::Persist\">Persist</a><C>",1,["bdk_persist::persist::Persist"]]],
"bdk_testenv":[["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_testenv/struct.TestEnv.html\" title=\"struct bdk_testenv::TestEnv\">TestEnv</a>",1,["bdk_testenv::TestEnv"]]],
"bdk_tmp_plan":[["impl<Ak> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Requirements.html\" title=\"struct bdk_tmp_plan::Requirements\">Requirements</a><Ak><span class=\"where fmt-newline\">where<br> Ak: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_tmp_plan::requirements::Requirements"]],["impl<Ak> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.RequiredSignatures.html\" title=\"enum bdk_tmp_plan::RequiredSignatures\">RequiredSignatures</a><Ak><span class=\"where fmt-newline\">where<br> Ak: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_tmp_plan::requirements::RequiredSignatures"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.SigningError.html\" title=\"enum bdk_tmp_plan::SigningError\">SigningError</a>",1,["bdk_tmp_plan::requirements::SigningError"]],["impl<Ak> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.PlanKey.html\" title=\"struct bdk_tmp_plan::PlanKey\">PlanKey</a><Ak><span class=\"where fmt-newline\">where<br> Ak: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_tmp_plan::template::PlanKey"]],["impl<AK> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Plan.html\" title=\"struct bdk_tmp_plan::Plan\">Plan</a><AK><span class=\"where fmt-newline\">where<br> AK: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_tmp_plan::Plan"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.SatisfactionMaterial.html\" title=\"struct bdk_tmp_plan::SatisfactionMaterial\">SatisfactionMaterial</a>",1,["bdk_tmp_plan::SatisfactionMaterial"]],["impl<Ak> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_tmp_plan/enum.PlanState.html\" title=\"enum bdk_tmp_plan::PlanState\">PlanState</a><Ak><span class=\"where fmt-newline\">where<br> Ak: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_tmp_plan::PlanState"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_tmp_plan/struct.Assets.html\" title=\"struct bdk_tmp_plan::Assets\">Assets</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_tmp_plan::Assets"]]],
+"bdk_wallet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/error/enum.Error.html\" title=\"enum bdk_wallet::descriptor::error::Error\">Error</a>",1,["bdk_wallet::descriptor::error::Error"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk_wallet::descriptor::policy::PkOrF\">PkOrF</a>",1,["bdk_wallet::descriptor::policy::PkOrF"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk_wallet::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>",1,["bdk_wallet::descriptor::policy::SatisfiableItem"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::Satisfaction\">Satisfaction</a>",1,["bdk_wallet::descriptor::policy::Satisfaction"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Policy.html\" title=\"struct bdk_wallet::descriptor::policy::Policy\">Policy</a>",1,["bdk_wallet::descriptor::policy::Policy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Condition.html\" title=\"struct bdk_wallet::descriptor::policy::Condition\">Condition</a>",1,["bdk_wallet::descriptor::policy::Condition"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PolicyError.html\" title=\"enum bdk_wallet::descriptor::policy::PolicyError\">PolicyError</a>",1,["bdk_wallet::descriptor::policy::PolicyError"]],["impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.BuildSatisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::BuildSatisfaction\">BuildSatisfaction</a><'a>",1,["bdk_wallet::descriptor::policy::BuildSatisfaction"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2Pkh.html\" title=\"struct bdk_wallet::descriptor::template::P2Pkh\">P2Pkh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::P2Pkh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2Wpkh_P2Sh.html\" title=\"struct bdk_wallet::descriptor::template::P2Wpkh_P2Sh\">P2Wpkh_P2Sh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::P2Wpkh_P2Sh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2Wpkh.html\" title=\"struct bdk_wallet::descriptor::template::P2Wpkh\">P2Wpkh</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::P2Wpkh"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.P2TR.html\" title=\"struct bdk_wallet::descriptor::template::P2TR\">P2TR</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::P2TR"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip44.html\" title=\"struct bdk_wallet::descriptor::template::Bip44\">Bip44</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::Bip44"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip44Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip44Public\">Bip44Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::Bip44Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip49.html\" title=\"struct bdk_wallet::descriptor::template::Bip49\">Bip49</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::Bip49"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip49Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip49Public\">Bip49Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::Bip49Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip84.html\" title=\"struct bdk_wallet::descriptor::template::Bip84\">Bip84</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::Bip84"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip84Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip84Public\">Bip84Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::Bip84Public"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip86.html\" title=\"struct bdk_wallet::descriptor::template::Bip86\">Bip86</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::Bip86"]],["impl<K> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/template/struct.Bip86Public.html\" title=\"struct bdk_wallet::descriptor::template::Bip86Public\">Bip86Public</a><K><span class=\"where fmt-newline\">where<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_wallet::descriptor::template::Bip86Public"]],["impl<Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.DescriptorKey.html\" title=\"enum bdk_wallet::keys::DescriptorKey\">DescriptorKey</a><Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_wallet::keys::DescriptorKey"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.ScriptContextEnum.html\" title=\"enum bdk_wallet::keys::ScriptContextEnum\">ScriptContextEnum</a>",1,["bdk_wallet::keys::ScriptContextEnum"]],["impl<Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.ExtendedKey.html\" title=\"enum bdk_wallet::keys::ExtendedKey\">ExtendedKey</a><Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_wallet::keys::ExtendedKey"]],["impl<K, Ctx> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/keys/struct.GeneratedKey.html\" title=\"struct bdk_wallet::keys::GeneratedKey\">GeneratedKey</a><K, Ctx><span class=\"where fmt-newline\">where<br> Ctx: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,<br> K: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_wallet::keys::GeneratedKey"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/keys/struct.PrivateKeyGenerateOptions.html\" title=\"struct bdk_wallet::keys::PrivateKeyGenerateOptions\">PrivateKeyGenerateOptions</a>",1,["bdk_wallet::keys::PrivateKeyGenerateOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/keys/enum.KeyError.html\" title=\"enum bdk_wallet::keys::KeyError\">KeyError</a>",1,["bdk_wallet::keys::KeyError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>",1,["bdk_wallet::types::KeychainKind"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/struct.LocalOutput.html\" title=\"struct bdk_wallet::LocalOutput\">LocalOutput</a>",1,["bdk_wallet::types::LocalOutput"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/struct.WeightedUtxo.html\" title=\"struct bdk_wallet::WeightedUtxo\">WeightedUtxo</a>",1,["bdk_wallet::types::WeightedUtxo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/enum.Utxo.html\" title=\"enum bdk_wallet::Utxo\">Utxo</a>",1,["bdk_wallet::types::Utxo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/coin_selection/enum.Error.html\" title=\"enum bdk_wallet::wallet::coin_selection::Error\">Error</a>",1,["bdk_wallet::wallet::coin_selection::Error"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/coin_selection/enum.Excess.html\" title=\"enum bdk_wallet::wallet::coin_selection::Excess\">Excess</a>",1,["bdk_wallet::wallet::coin_selection::Excess"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.CoinSelectionResult.html\" title=\"struct bdk_wallet::wallet::coin_selection::CoinSelectionResult\">CoinSelectionResult</a>",1,["bdk_wallet::wallet::coin_selection::CoinSelectionResult"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.LargestFirstCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection\">LargestFirstCoinSelection</a>",1,["bdk_wallet::wallet::coin_selection::LargestFirstCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.OldestFirstCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection\">OldestFirstCoinSelection</a>",1,["bdk_wallet::wallet::coin_selection::OldestFirstCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/coin_selection/struct.BranchAndBoundCoinSelection.html\" title=\"struct bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection\">BranchAndBoundCoinSelection</a>",1,["bdk_wallet::wallet::coin_selection::BranchAndBoundCoinSelection"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/export/struct.FullyNodedExport.html\" title=\"struct bdk_wallet::wallet::export::FullyNodedExport\">FullyNodedExport</a>",1,["bdk_wallet::wallet::export::FullyNodedExport"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerId.html\" title=\"enum bdk_wallet::wallet::signer::SignerId\">SignerId</a>",1,["bdk_wallet::wallet::signer::SignerId"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerError.html\" title=\"enum bdk_wallet::wallet::signer::SignerError\">SignerError</a>",1,["bdk_wallet::wallet::signer::SignerError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.SignerContext.html\" title=\"enum bdk_wallet::wallet::signer::SignerContext\">SignerContext</a>",1,["bdk_wallet::wallet::signer::SignerContext"]],["impl<S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerWrapper.html\" title=\"struct bdk_wallet::wallet::signer::SignerWrapper\">SignerWrapper</a><S><span class=\"where fmt-newline\">where<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["bdk_wallet::wallet::signer::SignerWrapper"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignerOrdering.html\" title=\"struct bdk_wallet::wallet::signer::SignerOrdering\">SignerOrdering</a>",1,["bdk_wallet::wallet::signer::SignerOrdering"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignersContainer.html\" title=\"struct bdk_wallet::wallet::signer::SignersContainer\">SignersContainer</a>",1,["bdk_wallet::wallet::signer::SignersContainer"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/signer/struct.SignOptions.html\" title=\"struct bdk_wallet::wallet::signer::SignOptions\">SignOptions</a>",1,["bdk_wallet::wallet::signer::SignOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/signer/enum.TapLeavesOptions.html\" title=\"enum bdk_wallet::wallet::signer::TapLeavesOptions\">TapLeavesOptions</a>",1,["bdk_wallet::wallet::signer::TapLeavesOptions"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.CreateTx.html\" title=\"struct bdk_wallet::wallet::tx_builder::CreateTx\">CreateTx</a>",1,["bdk_wallet::wallet::tx_builder::CreateTx"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.BumpFee.html\" title=\"struct bdk_wallet::wallet::tx_builder::BumpFee\">BumpFee</a>",1,["bdk_wallet::wallet::tx_builder::BumpFee"]],["impl<'a, Cs, Ctx> !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/tx_builder/struct.TxBuilder.html\" title=\"struct bdk_wallet::wallet::tx_builder::TxBuilder\">TxBuilder</a><'a, Cs, Ctx>",1,["bdk_wallet::wallet::tx_builder::TxBuilder"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AddUtxoError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AddUtxoError\">AddUtxoError</a>",1,["bdk_wallet::wallet::tx_builder::AddUtxoError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AddForeignUtxoError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AddForeignUtxoError\">AddForeignUtxoError</a>",1,["bdk_wallet::wallet::tx_builder::AddForeignUtxoError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.AllowShrinkingError.html\" title=\"enum bdk_wallet::wallet::tx_builder::AllowShrinkingError\">AllowShrinkingError</a>",1,["bdk_wallet::wallet::tx_builder::AllowShrinkingError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.TxOrdering.html\" title=\"enum bdk_wallet::wallet::tx_builder::TxOrdering\">TxOrdering</a>",1,["bdk_wallet::wallet::tx_builder::TxOrdering"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/tx_builder/enum.ChangeSpendPolicy.html\" title=\"enum bdk_wallet::wallet::tx_builder::ChangeSpendPolicy\">ChangeSpendPolicy</a>",1,["bdk_wallet::wallet::tx_builder::ChangeSpendPolicy"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.MiniscriptPsbtError.html\" title=\"enum bdk_wallet::wallet::error::MiniscriptPsbtError\">MiniscriptPsbtError</a>",1,["bdk_wallet::wallet::error::MiniscriptPsbtError"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.CreateTxError.html\" title=\"enum bdk_wallet::wallet::error::CreateTxError\">CreateTxError</a>",1,["bdk_wallet::wallet::error::CreateTxError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/error/enum.BuildFeeBumpError.html\" title=\"enum bdk_wallet::wallet::error::BuildFeeBumpError\">BuildFeeBumpError</a>",1,["bdk_wallet::wallet::error::BuildFeeBumpError"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.Wallet.html\" title=\"struct bdk_wallet::wallet::Wallet\">Wallet</a>",1,["bdk_wallet::wallet::Wallet"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.Update.html\" title=\"struct bdk_wallet::wallet::Update\">Update</a>",1,["bdk_wallet::wallet::Update"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.ChangeSet.html\" title=\"struct bdk_wallet::wallet::ChangeSet\">ChangeSet</a>",1,["bdk_wallet::wallet::ChangeSet"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.AddressInfo.html\" title=\"struct bdk_wallet::wallet::AddressInfo\">AddressInfo</a>",1,["bdk_wallet::wallet::AddressInfo"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.NewError.html\" title=\"enum bdk_wallet::wallet::NewError\">NewError</a>",1,["bdk_wallet::wallet::NewError"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.LoadError.html\" title=\"enum bdk_wallet::wallet::LoadError\">LoadError</a>",1,["bdk_wallet::wallet::LoadError"]],["impl !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.NewOrLoadError.html\" title=\"enum bdk_wallet::wallet::NewOrLoadError\">NewOrLoadError</a>",1,["bdk_wallet::wallet::NewOrLoadError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.InsertTxError.html\" title=\"enum bdk_wallet::wallet::InsertTxError\">InsertTxError</a>",1,["bdk_wallet::wallet::InsertTxError"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"bdk_wallet/wallet/enum.ApplyBlockError.html\" title=\"enum bdk_wallet::wallet::ApplyBlockError\">ApplyBlockError</a>",1,["bdk_wallet::wallet::ApplyBlockError"]]],
"example_bitcoind_rpc_polling":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"example_bitcoind_rpc_polling/enum.Emission.html\" title=\"enum example_bitcoind_rpc_polling::Emission\">Emission</a>",1,["example_bitcoind_rpc_polling::Emission"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"example_bitcoind_rpc_polling/struct.RpcArgs.html\" title=\"struct example_bitcoind_rpc_polling::RpcArgs\">RpcArgs</a>",1,["example_bitcoind_rpc_polling::RpcArgs"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"example_bitcoind_rpc_polling/enum.RpcCommands.html\" title=\"enum example_bitcoind_rpc_polling::RpcCommands\">RpcCommands</a>",1,["example_bitcoind_rpc_polling::RpcCommands"]]],
"example_cli":[["impl<CS, S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"example_cli/struct.Args.html\" title=\"struct example_cli::Args\">Args</a><CS, S><span class=\"where fmt-newline\">where<br> CS: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["example_cli::Args"]],["impl<CS, S> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"example_cli/enum.Commands.html\" title=\"enum example_cli::Commands\">Commands</a><CS, S><span class=\"where fmt-newline\">where<br> CS: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["example_cli::Commands"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"example_cli/enum.CoinSelectionAlgo.html\" title=\"enum example_cli::CoinSelectionAlgo\">CoinSelectionAlgo</a>",1,["example_cli::CoinSelectionAlgo"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"example_cli/enum.AddressCmd.html\" title=\"enum example_cli::AddressCmd\">AddressCmd</a>",1,["example_cli::AddressCmd"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"example_cli/enum.TxOutCmd.html\" title=\"enum example_cli::TxOutCmd\">TxOutCmd</a>",1,["example_cli::TxOutCmd"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"example_cli/enum.Keychain.html\" title=\"enum example_cli::Keychain\">Keychain</a>",1,["example_cli::Keychain"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"example_cli/struct.CreateTxChange.html\" title=\"struct example_cli::CreateTxChange\">CreateTxChange</a>",1,["example_cli::CreateTxChange"]],["impl<CS, S, C> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"example_cli/struct.Init.html\" title=\"struct example_cli::Init\">Init</a><CS, S, C><span class=\"where fmt-newline\">where<br> C: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,<br> CS: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,<br> S: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a>,</span>",1,["example_cli::Init"]]],
"example_electrum":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"enum\" href=\"example_electrum/enum.ElectrumCommands.html\" title=\"enum example_electrum::ElectrumCommands\">ElectrumCommands</a>",1,["example_electrum::ElectrumCommands"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"example_electrum/struct.ElectrumArgs.html\" title=\"struct example_electrum::ElectrumArgs\">ElectrumArgs</a>",1,["example_electrum::ElectrumArgs"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\" title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a class=\"struct\" href=\"example_electrum/struct.ScanOptions.html\" title=\"struct example_electrum::ScanOptions\">ScanOptions</a>",1,["example_electrum::ScanOptions"]]],
(function() {var implementors = {
-"bdk":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html\" title=\"trait core::str::traits::FromStr\">FromStr</a> for <a class=\"struct\" href=\"bdk/wallet/export/struct.FullyNodedExport.html\" title=\"struct bdk::wallet::export::FullyNodedExport\">FullyNodedExport</a>"]],
"bdk_chain":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html\" title=\"trait core::str::traits::FromStr\">FromStr</a> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>"]],
+"bdk_wallet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html\" title=\"trait core::str::traits::FromStr\">FromStr</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/export/struct.FullyNodedExport.html\" title=\"struct bdk_wallet::wallet::export::FullyNodedExport\">FullyNodedExport</a>"]],
"example_cli":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html\" title=\"trait core::str::traits::FromStr\">FromStr</a> for <a class=\"enum\" href=\"example_cli/enum.CoinSelectionAlgo.html\" title=\"enum example_cli::CoinSelectionAlgo\">CoinSelectionAlgo</a>"]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
(function() {var implementors = {
-"bdk":[]
+"bdk_wallet":[]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
(function() {var implementors = {
-"bdk":[["impl<'de> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de> for <a class=\"enum\" href=\"bdk/enum.KeychainKind.html\" title=\"enum bdk::KeychainKind\">KeychainKind</a>"],["impl<'de> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de> for <a class=\"struct\" href=\"bdk/struct.LocalOutput.html\" title=\"struct bdk::LocalOutput\">LocalOutput</a>"],["impl<'de> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de> for <a class=\"struct\" href=\"bdk/wallet/export/struct.FullyNodedExport.html\" title=\"struct bdk::wallet::export::FullyNodedExport\">FullyNodedExport</a>"],["impl<'de> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de> for <a class=\"struct\" href=\"bdk/wallet/struct.ChangeSet.html\" title=\"struct bdk::wallet::ChangeSet\">ChangeSet</a>"]],
"bdk_chain":[["impl<'de> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de> for <a class=\"enum\" href=\"bdk_chain/enum.ConfirmationTime.html\" title=\"enum bdk_chain::ConfirmationTime\">ConfirmationTime</a>"],["impl<'de> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de> for <a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>"],["impl<'de> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationHeightAnchor\">ConfirmationHeightAnchor</a>"],["impl<'de> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>"],["impl<'de, A, IA> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de> for <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, IA><span class=\"where fmt-newline\">where<br> 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://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de>,<br> IA: <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de>,</span>"],["impl<'de, K> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.ChangeSet.html\" title=\"struct bdk_chain::keychain::ChangeSet\">ChangeSet</a><K><span class=\"where fmt-newline\">where<br> K: <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://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de>,</span>"],["impl<'de> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.Balance.html\" title=\"struct bdk_chain::keychain::Balance\">Balance</a>"],["impl<'de, A> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::tx_graph::ChangeSet\">ChangeSet</a><A><span class=\"where fmt-newline\">where<br> 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://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de>,</span>"],["impl<'de> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>"]],
+"bdk_wallet":[["impl<'de> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de> for <a class=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>"],["impl<'de> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de> for <a class=\"struct\" href=\"bdk_wallet/struct.LocalOutput.html\" title=\"struct bdk_wallet::LocalOutput\">LocalOutput</a>"],["impl<'de> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de> for <a class=\"struct\" href=\"bdk_wallet/wallet/export/struct.FullyNodedExport.html\" title=\"struct bdk_wallet::wallet::export::FullyNodedExport\">FullyNodedExport</a>"],["impl<'de> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.ChangeSet.html\" title=\"struct bdk_wallet::wallet::ChangeSet\">ChangeSet</a>"]],
"example_cli":[["impl<'de> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a><'de> for <a class=\"enum\" href=\"example_cli/enum.Keychain.html\" title=\"enum example_cli::Keychain\">Keychain</a>"]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
(function() {var implementors = {
-"bdk":[["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk::descriptor::policy::PkOrF\">PkOrF</a>"],["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>"],["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"enum\" href=\"bdk/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk::descriptor::policy::Satisfaction\">Satisfaction</a>"],["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Policy.html\" title=\"struct bdk::descriptor::policy::Policy\">Policy</a>"],["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"struct\" href=\"bdk/descriptor/policy/struct.Condition.html\" title=\"struct bdk::descriptor::policy::Condition\">Condition</a>"],["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"enum\" href=\"bdk/enum.KeychainKind.html\" title=\"enum bdk::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"struct\" href=\"bdk/struct.LocalOutput.html\" title=\"struct bdk::LocalOutput\">LocalOutput</a>"],["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"struct\" href=\"bdk/wallet/export/struct.FullyNodedExport.html\" title=\"struct bdk::wallet::export::FullyNodedExport\">FullyNodedExport</a>"],["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"struct\" href=\"bdk/wallet/struct.ChangeSet.html\" title=\"struct bdk::wallet::ChangeSet\">ChangeSet</a>"]],
"bdk_chain":[["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"enum\" href=\"bdk_chain/enum.ConfirmationTime.html\" title=\"enum bdk_chain::ConfirmationTime\">ConfirmationTime</a>"],["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"struct\" href=\"bdk_chain/struct.BlockId.html\" title=\"struct bdk_chain::BlockId\">BlockId</a>"],["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationHeightAnchor\">ConfirmationHeightAnchor</a>"],["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"struct\" href=\"bdk_chain/struct.ConfirmationTimeHeightAnchor.html\" title=\"struct bdk_chain::ConfirmationTimeHeightAnchor\">ConfirmationTimeHeightAnchor</a>"],["impl<A, IA> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"struct\" href=\"bdk_chain/indexed_tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::indexed_tx_graph::ChangeSet\">ChangeSet</a><A, IA><span class=\"where fmt-newline\">where<br> 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://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a>,<br> IA: <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a>,</span>"],["impl<K> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.ChangeSet.html\" title=\"struct bdk_chain::keychain::ChangeSet\">ChangeSet</a><K><span class=\"where fmt-newline\">where<br> K: <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://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a>,</span>"],["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"struct\" href=\"bdk_chain/keychain/struct.Balance.html\" title=\"struct bdk_chain::keychain::Balance\">Balance</a>"],["impl<A> <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"struct\" href=\"bdk_chain/tx_graph/struct.ChangeSet.html\" title=\"struct bdk_chain::tx_graph::ChangeSet\">ChangeSet</a><A><span class=\"where fmt-newline\">where<br> 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://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a>,</span>"],["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"struct\" href=\"bdk_chain/struct.DescriptorId.html\" title=\"struct bdk_chain::DescriptorId\">DescriptorId</a>"]],
+"bdk_wallet":[["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.PkOrF.html\" title=\"enum bdk_wallet::descriptor::policy::PkOrF\">PkOrF</a>"],["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.SatisfiableItem.html\" title=\"enum bdk_wallet::descriptor::policy::SatisfiableItem\">SatisfiableItem</a>"],["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"enum\" href=\"bdk_wallet/descriptor/policy/enum.Satisfaction.html\" title=\"enum bdk_wallet::descriptor::policy::Satisfaction\">Satisfaction</a>"],["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Policy.html\" title=\"struct bdk_wallet::descriptor::policy::Policy\">Policy</a>"],["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"struct\" href=\"bdk_wallet/descriptor/policy/struct.Condition.html\" title=\"struct bdk_wallet::descriptor::policy::Condition\">Condition</a>"],["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"enum\" href=\"bdk_wallet/enum.KeychainKind.html\" title=\"enum bdk_wallet::KeychainKind\">KeychainKind</a>"],["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"struct\" href=\"bdk_wallet/struct.LocalOutput.html\" title=\"struct bdk_wallet::LocalOutput\">LocalOutput</a>"],["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/export/struct.FullyNodedExport.html\" title=\"struct bdk_wallet::wallet::export::FullyNodedExport\">FullyNodedExport</a>"],["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"struct\" href=\"bdk_wallet/wallet/struct.ChangeSet.html\" title=\"struct bdk_wallet::wallet::ChangeSet\">ChangeSet</a>"]],
"example_cli":[["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.201/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"enum\" href=\"example_cli/enum.Keychain.html\" title=\"enum example_cli::Keychain\">Keychain</a>"]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
var searchIndex = JSON.parse('{\
-"bdk":{"doc":"<code>bdk</code>","t":[13,13,2,13,4,13,3,2,2,4,2,3,11,11,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,12,12,0,14,11,11,11,11,11,11,11,11,11,11,14,11,11,11,11,11,11,11,11,11,11,12,12,0,11,12,11,0,12,11,11,11,2,2,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,12,5,11,11,11,11,0,12,12,12,13,6,4,2,4,6,8,6,8,16,4,3,13,13,2,8,4,13,13,6,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,10,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,12,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,10,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,5,5,13,13,4,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,13,13,4,13,3,6,13,13,6,13,13,13,13,13,13,13,13,13,13,13,4,3,4,13,13,13,13,13,4,4,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,3,3,3,3,3,3,3,3,8,6,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,8,4,4,4,16,16,8,4,13,8,8,3,8,13,13,13,16,4,6,13,13,13,13,13,16,13,3,13,8,4,13,13,13,3,3,4,3,13,6,13,13,13,5,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,5,11,10,11,11,5,10,11,11,12,12,11,11,11,11,11,11,10,12,11,11,11,11,11,10,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,10,10,10,3,4,3,13,3,13,13,13,13,4,8,4,13,13,13,13,13,13,4,4,13,13,13,13,13,13,13,3,3,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,0,11,12,11,11,11,11,11,11,11,11,11,11,11,11,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,12,11,12,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,5,12,12,12,12,12,12,12,12,12,12,13,13,3,13,8,3,6,4,4,13,3,13,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,5,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,4,13,13,13,4,13,13,13,13,13,13,13,13,4,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,3,6,12,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,13,13,13,13,13,13,13,8,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,3,8,4,4,4,3,3,3,13,4,8,13,11,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,10,11,11,11,10,11,12,11,12,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,4,4,4,13,3,13,13,4,3,13,13,13,13,13,13,3,8,4,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12],"n":["External","Foreign","HdKeyPaths","Internal","KeychainKind","Local","LocalOutput","SignOptions","TxBuilder","Utxo","Wallet","WeightedUtxo","as_byte","as_ref","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","confirmation_time","derivation_index","descriptor","descriptor","deserialize","deserialize","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fragment","from","from","from","from","hash","hash","into","into","into","into","is_spent","keychain","keys","outpoint","outpoint","partial_cmp","psbt","satisfaction_weight","sequence","serialize","serialize","signer","template","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","txout","txout","type_id","type_id","type_id","type_id","utxo","version","vzip","vzip","vzip","vzip","wallet","outpoint","psbt_input","sequence","Bare","DerivedDescriptor","Descriptor","DescriptorError","DescriptorPublicKey","ExtendedDescriptor","ExtractPolicy","HdKeyPaths","IntoWalletDescriptor","Key","Legacy","Miniscript","MultiXPub","Pkh","Policy","ScriptContext","Segwitv0","Sh","Single","TapKeyOrigins","Tr","Wpkh","Wsh","XPub","address","as_enum","as_enum","as_inner","as_node","at_derivation_index","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","branches","build_template","build_template_mall","calc_checksum","check_global_consensus_validity","check_global_consensus_validity","check_global_consensus_validity","check_global_policy_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_policy_validity","check_local_policy_validity","check_local_policy_validity","check_local_validity","check_pk","check_pk","check_pk","check_terminal_non_malleable","check_terminal_non_malleable","check_terminal_non_malleable","check_witness","check_witness","check_witness","checksum","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","contains_raw_pkh","derive","derived_descriptor","derived_descriptor","desc_type","descriptor_id","deserialize","deserialize","dust_value","encode","eq","eq","eq","eq","error","explicit_script","ext","ext_check","extract_policy","extract_policy","extract_policy","find_derivation_index_for_spk","fmt","fmt","fmt","fmt","fmt","fmt","for_each_key","for_each_key","from","from","from","from","from","from","from","from","from","from","from_ast","from_components_unchecked","from_str","from_str","from_str_ext","from_str_insane","from_tree","from_tree","get_nth_child","get_nth_pk","get_satisfaction","get_satisfaction_mall","has_mixed_timelocks","has_repeated_keys","has_wildcard","hash","hash","hash","hash","into","into","into","into","into_inner","into_single_descriptors","into_wallet_descriptor","into_wallet_descriptor","is_deriveable","is_multipath","is_non_malleable","iter","iter_pk","lift","lift","lift_check","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_weight","max_satisfaction_witness_elements","max_weight_to_satisfy","name_str","name_str","name_str","new_bare","new_pk","new_pkh","new_sh","new_sh_sortedmulti","new_sh_with_wpkh","new_sh_with_wsh","new_sh_wpkh","new_sh_wsh","new_sh_wsh_sortedmulti","new_tr","new_wpkh","new_wsh","new_wsh_sortedmulti","node","other_top_level_checks","parse","parse_descriptor","parse_insane","parse_with_ext","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pk_len","pk_len","plan","plan_mall","policy","requires_sig","sanity_check","sanity_check","satisfy","satisfy","satisfy_malleable","script_code","script_pubkey","script_size","serialize","serialize","sig_type","sig_type","sig_type","substitute_raw_pkh","template","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string_with_secret","top_level_checks","top_level_type_check","translate_pk","translate_pk","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","ty","type_id","type_id","type_id","type_id","unsigned_script_sig","vzip","vzip","vzip","vzip","within_resource_limits","calc_checksum","calc_checksum_bytes","Base58","Bip32","Error","HardenedDerivationXpub","Hex","InvalidDescriptorCharacter","InvalidDescriptorChecksum","InvalidHdKeyPath","Key","Miniscript","MultiPath","Pk","Policy","borrow","borrow_mut","fmt","fmt","from","from","from","from","from","from","from","from","into","provide","to_string","try_from","try_into","type_id","vzip","AbsoluteTimelock","AddOnLeaf","AddOnPartialComplete","BuildSatisfaction","Complete","Condition","ConditionMap","EcdsaSignature","Fingerprint","FoldedConditionMap","Hash160Preimage","Hash256Preimage","IncompatibleConditions","IndexOutOfRange","MixedTimelockUnits","Multisig","None","None","NotEnoughItemsSelected","Partial","PartialComplete","PkOrF","Policy","PolicyError","Psbt","PsbtTimelocks","Pubkey","RelativeTimelock","Ripemd160Preimage","Satisfaction","SatisfiableItem","SchnorrSignature","Sha256Preimage","Thresh","XOnlyPubkey","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","contribution","csv","default","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","get_condition","hash","hash","id","id","into","into","into","into","into","into","into","is_leaf","is_leaf","is_null","item","partial_cmp","provide","requires_path","satisfaction","serialize","serialize","serialize","serialize","serialize","timelock","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","current_height","input_max_height","psbt","condition","conditions","conditions","items","items","m","m","n","n","sorted","sorted","hash","hash","hash","hash","items","keys","threshold","threshold","value","value","Bip44","Bip44Public","Bip49","Bip49Public","Bip84","Bip84Public","Bip86","Bip86Public","DescriptorTemplate","DescriptorTemplateOut","P2Pkh","P2TR","P2Wpkh","P2Wpkh_P2Sh","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","build","build","build","build","build","build","build","build","build","build","build","from","from","from","from","from","from","from","from","from","from","from","from","into","into","into","into","into","into","into","into","into","into","into","into","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Bip32","DerivableKey","DescriptorKey","DescriptorPublicKey","DescriptorSecretKey","Entropy","Error","ExtScriptContext","ExtendedKey","FullKey","GeneratableDefaultOptions","GeneratableKey","GeneratedKey","IntoDescriptorKey","InvalidChecksum","InvalidNetwork","InvalidScriptContext","Key","KeyError","KeyMap","Legacy","Message","Miniscript","MultiXPrv","MultiXPub","Options","Private","PrivateKeyGenerateOptions","Public","ScriptContext","ScriptContextEnum","Segwitv0","Single","Single","SinglePriv","SinglePub","SinglePubKey","SortedMultiVec","Tap","ValidNetworks","XOnly","XPrv","XPub","any_network","as_enum","at_derivation_index","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_template","check_global_consensus_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_policy_validity","check_local_validity","check_pk","check_terminal_non_malleable","check_witness","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","compressed","default","deref","derive","deserialize","encode","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","for_each_key","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_public","from_secret","from_str","from_str","from_tree","full_derivation_path","full_derivation_paths","generate","generate_default","generate_with_entropy","generate_with_entropy_default","has_secret","has_wildcard","hash","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into","into_assets","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_extended_key","into_extended_key","into_extended_key","into_key","into_single_keys","into_single_keys","into_xprv","into_xpub","is_deriveable","is_legacy","is_legacy","is_multipath","is_multipath","is_segwit_v0","is_segwit_v0","is_taproot","is_taproot","is_uncompressed","is_x_only_key","k","key","key","lift","mainnet_network","master_fingerprint","max_satisfaction_size","max_satisfaction_size","max_satisfaction_witness_elements","merge_networks","name_str","new","num_der_paths","origin","origin","other_top_level_checks","override_valid_networks","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pks","provide","sanity_check","satisfy","script_size","serialize","sig_type","sorted_node","test_networks","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_public","to_string","to_string","to_string","to_string","top_level_checks","top_level_type_check","translate_pk","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","PsbtUtils","fee_amount","fee_rate","get_utxo_for","AddressInfo","ApplyBlockError","Balance","CannotConnect","ChangeSet","ConfirmationHeightCannotBeGreaterThanTip","Descriptor","Descriptor","Descriptor","InsertTxError","IsDust","LoadError","LoadedDescriptorDoesNotMatch","LoadedGenesisDoesNotMatch","LoadedNetworkDoesNotMatch","MissingDescriptor","MissingGenesis","MissingNetwork","NewError","NewOrLoadError","NonEmptyDatabase","NotInitialized","NotInitialized","Persist","Persist","Persist","UnexpectedConnectedToHash","Update","Wallet","add","add_signer","address","all_unbounded_spk_iters","append","apply_block","apply_block_connected_to","apply_unconfirmed_txs","apply_update","as_ref","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_fee_bump","build_tx","calculate_fee","calculate_fee_rate","cancel_tx","chain","chain","checkpoints","clone","clone","clone","clone_into","clone_into","clone_into","coin_selection","commit","confirmed","default","default","default","deref","derivation_index","derivation_of_spk","descriptor_checksum","deserialize","deserialize","eq","eq","eq","error","export","finalize_psbt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_balance","get_descriptor_for_keychain","get_psbt_input","get_signers","get_tx","get_utxo","graph","immature","index","indexed_tx_graph","insert_checkpoint","insert_tx","insert_txout","into","into","into","into","into","into","into","into","into","into","is_dust","is_empty","is_mine","keychain","keychains","last_active_indices","latest_checkpoint","list_output","list_unspent","list_unused_addresses","load","local_chain","mark_used","network","network","new","new_no_persist","new_no_persist_with_genesis_hash","new_or_load","new_or_load_with_genesis_hash","new_with_genesis_hash","next_derivation_index","next_unused_address","peek_address","policies","provide","provide","provide","provide","provide","public_descriptor","reveal_addresses_to","reveal_next_address","secp_ctx","sent_and_received","serialize","serialize","sign","signer","spk_index","staged","start_full_scan","start_sync_with_revealed_spks","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","total","transactions","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","tx_builder","tx_graph","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unbounded_spk_iter","unmark_used","untrusted_pending","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","wallet_name_from_descriptor","connected_to_hash","expected_hash","tip_height","tx_height","expected","expected","got","got","got","keychain","BnBNoExactMatch","BnBTotalTriesExceeded","BranchAndBoundCoinSelection","Change","CoinSelectionAlgorithm","CoinSelectionResult","DefaultCoinSelectionAlgorithm","Error","Excess","InsufficientFunds","LargestFirstCoinSelection","NoChange","OldestFirstCoinSelection","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","coin_select","coin_select","coin_select","coin_select","decide_change","default","default","default","excess","fee_amount","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","into","into","into","into","into","into","local_selected_amount","new","provide","selected","selected_amount","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","available","needed","amount","change_fee","dust_threshold","fee","remaining_amount","BuildFeeBumpError","ChangePolicyDescriptor","CoinSelection","Conversion","CreateTxError","Descriptor","FeeRateTooLow","FeeRateUnavailable","FeeTooLow","InsufficientFunds","IrreplaceableTransaction","LockTime","MiniscriptPsbt","MiniscriptPsbtError","MissingKeyOrigin","MissingNonWitnessUtxo","NoRecipients","NoUtxosSelected","OutputBelowDustLimit","OutputUpdate","Persist","Policy","Psbt","RbfSequence","RbfSequenceCsv","SpendingPolicyRequired","TransactionConfirmed","TransactionNotFound","UnknownUtxo","UnknownUtxo","UtxoUpdate","Version0","Version1Csv","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","into","into","into","provide","provide","provide","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","available","csv","needed","rbf","requested","required","required","required","FullyNodedExport","WalletExport","blockheight","borrow","borrow_mut","change_descriptor","descriptor","deserialize","export_wallet","fmt","fmt","from","from_str","into","label","serialize","to_string","try_from","try_into","type_id","vzip","All","Dummy","Exclude","External","Fingerprint","Include","InputIndexOutOfRange","InputSigner","InvalidKey","InvalidNonWitnessUtxo","InvalidSighash","Legacy","MiniscriptPsbt","MissingHdKeypath","MissingKey","MissingNonWitnessUtxo","MissingWitnessScript","MissingWitnessUtxo","NonStandardSighash","None","PkHash","Segwitv0","SighashError","SignOptions","SignerCommon","SignerContext","SignerError","SignerId","SignerOrdering","SignerWrapper","SignersContainer","Tap","TapLeavesOptions","TransactionSigner","UserCanceled","add_external","allow_all_sighashes","allow_grinding","as_key_map","assume_height","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","default","default","default","default","deref","descriptor_secret_key","descriptor_secret_key","descriptor_secret_key","descriptor_secret_key","eq","eq","eq","eq","find","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","hash","id","id","id","id","ids","into","into","into","into","into","into","into","into","new","new","partial_cmp","partial_cmp","provide","remove","remove_partial_sigs","remove_taproot_extras","sign_input","sign_input","sign_input","sign_input","sign_transaction","sign_transaction","sign_with_tap_internal_key","signers","tap_leaves_options","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","trust_witness_utxo","try_finalize","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","is_internal_key","AddForeignUtxoError","AddUtxoError","AllowShrinkingError","Bip69Lexicographic","BumpFee","ChangeAllowed","ChangeForbidden","ChangeSpendPolicy","CreateTx","InvalidOutpoint","InvalidTxid","MissingScriptPubKey","MissingUtxo","OnlyChange","Shuffle","TxBuilder","TxBuilderContext","TxOrdering","UnknownUtxo","Untouched","add_data","add_foreign_utxo","add_foreign_utxo_with_sequence","add_global_xpubs","add_recipient","add_unspendable","add_utxo","add_utxos","allow_dust","allow_shrinking","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change_policy","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","coin_selection","current_height","default","default","default","default","do_not_spend_change","drain_to","drain_wallet","enable_rbf","enable_rbf_with_sequence","eq","eq","fee_absolute","fee_rate","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","hash","hash","include_output_redeem_witness_script","into","into","into","into","into","into","into","into","manually_selected_only","nlocktime","only_spend_change","only_witness_utxo","ordering","partial_cmp","partial_cmp","policy_path","provide","provide","provide","set_recipients","sighash","sort_tx","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unspendable","version","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","foreign_utxo","input_txid"],"q":["bdk","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::Utxo","","","bdk::descriptor","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::checksum","","bdk::descriptor::error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::policy","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::descriptor::policy::BuildSatisfaction","","","bdk::descriptor::policy::Satisfaction","","","","","","","","","","","bdk::descriptor::policy::SatisfiableItem","","","","","","","","","","bdk::descriptor::template","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::keys","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::psbt","","","","bdk::wallet","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::ApplyBlockError","","bdk::wallet::InsertTxError","","bdk::wallet::NewOrLoadError","","","","","","bdk::wallet::coin_selection","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::coin_selection::Error","","bdk::wallet::coin_selection::Excess","","","","","bdk::wallet::error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::error::CreateTxError","","","","","","","","bdk::wallet::export","","","","","","","","","","","","","","","","","","","","","bdk::wallet::signer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::signer::SignerContext","bdk::wallet::tx_builder","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk::wallet::tx_builder::AddForeignUtxoError",""],"d":["External keychain, used for deriving recipient addresses.","A UTXO owned by another wallet.","","Internal keychain, used for deriving change addresses.","Types of keychains","A UTXO owned by the local wallet.","An unspent output owned by a <code>Wallet</code>.","","","An unspent transaction output (UTXO).","","A <code>Utxo</code> with its <code>satisfaction_weight</code>.","Return <code>KeychainKind</code> as a byte","","","","","","","","","","","","","","","","","","","","The confirmation time for transaction containing this utxo","The derivation index for the script pubkey in the wallet","Descriptors","Macro to write full descriptors with code","","","","","","","","","","","Macro to write descriptor fragments with code","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Whether this UTXO is spent or not","Type of keychain","Key formats","Get the location of the UTXO","Reference to a transaction output","","Additional functions on the <code>rust-bitcoin</code> <code>Psbt</code> structure.","The weight of the witness data and <code>scriptSig</code> expressed in …","Get the sequence number if an explicit sequence number has …","","","","","","","","","","","","","","","","","Get the <code>TxOut</code> of the UTXO","Transaction output","","","","","The UTXO","Get the version of BDK at runtime","","","","","Wallet","The location of the output.","The information about the input we require to add it to a …","The nSequence value to set for this input.","A raw scriptpubkey (including pay-to-pubkey) under Legacy …","Alias for a <code>Descriptor</code> that contains extended <strong>derived</strong> keys","Script descriptor","","The descriptor pubkey, either a single pubkey or an xpub.","Alias for a <code>Descriptor</code> that can contain extended keys …","Trait implemented on <code>Descriptor</code>s to add a method to …","Alias for the type of maps that represent derivation paths …","Trait for types which can be converted into an …","The consensus key associated with the type. Must be a …","Legacy ScriptContext To be used as P2SH scripts For …","The top-level miniscript abstract syntax tree (AST).","Multiple extended public keys.","Pay-to-PubKey-Hash","","The ScriptContext for Miniscript. Additional type …","Segwitv0 ScriptContext","Pay-to-ScriptHash(includes nested wsh/wpkh/sorted multi)","Single public key.","Alias for the type of maps that represent taproot key …","Pay-to-Taproot","Pay-to-Witness-PubKey-Hash","Pay-to-Witness-ScriptHash with Segwitv0 context","Extended public key (xpub).","Computes the Bitcoin address of the descriptor, if one …","","","Get a reference to the inner <code>AstElem</code> representing the root …","","Replaces all wildcards (i.e. <code>/*</code>) in the descriptor with a …","","","","","","","","","Enumerates all child nodes of the current AST node (<code>self</code>) …","Attempt to produce a non-malleable witness template given …","Attempt to produce a malleable witness template given the …","","Depending on script Context, some of the Terminals might …","","","Depending on script Context, some of the script resource …","","Check the consensus + policy(if not disabled) rules that …","Consensus rules at the Miniscript satisfaction time. It is …","","","Policy rules at the Miniscript satisfaction time. It is …","","","Check the consensus + policy(if not disabled) rules …","Each context has slightly different rules on what Pks are …","","","Depending on ScriptContext, fragments can be malleable. …","","","Check whether the given satisfaction is valid under the …","","","Descriptor checksum","","","","","","","","","","","","","Whether the given miniscript contains a raw pkh fragment","Deprecated name for <code>Self::at_derivation_index</code>.","Convert all the public keys in the descriptor to …","Convert all the public keys in the descriptor to …","Get the DescriptorType of Descriptor","","","","","Encode as a Bitcoin script","","","","","Descriptor errors","Computes the the underlying script before any hashing is …","Additional information helpful for extra analysis.","Check whether the miniscript follows the given Extra …","Extract the spending <code>policy</code>","","","Utility method for deriving the descriptor at each index …","","","","","","","","","Returns the argument unchanged.","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Add type information(Type and Extdata) to Miniscript based …","Create a new <code>Miniscript</code> from a <code>Terminal</code> node and a <code>Type</code> …","","Parse a Miniscript from string and perform sanity checks …","Attempt to parse an Miniscripts that don’t follow the …","Attempt to parse an insane(scripts don’t clear sanity …","Parse an expression tree into a descriptor.","Parse an expression tree into a Miniscript. As a general …","Returns child node with given index, if any","Returns <code>Option::Some</code> with cloned n’th public key from …","Returns satisfying non-malleable witness and scriptSig to …","Returns a possilbly mallable satisfying non-malleable …","Whether the miniscript contains a combination of timelocks","Whether the miniscript has repeated Pk or Pkh","Whether or not the descriptor has any wildcards i.e. <code>/*</code>.","","","","","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Extracts the <code>AstElem</code> representing the root of the …","Get as many descriptors as different paths in this …","Convert to wallet descriptor","","Whether or not the descriptor has any wildcards","Whether this descriptor contains a key that has multiple …","Whether the miniscript is malleable","Creates a new Iter iterator that will iterate over all …","Creates a new PkIter iterator that will iterate over all …","","","Lifting corresponds to conversion of a miniscript into a …","Depending on script context, the size of a satifaction …","","","Maximum size, in bytes, of a satisfying witness. For …","Computes an upper bound on the weight of a satisfying …","Maximum number of witness elements used to satisfy the …","Computes an upper bound on the difference between a …","Local helper function to display error messages with …","","","Create a new bare descriptor from witness script Errors …","Create a new pk descriptor","Create a new PkH descriptor","Create a new sh for a given redeem script Errors when …","Create a new sh sortedmulti descriptor with threshold <code>k</code> …","Create a new sh wrapper for the given wpkh descriptor","Create a new sh wrapper for the given wsh descriptor","Create a new sh wrapped wpkh from <code>Pk</code>. Errors when …","Create a new sh wrapped wsh descriptor with witness script …","Create a new sh wrapped wsh sortedmulti descriptor from …","Create new tr descriptor Errors when miniscript exceeds …","Create a new Wpkh descriptor Will return Err if …","Create a new wsh descriptor from witness script Errors …","Create a new wsh sorted multi descriptor Errors when …","A node in the AST.","Other top level checks that are context specific","Attempt to parse a Script into Miniscript representation.","Parse a descriptor that may contain secret keys","Attempt to parse an insane(scripts don’t clear sanity …","Attempt to parse an miniscript with extra features that …","","","","","Get the len of public key when serialized based on context …","","","Returns a plan if the provided assets are sufficient to …","Returns a plan if the provided assets are sufficient to …","Descriptor policy","Whether all spend paths of miniscript require a signature","Checks whether the descriptor is safe.","Check whether the underlying Miniscript is safe under the …","Attempts to produce a non-malleable satisfying witness and …","Attempt to produce non-malleable satisfying witness for the","Attempt to produce a malleable satisfying witness for the …","Computes the <code>scriptCode</code> of a transaction output.","Computes the scriptpubkey of the descriptor.","Size, in bytes of the script-pubkey. If this Miniscript is …","","","The type of signature required for satisfaction","","","Substitutes raw public keys hashes with the public keys as …","Descriptor templates","","","","","","","Serialize a descriptor to string with its secret keys","Check top level consensus rules.","Check whether the top-level is type B","Converts a descriptor using abstract keys to one using …","Translates a struct from one generic to another where the …","","","","","","","","","The correctness and malleability type information for the …","","","","","Computes the scriptSig that will be in place for an …","","","","","Whether the miniscript can exceed the resource …","Compute the checksum of a descriptor, excludes any …","Compute the checksum bytes of a descriptor, excludes any …","Error during base58 decoding","BIP32 error","Errors related to the parsing and usage of descriptors","The descriptor contains hardened derivation steps on …","Hex decoding error","Invalid byte found in the descriptor checksum","The provided descriptor doesn’t match its checksum","Invalid HD Key path, such as having a wildcard but a …","Error thrown while working with <code>keys</code>","Miniscript error","The descriptor contains multipath keys","Key-related error","Error while extracting and manipulating policies","","","","","","","Returns the argument unchanged.","","","","","","Calls <code>U::from(self)</code>.","","","","","","","Absolute timeclock timestamp","Can not add to an item that is <code>Satisfaction::None</code> or …","Can not add to an item that is …","Options to build the satisfaction field in the policy","Can satisfy the policy item","An extra condition that must be satisfied but that is out …","Type for a map of sets of <code>Condition</code> items keyed by each set…","ECDSA Signature for a raw public key","An extended key fingerprint","Type for a map of folded sets of <code>Condition</code> items keyed by …","SHA256 then RIPEMD160 preimage hash","Double SHA256 preimage hash","Incompatible conditions (not currently used)","Index out of range for an item to satisfy a …","Can not merge CSV or timelock values unless both are less …","Multi-signature public keys with threshold count","Cannot satisfy or contribute to the policy item","Don’t generate <code>satisfaction</code> field","Not enough items are selected to satisfy a …","Only a partial satisfaction of some kind of threshold …","Can reach the threshold of some kind of threshold policy","A unique identifier for a key","Descriptor spending policy","Errors that can happen while extracting and manipulating …","Analyze the given PSBT to check for existing signatures","Like <code>Psbt</code> variant and also check for expired timelocks","A legacy public key","Relative timelock locktime","RIPEMD160 preimage hash","Represent if and how much a policy item is satisfied by …","An item that needs to be satisfied","Schnorr Signature for a raw public key","SHA256 preimage hash","Threshold items with threshold count","A x-only public key","","","","","","","","","","","","","","","","","","","","","","","","","","","How the wallet’s descriptor can satisfy this policy node","Optional CheckSequenceVerify condition","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Return the conditions that are set by the spending policy …","","","Returns a unique id for the <code>SatisfiableItem</code>","Identifier for this policy node","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Returns whether the <code>SatisfiableItem</code> is a leaf item","Returns whether the <code>Satisfaction</code> is a leaf item","Returns <code>true</code> if there are no extra conditions to verify","Type of this policy node","","","Return whether or not a specific path in the policy tree …","How much a given PSBT already satisfies this policy node …","","","","","","Optional timelock condition","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Current blockchain height","The highest confirmation height between the inputs CSV …","Given PSBT","Extra conditions that also need to be satisfied","Extra conditions that also need to be satisfied","Extra conditions that also need to be satisfied","The items that can be satisfied by the descriptor or are …","The items that can be satisfied by the descriptor","Threshold","Threshold","Total number of items","Total number of items","Whether the items are sorted in lexicographic order (used …","Whether the items are sorted in lexicographic order (used …","The digest value","The digest value","The digest value","The digest value","The policy items","The raw public key or extended key fingerprint","The required threshold count","The required threshold count","The timelock value","The timelock value","BIP44 template. Expands to <code>pkh(key/44'/{0,1}'/0'/{0,1}/*)</code>","BIP44 public template. Expands to <code>pkh(key/{0,1}/*)</code>","BIP49 template. Expands to …","BIP49 public template. Expands to <code>sh(wpkh(key/{0,1}/*))</code>","BIP84 template. Expands to <code>wpkh(key/84'/{0,1}'/0'/{0,1}/*)</code>","BIP84 public template. Expands to <code>wpkh(key/{0,1}/*)</code>","BIP86 template. Expands to <code>tr(key/86'/{0,1}'/0'/{0,1}/*)</code>","BIP86 public template. Expands to <code>tr(key/{0,1}/*)</code>","Trait for descriptor templates that can be built into a …","Type alias for the return type of <code>DescriptorTemplate</code>, …","P2PKH template. Expands to a descriptor <code>pkh(key)</code>","P2TR template. Expands to a descriptor <code>tr(key)</code>","P2WPKH template. Expands to a descriptor <code>wpkh(key)</code>","P2WPKH-P2SH template. Expands to a descriptor <code>sh(wpkh(key))</code>","","","","","","","","","","","","","","","","","","","","","","","","","Build the complete descriptor","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","BIP32 error","Trait for keys that can be derived.","Container for public or secret keys","The descriptor pubkey, either a single pubkey or an xpub.","The descriptor secret key, either a single private key or …","Type specifying the amount of entropy required e.g. <code>[u8;32]</code>","Returned error in case of failure","Trait that adds extra useful methods to <code>ScriptContext</code>s","Enum for extended keys that can be either <code>xprv</code> or <code>xpub</code>","A bitcoin public key (compressed or uncompressed).","Trait that allows generating a key with the default options","Trait for keys that can be generated","Output of a <code>GeneratableKey</code> key generation","Trait for objects that can be turned into a public or …","The key has an invalid checksum","The key is not valid for the given network","The key cannot exist in the given script context","The consensus key associated with the type. Must be a …","Errors thrown while working with <code>keys</code>","Alias type for a map of public key to secret key","Legacy scripts","Custom error message","Miniscript error","Multiple extended private keys.","Multiple extended public keys.","Extra options required by the <code>generate_with_entropy</code>","A private extended key, aka an <code>xprv</code>","Options for generating a <code>PrivateKey</code>","A public extended key, aka an <code>xpub</code>","The ScriptContext for Miniscript. Additional type …","Enum representation of the known valid <code>ScriptContext</code>s","Segwitv0 scripts","Single public key.","Single private key.","A descriptor <code>bitcoin::PrivateKey</code> with optional origin …","A descriptor <code>SinglePubKey</code> with optional origin information.","Single public key without any origin or range information.","Contents of a “sortedmulti” descriptor","Taproot scripts","Set of valid networks for a key","An xonly public key.","Extended private key (xpriv).","Extended public key (xpub).","Create a set containing mainnet, testnet, signet, and …","Returns the <code>ScriptContext</code> as a <code>ScriptContextEnum</code>","Replaces any wildcard (i.e. <code>/*</code>) in the key with a …","","","","","","","","","","","","","","","","","","","","","","","","","Attempt to produce a witness template given the assets …","Depending on script Context, some of the Terminals might …","Depending on script Context, some of the script resource …","Check the consensus + policy(if not disabled) rules that …","Consensus rules at the Miniscript satisfaction time. It is …","Policy rules at the Miniscript satisfaction time. It is …","Check the consensus + policy(if not disabled) rules …","Each context has slightly different rules on what Pks are …","Depending on ScriptContext, fragments can be malleable. …","Check whether the given satisfaction is valid under the …","","","","","","","","","","","","","","","","","","","","","","","Whether the generated key should be “compressed” or not","","","Deprecated name for <code>Self::at_derivation_index</code>.","","Encode as a Bitcoin script","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Create an instance given a public key and a set of valid …","Create an instance given a secret key and a set of valid …","","","Parse an expression tree into a SortedMultiVec","Full path, from the master key","Returns a vector containing the full derivation paths from …","Generate a key given the options with a random entropy","Generate a key with the default options and a random …","Generate a key given the extra options and the entropy","Generate a key with the default options and a given entropy","Return whether or not the key contains the private data","Whether or not the key has a wildcard","","","","","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","","Turn the key into a <code>DescriptorKey</code> within the requested …","Consume <code>self</code> and turn it into a <code>DescriptorKey</code> by adding …","","","","","","Consume <code>self</code> and turn it into an <code>ExtendedKey</code>","","","Consumes <code>self</code> and returns the key","Get as many keys as derivation paths in this key.","Get as many keys as derivation paths in this key.","Transform the <code>ExtendedKey</code> into an <code>Xpriv</code> for the given …","Transform the <code>ExtendedKey</code> into an <code>Xpub</code> for the given …","Whether or not the key has a wildcard","Returns whether the script context is <code>Legacy</code>","Returns whether the script context is …","Whether or not this key has multiple derivation paths.","Whether or not this key has multiple derivation paths.","Returns whether the script context is <code>Segwitv0</code>","Returns whether the script context is …","Returns whether the script context is <code>Tap</code>, aka Taproot or …","Returns whether the script context is …","","","signatures required","The public key.","The private key.","","Create a set only containing mainnet","The fingerprint of the master key associated with this …","Depending on script context, the size of a satifaction …","Maximum size, in bytes, of a satisfying witness. In …","Maximum number of witness elements used to satisfy the …","Compute the intersection of two sets","Local helper function to display error messages with …","Create a new instance of <code>SortedMultiVec</code> given a list of …","","Origin information (fingerprint and derivation path).","Origin information (fingerprint and derivation path).","Other top level checks that are context specific","Override the computed set of valid networks","","","","","Get the len of public key when serialized based on context …","public keys inside sorted Multi","","utility function to sanity a sorted multi vec","Attempt to produce a satisfying witness for the witness …","Size, in bytes of the script-pubkey. If this Miniscript is …","","The type of signature required for satisfaction","Create Terminal::Multi containing sorted pubkeys","Create a set containing testnet and regtest","","","","","","","","","","Returns the public version of this key.","","","","","Check top level consensus rules.","Check whether the top-level is type B","This will panic if fpk returns an uncompressed key when …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Trait to add functions to extract utxos and calculate fees.","The total transaction fee amount, sum of input amounts …","The transaction’s fee rate. This value will only be …","Get the <code>TxOut</code> for the specified input index, if it doesn’…","A derived address and the index it was found at. For …","An error that may occur when applying a block to <code>Wallet</code>.","Balance, differentiated into various categories.","Occurs when the update chain cannot connect with original …","The changes made to a wallet by applying an <code>Update</code>.","The error variant that occurs when the caller attempts to …","There was problem with the passed-in descriptor(s).","There was a problem with the passed-in descriptor(s).","There is a problem with the passed-in descriptor.","An error that may occur when inserting a transaction into …","Trait to check if a value is below the dust limit. We are …","The error type when loading a <code>Wallet</code> from persistence.","The loaded desccriptor does not match what was provided.","The loaded genesis hash does not match what was provided.","The loaded network type does not match what was provided.","Data loaded from persistence is missing descriptor.","Data loaded from persistence is missing genesis hash.","Data loaded from persistence is missing network type.","The error type when constructing a fresh <code>Wallet</code>.","Error type for when we try load a <code>Wallet</code> from persistence …","Database already has data.","Wallet not initialized, persistence backend is empty.","Wallet is not initialized, persistence backend is empty.","We were unable to write the wallet’s data to the …","Loading data from the persistence backend failed.","Either writing to or loading from the persistence backend …","Occurs when the <code>connected_to</code> hash does not match the hash …","An update to <code>Wallet</code>.","A Bitcoin wallet","","Add an external signer","Address","Get unbounded script pubkey iterators for both <code>Internal</code> …","","Introduces a <code>block</code> of <code>height</code> to the wallet, and tries to …","Applies relevant transactions from <code>block</code> of <code>height</code> to the …","Apply relevant unconfirmed transactions to the wallet.","Applies an update to the wallet and stages the changes …","","","","","","","","","","","","","","","","","","","","","","Bump the fee of a transaction previously created with this …","Start building a transaction.","Calculates the fee of a given transaction. Returns 0 if <code>tx</code> …","Calculate the <code>FeeRate</code> for a given transaction.","Informs the wallet that you no longer intend to broadcast …","Update for the wallet’s internal <code>LocalChain</code>.","Changes to the <code>LocalChain</code>.","Get all the checkpoints the wallet is currently storing …","","","","","","","Coin selection","Commits all currently <code>staged</code> changed to the persistence …","Confirmed and immediately spendable balance","","","","","The derivation index of this wallet. It will return <code>None</code> …","Finds how the wallet derived the script pubkey <code>spk</code>.","Return the checksum of the public descriptor associated to …","","","","","","Errors that can be thrown by the <code>Wallet</code>","Wallet export","Finalize a PSBT, i.e., for each input determine if …","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Return the balance, separated into available, …","Returns the descriptor used to create addresses for a …","get the corresponding PSBT Input for a LocalUtxo","Get the signers","Get a single transaction from the wallet as a <code>CanonicalTx</code> …","Returns the utxo owned by this wallet corresponding to …","Update for the wallet’s internal <code>TxGraph</code>.","All coinbase outputs not yet matured","Child index of this address","Changes to <code>IndexedTxGraph</code>.","Add a new checkpoint to the wallet’s internal view of …","Add a transaction to the wallet’s internal view of the …","Inserts a <code>TxOut</code> at <code>OutPoint</code> into the wallet’s …","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Check whether or not a value is below dust limit","","Return whether or not a <code>script</code> is part of this wallet …","Type of keychain","Iterator over all keychains in this wallet","Contains the last active derivation indices per keychain (<code>K</code>…","Returns the latest checkpoint.","List all relevant outputs (includes both spent and …","Return the list of unspent outputs of this wallet","List addresses that are revealed but unused.","Load <code>Wallet</code> from the given persistence backend.","Get a reference to the inner <code>LocalChain</code>.","Marks an address used of the given <code>keychain</code> at <code>index</code>.","Get the Bitcoin network the wallet is using.","Stores the network type of the wallet.","Initialize an empty <code>Wallet</code>.","Creates a wallet that does not persist data.","Creates a wallet that does not persist data, with a custom …","Either loads <code>Wallet</code> from persistence, or initializes it if …","Either loads <code>Wallet</code> from persistence, or initializes it if …","Initialize an empty <code>Wallet</code> with a custom genesis hash.","The index of the next address that you would get if you …","Get the next unused address for the given <code>keychain</code>, i.e. …","Peek an address of the given <code>keychain</code> at <code>index</code> without …","Return the spending policies for the wallet’s descriptor","","","","","","Return the “public” version of the wallet’s …","Reveal addresses up to and including the target <code>index</code> and …","Attempt to reveal the next address of the given <code>keychain</code>.","Return the secp256k1 context used for all signing …","Compute the <code>tx</code>’s sent and received <code>Amount</code>s.","","","Sign a transaction with all the wallet’s signers, in the …","Generalized signers","Get a reference to the inner <code>KeychainTxOutIndex</code>.","Returns the changes that will be committed with the next …","Create a `FullScanRequest for this wallet.","Create a partial <code>SyncRequest</code> for this wallet for all …","","","","","","","","","","","Get the whole balance visible to the wallet.","Iterate over the transactions in the wallet.","Unconfirmed UTXOs generated by a wallet tx","Get sum of trusted_pending and confirmed coins.","","","","","","","","","","","","","","","","","","","","","Transaction builder","Get a reference to the inner <code>TxGraph</code>.","","","","","","","","","","","Get an unbounded script pubkey iterator for the given …","Undoes the effect of <code>mark_used</code> and returns whether the …","Unconfirmed UTXOs received from an external wallet","","","","","","","","","","","Deterministically generate a unique name given the …","Block hash of <code>connected_to</code>.","Expected block hash of <code>connected_to</code>, as derived from <code>block</code>.","The internal chain’s tip height.","The introduced transaction’s confirmation height.","The expected genesis block hash.","The expected network type.","The block hash loaded from persistence.","The network type loaded from persistence.","The descriptor loaded from persistence.","The keychain of the descriptor not matching","Branch and bound coin selection tries to avoid needing a …","Branch and bound coin selection possible attempts with …","Branch and bound coin selection","It’s possible to create spendable output from excess …","Trait for generalized coin selection algorithms","Result of a successful coin selection","Default coin selection algorithm used by <code>TxBuilder</code> if not …","Errors that can be thrown by the <code>coin_selection</code> module","Remaining amount after performing coin selection","Wallet’s UTXO set is not enough to cover recipient’s …","Simple and dumb coin selection","It’s not possible to create spendable output from excess …","OldestFirstCoinSelection always picks the utxo with the …","","","","","","","","","","","","","","","","","","","Perform the coin selection","","","","Decide if change can be created","","","","Remaining amount after deducing fees and outgoing outputs","Total fee amount for the selected utxos in satoshis","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","The total value of the inputs selected from the local …","Create new instance with target size for change output","","List of outputs selected for use as inputs","The total value of the inputs selected.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Sats available for spending","Sats needed for some transaction","Effective amount available to create change after …","The calculated fee for the drain TxOut with the selected …","Threshold to consider amount as dust for this particular …","The deducted change output fee","Exceeding amount of current selection over outgoing value …","Error returned from <code>Wallet::build_fee_bump</code>","The <code>change_policy</code> was set but the wallet does not have a …","There was an error with coin selection","Descriptor key conversion error","Error returned from <code>TxBuilder::finish</code>","There was a problem with the descriptors passed in","When bumping a tx the fee rate requested is lower than …","Node doesn’t have data to estimate a fee rate","When bumping a tx the absolute fee requested is lower than …","Wallet’s UTXO set is not enough to cover recipient’s …","Trying to replace a tx that has a sequence >= <code>0xFFFFFFFE</code>","Requested <code>LockTime</code> is less than is required to spend from …","Miniscript PSBT error","Errors returned by miniscript when updating inconsistent …","In order to use the <code>TxBuilder::add_global_xpubs</code> option …","Missing non_witness_utxo on foreign utxo for given <code>OutPoint</code>","Cannot build a tx without recipients","<code>manually_selected_only</code> option is selected but no utxo has …","Output created is under the dust limit, 546 satoshis","Return error type for …","We were unable to load wallet data from or write wallet …","There was a problem while extracting and manipulating …","Partially signed bitcoin transaction error","Cannot enable RBF with a <code>Sequence</code> >= 0xFFFFFFFE","Cannot enable RBF with <code>Sequence</code> given a required OP_CSV","Spending policy is not compatible with this <code>KeychainKind</code>","Happens when trying to bump a transaction that is already …","Thrown when a tx is not found in the internal database","Happens when trying to spend an UTXO that is not in the …","Happens when trying to spend an UTXO that is not in the …","Return error type for PsbtExt::update_input_with_descriptor","Requested invalid transaction version ‘0’","Requested transaction version <code>1</code>, but at least <code>2</code> is needed …","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","","","","","","","","","","","","","","","","","","","","Sats available for spending","Required OP_CSV <code>Sequence</code>","Sats needed for some transaction","Given RBF <code>Sequence</code>","Requested <code>LockTime</code>","Required <code>LockTime</code>","Required fee absolute value (satoshi)","Required fee rate","Structure that contains the export of a wallet","Alias for <code>FullyNodedExport</code>","Earliest block to rescan when looking for the wallet’s …","","","Return the internal descriptor, if present","Return the external descriptor","","Export a wallet","","","Returns the argument unchanged.","","Calls <code>U::from(self)</code>.","Arbitrary label for the wallet","","","","","","","The signer will sign all the leaves it has a key for.","Dummy identifier","The signer won’t sign the specified leaves.","To be used only by external libraries implementing …","The fingerprint of a BIP32 extended key","The signer won’t sign leaves other than the ones …","Input index is out of range","PSBT Input signer","The private key in use has the right fingerprint but …","The <code>non_witness_utxo</code> specified is invalid","Invalid SIGHASH for the signing context in use","Legacy context","Miniscript PSBT error","The fingerprint and derivation path are missing from the …","The private key is missing for the required public key","The <code>non_witness_utxo</code> field of the transaction is required …","The <code>witness_script</code> field of the transaction is required to …","The <code>witness_utxo</code> field of the transaction is required to …","The psbt contains a non-<code>SIGHASH_ALL</code> sighash in one of its …","The signer won’t sign any leaf.","Bitcoin HASH160 (RIPEMD160 after SHA256) hash of an ECDSA …","Segwit v0 context (BIP 143)","Error while computing the hash to sign","Options for a software signer","Common signer methods","Signing context","Signing error","Identifier of a signer in the <code>SignersContainers</code>. Used as a …","Defines the order in which signers are called","Wrapper to pair a signer with its context","Container for multiple signers","Taproot context (BIP 340)","Customize which taproot script-path leaves the signer …","PSBT signer","The user canceled the operation","Adds an external signer to the container for the specified …","Whether the signer should use the <code>sighash_type</code> set in the …","Whether we should grind ECDSA signature to ensure signing …","Create a map of public keys to secret keys","Whether the wallet should assume a specific height has …","","","","","","","","","","","","","","","","","Build a new signer container from a <code>KeyMap</code>","","","","","","","","","","","","","","","","","","","","","","Return the secret key for the signer","","","","","","","","Finds the signer with lowest ordering for a given id in …","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Return the <code>SignerId</code> for this signer","","","","Returns the list of identifiers of all the signers in the …","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Create a wrapped signer from a signer and a context","Default constructor","","","","Removes a signer from the container and returns it","Whether to remove partial signatures from the PSBT inputs …","Whether to remove taproot specific fields from the PSBT on …","Sign a single psbt input","","","","Sign all the inputs of the psbt","","Whether we should try to sign a taproot transaction with …","Returns the list of signers in the container, sorted by …","Specifies which Taproot script-spend leaves we should sign …","","","","","","","","","Whether the signer should trust the <code>witness_utxo</code>, if the …","Whether to try finalizing the PSBT after the inputs are …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Whether the signer can sign for the internal key or not","Error returned from <code>TxBuilder::add_foreign_utxo</code>.","Error returned from <code>TxBuilder::add_utxo</code> and …","Error returned from <code>TxBuilder::allow_shrinking</code>","BIP69 / Lexicographic","Marker type to indicate the <code>TxBuilder</code> is being used to …","Use both change and non-change outputs (default)","Only use non-change outputs (see …","Policy regarding the use of change outputs when creating a …","Marker type to indicate the <code>TxBuilder</code> is being used to …","Requested outpoint doesn’t exist in the tx (vout greater …","Foreign utxo outpoint txid does not match PSBT input txid","Script/PubKey was not in the original transaction","Foreign utxo missing witness_utxo or non_witness_utxo","Only use change outputs (see <code>TxBuilder::only_spend_change</code>)","Randomized (default)","A transaction builder","Context in which the <code>TxBuilder</code> is valid","Ordering of the transaction’s inputs and outputs","Happens when trying to spend an UTXO that is not in the …","Unchanged","Add data as an output, using OP_RETURN","Add a foreign UTXO i.e. a UTXO not owned by this wallet.","Same as add_foreign_utxo but allows to set the nSequence …","Fill-in the <code>PSBT_GLOBAL_XPUB</code> field with the extended keys …","Add a recipient to the internal list","Add a utxo to the internal list of unspendable utxos","Add a utxo to the internal list of utxos that <strong>must</strong> be spent","Add the list of outpoints to the internal list of UTXOs …","Set whether or not the dust limit is checked.","Explicitly tells the wallet that it is allowed to reduce …","","","","","","","","","","","","","","","","","Set a specific <code>ChangeSpendPolicy</code>. See …","","","","","","","","","","","","","Choose the coin selection algorithm","Set the current blockchain height.","","","","","Do not spend change outputs","Sets the address to <em>drain</em> excess coins to.","Spend all the available inputs. This respects filters like …","Enable signaling RBF","Enable signaling RBF with a specific nSequence value","","","Set an absolute fee The fee_absolute method refers to the …","Set a custom fee rate.","Finish building the transaction.","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Fill-in the <code>psbt::Output::redeem_script</code> and …","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Only spend utxos added by <code>add_utxo</code>.","Use a specific nLockTime while creating the transaction","Only spend change outputs","Only Fill-in the <code>psbt::Input::witness_utxo</code> field when …","Choose the ordering for inputs and outputs of the …","","","Set the policy path to use while creating the transaction …","","","","Replace the recipients already added with a new list","Sign with a specific sig hash","Sort transaction inputs and outputs by <code>TxOrdering</code> variant","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Replace the internal list of unspendable utxos with a new …","Build a transaction with a specific version","","","","","","","","","Foreign UTXO outpoint","PSBT input txid"],"i":[1,5,0,1,0,5,0,0,0,0,0,0,1,1,1,3,4,5,1,3,4,5,0,1,3,4,5,1,3,4,5,1,3,3,0,0,1,3,1,3,4,5,1,3,4,5,0,1,3,4,5,1,3,1,3,4,5,3,3,0,5,3,1,0,4,5,1,3,0,0,1,3,4,5,1,3,4,5,1,3,4,5,5,3,1,3,4,5,4,0,1,3,4,5,0,209,209,209,17,0,0,0,0,0,0,0,0,49,0,0,26,17,0,0,0,17,26,0,17,17,17,26,17,35,36,23,23,17,17,35,36,23,17,35,36,23,23,23,23,0,49,35,36,49,36,49,49,35,36,49,35,36,49,49,35,36,49,35,36,49,35,36,0,17,35,36,23,17,35,36,23,17,35,36,23,23,17,17,17,17,17,17,23,17,23,17,35,36,23,0,17,23,23,210,17,23,17,17,17,35,36,23,23,17,23,17,17,17,17,17,17,17,35,36,23,23,23,17,23,23,23,17,23,23,23,17,17,23,23,17,17,35,36,23,17,35,36,23,23,17,175,63,17,17,23,23,23,17,23,23,49,35,36,23,17,23,17,49,35,36,17,17,17,17,17,17,17,17,17,17,17,17,17,17,23,49,23,17,23,23,17,35,36,23,49,35,36,17,17,0,23,17,23,17,23,23,17,17,23,17,23,49,35,36,23,0,17,35,36,23,17,23,17,49,49,17,23,17,35,36,23,17,35,36,23,23,17,35,36,23,17,17,35,36,23,23,0,0,48,48,0,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,84,76,76,0,85,0,0,84,83,0,84,84,76,76,76,84,85,46,76,85,85,0,0,0,46,46,83,84,84,0,0,84,84,84,83,83,84,85,47,86,76,46,83,84,85,47,86,76,46,83,84,85,47,86,46,83,84,85,47,86,46,47,86,86,83,84,85,47,86,76,83,84,85,47,86,76,76,46,83,84,85,85,47,47,86,76,46,47,83,86,84,47,83,84,85,47,86,76,46,84,85,86,47,86,76,47,47,83,84,85,47,86,86,83,84,85,47,86,46,76,83,84,85,47,86,76,46,83,84,85,47,86,76,46,83,84,85,47,86,76,46,83,84,85,47,86,76,46,211,211,211,212,213,214,213,214,213,214,213,214,213,214,215,216,217,218,219,220,220,219,221,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,90,91,93,95,96,97,98,99,100,101,102,89,90,91,93,95,96,97,98,99,100,101,102,223,89,90,91,93,95,96,97,98,99,100,101,102,89,90,91,93,95,96,97,98,99,100,101,102,89,90,91,93,95,96,97,98,99,100,101,102,87,89,90,91,93,95,96,97,98,99,100,101,102,89,90,91,93,95,96,97,98,99,100,101,102,89,90,91,93,95,96,97,98,99,100,101,102,89,90,91,93,95,96,97,98,99,100,101,102,89,90,91,93,95,96,97,98,99,100,101,102,81,0,0,0,0,224,224,0,0,111,0,0,0,0,81,81,81,49,0,0,22,81,81,108,26,224,115,0,115,0,0,22,26,108,0,0,0,0,22,0,111,108,26,0,225,26,115,106,113,22,107,81,104,26,108,109,110,111,115,106,113,22,107,81,104,26,108,109,110,111,104,49,49,49,49,49,49,49,49,49,106,22,107,104,26,108,109,110,111,106,22,107,104,26,108,109,110,111,104,26,109,111,107,107,106,26,26,104,22,104,26,108,109,110,111,113,22,107,81,81,104,104,26,26,108,108,109,110,111,104,115,115,115,106,113,22,107,81,81,81,104,26,26,108,109,110,111,113,113,26,108,104,26,26,224,226,224,226,115,26,104,26,109,111,115,106,113,22,107,81,104,26,108,109,110,111,26,88,94,106,106,113,26,108,94,115,106,106,26,108,115,115,26,225,22,26,108,225,22,225,22,26,26,104,109,110,104,0,26,49,104,104,0,49,104,26,109,110,49,113,104,26,109,111,49,104,81,104,104,104,26,49,104,0,106,22,107,104,26,108,109,110,111,108,81,104,26,108,49,49,104,115,106,113,22,107,81,104,26,108,109,110,111,115,106,113,22,107,81,104,26,108,109,110,111,115,106,113,22,107,81,104,26,108,109,110,111,115,106,113,22,107,81,104,26,108,109,110,111,0,227,227,227,0,0,0,156,0,155,152,153,154,0,0,0,154,154,154,153,153,153,0,0,152,153,154,152,153,154,156,0,0,123,124,148,124,129,124,124,124,124,124,123,124,135,129,148,152,153,154,155,156,123,124,135,129,148,152,153,154,155,156,124,124,124,124,124,135,129,124,123,135,129,123,135,129,0,124,123,123,135,129,148,124,124,124,123,129,123,129,148,0,0,124,123,123,124,135,129,148,148,152,152,153,153,154,154,155,155,156,156,123,124,135,135,135,129,129,129,148,152,153,154,155,156,124,124,124,124,124,124,135,123,148,129,124,124,124,123,124,135,129,148,152,153,154,155,156,228,129,124,148,124,135,124,124,124,124,124,124,124,124,129,124,124,124,124,124,124,124,124,124,124,152,153,154,155,156,124,124,124,124,124,123,129,124,0,124,124,124,124,123,135,129,123,148,152,153,154,155,156,123,124,123,123,123,124,135,129,148,152,153,154,155,156,123,124,135,129,148,152,153,154,155,156,0,124,123,124,135,129,148,152,153,154,155,156,124,124,123,123,124,135,129,148,152,153,154,155,156,0,229,229,230,230,231,232,231,232,233,233,185,185,0,186,0,0,0,0,0,185,0,186,0,185,186,184,181,182,183,185,186,184,181,182,183,181,182,183,181,182,183,201,181,182,183,0,181,182,183,184,184,185,185,186,184,181,182,183,185,186,184,181,182,183,185,186,184,181,182,183,184,183,185,184,184,181,182,183,185,185,186,184,181,182,183,185,186,184,181,182,183,185,186,184,181,182,183,185,186,184,181,182,183,234,234,235,236,236,235,236,0,165,165,187,0,165,165,142,165,165,142,165,165,0,165,165,165,165,165,187,165,165,165,165,165,165,142,142,165,142,187,165,165,187,165,142,187,165,142,187,187,187,187,165,165,142,142,187,165,165,165,165,165,165,142,187,165,142,187,165,142,187,187,165,142,187,165,142,187,165,142,187,165,142,187,165,142,237,238,237,238,239,239,240,241,0,0,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,195,190,195,151,190,195,151,0,151,151,151,192,151,151,151,151,151,151,151,195,190,192,151,0,0,0,0,0,0,0,0,192,0,0,151,45,150,150,45,150,190,151,192,194,125,45,150,195,190,151,192,194,125,45,150,195,45,190,192,194,125,45,150,195,190,192,194,125,45,150,195,190,125,125,45,150,195,194,242,194,194,194,190,192,125,195,45,190,151,151,192,194,125,45,150,195,190,190,190,151,151,192,194,125,45,150,195,190,242,194,194,194,45,190,151,192,194,125,45,150,195,194,45,190,125,151,45,150,150,243,194,194,194,126,194,150,45,150,190,192,194,125,45,150,195,151,150,150,190,151,192,194,125,45,150,195,190,151,192,194,125,45,150,195,190,151,192,194,125,45,150,195,190,151,192,194,125,45,150,195,244,0,0,0,206,0,205,205,0,0,202,202,204,202,205,206,0,0,0,203,206,141,141,141,141,141,141,141,141,141,141,143,140,141,203,202,204,206,205,143,140,141,203,202,204,206,205,141,143,140,141,206,205,143,140,141,206,205,206,205,141,141,143,140,206,205,141,141,141,141,141,206,205,141,141,141,143,140,141,203,203,202,202,204,204,206,205,143,140,141,203,202,204,206,205,206,205,141,143,140,141,203,202,204,206,205,141,141,141,141,141,206,205,141,203,202,204,141,141,206,143,140,141,206,205,203,202,204,143,140,141,203,202,204,206,205,143,140,141,203,202,204,206,205,143,140,141,203,202,204,206,205,141,141,143,140,141,203,202,204,206,205,245,245],"f":[0,0,0,0,0,0,0,0,0,0,0,0,[1,2],[1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[1,1],[3,3],[4,4],[5,5],[[]],[[]],[[]],[[]],[[1,1],6],0,0,0,0,[[],[[7,[1]]]],[[],[[7,[3]]]],[[1,1],8],[[3,3],8],[[4,4],8],[[5,5],8],[[1,9],10],[[3,9],10],[[4,9],10],[[5,9],10],0,[[]],[[]],[[]],[[]],[1],[3],[[]],[[]],[[]],[[]],0,0,0,[5,11],0,[[1,1],[[12,[6]]]],0,0,[5,[[12,[13]]]],[1,7],[3,7],0,0,[[]],[[]],[[]],[[]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[5,14],0,[[],15],[[],15],[[],15],[[],15],0,[[],16],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[17,18],[[7,[[20,[19]],21]]]],[[],22],[[],22],[23,24],[23,[[25,[23]]]],[[[17,[26]],27],[[7,[[17,[28]],29]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[23,[[31,[23,30]]]],[23,[[33,[32]]]],[23,[[33,[32]]]],0,[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[[],[[7,[34]]]],[[],[[7,[34]]]],[[],[[7,[34]]]],[24,[[7,[34]]]],[24,[[7,[34]]]],[24,[[7,[34]]]],[[],[[7,[34]]]],[[],[[7,[34]]]],[[],[[7,[34]]]],0,[17,17],[35,35],[36,36],[23,23],[[]],[[]],[[]],[[]],[[17,17],6],[[35,35],6],[[36,36],6],[[23,23],6],[23,8],[[[17,[26]],27],[[7,[[17,[28]],29]]]],[[[17,[28]],37],[[7,[[17,[38]],29]]]],[[[17,[26]],37,27],[[7,[[17,[38]],29]]]],[17,39],[[[17,[26]]],40],[[],[[7,[17]]]],[[],[[7,[23]]]],[[[17,[26]]],41],[23,42],[[17,17],8],[[35,35],8],[[36,36],8],[[23,23],8],0,[17,[[7,[42,21]]]],0,[[23,43],[[7,[44]]]],[[45,46,37],[[7,[[12,[47]],48]]]],[[[17,[26]],45,46,37],[[7,[[12,[47]],48]]]],[[[23,[26,49]],45,46,37],[[7,[[12,[47]],48]]]],[[[17,[26]],37,50,[51,[27]]],[[7,[12,29]]]],[[17,9],[[7,[52]]]],[[17,9],[[7,[52]]]],[[35,9],[[7,[52]]]],[[36,9],[[7,[52]]]],[[23,9],[[7,[52]]]],[[23,9],[[7,[52]]]],[17,8],[23,8],[[]],[53,17],[54,17],[55,17],[56,17],[57,17],[58,17],[[]],[[]],[[]],[24,[[7,[23,21]]]],[[24,59,60],23],[16,[[7,[17,21]]]],[16,[[7,[23,21]]]],[[16,43],[[7,[23,21]]]],[16,[[7,[23,21]]]],[61,[[7,[17,21]]]],[61,[[7,[23,21]]]],[[23,62],[[12,[23]]]],[[23,62],12],[17,[[7,[21]]]],[17,[[7,[21]]]],[23,8],[23,8],[[[17,[26]]],8],[17],[35],[36],[23],[[]],[[]],[[]],[[]],[23,24],[[[17,[26]]],[[7,[[31,[[17,[26]],30]],21]]]],[[37,18],[[7,[48]]]],[[63,37,18],[[7,[48]]]],[[[17,[26]]],8],[[[17,[26]]],8],[23,8],[23,64],[23,65],[17,[[7,[66,21]]]],[23,[[7,[66,21]]]],[23,[[7,[67]]]],[23,[[12,[62]]]],[23,[[12,[62]]]],[23,[[12,[62]]]],[23,[[7,[62,21]]]],[17,[[7,[62,21]]]],[23,[[7,[62,21]]]],[17,[[7,[62,21]]]],[[],16],[[],16],[[],16],[[[23,[68]]],[[7,[17,21]]]],[[],17],[[],[[7,[17,21]]]],[[[23,[35]]],[[7,[17,21]]]],[[62,[31,[30]]],[[7,[17,21]]]],[53,17],[54,17],[[],[[7,[17,21]]]],[[[23,[36]]],[[7,[17,21]]]],[[62,[31,[30]]],[[7,[17,21]]]],[[[12,[69]]],[[7,[17,21]]]],[[],[[7,[17,21]]]],[[[23,[36]]],[[7,[17,21]]]],[[62,[31,[30]]],[[7,[17,21]]]],0,[23,[[7,[21]]]],[50,[[7,[23,21]]]],[[37,16],[[7,[21]]]],[50,[[7,[23,21]]]],[[50,43],[[7,[23,21]]]],[[17,17],[[12,[6]]]],[[35,35],[[12,[6]]]],[[36,36],[[12,[6]]]],[[23,23],[[12,[6]]]],[[],62],[[],62],[[],62],[[[17,[28]]],[[7,[70,[17,[28]]]]]],[[[17,[28]]],[[7,[70,[17,[28]]]]]],0,[23,8],[17,[[7,[21]]]],[23,[[7,[44]]]],[[17,71],[[7,[21]]]],[23,[[7,[[31,[[31,[2,30]],30]],21]]]],[23,[[7,[[31,[[31,[2,30]],30]],21]]]],[17,[[7,[42,21]]]],[17,42],[23,62],[17,7],[23,7],[[],72],[[],72],[[],72],[[23,73],23],0,[[]],[[]],[[]],[[]],[[],74],[[],74],[[[17,[26]],73],74],[23,[[7,[21]]]],[23,[[7,[21]]]],[17,[[7,[75]]]],[23,[[7,[75]]]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],0,[[],15],[[],15],[[],15],[[],15],[17,42],[[]],[[]],[[]],[[]],[23,8],[16,[[7,[74,48]]]],[16,[[7,[48]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[48,9],10],[[48,9],10],[21,48],[76,48],[[]],[77,48],[78,48],[79,48],[80,48],[81,48],[[]],[82],[[],74],[[],7],[[],7],[[],15],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[83,83],[84,84],[85,85],[47,47],[86,86],[46,46],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[],86],[[83,83],8],[[84,84],8],[[85,85],8],[[47,47],8],[[86,86],8],[[76,76],8],[[83,9],10],[[84,9],10],[[85,9],10],[[47,9],10],[[86,9],10],[[76,9],10],[[76,9],10],[[46,9],10],[[]],[[]],[[]],[8,85],[84,47],[[]],[[]],[[]],[[]],[[47,73],[[7,[86,76]]]],[83],[86],[84,74],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[84,8],[85,8],[86,8],0,[[86,86],[[12,[6]]]],[82],[47,8],0,[83,7],[84,7],[85,7],[47,7],[86,7],0,[[]],[[]],[[]],[[]],[[]],[[]],[[],74],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[18,[[7,[87,48]]]],[[[89,[[88,[35]]]],18],[[7,[87,48]]]],[[[90,[[88,[36]]]],18],[[7,[87,48]]]],[[[91,[[88,[36]]]],18],[[7,[87,48]]]],[[[93,[[88,[92]]]],18],[[7,[87,48]]]],[[[95,[[94,[35]]]],18],[[7,[87,48]]]],[[[96,[[94,[35]]]],18],[[7,[87,48]]]],[[[97,[[94,[36]]]],18],[[7,[87,48]]]],[[[98,[[94,[36]]]],18],[[7,[87,48]]]],[[[99,[[94,[36]]]],18],[[7,[87,48]]]],[[[100,[[94,[36]]]],18],[[7,[87,48]]]],[[[101,[[94,[92]]]],18],[[7,[87,48]]]],[[[102,[[94,[92]]]],18],[[7,[87,48]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[87,37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],103],[[],22],[[26,27],[[7,[28,29]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[104,[[33,[32]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[[],[[7,[34]]]],[24,[[7,[34]]]],[[],[[7,[34]]]],[[[106,[105,49]]],[[106,[105,49]]]],[22,22],[107,107],[104,104],[26,26],[108,108],[109,109],[110,110],[111,111],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[104,104],6],[[26,26],6],[[109,109],6],[[111,111],6],0,[[],107],[[[106,[49]]]],[[26,27],[[7,[28,29]]]],[[],[[7,[26]]]],[104,42],[[22,22],8],[[104,104],8],[[26,26],8],[[108,108],8],[[109,109],8],[[110,110],8],[[111,111],8],[[[113,[[0,[112,49]]]],9],10],[[22,9],10],[[107,9],10],[[81,9],10],[[81,9],10],[[104,9],[[7,[52]]]],[[104,9],[[7,[52]]]],[[26,9],[[7,[52]]]],[[26,9],[[7,[52]]]],[[108,9],[[7,[52]]]],[[108,9],[[7,[52]]]],[[109,9],[[7,[52]]]],[[110,9],[[7,[52]]]],[[111,9],[[7,[52]]]],[104,8],[[]],[114,[[115,[49]]]],[116,[[115,[49]]]],[[]],[[]],[[]],[[]],[80,81],[[]],[21,81],[[]],[28,26],[[]],[[]],[[]],[[]],[[]],[[26,103],[[113,[49]]]],[[108,103],[[113,[49]]]],[16,[[7,[26]]]],[16,[[7,[108]]]],[61,[[7,[104,21]]]],[26,[[12,[117]]]],[26,[[31,[117,30]]]],[[],[[7,[106]]]],[[],[[7,[106]]]],[[],[[7,[106]]]],[[],[[7,[106]]]],[[[115,[49]]],8],[26,8],[104],[26],[109],[111],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[26,118],[[],[[7,[113,81]]]],[[[12,[119]],117],[[7,[113,81]]]],[106,[[7,[113,81]]]],[[106,[12,[119]],117],[[7,[113,81]]]],[[[113,[49]]],[[7,[[113,[49]],81]]]],[26,[[7,[[113,[49]],81]]]],[108,[[7,[[113,[49]],81]]]],[[],[[7,[115,81]]]],[[[115,[49]]],[[7,[[115,[49]],81]]]],[106,[[7,[115,81]]]],[[[106,[49]]]],[26,[[31,[26,30]]]],[108,[[31,[108,30]]]],[[[115,[49]],18],[[12,[116]]]],[[[115,[49]],18,37],114],[26,8],[[],8],[22,8],[26,8],[108,8],[[],8],[22,8],[[],8],[22,8],[26,8],[26,8],0,0,0,[104,[[7,[66,21]]]],[[],103],[26,120],[23,[[12,[62]]]],[104,62],[104,62],[[103,103],103],[[],16],[[62,[31,[30]]],[[7,[104,21]]]],[26,62],0,0,[23,[[7,[21]]]],[[[113,[49]],103],[[113,[49]]]],[[104,104],[[12,[6]]]],[[26,26],[[12,[6]]]],[[109,109],[[12,[6]]]],[[111,111],[[12,[6]]]],[[],62],0,[82],[104,[[7,[21]]]],[104,[[7,[[31,[[31,[2,30]],30]],21]]]],[104,62],[26,7],[[],72],[104,24],[[],103],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[108,37],[[7,[26,121]]]],[[],74],[[],74],[[],74],[[],74],[23,[[7,[21]]]],[23,[[7,[21]]]],[104,[[7,[104,75]]]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],[[12,[41]]]],[[],[[12,[122]]]],[62,[[12,[14]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[123,123],123],[[124,1,125,[127,[126]]]],0,[124,[[73,[1,[0,[128,105]]]]]],[[129,129]],[[124,130,27],[[7,[131]]]],[[124,130,27,132],[[7,[133]]]],[[124,134]],[[124,[136,[135]]],[[7,[131]]]],[124,137],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[124,138],[[7,[[141,[139,140]],142]]]],[124,[[141,[139,143]]]],[[124,144],[[7,[41,145]]]],[[124,144],[[7,[122,145]]]],[[124,144]],0,0,[124,146],[123,123],[135,135],[129,129],[[]],[[]],[[]],0,[124,[[147,[8]]]],0,[[],123],[[],135],[[],129],[148],[[124,1],[[12,[27]]]],[[124,50],12],[[124,1],74],[[],[[7,[123]]]],[[],[[7,[129]]]],[[123,123],8],[[129,129],8],[[148,148],8],0,0,[[124,149,150],[[7,[8,151]]]],[[123,9],[[7,[52]]]],[[123,9],[[7,[52]]]],[[124,9],10],[[135,9],10],[[129,9],10],[[148,9],10],[[148,9],10],[[152,9],10],[[152,9],10],[[153,9],10],[[153,9],10],[[154,9],10],[[154,9],10],[[155,9],10],[[155,9],10],[[156,9],10],[[156,9],10],[[]],[[]],[157,135],[[]],[[[158,[1]]],135],[[[161,[159,[160,[1]]]]],129],[[]],[162,129],[[]],[[]],[[]],[[]],[[]],[[]],[124,123],[[124,1],63],[[124,3,[12,[163]],8],[[7,[164,165]]]],[[124,1],[[127,[45]]]],[[124,138],[[12,[[166,[[127,[144]],159]]]]]],[[124,11],[[12,[3]]]],0,0,0,0,[[124,132],[[7,[8,167]]]],[[124,144,168],[[7,[8,155]]]],[[124,11,14]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[50,8],[129,8],[[124,50],8],0,[124,128],0,[124,169],[124,128],[124,128],[[124,1],170],[[[0,[[171,[129]],172,173]]],[[7,[124,153]]]],[124,174],[[124,1,27],8],[124,18],0,[[175,[12,[175]],[0,[[171,[129]],172,173]],18],[[7,[124,152]]]],[[175,[12,[175]],18],[[7,[124,48]]]],[[175,[12,[175]],18,176],[[7,[124,48]]]],[[175,[12,[175]],[0,[[171,[129]],172,173]],18],[[7,[124,154]]]],[[175,[12,[175]],[0,[[171,[129]],172,173]],18,176],[[7,[124,154]]]],[[175,[12,[175]],[0,[[171,[129]],172,173]],18,176],[[7,[124,152]]]],[[124,1],27],[[124,1],[[147,[148]]]],[[124,1,27],148],[[124,1],[[7,[[12,[47]],48]]]],[82],[82],[82],[82],[82],[[124,1],[[12,[63]]]],[[124,1,27],[[147,[128]]]],[[124,1],[[147,[148]]]],[124,37],[[124,144]],[123,7],[129,7],[[124,149,150],[[7,[8,151]]]],0,[124,177],[124,129],[124,[[178,[1]]]],[124,179],[[]],[[]],[[]],[[],74],[[],74],[[],74],[[],74],[[],74],[[],74],[[],74],[123,180],[124,128],0,[123,180],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],0,[124,137],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[124,1],[[0,[128,105]]]],[[124,1,27],8],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[12,18,37],[[7,[74,48]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[181,181],[182,182],[183,183],[[]],[[]],[[]],[[[31,[4]],[31,[4]],122,41,50],[[7,[184,185]]]],[[181,[31,[4]],[31,[4]],122,41,50],[[7,[184,185]]]],[[182,[31,[4]],[31,[4]],122,41,50],[[7,[184,185]]]],[[183,[31,[4]],[31,[4]],122,41,50],[[7,[184,185]]]],[[41,122,50],186],[[],181],[[],182],[[],183],0,0,[[185,9],10],[[185,9],10],[[186,9],10],[[184,9],10],[[181,9],10],[[182,9],10],[[183,9],10],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[184,41],[41,183],[82],0,[184,41],[[]],[[]],[[]],[[],74],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[187,187],[[]],[[187,9],10],[[187,9],10],[[165,9],10],[[165,9],10],[[142,9],10],[[142,9],10],[[]],[185,165],[[]],[188,165],[48,165],[76,165],[187,165],[[]],[[]],[[]],[[]],[82],[82],[82],[[]],[[],74],[[],74],[[],74],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[189,[[12,[74]]]],[189,74],[[],[[7,[189]]]],[[124,16,8],[[7,[189,16]]]],[[189,9],10],[[189,9],10],[[]],[16,[[7,[189]]]],[[]],0,[189,7],[[],74],[[],7],[[],7],[[],15],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[45,190,125,[127,[126]]],[[12,[[127,[126]]]]]],0,0,[[45,37],191],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[191,17,37],45],[190,190],[192,192],[[[194,[[0,[105,193,112,105]]]]],[[194,[[0,[105,193,112,105]]]]]],[125,125],[45,45],[150,150],[195,195],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[190,190],6],[[125,125],6],[[],125],[[],45],[[],150],[[],195],[[[194,[[0,[193,112,105]]]]]],[[],[[12,[108]]]],[[[194,[[196,[116]]]]],[[12,[108]]]],[[[194,[197]]],[[12,[108]]]],[[[194,[[198,[116]]]]],[[12,[108]]]],[[190,190],8],[[192,192],8],[[125,125],8],[[195,195],8],[[45,190],[[12,[127]]]],[[190,9],10],[[151,9],10],[[151,9],10],[[192,9],10],[[[194,[[0,[112,193,112,105]]]],9],10],[[125,9],10],[[45,9],10],[[150,9],10],[[195,9],10],[199,190],[120,190],[[]],[[]],[200,151],[[]],[[]],[[]],[[]],[[]],[[]],[190],[37,190],[[[194,[197]],37],190],[[[194,[[198,[116]]]],37],190],[[[194,[[196,[116]]]],37],190],[45,[[31,[190]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[0,[193,112,105]],192],[[194,[[0,[193,112,105]]]]]],[[],45],[[190,190],[[12,[6]]]],[[125,125],[[12,[6]]]],[82],[[45,190,125],[[12,[[127,[126]]]]]],0,0,[[149,62,150,37],[[7,[151]]]],[[[194,[[198,[116]]]],149,62,150,37],[[7,[151]]]],[[[194,[197]],149,62,150,37],[[7,[151]]]],[[[194,[[196,[116]]]],149,62,150,37],[[7,[151]]]],[[149,150,37],[[7,[151]]]],[[149,150,37],[[7,[151]]]],0,[45,[[31,[127]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],74],0,0,[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[141,[201,143]]],[[141,[201,143]]]],[[141,11,164,62],[[7,[141,202]]]],[[141,11,164,62,13],[[7,[141,202]]]],[141,141],[[[141,[201,143]],42,180],[[141,[201,143]]]],[[141,11],141],[[141,11],[[7,[141,203]]]],[141,[[7,[141,203]]]],[[141,8],141],[[[141,[139,140]],42],[[7,[[141,[139,140]],204]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[141,205],141],[143,143],[140,140],[[[141,[105]]],[[141,[105]]]],[206,206],[205,205],[[]],[[]],[[]],[[]],[[]],[[206,206],6],[[205,205],6],[[141,201],[[141,[201]]]],[[141,27],141],[[],143],[[],140],[[],206],[[],205],[141,141],[[[141,[201,143]],42],[[141,[201,143]]]],[141,141],[141,141],[[141,13],141],[[206,206],8],[[205,205],8],[[141,41],141],[[141,122],141],[[[141,[201]]],[[7,[149,165]]]],[[143,9],10],[[140,9],10],[[[141,[112,112]],9],10],[[203,9],10],[[203,9],10],[[202,9],10],[[202,9],10],[[204,9],10],[[204,9],10],[[206,9],10],[[205,9],10],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[206],[205],[141,141],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[141,141],[[141,207],141],[141,141],[141,141],[[141,206],141],[[206,206],[[12,[6]]]],[[205,205],[[12,[6]]]],[[141,[73,[74,[31,[62]]]],1],141],[82],[82],[82],[[[141,[201,143]],31],[[141,[201,143]]]],[[141,163],141],[[206,144]],[[]],[[]],[[]],[[]],[[]],[[],74],[[],74],[[],74],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[141,[31,[11]]],141],[[141,208],141],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0],"p":[[4,"KeychainKind"],[15,"u8"],[3,"LocalOutput"],[3,"WeightedUtxo"],[4,"Utxo"],[4,"Ordering"],[4,"Result"],[15,"bool"],[3,"Formatter"],[6,"Result"],[3,"OutPoint"],[4,"Option"],[3,"Sequence"],[3,"TxOut"],[3,"TypeId"],[15,"str"],[4,"Descriptor"],[4,"Network"],[4,"NetworkChecked"],[3,"Address"],[4,"Error"],[4,"ScriptContextEnum"],[3,"Miniscript"],[4,"Terminal"],[4,"Tree"],[4,"DescriptorPublicKey"],[15,"u32"],[3,"DefiniteDescriptorKey"],[4,"ConversionError"],[3,"Global"],[3,"Vec"],[4,"Placeholder"],[3,"Satisfaction"],[4,"ScriptContextError"],[4,"Legacy"],[4,"Segwitv0"],[3,"Secp256k1"],[3,"PublicKey"],[4,"DescriptorType"],[3,"DescriptorId"],[15,"u64"],[3,"ScriptBuf"],[3,"ExtParams"],[4,"AnalysisError"],[3,"SignersContainer"],[4,"BuildSatisfaction"],[3,"Policy"],[4,"Error"],[8,"ScriptContext"],[3,"Script"],[3,"Range"],[3,"Error"],[3,"Wpkh"],[3,"Wsh"],[3,"Tr"],[3,"Bare"],[3,"Sh"],[3,"Pkh"],[3,"Type"],[3,"ExtData"],[3,"Tree"],[15,"usize"],[6,"ExtendedDescriptor"],[3,"Iter"],[3,"PkIter"],[4,"Policy"],[4,"LiftError"],[4,"BareCtx"],[4,"TapTree"],[3,"Plan"],[3,"TxIn"],[4,"SigType"],[3,"BTreeMap"],[3,"String"],[4,"TranslateErr"],[4,"PolicyError"],[4,"HexToBytesError"],[4,"Error"],[4,"Error"],[4,"Error"],[4,"KeyError"],[3,"Demand"],[4,"PkOrF"],[4,"SatisfiableItem"],[4,"Satisfaction"],[3,"Condition"],[6,"DescriptorTemplateOut"],[8,"IntoDescriptorKey"],[3,"P2Pkh"],[3,"P2Wpkh_P2Sh"],[3,"P2Wpkh"],[4,"Tap"],[3,"P2TR"],[8,"DerivableKey"],[3,"Bip44"],[3,"Bip44Public"],[3,"Bip49"],[3,"Bip49Public"],[3,"Bip84"],[3,"Bip84Public"],[3,"Bip86"],[3,"Bip86Public"],[6,"ValidNetworks"],[3,"SortedMultiVec"],[8,"Clone"],[3,"GeneratedKey"],[3,"PrivateKeyGenerateOptions"],[4,"DescriptorSecretKey"],[3,"SinglePub"],[3,"SinglePriv"],[4,"SinglePubKey"],[8,"Debug"],[4,"DescriptorKey"],[3,"Xpub"],[4,"ExtendedKey"],[3,"Xpriv"],[3,"DerivationPath"],[3,"Assets"],[6,"KeySource"],[3,"Fingerprint"],[3,"DescriptorKeyParseError"],[3,"FeeRate"],[3,"Balance"],[3,"Wallet"],[3,"SignerOrdering"],[8,"TransactionSigner"],[3,"Arc"],[8,"Iterator"],[3,"ChangeSet"],[3,"Block"],[3,"CannotConnectError"],[3,"BlockId"],[4,"ApplyHeaderError"],[8,"IntoIterator"],[3,"Update"],[8,"Into"],[3,"TxGraph"],[3,"Txid"],[6,"DefaultCoinSelectionAlgorithm"],[3,"BumpFee"],[3,"TxBuilder"],[4,"BuildFeeBumpError"],[3,"CreateTx"],[3,"Transaction"],[4,"CalculateFeeError"],[3,"CheckPointIter"],[6,"Result"],[3,"AddressInfo"],[3,"Psbt"],[3,"SignOptions"],[4,"SignerError"],[4,"NewError"],[4,"LoadError"],[4,"NewOrLoadError"],[4,"InsertTxError"],[4,"ApplyBlockError"],[3,"SyncResult"],[3,"FullScanResult"],[3,"ConfirmationTimeHeightAnchor"],[3,"ChangeSet"],[3,"ChangeSet"],[6,"ChangeSet"],[3,"PsbtSighashType"],[3,"Input"],[4,"CreateTxError"],[3,"CanonicalTx"],[3,"AlterCheckPointError"],[4,"ConfirmationTime"],[3,"CheckPoint"],[8,"DoubleEndedIterator"],[8,"PersistBackend"],[8,"Send"],[8,"Sync"],[3,"LocalChain"],[8,"IntoWalletDescriptor"],[3,"BlockHash"],[3,"KeychainTxOutIndex"],[3,"FullScanRequest"],[3,"SyncRequest"],[3,"Amount"],[3,"LargestFirstCoinSelection"],[3,"OldestFirstCoinSelection"],[3,"BranchAndBoundCoinSelection"],[3,"CoinSelectionResult"],[4,"Error"],[4,"Excess"],[4,"MiniscriptPsbtError"],[4,"Error"],[3,"FullyNodedExport"],[4,"SignerId"],[6,"KeyMap"],[4,"SignerContext"],[8,"Sized"],[3,"SignerWrapper"],[4,"TapLeavesOptions"],[3,"DescriptorMultiXKey"],[3,"PrivateKey"],[3,"DescriptorXKey"],[3,"Hash"],[4,"Error"],[8,"CoinSelectionAlgorithm"],[4,"AddForeignUtxoError"],[4,"AddUtxoError"],[4,"AllowShrinkingError"],[4,"ChangeSpendPolicy"],[4,"TxOrdering"],[4,"LockTime"],[15,"i32"],[13,"Foreign"],[8,"ExtractPolicy"],[13,"PsbtTimelocks"],[13,"Complete"],[13,"Partial"],[13,"PartialComplete"],[13,"Sha256Preimage"],[13,"Hash256Preimage"],[13,"Ripemd160Preimage"],[13,"Hash160Preimage"],[13,"Thresh"],[13,"Multisig"],[13,"AbsoluteTimelock"],[13,"RelativeTimelock"],[8,"DescriptorTemplate"],[8,"GeneratableKey"],[8,"ExtScriptContext"],[8,"GeneratableDefaultOptions"],[8,"PsbtUtils"],[8,"IsDust"],[13,"UnexpectedConnectedToHash"],[13,"ConfirmationHeightCannotBeGreaterThanTip"],[13,"LoadedGenesisDoesNotMatch"],[13,"LoadedNetworkDoesNotMatch"],[13,"LoadedDescriptorDoesNotMatch"],[13,"InsufficientFunds"],[13,"Change"],[13,"NoChange"],[13,"InsufficientFunds"],[13,"RbfSequenceCsv"],[13,"LockTime"],[13,"FeeTooLow"],[13,"FeeRateTooLow"],[8,"SignerCommon"],[8,"InputSigner"],[13,"Tap"],[13,"InvalidTxid"]]},\
"bdk_bitcoind_rpc":{"doc":"This crate is used for emitting blockchain data from the …","t":[8,3,3,2,12,11,11,11,11,11,11,12,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11],"n":["BitcoindRpcErrorExt","BlockEvent","Emitter","bitcoincore_rpc","block","block_hash","block_height","borrow","borrow","borrow_mut","borrow_mut","checkpoint","connected_to","fmt","from","from","into","into","is_not_found_error","mempool","new","next_block","next_header","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip"],"q":["bdk_bitcoind_rpc","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Extends <code>bitcoincore_rpc::Error</code>.","A newly emitted block from <code>Emitter</code>.","The <code>Emitter</code> is used to emit data sourced from …","","Either a full <code>Block</code> or <code>Header</code> of the new block.","The block hash of this new block.","The block height of this new block.","","","","","The checkpoint of the new block.","The <code>BlockId</code> of a previous block that this block connects …","","Returns the argument unchanged.","Returns the argument unchanged.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Returns whether the error is a “not found” error.","Emit mempool transactions, alongside their first-seen unix …","Construct a new <code>Emitter</code>.","Emit the next block height and block (if any).","Emit the next block height and header (if any).","","","","","","","",""],"i":[0,0,0,0,1,1,1,10,1,10,1,1,1,1,10,1,10,1,19,10,10,10,10,10,1,10,1,10,1,10,1],"f":[0,0,0,0,0,[1,2],[1,3],[[]],[[]],[[]],[[]],0,[1,4],[[[1,[5]],6],7],[[]],[[]],[[]],[[]],[[],8],[[[10,[9]]],[[13,[11,12]]]],[[14,3],[[10,[9]]]],[[[10,[9]]],[[13,[[16,[[1,[15]]]],12]]]],[[[10,[9]]],[[13,[[16,[[1,[17]]]],12]]]],[[],13],[[],13],[[],13],[[],13],[[],18],[[],18],[[]],[[]]],"p":[[3,"BlockEvent"],[3,"BlockHash"],[15,"u32"],[3,"BlockId"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[15,"bool"],[8,"RpcApi"],[3,"Emitter"],[3,"Vec"],[4,"Error"],[4,"Result"],[3,"CheckPoint"],[3,"Block"],[4,"Option"],[3,"Header"],[3,"TypeId"],[8,"BitcoindRpcErrorExt"]]},\
"bdk_chain":{"doc":"This crate is a collection of core structures for Bitcoin …","t":[8,8,8,17,3,17,8,4,3,4,3,13,13,8,3,16,3,2,3,3,2,13,13,11,11,10,11,11,11,12,12,10,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,12,11,11,11,11,11,10,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,12,12,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,10,11,12,11,11,11,0,0,11,2,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,3,16,3,8,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,10,10,12,10,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,3,4,13,3,6,3,3,13,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,3,3,3,3,6,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,12,12,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,4,3,3,13,13,3,3,3,3,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,12,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["Anchor","AnchorFromBlockPosition","Append","BIP32_MAX_INDEX","BlockId","COINBASE_MATURITY","ChainOracle","ChainPosition","ConfirmationHeightAnchor","ConfirmationTime","ConfirmationTimeHeightAnchor","Confirmed","Confirmed","DescriptorExt","DescriptorId","Error","FullTxOut","IndexedTxGraph","SpkIterator","SpkTxOutIndex","TxGraph","Unconfirmed","Unconfirmed","all_spks","all_zeros","anchor_block","anchor_block","anchor_block","anchor_block","anchor_block","anchor_block","append","apply_changeset","as_byte_array","as_raw_hash","as_ref","as_ref","bitcoin","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain_position","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cloned","cmp","cmp","cmp","cmp","cmp","cmp","cmp","confirmation_height","confirmation_height","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_height_upper_bound","confirmation_time","default","default","default","default","descriptor","descriptor_id","deserialize","deserialize","deserialize","deserialize","deserialize","dust_value","engine","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from_block_position","from_block_position","from_block_position","from_block_position","from_byte_array","from_engine","from_raw_hash","from_slice","from_slice_delegated","from_str","get_chain_tip","hash","hash","hash","hash","hash","hash","hash","height","index","index_of_spk","index_tx","index_txout","indexed_tx_graph","initial_changeset","insert_spk","into","into","into","into","into","into","into","into","into","into_iter","is_block_in_chain","is_confirmed","is_confirmed","is_confirmed_and_spendable","is_empty","is_mature","is_on_coinbase","is_relevant","is_tx_relevant","is_used","keychain","local_chain","mark_used","miniscript","net_value","new","new_with_range","next","nth","outpoint","outpoints","outputs_in_range","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","scan","scan_txout","sent_and_received","serialize","serialize","serialize","serialize","serialize","spent_by","spk_at_index","spk_client","to_byte_array","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_raw_hash","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","tx_graph","txout","txout","txouts","txouts_in_tx","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unconfirmed","unmark_used","unused_spks","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","height","last_seen","time","ChangeSet","ChangeSet","IndexedTxGraph","Indexer","append","apply_block","apply_block_relevant","apply_changeset","apply_changeset","apply_update","batch_insert_relevant","batch_insert_relevant_unconfirmed","batch_insert_unconfirmed","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","default","deserialize","eq","fmt","fmt","from","from","from","from","graph","graph","index","index_tx","index_txout","indexer","initial_changeset","initial_changeset","insert_anchor","insert_seen_at","insert_tx","insert_txout","into","into","is_empty","is_tx_relevant","new","serialize","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Balance","ChangeSet","KeychainTxOutIndex","add","all_unbounded_spk_iters","append","apply_changeset","apply_changeset","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","confirmed","default","default","default","deserialize","deserialize","eq","eq","fmt","fmt","fmt","fmt","from","from","from","get_descriptor","immature","index_of_spk","index_tx","index_txout","initial_changeset","inner","insert_descriptor","into","into","into","is_empty","is_tx_relevant","is_used","keychain_outpoints","keychain_outpoints_in_range","keychains","keychains_added","last_revealed","last_revealed_index","last_revealed_indices","last_used_index","last_used_indices","lookahead","lookahead_to_target","mark_used","net_value","new","next_index","next_unused_spk","outpoints","reveal_next_spk","reveal_to_target","reveal_to_target_multi","revealed_keychain_spks","revealed_spks","sent_and_received","serialize","serialize","spk_at_index","to_owned","to_owned","to_owned","to_string","total","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_into","try_into","try_into","txout","txouts","txouts_in_tx","type_id","type_id","type_id","unbounded_spk_iter","unmark_used","untrusted_pending","unused_keychain_spks","unused_spks","vzip","vzip","vzip","AlterCheckPointError","ApplyHeaderError","CannotConnect","CannotConnectError","ChangeSet","CheckPoint","CheckPointIter","InconsistentBlocks","LocalChain","MissingGenesisError","apply_changeset","apply_header","apply_header_connected_to","apply_update","block_id","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","disconnect_from","eq","eq","eq","eq","eq","eq","extend","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_block_ids","from_blocks","from_changeset","from_genesis_hash","from_header","from_tip","genesis_hash","get","get","get_chain_tip","hash","height","height","initial_changeset","insert","insert_block","into","into","into","into","into","into","into","into_iter","into_iter","is_block_in_chain","iter","iter_checkpoints","new","next","original_hash","prev","provide","provide","provide","provide","push","range","range","tip","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_include_height","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_hash","vzip","vzip","vzip","vzip","vzip","vzip","vzip","FullScanRequest","FullScanResult","SyncRequest","SyncResult","TxCache","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cache_graph_txs","cache_graph_txs","cache_txs","cache_txs","chain_outpoints","chain_spks","chain_spks_for_keychain","chain_tip","chain_tip","chain_txids","chain_update","chain_update","from","from","from","from","from_chain_tip","from_chain_tip","from_keychain_txout_index","graph_update","graph_update","inspect_outpoints","inspect_spks","inspect_spks_for_all_keychains","inspect_spks_for_keychain","inspect_txids","into","into","into","into","last_active_indices","outpoints","populate_with_revealed_spks","set_outpoints","set_spks","set_spks_for_keychain","set_txids","spks","spks_by_keychain","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","tx_cache","tx_cache","txids","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","CalculateFeeError","CanonicalTx","ChangeSet","MissingTxOut","NegativeFee","TxAncestors","TxDescendants","TxGraph","TxNode","all_anchors","all_txouts","anchor_heights","anchors","anchors","append","apply_changeset","apply_update","as_ref","balance","batch_insert_unconfirmed","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","calculate_fee","chain_position","checked_sum","checked_sum","checked_sum","checked_sum","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","default","default","deref","deserialize","direct_conflicts","eq","eq","eq","eq","eq","filter_chain_txouts","filter_chain_unspents","floating_txouts","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","full_txs","get_chain_position","get_chain_spend","get_tx","get_tx_node","get_txout","initial_changeset","insert_anchor","insert_seen_at","insert_tx","insert_txout","into","into","into","into","into","into","into","into_iter","into_iter","is_empty","is_empty","last_seen","last_seen_unconfirmed","list_chain_txs","map_anchors","map_anchors","new","next","next","outspends","partial_cmp","partial_cmp","provide","serialize","to_owned","to_owned","to_owned","to_owned","to_string","try_balance","try_filter_chain_txouts","try_filter_chain_unspents","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_get_chain_position","try_get_chain_spend","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_list_chain_txs","tx","tx_node","tx_outputs","tx_spends","txid","txouts","txouts","txs","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_last_seen_unconfirmed","vzip","vzip","vzip","vzip","vzip","vzip","vzip","walk_ancestors","walk_conflicts","walk_descendants"],"q":["bdk_chain","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::ConfirmationTime","","","bdk_chain::indexed_tx_graph","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::keychain","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::local_chain","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::spk_client","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_chain::tx_graph","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Trait that “anchors” blockchain data to a specific …","An <code>Anchor</code> that can be constructed from a given block, …","Trait that makes an object appendable.","Maximum BIP32 derivation index.","A reference to a block in the canonical chain.","How many confirmations are needed f or a coinbase output …","Represents a service that tracks the blockchain.","Represents the observed position of some chain data.","An <code>Anchor</code> implementation that also records the exact …","Block height and timestamp at which a transaction is …","An <code>Anchor</code> implementation that also records the exact …","The chain data is seen as confirmed, and in anchored by <code>A</code>.","The transaction is confirmed","A trait to extend the functionality of a miniscript …","Represents the ID of a descriptor, defined as the sha256 …","Error type.","A <code>TxOut</code> with as much data as we can retrieve about it","","An iterator for derived script pubkeys.","An index storing <code>TxOut</code>s that have a script pubkey that …","","The chain data is not confirmed and last seen in the …","The transaction is unconfirmed","The script pubkeys that are being tracked by the index.","","Returns the <code>BlockId</code> that the associated blockchain data is …","","","","The anchor block.","The anchor block.","Append another object of the same type onto <code>self</code>.","","","Returns a reference to the inner hash (sha256, sh256d …","","","","","","","","","","","","","","","","","","","","","","","The position of the transaction in <code>outpoint</code> in the overall …","","","","","","","","","","","","","","","","","","","Maps a <code>ChainPosition<&A></code> into a <code>ChainPosition<A></code> by …","","","","","","","","The exact confirmation height of the transaction.","The confirmation height of the transaction being anchored.","Get the upper bound of the chain data’s confirmation …","Get the upper bound of the chain data’s confirmation …","Determines the upper bound of the confirmation height.","","","The confirmation time of the transaction being anchored.","","","","","Get a reference to the internal descriptor.","Returns the descriptor id, calculated as the sha256 of the …","","","","","","Returns the minimum value (in satoshis) at which an output …","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Construct the anchor from a given <code>block</code>, block height and …","","","","","","Creates this wrapper type from the inner hash type.","","","","Get the best chain’s chain tip.","","","","","","","The hash of the block.","The height of the block.","","Returns the index associated with the script pubkey.","","","Contains the <code>IndexedTxGraph</code> and associated types. Refer to …","","Adds a script pubkey to scan for. Returns <code>false</code> and does …","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","","Determines whether <code>block</code> of <code>BlockId</code> exists as an ancestor …","Returns whether <code>ChainPosition</code> is confirmed or not.","Returns whether <code>ConfirmationTime</code> is the confirmed variant.","Whether the utxo is/was/will be spendable with chain <code>tip</code>.","Returns whether the structure is considered empty.","Whether the <code>txout</code> is considered mature.","Whether this output is on a coinbase transaction.","Whether any of the inputs of this transaction spend a …","","Returns whether the script pubkey at <code>index</code> has been used …","Module for keychain related structures.","The <code>LocalChain</code> is a local implementation of <code>ChainOracle</code>.","Marks the script pubkey at <code>index</code> as used even though it …","","Computes the net value transfer effect of <code>tx</code> on the script …","Create a new script pubkey iterator from <code>descriptor</code>.","Create a new script pubkey iterator from <code>descriptor</code> and a …","","","The location of the <code>TxOut</code>.","Get a reference to the set of indexed outpoints.","Iterates over all the outputs with script pubkeys in an …","","","","","","","","Scans a transaction’s outputs for matching script …","Scan a single <code>TxOut</code> for a matching script pubkey and …","Computes the total value transfer effect <code>tx</code> has on the …","","","","","","The txid and chain position of the transaction (if any) …","Returns the script that has been inserted at the <code>index</code>.","Helper types for spk-based blockchain clients.","","","","","","","","","","","Returns the inner hash (sha256, sh256d etc.).","","","","","","","","","","","","","","","","","","","","Module for structures that store and traverse transactions.","Returns the txout and script pubkey index of the <code>TxOut</code> at …","The <code>TxOut</code>.","Iterate over all known txouts that spend to tracked script …","Finds all txouts on a transaction that has previously been …","","","","","","","","","","Construct an unconfirmed variant using the given <code>last_seen</code> …","Undoes the effect of <code>mark_used</code>. Returns whether the <code>index</code> …","Iterates over all unused script pubkeys in an index range.","","","","","","","","","","Confirmation height.","The last-seen timestamp in unix seconds.","Confirmation time in unix seconds.","Represents changes to an <code>IndexedTxGraph</code>.","The resultant “changeset” when new transaction data is …","The <code>IndexedTxGraph</code> combines a <code>TxGraph</code> and an <code>Indexer</code> …","Utilities for indexing transaction data.","","Batch insert all transactions of the given <code>block</code> of <code>height</code>.","Batch insert all transactions of the given <code>block</code> of <code>height</code>…","Apply changeset to itself.","Applies the <code>ChangeSet</code> to the <code>IndexedTxGraph</code>.","Apply an <code>update</code> directly.","Batch insert transactions, filtering out those that are …","Batch insert unconfirmed transactions, filtering out those …","Batch insert unconfirmed transactions.","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Get a reference of the internal transaction graph.","<code>TxGraph</code> changeset.","Transaction index.","Scans a transaction for relevant outpoints, which are …","Scan and index the given <code>outpoint</code> and <code>txout</code>.","<code>Indexer</code> changeset.","Determines the <code>ChangeSet</code> between <code>self</code> and an empty <code>Indexer</code>.","Determines the <code>ChangeSet</code> between <code>self</code> and an empty …","Insert an <code>anchor</code> for a given transaction.","Insert a unix timestamp of when a transaction is seen in …","Insert and index a transaction into the graph.","Insert a floating <code>txout</code> of given <code>outpoint</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","","Determines whether the transaction should be included in …","Construct a new <code>IndexedTxGraph</code> with a given <code>index</code>.","","","","","","","","","","","Balance, differentiated into various categories.","Represents updates to the derivation index of a …","<code>KeychainTxOutIndex</code> controls how script pubkeys are …","","Get unbounded spk iterators for all keychains.","Append another <code>ChangeSet</code> into self.","Applies the derivation changeset to the <code>KeychainTxOutIndex</code>…","","","","","","","","","","","","","","Confirmed and immediately spendable balance","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Gets the descriptor associated with the keychain. Returns …","All coinbase outputs not yet matured","Returns the keychain and keychain index associated with …","","","","Return a reference to the internal <code>SpkTxOutIndex</code>.","Insert a descriptor with a keychain associated to it.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Returns whether the changeset are empty.","","Returns whether the spk under the <code>keychain</code>’s <code>index</code> has …","Iterate over all <code>OutPoint</code>s that have <code>TxOut</code>s with script …","Iterate over <code>OutPoint</code>s that have script pubkeys derived …","Return the map of the keychain to descriptors.","Contains the keychains that have been added and their …","Contains for each descriptor_id the last revealed index of …","Get the last derivation index revealed for <code>keychain</code>. …","Get the last derivation index that is revealed for each …","Returns the highest derivation index of the <code>keychain</code> where …","Returns the highest derivation index of each keychain that …","Get the lookahead setting.","Store lookahead scripts until <code>target_index</code> (inclusive).","Marks the script pubkey at <code>index</code> as used even though the …","Computes the net value that this transaction gives to the …","Construct a <code>KeychainTxOutIndex</code> with the given <code>lookahead</code>.","Get the next derivation index for <code>keychain</code>. The next index …","Gets the next unused script pubkey in the keychain. I.e., …","Get the set of indexed outpoints, corresponding to tracked …","Attempts to reveal the next script pubkey for <code>keychain</code>.","Reveals script pubkeys of the <code>keychain</code>’s descriptor <strong>up </strong>…","Convenience method to call <code>Self::reveal_to_target</code> on …","Iterate over revealed spks of the given <code>keychain</code>.","Iterate over revealed spks of keychains in <code>range</code>","Computes the total value transfer effect <code>tx</code> has on the …","","","Return the script that exists under the given <code>keychain</code>’s …","","","","","Get the whole balance visible to the wallet.","Unconfirmed UTXOs generated by a wallet tx","Get sum of trusted_pending and confirmed coins.","","","","","","","Return the <code>TxOut</code> of <code>outpoint</code> if it has been indexed, and …","Iterate over known txouts that spend to tracked script …","Finds all txouts on a transaction that has previously been …","","","","Get an unbounded spk iterator over a given <code>keychain</code>. …","Undoes the effect of <code>mark_used</code>. Returns whether the <code>index</code> …","Unconfirmed UTXOs received from an external wallet","Iterate over revealed, but unused, spks of the given …","Iterate over revealed, but unused, spks of all keychains.","","","","Represents a failure when trying to insert/remove a …","The error type for <code>LocalChain::apply_header_connected_to</code>.","Occurs when the update cannot connect with the original …","Occurs when an update does not have a common checkpoint …","The <code>ChangeSet</code> represents changes to <code>LocalChain</code>.","A <code>LocalChain</code> checkpoint is used to find the agreement …","Iterates over checkpoints backwards.","Occurs when <code>connected_to</code> block conflicts with either the …","This is a local implementation of <code>ChainOracle</code>.","An error which occurs when a <code>LocalChain</code> is constructed …","Apply the given <code>changeset</code>.","Update the chain with a given <code>Header</code> connecting it with …","Update the chain with a given <code>Header</code> at <code>height</code> which you …","Applies the given <code>update</code> to the chain.","Get the <code>BlockId</code> of the checkpoint.","","","","","","","","","","","","","","","","","","","","","","","","","","","Removes blocks from (and inclusive of) the given <code>block_id</code>.","","","","","","","Extends the checkpoint linked list by a iterator of block …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Construct a checkpoint from a list of <code>BlockId</code>s in …","Constructs a <code>LocalChain</code> from a <code>BTreeMap</code> of height to …","Construct a <code>LocalChain</code> from an initial <code>changeset</code>.","Construct <code>LocalChain</code> from genesis <code>hash</code>.","Construct a checkpoint from the given <code>header</code> and block …","Construct a <code>LocalChain</code> from a given <code>checkpoint</code> tip.","Get the genesis hash.","Get checkpoint at <code>height</code>.","Get checkpoint at given <code>height</code> (if it exists).","","Get the block hash of the checkpoint.","Get the height of the checkpoint.","The checkpoint’s height.","Derives an initial <code>ChangeSet</code>, meaning that it can be …","Inserts <code>block_id</code> at its height within the chain.","Insert a <code>BlockId</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","","","","Iterate from this checkpoint in descending height.","Iterate over checkpoints in descending height order.","Construct a new base block at the front of a linked list.","","The original checkpoint’s block hash which cannot be …","Get the previous checkpoint in the chain","","","","","Puts another checkpoint onto the linked list representing …","Iterate checkpoints over a height range.","Iterate checkpoints over a height range.","Get the highest checkpoint.","","","","","","","","","","","","","","","","","","The suggested checkpoint to include to connect the two …","","","","","","","","","","","","","","","The attempted update to the <code>original_block</code> hash.","","","","","","","","Data required to perform a spk-based blockchain client …","Data returned from a spk-based blockchain client full scan.","Data required to perform a spk-based blockchain client …","Data returned from a spk-based blockchain client sync.","A cache of <code>Arc</code>-wrapped full transactions, identified by …","","","","","","","","","Add all transactions from <code>TxGraph</code> into the <code>TxCache</code>.","Add all transactions from <code>TxGraph</code> into the <code>TxCache</code>.","Add to the <code>TxCache</code> held by the request.","Add to the <code>TxCache</code> held by the request.","Chain on additional <code>OutPoint</code>s that will be synced against.","Chain on additional <code>Script</code>s that will be synced against.","Chain on additional <code>Script</code>s that will be synced against.","A checkpoint for the current chain <code>LocalChain::tip</code>. The …","A checkpoint for the current <code>LocalChain::tip</code>. The full …","Chain on additional <code>Txid</code>s that will be synced against.","The update to apply to the receiving <code>LocalChain</code>.","The update to apply to the receiving <code>TxGraph</code>.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Construct a new <code>SyncRequest</code> from a given <code>cp</code> tip.","Construct a new <code>FullScanRequest</code> from a given <code>chain_tip</code>.","Construct a new <code>FullScanRequest</code> from a given <code>chain_tip</code> and …","The update to apply to the receiving <code>TxGraph</code>.","The update to apply to the receiving <code>LocalChain</code>.","Add a closure that will be called for <code>OutPoint</code>s previously …","Add a closure that will be called for <code>Script</code>s previously …","Add a closure that will be called for every <code>Script</code> …","Add a closure that will be called for every <code>Script</code> …","Add a closure that will be called for <code>Txid</code>s previously …","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Last active indices for the corresponding keychains (<code>K</code>).","Transactions with these outpoints or spent from these …","Populate the request with revealed script pubkeys from …","Set the <code>OutPoint</code>s that will be synced against.","Set the <code>Script</code>s that will be synced against.","Set the <code>Script</code>s for a given <code>keychain</code>.","Set the <code>Txid</code>s that will be synced against.","Transactions that spend from or to these indexed script …","Iterators of script pubkeys indexed by the keychain index.","","","","","","","","","Cache of full transactions, so the chain-source can avoid …","Cache of full transactions, so the chain-source can avoid …","Transactions with these txids.","","","","","","","","","Errors returned by <code>TxGraph::calculate_fee</code>.","A transaction that is included in the chain, or is still …","The <code>ChangeSet</code> represents changes to a <code>TxGraph</code>.","Missing <code>TxOut</code> for one or more of the inputs of the tx","When the transaction is invalid according to the graph it …","An iterator that traverses ancestors of a given root …","An iterator that traverses transaction descendants.","A graph of transactions and spends.","A transaction node in the <code>TxGraph</code>.","Get all transaction anchors known by <code>TxGraph</code>.","Iterate over all tx outputs known by <code>TxGraph</code>.","Iterates over the heights of that the new transaction …","The blocks that the transaction is “anchored” in.","Added anchors.","","Applies <code>ChangeSet</code> to <code>TxGraph</code>.","Extends this graph with another so that <code>self</code> becomes the …","","Get the total balance of <code>outpoints</code> that are in <code>chain</code> of …","Batch insert unconfirmed transactions.","","","","","","","","","","","","","","","Calculates the fee of a given transaction. Returns 0 if <code>tx</code> …","How the transaction is observed as (confirmed or …","","","","","","","","","","","","","","","","","","","Given a transaction, return an iterator of txids that …","","","","","","Get a filtered list of outputs from the given <code>outpoints</code> …","Get a filtered list of unspent outputs (UTXOs) from the …","Iterate over floating txouts known by <code>TxGraph</code>.","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Iterate over all full transactions in the graph.","Get the position of the transaction in <code>chain</code> with tip …","Get the txid of the spending transaction and where the …","Get a transaction by txid. This only returns <code>Some</code> for full …","Get a transaction node by txid. This only returns <code>Some</code> for …","Obtains a single tx output (if any) at the specified …","Determines the <code>ChangeSet</code> between <code>self</code> and an empty <code>TxGraph</code>.","Inserts the given <code>anchor</code> into <code>TxGraph</code>.","Inserts the given <code>seen_at</code> for <code>txid</code> into <code>TxGraph</code>.","Inserts the given transaction into <code>TxGraph</code>.","Inserts the given <code>TxOut</code> at <code>OutPoint</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","","","Whether the graph has any transactions or outputs in it.","","Added last-seen unix timestamps of transactions.","The last-seen unix timestamp of the transaction as …","List graph transactions that are in <code>chain</code> with <code>chain_tip</code>.","Transform the <code>TxGraph</code> to have <code>Anchor</code>s of another type.","Transform the <code>ChangeSet</code> to have <code>Anchor</code>s of another type.","Construct a new <code>TxGraph</code> from a list of transactions.","","","The transactions spending from this output.","","","","","","","","","","Get the total balance of <code>outpoints</code> that are in <code>chain</code> of …","Get a filtered list of outputs from the given <code>outpoints</code> …","Get a filtered list of unspent outputs (UTXOs) from the …","","","","","","","","Get the position of the transaction in <code>chain</code> with tip …","Get the txid of the spending transaction and where the …","","","","","","","","List graph transactions that are in <code>chain</code> with <code>chain_tip</code>.","A partial or full representation of the transaction.","The transaction node (as part of the graph).","Returns known outputs of a given <code>txid</code>.","Iterates over the transactions spending from <code>txid</code>.","Txid of the transaction.","Iterates over all outpoints contained within <code>ChangeSet</code>.","Added txouts.","Added transactions.","","","","","","","","Update the last seen time for all unconfirmed transactions.","","","","","","","","Creates an iterator that filters and maps ancestor …","Creates an iterator that both filters and maps conflicting …","Creates an iterator that filters and maps descendants from …"],"i":[0,0,0,0,0,0,0,0,0,0,0,10,11,0,0,86,0,0,0,0,0,10,11,3,5,16,6,7,8,7,8,47,3,5,5,5,5,0,3,10,11,6,7,8,12,5,5,13,3,10,11,6,7,8,12,5,13,12,3,10,11,6,7,8,12,5,13,3,10,11,6,7,8,12,5,13,10,10,11,6,7,8,12,5,7,8,16,16,10,7,8,8,3,6,7,8,13,87,11,6,7,8,5,87,5,10,11,6,7,8,12,5,3,10,11,6,7,8,12,5,5,5,5,3,10,11,11,6,6,6,7,8,12,5,5,13,88,6,7,8,5,5,5,5,5,5,86,10,11,6,7,8,5,6,6,5,3,3,3,0,3,3,3,10,11,6,7,8,12,5,13,13,86,10,11,12,47,12,12,3,3,3,0,0,3,0,3,13,13,13,13,12,3,3,10,11,6,7,8,12,5,3,3,3,11,6,7,8,5,12,3,0,5,3,10,11,6,7,8,12,5,13,5,5,3,10,11,6,7,8,12,5,13,3,10,11,6,7,8,12,5,13,0,3,12,3,3,3,10,11,6,7,8,12,5,13,11,3,3,3,10,11,6,7,8,12,5,13,89,90,89,0,49,0,0,48,50,50,49,50,50,50,50,50,50,48,50,48,48,48,50,48,48,48,50,48,50,48,48,48,50,48,50,49,49,48,49,50,50,50,50,50,50,48,48,49,50,48,48,50,48,50,48,50,48,50,48,0,0,0,56,57,54,57,57,54,57,56,54,57,56,54,57,56,54,57,56,56,54,57,56,54,56,54,56,54,57,56,56,54,57,56,57,56,57,57,57,57,57,57,54,57,56,54,57,57,57,57,57,54,54,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,54,56,57,54,57,56,56,56,56,56,54,57,56,54,57,56,57,57,57,54,57,56,57,57,56,57,57,54,57,56,0,0,66,0,0,0,0,66,0,0,61,61,61,61,67,70,67,61,63,68,65,66,70,67,61,63,68,65,66,67,61,63,68,65,66,67,61,63,68,65,66,61,67,61,63,68,65,66,67,67,61,63,63,68,68,65,65,66,66,70,67,61,63,68,65,66,67,61,61,61,67,61,61,67,61,61,67,67,68,61,67,61,70,67,61,63,68,65,66,70,67,61,67,61,67,70,68,67,63,68,65,66,67,67,61,61,67,61,63,68,65,66,63,68,65,66,70,67,61,63,68,65,66,65,70,67,61,63,68,65,66,70,67,61,63,68,65,66,68,70,67,61,63,68,65,66,0,0,0,0,0,73,91,74,92,73,91,74,92,73,74,73,74,73,73,74,73,74,73,91,92,73,91,74,92,73,74,74,91,92,73,73,74,74,73,73,91,74,92,92,73,73,73,73,74,73,73,74,73,91,74,92,73,91,74,92,73,74,73,73,91,74,92,73,91,74,92,0,0,0,78,78,0,0,0,0,51,51,55,79,55,55,51,51,51,51,51,83,84,51,79,80,78,55,83,84,51,79,80,78,55,51,80,83,83,84,84,51,79,80,55,51,79,80,55,79,80,51,55,79,55,51,51,79,80,78,55,51,51,51,51,79,80,78,78,55,83,84,51,79,80,78,55,51,51,51,51,51,51,51,51,51,51,51,83,84,51,79,80,78,55,83,84,51,55,55,79,51,51,55,51,83,84,51,79,80,78,55,51,79,80,55,78,51,51,51,83,84,51,79,80,78,55,51,51,83,84,51,79,80,78,55,51,79,80,51,51,79,55,55,55,83,84,51,79,80,78,55,51,83,84,51,79,80,78,55,51,51,51],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[3,[[0,[1,2]]]]],4],[[],5],[[],6],[6,6],[7,6],[8,6],0,0,[[]],[[[3,[[0,[1,2]]]]]],[5],[5,9],[5],[5],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[5],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[[3,[1]]],[[3,[1]]]],[[[10,[1]]],[[10,[1]]]],[11,11],[6,6],[7,7],[8,8],[[[12,[1]]],[[12,[1]]]],[5,5],[[[13,[1]]],[[13,[1]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[10,[[10,[1]]]],[[[10,[2]],10],14],[[11,11],14],[[6,6],14],[[7,7],14],[[8,8],14],[[[12,[2]],12],14],[[5,5],14],0,0,[[],15],[[],15],[[[10,[16]]],[[17,[15]]]],[7,15],[8,15],0,[[],3],[[],6],[[],7],[[],8],[13],[[],5],[[],[[18,[11]]]],[[],[[18,[6]]]],[[],[[18,[7]]]],[[],[[18,[8]]]],[19,[[18,[5]]]],[[],20],[[]],[[[10,[21]],10],22],[[11,11],22],[[6,6],22],[[7,7],22],[[8,8],22],[[[12,[21]],12],22],[[5,5],22],[[[3,[23]],24],25],[[[10,[23]],24],25],[[11,24],25],[[6,24],25],[[7,24],25],[[8,24],25],[[[12,[23]],24],25],[[5,24],25],[[5,24],25],[[5,24],25],[[5,24],25],[[]],[[]],[[[10,[8]]],11],[[]],[[]],[[],6],[[],6],[[]],[[]],[[]],[9,5],[[]],[[]],[[26,6,27]],[[26,6,27],6],[[26,6,27],7],[[26,6,27],8],[[],5],[[],5],[9,5],[[],[[18,[5,28]]]],[[],[[18,[5,28]]]],[29,[[18,[5]]]],[[],[[18,[6]]]],[[[10,[30]]]],[11],[6],[7],[8],[5],0,0,[[5,31]],[[[3,[[0,[1,2]]]],32],17],[[[3,[[0,[1,2]]]],33]],[[[3,[[0,[1,2]]]],34,35]],0,[[[3,[[0,[1,2]]]]]],[[[3,[[0,[1,2]]]],[0,[1,2]],36],22],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[6,6],[[18,[[17,[22]]]]]],[10,22],[11,22],[[[12,[16]],15],22],[[],22],[[[12,[16]],15],22],0,[[[3,[[0,[1,2]]]],33],22],[[[3,[[0,[1,2]]]],33],22],[[[3,[[0,[1,2]]]]],22],0,0,[[[3,[[0,[1,2]]]]],22],0,[[[3,[[0,[1,2]]]],33,[37,[[0,[1,2]]]]],38],[[],13],[[],13],[13,17],[[13,27],17],0,[[[3,[[0,[1,2]]]]],39],[[[3,[[0,[1,2]]]],[37,[[0,[1,2]]]]],40],[[[10,[41]],10],[[17,[14]]]],[[11,11],[[17,[14]]]],[[6,6],[[17,[14]]]],[[7,7],[[17,[14]]]],[[8,8],[[17,[14]]]],[[[12,[41]],12],[[17,[14]]]],[[5,5],[[17,[14]]]],[[[3,[[0,[1,2]]]],33],[[39,[[0,[1,2]]]]]],[[[3,[[0,[1,2]]]],34,35],17],[[[3,[[0,[1,2]]]],33,[37,[[0,[1,2]]]]]],[11,18],[6,18],[7,18],[8,18],[[5,42],18],0,[[[3,[[0,[1,2]]]]],[[17,[32]]]],0,[5],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[5,9],[[],43],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],0,[[[3,[[0,[1,2]]]],34],17],0,[[[3,[[0,[1,2]]]]],[[0,[40,44]]]],[[[3,[[0,[1,2]]]],45],40],[[],46],[[],46],[[],46],[[],46],[[],46],[[],46],[[],46],[[],46],[[],46],[20,11],[[[3,[[0,[1,2]]]]],22],[[[3,[[0,[1,2]]]]],[[0,[40,1]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,[[[48,[16,47]],[48,[16,47]]]],[[[50,[49]],26,15],48],[[[50,[49]],26,15],48],[[]],[[[50,[16,49]],[48,[16]]]],[[[50,[16,49]],[51,[16]]],[[48,[16]]]],[[[50,[16,49]],52],[[48,[16]]]],[[[50,[16,49]],52],[[48,[16]]]],[[[50,[16,49]],52],[[48,[16]]]],[[]],[[]],[[]],[[]],[[[48,[1,1]]],[[48,[1,1]]]],[[]],[[],[[50,[53]]]],[[],[[48,[53]]]],[[],[[18,[48]]]],[[[48,[21,21]],48],22],[[[50,[23,23]],24],25],[[[48,[23,23]],24],25],[[]],[[]],[54,[[48,[54]]]],[55,[[48,[53]]]],[50,51],0,0,[33],[[34,35]],0,[[]],[[[50,[16,49]]],[[48,[16]]]],[[[50,[16,49]],45,16],[[48,[16]]]],[[[50,[16,49]],45,20],[[48,[16]]]],[[[50,[16,49]],33],[[48,[16]]]],[[[50,[16,49]],34,35],[[48,[16]]]],[[]],[[]],[[[48,[16,47]]],22],[33,22],[[],50],[48,18],[[]],[[],18],[[],18],[[],18],[[],18],[[],46],[[],46],[[]],[[]],0,0,0,[[56,56],56],[[[57,[[0,[1,2,23]]]]],[[4,[[0,[1,2,23]],[13,[[59,[58]]]]]]]],[[[54,[2]],[54,[2]]]],[[[57,[[0,[1,2,23]]]],[54,[[0,[1,2,23]]]]]],[[[57,[[0,[1,2,23]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[[54,[1]]],[[54,[1]]]],[[[57,[1]]],[[57,[1]]]],[56,56],[[]],[[]],[[]],0,[[],54],[[],57],[[],56],[[],[[18,[54]]]],[[],[[18,[56]]]],[[[54,[21]],54],22],[[56,56],22],[[[54,[23]],24],25],[[[57,[23]],24],25],[[56,24],25],[[56,24],25],[[]],[[]],[[]],[[[57,[[0,[1,2,23]]]]],[[17,[59]]]],0,[[[57,[[0,[1,2,23]]]],32],17],[[[57,[[0,[1,2,23]]]],33]],[[[57,[[0,[1,2,23]]]],34,35]],[[[57,[[0,[1,2,23]]]]]],[[[57,[[0,[1,2,23]]]]],3],[[[57,[[0,[1,2,23]]]],[0,[1,2,23]],[59,[58]]],[[54,[[0,[1,2,23]]]]]],[[]],[[]],[[]],[[[54,[2]]],22],[[[57,[[0,[1,2,23]]]],33],22],[[[57,[[0,[1,2,23]]]],[0,[1,2,23]],15],22],[[[57,[[0,[1,2,23]]]]],40],[[[57,[[0,[1,2,23]]]],[37,[[0,[1,2,23]]]]],40],[[[57,[[0,[1,2,23]]]]],[[0,[40,44]]]],0,0,[[[57,[[0,[1,2,23]]]]],[[17,[15]]]],[[[57,[[0,[1,2,23]]]]],[[4,[[0,[1,2,23]],15]]]],[[[57,[[0,[1,2,23]]]]],[[17,[15]]]],[[[57,[[0,[1,2,23]]]]],[[4,[[0,[1,2,23]],15]]]],[[[57,[[0,[1,2,23]]]]],15],[[[57,[[0,[1,2,23]]]],15]],[[[57,[[0,[1,2,23]]]],[0,[1,2,23]],15],22],[[[57,[[0,[1,2,23]]]],33,[37,[[0,[1,2,23]]]]],38],[15,57],[[[57,[[0,[1,2,23]]]]],17],[[[57,[[0,[1,2,23]]]]],17],[[[57,[[0,[1,2,23]]]]],40],[[[57,[[0,[1,2,23]]]]],17],[[[57,[[0,[1,2,23]]]],15],17],[[[57,[[0,[1,2,23]]]],4]],[[[57,[[0,[1,2,23]]]]],40],[[[57,[[0,[1,2,23]]]],[37,[[0,[1,2,23]]]]],[[0,[40,1]]]],[[[57,[[0,[1,2,23]]]],33,[37,[[0,[1,2,23]]]]]],[54,18],[56,18],[[[57,[[0,[1,2,23]]]],[0,[1,2,23]],15],[[17,[32]]]],[[]],[[]],[[]],[[],43],[56,60],0,[56,60],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[[57,[[0,[1,2,23]]]],34],17],[[[57,[[0,[1,2,23]]]]],40],[[[57,[[0,[1,2,23]]]],45],40],[[],46],[[],46],[[],46],[[[57,[[0,[1,2,23]]]]],[[17,[[13,[[59,[58]]]]]]]],[[[57,[[0,[1,2,23]]]],[0,[1,2,23]],15],22],0,[[[57,[[0,[1,2,23]]]]],[[0,[40,1]]]],[[[57,[[0,[1,2,23]]]]],[[0,[40,1]]]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,[[61,62],[[18,[63]]]],[[61,64,15],[[18,[62,65]]]],[[61,64,15,6],[[18,[62,66]]]],[[61,67],[[18,[62,65]]]],[67,6],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[67,67],[61,61],[63,63],[68,68],[65,65],[66,66],[[]],[[]],[[]],[[]],[[]],[[]],[[61,6],[[18,[62,63]]]],[[67,67],22],[[61,61],22],[[63,63],22],[[68,68],22],[[65,65],22],[[66,66],22],[[67,52],[[18,[67,67]]]],[[67,24],25],[[61,24],25],[[63,24],25],[[63,24],25],[[68,24],25],[[68,24],25],[[65,24],25],[[65,24],25],[[66,24],25],[[66,24],25],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[52,[[18,[67,[17,[67]]]]]],[[[4,[15,69]]],[[18,[61,63]]]],[62,[[18,[61,63]]]],[69],[[64,15],67],[67,[[18,[61,63]]]],[61,69],[[67,15],[[17,[67]]]],[[61,15],[[17,[67]]]],[61,[[18,[6]]]],[67,69],[67,15],0,[61,62],[[67,6],67],[[61,6],[[18,[62,68]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[67],[[61,6,6],[[18,[[17,[22]]]]]],[67,70],[61,70],[6,67],[70,17],0,[67,[[17,[67]]]],[71],[71],[71],[71],[[67,6],[[18,[67,67]]]],[67,72],[61,72],[61,67],[[]],[[]],[[]],[[]],[[]],[[]],[[],43],[[],43],[[],43],[[],43],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],0,[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],46],[[],46],[[],46],[[],46],[[],46],[[],46],[[],46],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[73,51],73],[[[74,[[0,[2,1]]]],51],[[74,[[0,[2,1]]]]]],[[73,52],73],[[[74,[[0,[2,1]]]],52],[[74,[[0,[2,1]]]]]],[[73,52],73],[[73,52],73],[[[74,[[0,[2,1]]]],[0,[2,1]],52],[[74,[[0,[2,1]]]]]],0,0,[[73,52],73],0,0,[[]],[[]],[[]],[[]],[67,73],[67,[[74,[[0,[2,1]]]]]],[[67,57],[[74,[[0,[2,1]]]]]],0,0,[[73,[0,[75,76,77]]],73],[[73,[0,[75,76,77]]],73],[[[74,[[0,[2,1]]]],[0,[75,76,77,1]]],[[74,[[0,[2,1]]]]]],[[[74,[[0,[2,1]]]],[0,[2,1]],[0,[75,76,77]]],[[74,[[0,[2,1]]]]]],[[73,[0,[75,76,77]]],73],[[]],[[]],[[]],[[]],0,0,[[73,57,[37,[[0,[1,2,23,76,77]]]]],73],[[73,52],73],[[73,52],73],[[[74,[[0,[2,1]]]],[0,[2,1]],52],[[74,[[0,[2,1]]]]]],[[73,52],73],0,0,[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],0,0,0,[[],46],[[],46],[[],46],[[],46],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,[51,39],[51,72],[55,72],0,0,[[[55,[2]],[55,[2]]]],[[[51,[[0,[1,2]]]],[55,[[0,[1,2]]]]]],[[[51,[[0,[1,2]]]],[51,[[0,[1,2]]]]],[[55,[[0,[1,2]]]]]],[51,51],[[[51,[16]],6,52,75],56],[[[51,[[0,[1,2]]]],52],[[55,[[0,[1,2]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[51,33],[[18,[20,78]]]],0,[[],[[17,[38]]]],[[],[[17,[60]]]],[[],[[17,[60]]]],[[],[[17,[38]]]],[[[51,[1]]],[[51,[1]]]],[[[79,[1,1]]],[[79,[1,1]]]],[[[80,[1,1]]],[[80,[1,1]]]],[[[55,[1]]],[[55,[1]]]],[[]],[[]],[[]],[[]],[[[79,[2,2]],79],14],[[[80,[2,2]],80],14],[[],51],[[],55],[79],[[],[[18,[55]]]],[[51,33],72],[[[51,[21]],51],22],[[[79,[21,21]],79],22],[[[80,[21,21]],80],22],[[78,78],22],[[[55,[21]],55],22],[[[51,[16]],6,52],72],[[[51,[16]],6,52],72],[51,72],[[[51,[23]],24],25],[[[79,[23,23]],24],25],[[[80,[23,23]],24],25],[[78,24],25],[[78,24],25],[[[55,[23]],24],25],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[51,72],[[[51,[16]],6,45],[[17,[10]]]],[[[51,[16]],6,34],17],[[51,45],[[17,[[81,[33]]]]]],[[51,45],[[17,[[79,[[81,[33]]]]]]]],[[51,34],[[17,[35]]]],[[[51,[[0,[1,2]]]]],[[55,[[0,[1,2]]]]]],[[[51,[[0,[1,2]]]],45,[0,[1,2]]],[[55,[[0,[1,2]]]]]],[[[51,[[0,[1,2]]]],45,20],[[55,[[0,[1,2]]]]]],[[[51,[[0,[1,2]]]],[82,[[81,[33]]]]],[[55,[[0,[1,2]]]]]],[[[51,[[0,[1,2]]]],34,35],[[55,[[0,[1,2]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[51,22],[[[55,[2]]],22],0,0,[[[51,[16]],6],72],[[[51,[[0,[1,2]]]]],[[51,[[0,[1,2]]]]]],[[[55,[2]]],[[55,[2]]]],[52,[[51,[[0,[1,2]]]]]],[83,17],[84,17],[[51,34],85],[[[79,[41,41]],79],[[17,[14]]]],[[[80,[41,41]],80],[[17,[14]]]],[71],[55,18],[[]],[[]],[[]],[[]],[[],43],[[[51,[16]],6,52,75],[[18,[56]]]],[[[51,[16]],6,52],72],[[[51,[16]],6,52],72],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[[51,[16]],6,45],[[18,[[17,[10]]]]]],[[[51,[16]],6,34],[[18,[17]]]],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[[51,[16]],6],72],0,0,[[51,45],[[17,[[4,[15,35]]]]]],[[51,45],40],0,[55,72],0,0,[[],46],[[],46],[[],46],[[],46],[[],46],[[],46],[[],46],[[[51,[[0,[1,2]]]],20],[[55,[[0,[1,2]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[51,[[0,[1,2]]]]],[[83,[[0,[1,2]]]]]],[[51,33],84],[[[51,[[0,[1,2]]]],45],[[84,[[0,[1,2]]]]]]],"p":[[8,"Clone"],[8,"Ord"],[3,"SpkTxOutIndex"],[3,"BTreeMap"],[3,"DescriptorId"],[3,"BlockId"],[3,"ConfirmationHeightAnchor"],[3,"ConfirmationTimeHeightAnchor"],[3,"Hash"],[4,"ChainPosition"],[4,"ConfirmationTime"],[3,"FullTxOut"],[3,"SpkIterator"],[4,"Ordering"],[15,"u32"],[8,"Anchor"],[4,"Option"],[4,"Result"],[8,"Deserializer"],[15,"u64"],[8,"PartialEq"],[15,"bool"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[3,"Block"],[15,"usize"],[3,"FromSliceError"],[15,"str"],[8,"Hash"],[8,"SliceIndex"],[3,"Script"],[3,"Transaction"],[3,"OutPoint"],[3,"TxOut"],[3,"ScriptBuf"],[8,"RangeBounds"],[3,"SignedAmount"],[3,"BTreeSet"],[8,"DoubleEndedIterator"],[8,"PartialOrd"],[8,"Serializer"],[3,"String"],[8,"ExactSizeIterator"],[3,"Txid"],[3,"TypeId"],[8,"Append"],[3,"ChangeSet"],[8,"Indexer"],[3,"IndexedTxGraph"],[3,"TxGraph"],[8,"IntoIterator"],[8,"Default"],[3,"ChangeSet"],[3,"ChangeSet"],[3,"Balance"],[3,"KeychainTxOutIndex"],[4,"DescriptorPublicKey"],[4,"Descriptor"],[3,"Amount"],[3,"LocalChain"],[6,"ChangeSet"],[3,"MissingGenesisError"],[3,"Header"],[3,"CannotConnectError"],[4,"ApplyHeaderError"],[3,"CheckPoint"],[3,"AlterCheckPointError"],[3,"BlockHash"],[3,"CheckPointIter"],[3,"Demand"],[8,"Iterator"],[3,"SyncRequest"],[3,"FullScanRequest"],[8,"FnMut"],[8,"Send"],[8,"Sync"],[4,"CalculateFeeError"],[3,"TxNode"],[3,"CanonicalTx"],[3,"Arc"],[8,"Into"],[3,"TxAncestors"],[3,"TxDescendants"],[3,"HashSet"],[8,"ChainOracle"],[8,"DescriptorExt"],[8,"AnchorFromBlockPosition"],[13,"Confirmed"],[13,"Unconfirmed"],[3,"SyncResult"],[3,"FullScanResult"]]},\
"bdk_coin_select":{"doc":"","t":[3,3,4,4,3,3,13,6,13,3,4,13,13,13,3,4,3,13,13,17,13,13,13,13,13,3,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,12,11,12,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,12,12,12,11,11,11,11,12,11,12,12,11,12,12,12,11,11,11,11,12,11,11,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11],"n":["Bnb","BnbIter","BnbLimit","BranchStrategy","CoinSelector","CoinSelectorOpt","Continue","DecideStrategy","Duration","ExcessStrategy","ExcessStrategyKind","MinAbsoluteFee","MinDrainValue","Rounds","Selection","SelectionConstraint","SelectionError","SkipBoth","SkipInclusion","TXIN_BASE_WEIGHT","TargetFee","TargetValue","ToDrain","ToFee","ToRecipient","WeightedValue","advertise_new_score","all_selected","apply_selection","backtrack","base_weight","best_score","best_strategy","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","candidate","candidates","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","coin_select_bnb","current_excess","current_weight","deselect","drain_value","drain_waste","drain_weight","effective_target","effective_value","eq","eq","excess","excess_strategies","fee","feerate","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","forward","from","from","from","from","from","from","from","from","from","from","from","from","from","from","fund_outputs","hash","input_count","into","into","into","into","into","into","into","into","into","into","into","into","into_iter","into_iter","is_empty","is_segwit","is_selected","long_term_feerate","long_term_feerate","max_extra_target","min_absolute_fee","min_drain_value","new","new","new","next","opts","partial_cmp","pool","pool_pos","provide","recipient_value","rem_abs","rem_eff","select","select_all","select_until_finished","selected","selected","selected_absolute_value","selected_count","selected_effective_value","selected_indexes","selected_waste","selected_weight","selection","spend_drain_weight","target_feerate","target_value","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unselected","unselected_indexes","value","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","waste","weight","weight","will_continue"],"q":["bdk_coin_select","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["<code>Bnb</code> represents the current state of the BnB algorithm.","","Determines how we should limit rounds of branch and bound.","Strategy in which we should branch.","<code>CoinSelector</code> selects and deselects from a set of …","","We continue exploring subtrees of this node, starting with …","Closure to decide the branching strategy, alongside a …","","","","Min absolute fee is not met","Min drain value is not met","","","","","We skip both the inclusion and omission branches of this …","We continue exploring ONLY the omission branch of this …","Txin “base” fields include <code>outpoint</code> (32+4) and …","The target fee (given the feerate) is not met","The target is not met","","","","A <code>WeightedValue</code> represents an input candidate for …","Compare the advertised score with the current best. The …","","","Attempt to backtrack to the previously selected node’s …","The weight of the template transaction, including fixed …","","Returns the <code>ExcessStrategy</code> that results in the least waste.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","This is a variation of the Branch and Bound Coin Selection …","Current excess.","Current weight of template tx + selected inputs.","","","","Additional weight if we include the drain (change) output.","This is the effective target value.","Effective value of this input candidate: …","","","","","","Returns feerate in sats/wu.","","","","","","","","","","","","","Continue down this branch and skip the inclusion branch if …","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","The total number of inputs; so we can calculate extra …","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Turns our <code>Bnb</code> state into an iterator.","","","Whether this <code>WeightedValue</code> contains at least one segwit …","","","The feerate","Additional leeway for the target value.","The minimum absolute fee. I.e., needed for RBF.","Minimum value allowed for a drain (change) output.","Creates a new <code>Bnb</code>.","Create a new <code>WeightedValue</code> that represents a single input.","","","","","","","","","","","","","","","","Absolute value sum of all selected inputs.","","Effective value sum of all selected inputs.","","Waste sum of all selected inputs.","Weight sum of all selected inputs.","","Weight of spending the drain (change) output in the future.","The feerate we should try and achieve in sats per weight …","The value we need to select. If the value is <code>None</code>, then …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Total value of the UTXO(s) that this <code>WeightedValue</code> …","","","","","","","","","","","","","","Total weight of including this/these UTXO(s). <code>txin</code> fields: …","",""],"i":[0,0,0,0,0,0,34,0,22,0,0,11,11,22,0,0,0,34,34,0,11,11,12,12,12,0,2,4,5,2,9,2,5,34,2,26,22,8,9,4,10,11,5,12,13,34,2,26,22,8,9,4,10,11,5,12,13,4,4,8,9,4,10,11,5,12,13,8,9,4,10,11,5,12,13,12,0,4,4,4,13,9,9,4,8,11,12,5,5,13,13,4,8,9,4,10,10,11,11,5,12,12,13,2,34,2,26,22,22,22,8,9,4,10,11,5,12,13,9,12,8,34,2,26,22,8,9,4,10,11,5,12,13,2,26,4,8,4,9,9,9,9,9,2,8,4,26,4,12,2,2,10,13,2,2,4,4,4,4,5,4,4,4,4,4,4,2,9,9,9,8,9,4,10,11,5,12,13,10,11,12,34,2,26,22,8,9,4,10,11,5,12,13,34,2,26,22,8,9,4,10,11,5,12,13,34,2,26,22,8,9,4,10,11,5,12,13,4,4,8,34,2,26,22,8,9,4,10,11,5,12,13,13,8,13,34],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[2,[1]],1],3],[4,3],[5,6],[[[2,[1]]],3],0,0,[5],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[4,7],8],0,[8,8],[9,9],[4,4],[10,10],[11,11],[5,5],[12,12],[13,13],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[12,12],14],[4,[[15,[4]]]],[4,16],[4,17],[[4,7],3],0,[9,16],0,[4,16],[[8,18],16],[[11,11],3],[[12,12],3],0,0,0,[13,18],[4,[[19,[5,10]]]],[[8,20],21],[[9,20],21],[[4,20],21],[[10,20],21],[[10,20],21],[[11,20],21],[[11,20],21],[[5,20],21],[[12,20],21],[[12,20],21],[[13,20],21],[[[2,[1]],3]],[[]],[[]],[[]],[[]],[7,22],[23,22],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[24,17],9],[12],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[2,[1]],25],[[26,[1]]]],[[]],[4,3],0,[[4,7],3],[9,18],0,0,0,0,[[4,27,1],[[2,[1]]]],[[28,17,3],8],[[27,9],4],[[[26,[[0,[1,29,30]]]]],15],0,[[12,12],[[15,[14]]]],0,0,[31],0,0,0,[[4,7],3],[4],[4,[[19,[5,10]]]],[4,6],0,[4,28],[4,7],[4,16],[4,6],[4,16],[4,17],0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],32],[[],32],[[],32],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[[],33],[4,6],[4,6],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,[34,3]],"p":[[8,"Ord"],[3,"Bnb"],[15,"bool"],[3,"CoinSelector"],[3,"Selection"],[8,"Iterator"],[15,"usize"],[3,"WeightedValue"],[3,"CoinSelectorOpt"],[3,"SelectionError"],[4,"SelectionConstraint"],[4,"ExcessStrategyKind"],[3,"ExcessStrategy"],[4,"Ordering"],[4,"Option"],[15,"i64"],[15,"u32"],[15,"f32"],[4,"Result"],[3,"Formatter"],[6,"Result"],[4,"BnbLimit"],[3,"Duration"],[3,"TxOut"],[6,"DecideStrategy"],[3,"BnbIter"],[3,"Vec"],[15,"u64"],[8,"Copy"],[8,"Display"],[3,"Demand"],[3,"String"],[3,"TypeId"],[4,"BranchStrategy"]]},\
"bdk_persist":{"doc":"BDK Persist","t":[3,8,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,10],"n":["Persist","PersistBackend","borrow","borrow_mut","commit","fmt","from","into","load_from_persistence","new","stage","stage_and_commit","staged","try_from","try_into","type_id","vzip","write_changes"],"q":["bdk_persist","","","","","","","","","","","","","","","","",""],"d":["<code>Persist</code> wraps a <code>PersistBackend</code> to create a convenient …","A persistence backend for <code>Persist</code>.","","","Commit the staged changes to the underlying persistence …","","Returns the argument unchanged.","Calls <code>U::from(self)</code>.","Return the aggregate changeset <code>C</code> from persistence.","Create a new <code>Persist</code> from <code>PersistBackend</code>.","Stage a <code>changeset</code> to be committed later with <code>commit</code>.","Stages a new changeset and commits it (along with any …","Get the changes that have not been committed yet.","","","","","Writes a changeset to the persistence backend."],"i":[0,0,1,1,1,1,1,1,8,1,1,1,1,1,1,1,1,8],"f":[0,0,[[]],[[]],[1,[[3,[2]]]],[[[1,[4]],5],[[7,[6]]]],[[]],[[]],[[],[[3,[2]]]],[[[0,[8,9,10]]],1],[1],[1,[[3,[2]]]],[1],[[],7],[[],7],[[],11],[[]],[[],3]],"p":[[3,"Persist"],[4,"Option"],[6,"Result"],[8,"Debug"],[3,"Formatter"],[3,"Error"],[4,"Result"],[8,"PersistBackend"],[8,"Send"],[8,"Sync"],[3,"TypeId"]]},\
"bdk_testenv":{"doc":"","t":[3,2,2,2,12,11,11,2,12,2,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["TestEnv","anyhow","bitcoincore_rpc","bitcoind","bitcoind","borrow","borrow_mut","electrsd","electrsd","electrum_client","electrum_client","from","genesis_hash","into","invalidate_blocks","make_checkpoint_tip","mine_blocks","mine_empty_block","new","reorg","reorg_empty_blocks","reset_electrsd","rpc_client","send","try_from","try_into","type_id","vzip","wait_until_electrum_sees_block"],"q":["bdk_testenv","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Struct for running a regtest environment with a single …","","","","","","","","","","Exposes the <code>ElectrumApi</code> calls from the Electrum client.","Returns the argument unchanged.","Get the genesis hash of the blockchain.","Calls <code>U::from(self)</code>.","Invalidate a number of blocks of a given size <code>count</code>.","Create a checkpoint linked list of all the blocks in the …","Mine a number of blocks of a given size <code>count</code>, which may …","Mine a block that is guaranteed to be empty even with …","Construct a new <code>TestEnv</code> instance with default …","Reorg a number of blocks of a given size <code>count</code>. Refer to …","Reorg with a number of empty blocks of a given size <code>count</code>.","","Exposes the <code>RpcApi</code> calls from <code>bitcoincore_rpc</code>.","Send a tx of a given <code>amount</code> to a given <code>address</code>.","","","","","This method waits for the Electrum notification indicating …"],"i":[0,0,0,0,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],"f":[0,0,0,0,0,[[]],[[]],0,0,0,[1],[[]],[1,[[3,[2]]]],[[]],[[1,4],3],[1,5],[[1,4,[7,[6]]],[[3,[[8,[2]]]]]],[1,3],[[],[[3,[1]]]],[[1,4],[[3,[[8,[2]]]]]],[[1,4],[[3,[8]]]],[1,[[3,[1]]]],[1],[[1,6,9],[[3,[10]]]],[[],11],[[],11],[[],12],[[]],[1,3]],"p":[[3,"TestEnv"],[3,"BlockHash"],[6,"Result"],[15,"usize"],[3,"CheckPoint"],[3,"Address"],[4,"Option"],[3,"Vec"],[3,"Amount"],[3,"Txid"],[4,"Result"],[3,"TypeId"]]},\
"bdk_tmp_plan":{"doc":"A spending plan or <em>plan</em> for short is a representation of a …","t":[3,8,13,13,13,13,3,3,4,4,3,3,13,13,4,13,13,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,11,11,11,11,11,11,11,11,12,12,11,5,11,11,11,11,11,12,12,12,12,12,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12],"n":["Assets","CanDerive","Complete","DerivationError","Incomplete","Legacy","Plan","PlanKey","PlanState","RequiredSignatures","Requirements","SatisfactionMaterial","Segwitv0","SigHashError","SigningError","TapKey","TapScript","asset_key","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","can_derive","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","default","default","default","default","derivation_hint","descriptor_key","ecdsa_sigs","expected_weight","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","hash160","hash160_images","hash160_preimages","hash256","hash256_images","hash256_preimages","into","into","into","into","into","into","into","into","keys","max_locktime","min_version","plan_satisfaction","provide","required_locktime","required_sequence","requirements","requires_hash_preimages","ripemd160","ripemd160_images","ripemd160_preimages","schnorr_sigs","sha256","sha256_images","sha256_preimages","sign_with_keymap","signatures","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_complete","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","txo_age","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","witness_version","final_script_sig","final_script_witness","keys","keys","leaf_hash","merkle_root","plan_key","plan_keys"],"q":["bdk_tmp_plan","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_tmp_plan::PlanState","","bdk_tmp_plan::RequiredSignatures","","","","",""],"d":["","","The plan is complete","","","Legacy ECDSA signatures are required","A plan represents a particular spending path for a …","A plan key contains the asset key originally provided …","The returned value from <code>Plan::try_complete</code>.","The signatures required to complete the plan","Signatures and hash pre-images that must be provided to …","Signatures and hash pre-images that can be used to …","Segwitv0 ECDSA signatures are required","","","A Taproot key spend signature is required","Taproot script path signatures are required","The key the planner will sign with","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A hint from how to get from the asset key to the concrete …","The key that was in the descriptor that we are satisfying …","ECDSA signatures under their keys","The expected satisfaction weight for the plan if it is …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","required hash160 pre-images","hash160 pre-images under their images","","required hash256 pre-images","hash256 pre-images under their images","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","","","The minimum required transaction version required on the …","","","The minimum required locktime height or time on the …","The minimum required sequence (height or time) on the …","","Whether any hash pre-images are required in the plan","","required ripemd160 pre-images","ripemd160 pre-images under their images","Schnorr signautres under their keys","","required sha256 pre-images","SHA256 pre-images under their images","","required signatures","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Witness version for the plan","The script sig that should be set on the input","The witness that should be set on the input","","","The leaf hash of the script being used","The merkle root of the taproot output","the internal key","The keys in the script that require signatures"],"i":[0,0,33,7,33,6,0,0,0,0,0,0,6,7,0,6,6,8,33,5,6,7,8,9,10,11,33,5,6,7,8,9,10,11,36,5,6,7,8,9,10,11,5,6,7,8,9,10,11,5,6,10,11,8,8,10,9,5,6,7,7,8,9,10,11,33,5,6,7,7,7,8,9,10,11,11,5,10,11,5,10,33,5,6,7,8,9,10,11,11,11,9,0,7,9,9,9,5,11,5,10,10,11,5,10,6,5,5,6,7,8,9,10,11,7,9,33,5,6,7,8,9,10,11,33,5,6,7,8,9,10,11,11,33,5,6,7,8,9,10,11,33,5,6,7,8,9,10,11,9,37,37,38,39,40,41,41,40],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[1,[[3,[2]]]],[[[5,[4]]],[[5,[4]]]],[[[6,[4]]],[[6,[4]]]],[7,7],[[[8,[4]]],[[8,[4]]]],[[[9,[4]]],[[9,[4]]]],[10,10],[[[11,[4]]],[[11,[4]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],5],[[],6],[[],10],[[],11],0,0,0,[9,12],[[[5,[13]],14],15],[[[6,[13]],14],15],[[7,14],15],[[7,14],15],[[[8,[13]],14],15],[[[9,[13]],14],15],[[10,14],15],[[[11,[13]],14],15],[[]],[[]],[[]],[16,7],[[]],[17,7],[[]],[[]],[[]],[[]],0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[9,[[3,[18]]]],[[19,11],[[3,[9]]]],[20],[9,[[3,[21]]]],[9,[[3,[22]]]],[9,5],[5,23],0,0,0,0,0,0,0,[[[6,[24]],12,25,26,[3,[27]],[3,[28]],29,10,30],[[31,[23,7]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],32],[[9,10],33],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],0,[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[9,[[3,[35]]]],0,0,0,0,0,0,0,0],"p":[[3,"DefiniteDescriptorKey"],[3,"DerivationPath"],[4,"Option"],[8,"Clone"],[3,"Requirements"],[4,"RequiredSignatures"],[4,"SigningError"],[3,"PlanKey"],[3,"Plan"],[3,"SatisfactionMaterial"],[3,"Assets"],[15,"usize"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[4,"Error"],[4,"Error"],[15,"u32"],[4,"Descriptor"],[3,"Demand"],[4,"LockTime"],[3,"Sequence"],[15,"bool"],[4,"DescriptorPublicKey"],[6,"KeyMap"],[4,"Prevouts"],[4,"TapSighashType"],[4,"EcdsaSighashType"],[3,"SighashCache"],[3,"Secp256k1"],[4,"Result"],[3,"String"],[4,"PlanState"],[3,"TypeId"],[4,"WitnessVersion"],[8,"CanDerive"],[13,"Complete"],[13,"Legacy"],[13,"Segwitv0"],[13,"TapScript"],[13,"TapKey"]]},\
+"bdk_wallet":{"doc":"BDK Wallet","t":[13,13,2,13,4,13,3,2,2,4,2,3,11,11,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,12,12,0,14,11,11,11,11,11,11,11,11,11,11,14,11,11,11,11,11,11,11,11,11,11,12,12,0,11,12,11,0,12,11,11,11,2,2,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,12,5,11,11,11,11,0,12,12,12,13,6,4,2,4,6,8,6,8,16,4,3,13,13,2,8,4,13,13,6,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,10,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,12,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,10,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,5,5,13,13,4,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,13,13,4,13,3,6,13,13,6,13,13,13,13,13,13,13,13,13,13,13,4,3,4,13,13,13,13,13,4,4,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,3,3,3,3,3,3,3,3,8,6,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,8,4,4,4,16,16,8,4,13,8,8,3,8,13,13,13,16,4,6,13,13,13,13,13,16,13,3,13,8,4,13,13,13,3,3,4,3,13,6,13,13,13,5,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,5,11,10,11,11,5,10,11,11,12,12,11,11,11,11,11,11,10,12,11,11,11,11,11,10,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,10,10,10,3,4,3,13,3,13,13,13,13,4,8,4,13,13,13,13,13,13,4,4,13,13,13,13,13,13,13,3,3,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,0,11,12,11,11,11,11,11,11,11,11,11,11,11,11,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,12,11,12,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,5,12,12,12,12,12,12,12,12,12,12,13,13,3,13,8,3,6,4,4,13,3,13,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,5,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,4,13,13,13,4,13,13,13,13,13,13,13,13,4,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,3,6,12,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,13,13,13,13,13,13,13,8,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,3,8,4,4,4,3,3,3,13,4,8,13,11,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,10,11,11,11,10,11,12,11,12,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,4,4,4,13,3,13,13,4,3,13,13,13,13,13,13,3,8,4,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12],"n":["External","Foreign","HdKeyPaths","Internal","KeychainKind","Local","LocalOutput","SignOptions","TxBuilder","Utxo","Wallet","WeightedUtxo","as_byte","as_ref","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","confirmation_time","derivation_index","descriptor","descriptor","deserialize","deserialize","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fragment","from","from","from","from","hash","hash","into","into","into","into","is_spent","keychain","keys","outpoint","outpoint","partial_cmp","psbt","satisfaction_weight","sequence","serialize","serialize","signer","template","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","txout","txout","type_id","type_id","type_id","type_id","utxo","version","vzip","vzip","vzip","vzip","wallet","outpoint","psbt_input","sequence","Bare","DerivedDescriptor","Descriptor","DescriptorError","DescriptorPublicKey","ExtendedDescriptor","ExtractPolicy","HdKeyPaths","IntoWalletDescriptor","Key","Legacy","Miniscript","MultiXPub","Pkh","Policy","ScriptContext","Segwitv0","Sh","Single","TapKeyOrigins","Tr","Wpkh","Wsh","XPub","address","as_enum","as_enum","as_inner","as_node","at_derivation_index","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","branches","build_template","build_template_mall","calc_checksum","check_global_consensus_validity","check_global_consensus_validity","check_global_consensus_validity","check_global_policy_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_consensus_validity","check_local_policy_validity","check_local_policy_validity","check_local_policy_validity","check_local_validity","check_pk","check_pk","check_pk","check_terminal_non_malleable","check_terminal_non_malleable","check_terminal_non_malleable","check_witness","check_witness","check_witness","checksum","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","contains_raw_pkh","derive","derived_descriptor","derived_descriptor","desc_type","descriptor_id","deserialize","deserialize","dust_value","encode","eq","eq","eq","eq","error","explicit_script","ext","ext_check","extract_policy","extract_policy","extract_policy","find_derivation_index_for_spk","fmt","fmt","fmt","fmt","fmt","fmt","for_each_key","for_each_key","from","from","from","from","from","from","from","from","from","from","from_ast","from_components_unchecked","from_str","from_str","from_str_ext","from_str_insane","from_tree","from_tree","get_nth_child","get_nth_pk","get_satisfaction","get_satisfaction_mall","has_mixed_timelocks","has_repeated_keys","has_wildcard","hash","hash","hash","hash","into","into","into","into","into_inner","into_single_descriptors","into_wallet_descriptor","into_wallet_descriptor","is_deriveable","is_multipath","is_non_malleable","iter","iter_pk","lift","lift","lift_check","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_size","max_satisfaction_weight","max_satisfaction_witness_elements","max_weight_to_satisfy","name_str","name_str","name_str","new_bare","new_pk","new_pkh","new_sh","new_sh_sortedmulti","new_sh_with_wpkh","new_sh_with_wsh","new_sh_wpkh","new_sh_wsh","new_sh_wsh_sortedmulti","new_tr","new_wpkh","new_wsh","new_wsh_sortedmulti","node","other_top_level_checks","parse","parse_descriptor","parse_insane","parse_with_ext","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pk_len","pk_len","plan","plan_mall","policy","requires_sig","sanity_check","sanity_check","satisfy","satisfy","satisfy_malleable","script_code","script_pubkey","script_size","serialize","serialize","sig_type","sig_type","sig_type","substitute_raw_pkh","template","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string_with_secret","top_level_checks","top_level_type_check","translate_pk","translate_pk","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","ty","type_id","type_id","type_id","type_id","unsigned_script_sig","vzip","vzip","vzip","vzip","within_resource_limits","calc_checksum","calc_checksum_bytes","Base58","Bip32","Error","HardenedDerivationXpub","Hex","InvalidDescriptorCharacter","InvalidDescriptorChecksum","InvalidHdKeyPath","Key","Miniscript","MultiPath","Pk","Policy","borrow","borrow_mut","fmt","fmt","from","from","from","from","from","from","from","from","into","provide","to_string","try_from","try_into","type_id","vzip","AbsoluteTimelock","AddOnLeaf","AddOnPartialComplete","BuildSatisfaction","Complete","Condition","ConditionMap","EcdsaSignature","Fingerprint","FoldedConditionMap","Hash160Preimage","Hash256Preimage","IncompatibleConditions","IndexOutOfRange","MixedTimelockUnits","Multisig","None","None","NotEnoughItemsSelected","Partial","PartialComplete","PkOrF","Policy","PolicyError","Psbt","PsbtTimelocks","Pubkey","RelativeTimelock","Ripemd160Preimage","Satisfaction","SatisfiableItem","SchnorrSignature","Sha256Preimage","Thresh","XOnlyPubkey","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","contribution","csv","default","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","get_condition","hash","hash","id","id","into","into","into","into","into","into","into","is_leaf","is_leaf","is_null","item","partial_cmp","provide","requires_path","satisfaction","serialize","serialize","serialize","serialize","serialize","timelock","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","current_height","input_max_height","psbt","condition","conditions","conditions","items","items","m","m","n","n","sorted","sorted","hash","hash","hash","hash","items","keys","threshold","threshold","value","value","Bip44","Bip44Public","Bip49","Bip49Public","Bip84","Bip84Public","Bip86","Bip86Public","DescriptorTemplate","DescriptorTemplateOut","P2Pkh","P2TR","P2Wpkh","P2Wpkh_P2Sh","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","build","build","build","build","build","build","build","build","build","build","build","from","from","from","from","from","from","from","from","from","from","from","from","into","into","into","into","into","into","into","into","into","into","into","into","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","into_wallet_descriptor","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Bip32","DerivableKey","DescriptorKey","DescriptorPublicKey","DescriptorSecretKey","Entropy","Error","ExtScriptContext","ExtendedKey","FullKey","GeneratableDefaultOptions","GeneratableKey","GeneratedKey","IntoDescriptorKey","InvalidChecksum","InvalidNetwork","InvalidScriptContext","Key","KeyError","KeyMap","Legacy","Message","Miniscript","MultiXPrv","MultiXPub","Options","Private","PrivateKeyGenerateOptions","Public","ScriptContext","ScriptContextEnum","Segwitv0","Single","Single","SinglePriv","SinglePub","SinglePubKey","SortedMultiVec","Tap","ValidNetworks","XOnly","XPrv","XPub","any_network","as_enum","at_derivation_index","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_template","check_global_consensus_validity","check_global_policy_validity","check_global_validity","check_local_consensus_validity","check_local_policy_validity","check_local_validity","check_pk","check_terminal_non_malleable","check_witness","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","compressed","default","deref","derive","deserialize","encode","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","for_each_key","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_public","from_secret","from_str","from_str","from_tree","full_derivation_path","full_derivation_paths","generate","generate_default","generate_with_entropy","generate_with_entropy_default","has_secret","has_wildcard","hash","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into","into_assets","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_descriptor_key","into_extended_key","into_extended_key","into_extended_key","into_key","into_single_keys","into_single_keys","into_xprv","into_xpub","is_deriveable","is_legacy","is_legacy","is_multipath","is_multipath","is_segwit_v0","is_segwit_v0","is_taproot","is_taproot","is_uncompressed","is_x_only_key","k","key","key","lift","mainnet_network","master_fingerprint","max_satisfaction_size","max_satisfaction_size","max_satisfaction_witness_elements","merge_networks","name_str","new","num_der_paths","origin","origin","other_top_level_checks","override_valid_networks","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pk_len","pks","provide","sanity_check","satisfy","script_size","serialize","sig_type","sorted_node","test_networks","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_public","to_string","to_string","to_string","to_string","top_level_checks","top_level_type_check","translate_pk","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","PsbtUtils","fee_amount","fee_rate","get_utxo_for","AddressInfo","ApplyBlockError","Balance","CannotConnect","ChangeSet","ConfirmationHeightCannotBeGreaterThanTip","Descriptor","Descriptor","Descriptor","InsertTxError","IsDust","LoadError","LoadedDescriptorDoesNotMatch","LoadedGenesisDoesNotMatch","LoadedNetworkDoesNotMatch","MissingDescriptor","MissingGenesis","MissingNetwork","NewError","NewOrLoadError","NonEmptyDatabase","NotInitialized","NotInitialized","Persist","Persist","Persist","UnexpectedConnectedToHash","Update","Wallet","add","add_signer","address","all_unbounded_spk_iters","append","apply_block","apply_block_connected_to","apply_unconfirmed_txs","apply_update","as_ref","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_fee_bump","build_tx","calculate_fee","calculate_fee_rate","cancel_tx","chain","chain","checkpoints","clone","clone","clone","clone_into","clone_into","clone_into","coin_selection","commit","confirmed","default","default","default","deref","derivation_index","derivation_of_spk","descriptor_checksum","deserialize","deserialize","eq","eq","eq","error","export","finalize_psbt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_balance","get_descriptor_for_keychain","get_psbt_input","get_signers","get_tx","get_utxo","graph","immature","index","indexed_tx_graph","insert_checkpoint","insert_tx","insert_txout","into","into","into","into","into","into","into","into","into","into","is_dust","is_empty","is_mine","keychain","keychains","last_active_indices","latest_checkpoint","list_output","list_unspent","list_unused_addresses","load","local_chain","mark_used","network","network","new","new_no_persist","new_no_persist_with_genesis_hash","new_or_load","new_or_load_with_genesis_hash","new_with_genesis_hash","next_derivation_index","next_unused_address","peek_address","policies","provide","provide","provide","provide","provide","public_descriptor","reveal_addresses_to","reveal_next_address","secp_ctx","sent_and_received","serialize","serialize","sign","signer","spk_index","staged","start_full_scan","start_sync_with_revealed_spks","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","total","transactions","trusted_pending","trusted_spendable","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","tx_builder","tx_graph","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unbounded_spk_iter","unmark_used","untrusted_pending","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","wallet_name_from_descriptor","connected_to_hash","expected_hash","tip_height","tx_height","expected","expected","got","got","got","keychain","BnBNoExactMatch","BnBTotalTriesExceeded","BranchAndBoundCoinSelection","Change","CoinSelectionAlgorithm","CoinSelectionResult","DefaultCoinSelectionAlgorithm","Error","Excess","InsufficientFunds","LargestFirstCoinSelection","NoChange","OldestFirstCoinSelection","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","coin_select","coin_select","coin_select","coin_select","decide_change","default","default","default","excess","fee_amount","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","into","into","into","into","into","into","local_selected_amount","new","provide","selected","selected_amount","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","available","needed","amount","change_fee","dust_threshold","fee","remaining_amount","BuildFeeBumpError","ChangePolicyDescriptor","CoinSelection","Conversion","CreateTxError","Descriptor","FeeRateTooLow","FeeRateUnavailable","FeeTooLow","InsufficientFunds","IrreplaceableTransaction","LockTime","MiniscriptPsbt","MiniscriptPsbtError","MissingKeyOrigin","MissingNonWitnessUtxo","NoRecipients","NoUtxosSelected","OutputBelowDustLimit","OutputUpdate","Persist","Policy","Psbt","RbfSequence","RbfSequenceCsv","SpendingPolicyRequired","TransactionConfirmed","TransactionNotFound","UnknownUtxo","UnknownUtxo","UtxoUpdate","Version0","Version1Csv","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","into","into","into","provide","provide","provide","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","available","csv","needed","rbf","requested","required","required","required","FullyNodedExport","WalletExport","blockheight","borrow","borrow_mut","change_descriptor","descriptor","deserialize","export_wallet","fmt","fmt","from","from_str","into","label","serialize","to_string","try_from","try_into","type_id","vzip","All","Dummy","Exclude","External","Fingerprint","Include","InputIndexOutOfRange","InputSigner","InvalidKey","InvalidNonWitnessUtxo","InvalidSighash","Legacy","MiniscriptPsbt","MissingHdKeypath","MissingKey","MissingNonWitnessUtxo","MissingWitnessScript","MissingWitnessUtxo","NonStandardSighash","None","PkHash","Segwitv0","SighashError","SignOptions","SignerCommon","SignerContext","SignerError","SignerId","SignerOrdering","SignerWrapper","SignersContainer","Tap","TapLeavesOptions","TransactionSigner","UserCanceled","add_external","allow_all_sighashes","allow_grinding","as_key_map","assume_height","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","default","default","default","default","deref","descriptor_secret_key","descriptor_secret_key","descriptor_secret_key","descriptor_secret_key","eq","eq","eq","eq","find","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","hash","id","id","id","id","ids","into","into","into","into","into","into","into","into","new","new","partial_cmp","partial_cmp","provide","remove","remove_partial_sigs","remove_taproot_extras","sign_input","sign_input","sign_input","sign_input","sign_transaction","sign_transaction","sign_with_tap_internal_key","signers","tap_leaves_options","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","trust_witness_utxo","try_finalize","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","is_internal_key","AddForeignUtxoError","AddUtxoError","AllowShrinkingError","Bip69Lexicographic","BumpFee","ChangeAllowed","ChangeForbidden","ChangeSpendPolicy","CreateTx","InvalidOutpoint","InvalidTxid","MissingScriptPubKey","MissingUtxo","OnlyChange","Shuffle","TxBuilder","TxBuilderContext","TxOrdering","UnknownUtxo","Untouched","add_data","add_foreign_utxo","add_foreign_utxo_with_sequence","add_global_xpubs","add_recipient","add_unspendable","add_utxo","add_utxos","allow_dust","allow_shrinking","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change_policy","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","coin_selection","current_height","default","default","default","default","do_not_spend_change","drain_to","drain_wallet","enable_rbf","enable_rbf_with_sequence","eq","eq","fee_absolute","fee_rate","finish","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","hash","hash","include_output_redeem_witness_script","into","into","into","into","into","into","into","into","manually_selected_only","nlocktime","only_spend_change","only_witness_utxo","ordering","partial_cmp","partial_cmp","policy_path","provide","provide","provide","set_recipients","sighash","sort_tx","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unspendable","version","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","foreign_utxo","input_txid"],"q":["bdk_wallet","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_wallet::Utxo","","","bdk_wallet::descriptor","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_wallet::descriptor::checksum","","bdk_wallet::descriptor::error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_wallet::descriptor::policy","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_wallet::descriptor::policy::BuildSatisfaction","","","bdk_wallet::descriptor::policy::Satisfaction","","","","","","","","","","","bdk_wallet::descriptor::policy::SatisfiableItem","","","","","","","","","","bdk_wallet::descriptor::template","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_wallet::keys","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_wallet::psbt","","","","bdk_wallet::wallet","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_wallet::wallet::ApplyBlockError","","bdk_wallet::wallet::InsertTxError","","bdk_wallet::wallet::NewOrLoadError","","","","","","bdk_wallet::wallet::coin_selection","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_wallet::wallet::coin_selection::Error","","bdk_wallet::wallet::coin_selection::Excess","","","","","bdk_wallet::wallet::error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_wallet::wallet::error::CreateTxError","","","","","","","","bdk_wallet::wallet::export","","","","","","","","","","","","","","","","","","","","","bdk_wallet::wallet::signer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_wallet::wallet::signer::SignerContext","bdk_wallet::wallet::tx_builder","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bdk_wallet::wallet::tx_builder::AddForeignUtxoError",""],"d":["External keychain, used for deriving recipient addresses.","A UTXO owned by another wallet.","","Internal keychain, used for deriving change addresses.","Types of keychains","A UTXO owned by the local wallet.","An unspent output owned by a <code>Wallet</code>.","","","An unspent transaction output (UTXO).","","A <code>Utxo</code> with its <code>satisfaction_weight</code>.","Return <code>KeychainKind</code> as a byte","","","","","","","","","","","","","","","","","","","","The confirmation time for transaction containing this utxo","The derivation index for the script pubkey in the wallet","Descriptors","Macro to write full descriptors with code","","","","","","","","","","","Macro to write descriptor fragments with code","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Whether this UTXO is spent or not","Type of keychain","Key formats","Get the location of the UTXO","Reference to a transaction output","","Additional functions on the <code>rust-bitcoin</code> <code>Psbt</code> structure.","The weight of the witness data and <code>scriptSig</code> expressed in …","Get the sequence number if an explicit sequence number has …","","","","","","","","","","","","","","","","","Get the <code>TxOut</code> of the UTXO","Transaction output","","","","","The UTXO","Get the version of BDK at runtime","","","","","Wallet","The location of the output.","The information about the input we require to add it to a …","The nSequence value to set for this input.","A raw scriptpubkey (including pay-to-pubkey) under Legacy …","Alias for a <code>Descriptor</code> that contains extended <strong>derived</strong> keys","Script descriptor","","The descriptor pubkey, either a single pubkey or an xpub.","Alias for a <code>Descriptor</code> that can contain extended keys …","Trait implemented on <code>Descriptor</code>s to add a method to …","Alias for the type of maps that represent derivation paths …","Trait for types which can be converted into an …","The consensus key associated with the type. Must be a …","Legacy ScriptContext To be used as P2SH scripts For …","The top-level miniscript abstract syntax tree (AST).","Multiple extended public keys.","Pay-to-PubKey-Hash","","The ScriptContext for Miniscript. Additional type …","Segwitv0 ScriptContext","Pay-to-ScriptHash(includes nested wsh/wpkh/sorted multi)","Single public key.","Alias for the type of maps that represent taproot key …","Pay-to-Taproot","Pay-to-Witness-PubKey-Hash","Pay-to-Witness-ScriptHash with Segwitv0 context","Extended public key (xpub).","Computes the Bitcoin address of the descriptor, if one …","","","Get a reference to the inner <code>AstElem</code> representing the root …","","Replaces all wildcards (i.e. <code>/*</code>) in the descriptor with a …","","","","","","","","","Enumerates all child nodes of the current AST node (<code>self</code>) …","Attempt to produce a non-malleable witness template given …","Attempt to produce a malleable witness template given the …","","Depending on script Context, some of the Terminals might …","","","Depending on script Context, some of the script resource …","","Check the consensus + policy(if not disabled) rules that …","Consensus rules at the Miniscript satisfaction time. It is …","","","Policy rules at the Miniscript satisfaction time. It is …","","","Check the consensus + policy(if not disabled) rules …","Each context has slightly different rules on what Pks are …","","","Depending on ScriptContext, fragments can be malleable. …","","","Check whether the given satisfaction is valid under the …","","","Descriptor checksum","","","","","","","","","","","","","Whether the given miniscript contains a raw pkh fragment","Deprecated name for <code>Self::at_derivation_index</code>.","Convert all the public keys in the descriptor to …","Convert all the public keys in the descriptor to …","Get the DescriptorType of Descriptor","","","","","Encode as a Bitcoin script","","","","","Descriptor errors","Computes the the underlying script before any hashing is …","Additional information helpful for extra analysis.","Check whether the miniscript follows the given Extra …","Extract the spending <code>policy</code>","","","Utility method for deriving the descriptor at each index …","","","","","","","","","Returns the argument unchanged.","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Add type information(Type and Extdata) to Miniscript based …","Create a new <code>Miniscript</code> from a <code>Terminal</code> node and a <code>Type</code> …","","Parse a Miniscript from string and perform sanity checks …","Attempt to parse an Miniscripts that don’t follow the …","Attempt to parse an insane(scripts don’t clear sanity …","Parse an expression tree into a descriptor.","Parse an expression tree into a Miniscript. As a general …","Returns child node with given index, if any","Returns <code>Option::Some</code> with cloned n’th public key from …","Returns satisfying non-malleable witness and scriptSig to …","Returns a possilbly mallable satisfying non-malleable …","Whether the miniscript contains a combination of timelocks","Whether the miniscript has repeated Pk or Pkh","Whether or not the descriptor has any wildcards i.e. <code>/*</code>.","","","","","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Extracts the <code>AstElem</code> representing the root of the …","Get as many descriptors as different paths in this …","Convert to wallet descriptor","","Whether or not the descriptor has any wildcards","Whether this descriptor contains a key that has multiple …","Whether the miniscript is malleable","Creates a new Iter iterator that will iterate over all …","Creates a new PkIter iterator that will iterate over all …","","","Lifting corresponds to conversion of a miniscript into a …","Depending on script context, the size of a satifaction …","","","Maximum size, in bytes, of a satisfying witness. For …","Computes an upper bound on the weight of a satisfying …","Maximum number of witness elements used to satisfy the …","Computes an upper bound on the difference between a …","Local helper function to display error messages with …","","","Create a new bare descriptor from witness script Errors …","Create a new pk descriptor","Create a new PkH descriptor","Create a new sh for a given redeem script Errors when …","Create a new sh sortedmulti descriptor with threshold <code>k</code> …","Create a new sh wrapper for the given wpkh descriptor","Create a new sh wrapper for the given wsh descriptor","Create a new sh wrapped wpkh from <code>Pk</code>. Errors when …","Create a new sh wrapped wsh descriptor with witness script …","Create a new sh wrapped wsh sortedmulti descriptor from …","Create new tr descriptor Errors when miniscript exceeds …","Create a new Wpkh descriptor Will return Err if …","Create a new wsh descriptor from witness script Errors …","Create a new wsh sorted multi descriptor Errors when …","A node in the AST.","Other top level checks that are context specific","Attempt to parse a Script into Miniscript representation.","Parse a descriptor that may contain secret keys","Attempt to parse an insane(scripts don’t clear sanity …","Attempt to parse an miniscript with extra features that …","","","","","Get the len of public key when serialized based on context …","","","Returns a plan if the provided assets are sufficient to …","Returns a plan if the provided assets are sufficient to …","Descriptor policy","Whether all spend paths of miniscript require a signature","Checks whether the descriptor is safe.","Check whether the underlying Miniscript is safe under the …","Attempts to produce a non-malleable satisfying witness and …","Attempt to produce non-malleable satisfying witness for the","Attempt to produce a malleable satisfying witness for the …","Computes the <code>scriptCode</code> of a transaction output.","Computes the scriptpubkey of the descriptor.","Size, in bytes of the script-pubkey. If this Miniscript is …","","","The type of signature required for satisfaction","","","Substitutes raw public keys hashes with the public keys as …","Descriptor templates","","","","","","","Serialize a descriptor to string with its secret keys","Check top level consensus rules.","Check whether the top-level is type B","Converts a descriptor using abstract keys to one using …","Translates a struct from one generic to another where the …","","","","","","","","","The correctness and malleability type information for the …","","","","","Computes the scriptSig that will be in place for an …","","","","","Whether the miniscript can exceed the resource …","Compute the checksum of a descriptor, excludes any …","Compute the checksum bytes of a descriptor, excludes any …","Error during base58 decoding","BIP32 error","Errors related to the parsing and usage of descriptors","The descriptor contains hardened derivation steps on …","Hex decoding error","Invalid byte found in the descriptor checksum","The provided descriptor doesn’t match its checksum","Invalid HD Key path, such as having a wildcard but a …","Error thrown while working with <code>keys</code>","Miniscript error","The descriptor contains multipath keys","Key-related error","Error while extracting and manipulating policies","","","","","","","","Returns the argument unchanged.","","","","","Calls <code>U::from(self)</code>.","","","","","","","Absolute timeclock timestamp","Can not add to an item that is <code>Satisfaction::None</code> or …","Can not add to an item that is …","Options to build the satisfaction field in the policy","Can satisfy the policy item","An extra condition that must be satisfied but that is out …","Type for a map of sets of <code>Condition</code> items keyed by each set…","ECDSA Signature for a raw public key","An extended key fingerprint","Type for a map of folded sets of <code>Condition</code> items keyed by …","SHA256 then RIPEMD160 preimage hash","Double SHA256 preimage hash","Incompatible conditions (not currently used)","Index out of range for an item to satisfy a …","Can not merge CSV or timelock values unless both are less …","Multi-signature public keys with threshold count","Cannot satisfy or contribute to the policy item","Don’t generate <code>satisfaction</code> field","Not enough items are selected to satisfy a …","Only a partial satisfaction of some kind of threshold …","Can reach the threshold of some kind of threshold policy","A unique identifier for a key","Descriptor spending policy","Errors that can happen while extracting and manipulating …","Analyze the given PSBT to check for existing signatures","Like <code>Psbt</code> variant and also check for expired timelocks","A legacy public key","Relative timelock locktime","RIPEMD160 preimage hash","Represent if and how much a policy item is satisfied by …","An item that needs to be satisfied","Schnorr Signature for a raw public key","SHA256 preimage hash","Threshold items with threshold count","A x-only public key","","","","","","","","","","","","","","","","","","","","","","","","","","","How the wallet’s descriptor can satisfy this policy node","Optional CheckSequenceVerify condition","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Return the conditions that are set by the spending policy …","","","Returns a unique id for the <code>SatisfiableItem</code>","Identifier for this policy node","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Returns whether the <code>SatisfiableItem</code> is a leaf item","Returns whether the <code>Satisfaction</code> is a leaf item","Returns <code>true</code> if there are no extra conditions to verify","Type of this policy node","","","Return whether or not a specific path in the policy tree …","How much a given PSBT already satisfies this policy node …","","","","","","Optional timelock condition","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Current blockchain height","The highest confirmation height between the inputs CSV …","Given PSBT","Extra conditions that also need to be satisfied","Extra conditions that also need to be satisfied","Extra conditions that also need to be satisfied","The items that can be satisfied by the descriptor or are …","The items that can be satisfied by the descriptor","Threshold","Threshold","Total number of items","Total number of items","Whether the items are sorted in lexicographic order (used …","Whether the items are sorted in lexicographic order (used …","The digest value","The digest value","The digest value","The digest value","The policy items","The raw public key or extended key fingerprint","The required threshold count","The required threshold count","The timelock value","The timelock value","BIP44 template. Expands to <code>pkh(key/44'/{0,1}'/0'/{0,1}/*)</code>","BIP44 public template. Expands to <code>pkh(key/{0,1}/*)</code>","BIP49 template. Expands to …","BIP49 public template. Expands to <code>sh(wpkh(key/{0,1}/*))</code>","BIP84 template. Expands to <code>wpkh(key/84'/{0,1}'/0'/{0,1}/*)</code>","BIP84 public template. Expands to <code>wpkh(key/{0,1}/*)</code>","BIP86 template. Expands to <code>tr(key/86'/{0,1}'/0'/{0,1}/*)</code>","BIP86 public template. Expands to <code>tr(key/{0,1}/*)</code>","Trait for descriptor templates that can be built into a …","Type alias for the return type of <code>DescriptorTemplate</code>, …","P2PKH template. Expands to a descriptor <code>pkh(key)</code>","P2TR template. Expands to a descriptor <code>tr(key)</code>","P2WPKH template. Expands to a descriptor <code>wpkh(key)</code>","P2WPKH-P2SH template. Expands to a descriptor <code>sh(wpkh(key))</code>","","","","","","","","","","","","","","","","","","","","","","","","","Build the complete descriptor","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","BIP32 error","Trait for keys that can be derived.","Container for public or secret keys","The descriptor pubkey, either a single pubkey or an xpub.","The descriptor secret key, either a single private key or …","Type specifying the amount of entropy required e.g. <code>[u8;32]</code>","Returned error in case of failure","Trait that adds extra useful methods to <code>ScriptContext</code>s","Enum for extended keys that can be either <code>xprv</code> or <code>xpub</code>","A bitcoin public key (compressed or uncompressed).","Trait that allows generating a key with the default options","Trait for keys that can be generated","Output of a <code>GeneratableKey</code> key generation","Trait for objects that can be turned into a public or …","The key has an invalid checksum","The key is not valid for the given network","The key cannot exist in the given script context","The consensus key associated with the type. Must be a …","Errors thrown while working with <code>keys</code>","Alias type for a map of public key to secret key","Legacy scripts","Custom error message","Miniscript error","Multiple extended private keys.","Multiple extended public keys.","Extra options required by the <code>generate_with_entropy</code>","A private extended key, aka an <code>xprv</code>","Options for generating a <code>PrivateKey</code>","A public extended key, aka an <code>xpub</code>","The ScriptContext for Miniscript. Additional type …","Enum representation of the known valid <code>ScriptContext</code>s","Segwitv0 scripts","Single public key.","Single private key.","A descriptor <code>bitcoin::PrivateKey</code> with optional origin …","A descriptor <code>SinglePubKey</code> with optional origin information.","Single public key without any origin or range information.","Contents of a “sortedmulti” descriptor","Taproot scripts","Set of valid networks for a key","An xonly public key.","Extended private key (xpriv).","Extended public key (xpub).","Create a set containing mainnet, testnet, signet, and …","Returns the <code>ScriptContext</code> as a <code>ScriptContextEnum</code>","Replaces any wildcard (i.e. <code>/*</code>) in the key with a …","","","","","","","","","","","","","","","","","","","","","","","","","Attempt to produce a witness template given the assets …","Depending on script Context, some of the Terminals might …","Depending on script Context, some of the script resource …","Check the consensus + policy(if not disabled) rules that …","Consensus rules at the Miniscript satisfaction time. It is …","Policy rules at the Miniscript satisfaction time. It is …","Check the consensus + policy(if not disabled) rules …","Each context has slightly different rules on what Pks are …","Depending on ScriptContext, fragments can be malleable. …","Check whether the given satisfaction is valid under the …","","","","","","","","","","","","","","","","","","","","","","","Whether the generated key should be “compressed” or not","","","Deprecated name for <code>Self::at_derivation_index</code>.","","Encode as a Bitcoin script","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Create an instance given a public key and a set of valid …","Create an instance given a secret key and a set of valid …","","","Parse an expression tree into a SortedMultiVec","Full path, from the master key","Returns a vector containing the full derivation paths from …","Generate a key given the options with a random entropy","Generate a key with the default options and a random …","Generate a key given the extra options and the entropy","Generate a key with the default options and a given entropy","Return whether or not the key contains the private data","Whether or not the key has a wildcard","","","","","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","","Turn the key into a <code>DescriptorKey</code> within the requested …","Consume <code>self</code> and turn it into a <code>DescriptorKey</code> by adding …","","","","","","Consume <code>self</code> and turn it into an <code>ExtendedKey</code>","","","Consumes <code>self</code> and returns the key","Get as many keys as derivation paths in this key.","Get as many keys as derivation paths in this key.","Transform the <code>ExtendedKey</code> into an <code>Xpriv</code> for the given …","Transform the <code>ExtendedKey</code> into an <code>Xpub</code> for the given …","Whether or not the key has a wildcard","Returns whether the script context is <code>Legacy</code>","Returns whether the script context is …","Whether or not this key has multiple derivation paths.","Whether or not this key has multiple derivation paths.","Returns whether the script context is <code>Segwitv0</code>","Returns whether the script context is …","Returns whether the script context is <code>Tap</code>, aka Taproot or …","Returns whether the script context is …","","","signatures required","The public key.","The private key.","","Create a set only containing mainnet","The fingerprint of the master key associated with this …","Depending on script context, the size of a satifaction …","Maximum size, in bytes, of a satisfying witness. In …","Maximum number of witness elements used to satisfy the …","Compute the intersection of two sets","Local helper function to display error messages with …","Create a new instance of <code>SortedMultiVec</code> given a list of …","","Origin information (fingerprint and derivation path).","Origin information (fingerprint and derivation path).","Other top level checks that are context specific","Override the computed set of valid networks","","","","","Get the len of public key when serialized based on context …","public keys inside sorted Multi","","utility function to sanity a sorted multi vec","Attempt to produce a satisfying witness for the witness …","Size, in bytes of the script-pubkey. If this Miniscript is …","","The type of signature required for satisfaction","Create Terminal::Multi containing sorted pubkeys","Create a set containing testnet and regtest","","","","","","","","","","Returns the public version of this key.","","","","","Check top level consensus rules.","Check whether the top-level is type B","This will panic if fpk returns an uncompressed key when …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Trait to add functions to extract utxos and calculate fees.","The total transaction fee amount, sum of input amounts …","The transaction’s fee rate. This value will only be …","Get the <code>TxOut</code> for the specified input index, if it doesn’…","A derived address and the index it was found at. For …","An error that may occur when applying a block to <code>Wallet</code>.","Balance, differentiated into various categories.","Occurs when the update chain cannot connect with original …","The changes made to a wallet by applying an <code>Update</code>.","The error variant that occurs when the caller attempts to …","There was problem with the passed-in descriptor(s).","There was a problem with the passed-in descriptor(s).","There is a problem with the passed-in descriptor.","An error that may occur when inserting a transaction into …","Trait to check if a value is below the dust limit. We are …","The error type when loading a <code>Wallet</code> from persistence.","The loaded desccriptor does not match what was provided.","The loaded genesis hash does not match what was provided.","The loaded network type does not match what was provided.","Data loaded from persistence is missing descriptor.","Data loaded from persistence is missing genesis hash.","Data loaded from persistence is missing network type.","The error type when constructing a fresh <code>Wallet</code>.","Error type for when we try load a <code>Wallet</code> from persistence …","Database already has data.","Wallet not initialized, persistence backend is empty.","Wallet is not initialized, persistence backend is empty.","We were unable to write the wallet’s data to the …","Loading data from the persistence backend failed.","Either writing to or loading from the persistence backend …","Occurs when the <code>connected_to</code> hash does not match the hash …","An update to <code>Wallet</code>.","A Bitcoin wallet","","Add an external signer","Address","Get unbounded script pubkey iterators for both <code>Internal</code> …","","Introduces a <code>block</code> of <code>height</code> to the wallet, and tries to …","Applies relevant transactions from <code>block</code> of <code>height</code> to the …","Apply relevant unconfirmed transactions to the wallet.","Applies an update to the wallet and stages the changes …","","","","","","","","","","","","","","","","","","","","","","Bump the fee of a transaction previously created with this …","Start building a transaction.","Calculates the fee of a given transaction. Returns 0 if <code>tx</code> …","Calculate the <code>FeeRate</code> for a given transaction.","Informs the wallet that you no longer intend to broadcast …","Update for the wallet’s internal <code>LocalChain</code>.","Changes to the <code>LocalChain</code>.","Get all the checkpoints the wallet is currently storing …","","","","","","","Coin selection","Commits all currently <code>staged</code> changed to the persistence …","Confirmed and immediately spendable balance","","","","","The derivation index of this wallet. It will return <code>None</code> …","Finds how the wallet derived the script pubkey <code>spk</code>.","Return the checksum of the public descriptor associated to …","","","","","","Errors that can be thrown by the <code>Wallet</code>","Wallet export","Finalize a PSBT, i.e., for each input determine if …","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Return the balance, separated into available, …","Returns the descriptor used to create addresses for a …","get the corresponding PSBT Input for a LocalUtxo","Get the signers","Get a single transaction from the wallet as a <code>CanonicalTx</code> …","Returns the utxo owned by this wallet corresponding to …","Update for the wallet’s internal <code>TxGraph</code>.","All coinbase outputs not yet matured","Child index of this address","Changes to <code>IndexedTxGraph</code>.","Add a new checkpoint to the wallet’s internal view of …","Add a transaction to the wallet’s internal view of the …","Inserts a <code>TxOut</code> at <code>OutPoint</code> into the wallet’s …","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Check whether or not a value is below dust limit","","Return whether or not a <code>script</code> is part of this wallet …","Type of keychain","Iterator over all keychains in this wallet","Contains the last active derivation indices per keychain (<code>K</code>…","Returns the latest checkpoint.","List all relevant outputs (includes both spent and …","Return the list of unspent outputs of this wallet","List addresses that are revealed but unused.","Load <code>Wallet</code> from the given persistence backend.","Get a reference to the inner <code>LocalChain</code>.","Marks an address used of the given <code>keychain</code> at <code>index</code>.","Get the Bitcoin network the wallet is using.","Stores the network type of the wallet.","Initialize an empty <code>Wallet</code>.","Creates a wallet that does not persist data.","Creates a wallet that does not persist data, with a custom …","Either loads <code>Wallet</code> from persistence, or initializes it if …","Either loads <code>Wallet</code> from persistence, or initializes it if …","Initialize an empty <code>Wallet</code> with a custom genesis hash.","The index of the next address that you would get if you …","Get the next unused address for the given <code>keychain</code>, i.e. …","Peek an address of the given <code>keychain</code> at <code>index</code> without …","Return the spending policies for the wallet’s descriptor","","","","","","Return the “public” version of the wallet’s …","Reveal addresses up to and including the target <code>index</code> and …","Attempt to reveal the next address of the given <code>keychain</code>.","Return the secp256k1 context used for all signing …","Compute the <code>tx</code>’s sent and received <code>Amount</code>s.","","","Sign a transaction with all the wallet’s signers, in the …","Generalized signers","Get a reference to the inner <code>KeychainTxOutIndex</code>.","Returns the changes that will be committed with the next …","Create a `FullScanRequest for this wallet.","Create a partial <code>SyncRequest</code> for this wallet for all …","","","","","","","","","","","Get the whole balance visible to the wallet.","Iterate over the transactions in the wallet.","Unconfirmed UTXOs generated by a wallet tx","Get sum of trusted_pending and confirmed coins.","","","","","","","","","","","","","","","","","","","","","Transaction builder","Get a reference to the inner <code>TxGraph</code>.","","","","","","","","","","","Get an unbounded script pubkey iterator for the given …","Undoes the effect of <code>mark_used</code> and returns whether the …","Unconfirmed UTXOs received from an external wallet","","","","","","","","","","","Deterministically generate a unique name given the …","Block hash of <code>connected_to</code>.","Expected block hash of <code>connected_to</code>, as derived from <code>block</code>.","The internal chain’s tip height.","The introduced transaction’s confirmation height.","The expected genesis block hash.","The expected network type.","The block hash loaded from persistence.","The network type loaded from persistence.","The descriptor loaded from persistence.","The keychain of the descriptor not matching","Branch and bound coin selection tries to avoid needing a …","Branch and bound coin selection possible attempts with …","Branch and bound coin selection","It’s possible to create spendable output from excess …","Trait for generalized coin selection algorithms","Result of a successful coin selection","Default coin selection algorithm used by <code>TxBuilder</code> if not …","Errors that can be thrown by the <code>coin_selection</code> module","Remaining amount after performing coin selection","Wallet’s UTXO set is not enough to cover recipient’s …","Simple and dumb coin selection","It’s not possible to create spendable output from excess …","OldestFirstCoinSelection always picks the utxo with the …","","","","","","","","","","","","","","","","","","","Perform the coin selection","","","","Decide if change can be created","","","","Remaining amount after deducing fees and outgoing outputs","Total fee amount for the selected utxos in satoshis","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","The total value of the inputs selected from the local …","Create new instance with target size for change output","","List of outputs selected for use as inputs","The total value of the inputs selected.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Sats available for spending","Sats needed for some transaction","Effective amount available to create change after …","The calculated fee for the drain TxOut with the selected …","Threshold to consider amount as dust for this particular …","The deducted change output fee","Exceeding amount of current selection over outgoing value …","Error returned from <code>Wallet::build_fee_bump</code>","The <code>change_policy</code> was set but the wallet does not have a …","There was an error with coin selection","Descriptor key conversion error","Error returned from <code>TxBuilder::finish</code>","There was a problem with the descriptors passed in","When bumping a tx the fee rate requested is lower than …","Node doesn’t have data to estimate a fee rate","When bumping a tx the absolute fee requested is lower than …","Wallet’s UTXO set is not enough to cover recipient’s …","Trying to replace a tx that has a sequence >= <code>0xFFFFFFFE</code>","Requested <code>LockTime</code> is less than is required to spend from …","Miniscript PSBT error","Errors returned by miniscript when updating inconsistent …","In order to use the <code>TxBuilder::add_global_xpubs</code> option …","Missing non_witness_utxo on foreign utxo for given <code>OutPoint</code>","Cannot build a tx without recipients","<code>manually_selected_only</code> option is selected but no utxo has …","Output created is under the dust limit, 546 satoshis","Return error type for …","We were unable to load wallet data from or write wallet …","There was a problem while extracting and manipulating …","Partially signed bitcoin transaction error","Cannot enable RBF with a <code>Sequence</code> >= 0xFFFFFFFE","Cannot enable RBF with <code>Sequence</code> given a required OP_CSV","Spending policy is not compatible with this <code>KeychainKind</code>","Happens when trying to bump a transaction that is already …","Thrown when a tx is not found in the internal database","Happens when trying to spend an UTXO that is not in the …","Happens when trying to spend an UTXO that is not in the …","Return error type for PsbtExt::update_input_with_descriptor","Requested invalid transaction version ‘0’","Requested transaction version <code>1</code>, but at least <code>2</code> is needed …","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","","","","","","","","","","","","","","","","","","","","Sats available for spending","Required OP_CSV <code>Sequence</code>","Sats needed for some transaction","Given RBF <code>Sequence</code>","Requested <code>LockTime</code>","Required <code>LockTime</code>","Required fee absolute value (satoshi)","Required fee rate","Structure that contains the export of a wallet","Alias for <code>FullyNodedExport</code>","Earliest block to rescan when looking for the wallet’s …","","","Return the internal descriptor, if present","Return the external descriptor","","Export a wallet","","","Returns the argument unchanged.","","Calls <code>U::from(self)</code>.","Arbitrary label for the wallet","","","","","","","The signer will sign all the leaves it has a key for.","Dummy identifier","The signer won’t sign the specified leaves.","To be used only by external libraries implementing …","The fingerprint of a BIP32 extended key","The signer won’t sign leaves other than the ones …","Input index is out of range","PSBT Input signer","The private key in use has the right fingerprint but …","The <code>non_witness_utxo</code> specified is invalid","Invalid SIGHASH for the signing context in use","Legacy context","Miniscript PSBT error","The fingerprint and derivation path are missing from the …","The private key is missing for the required public key","The <code>non_witness_utxo</code> field of the transaction is required …","The <code>witness_script</code> field of the transaction is required to …","The <code>witness_utxo</code> field of the transaction is required to …","The psbt contains a non-<code>SIGHASH_ALL</code> sighash in one of its …","The signer won’t sign any leaf.","Bitcoin HASH160 (RIPEMD160 after SHA256) hash of an ECDSA …","Segwit v0 context (BIP 143)","Error while computing the hash to sign","Options for a software signer","Common signer methods","Signing context","Signing error","Identifier of a signer in the <code>SignersContainers</code>. Used as a …","Defines the order in which signers are called","Wrapper to pair a signer with its context","Container for multiple signers","Taproot context (BIP 340)","Customize which taproot script-path leaves the signer …","PSBT signer","The user canceled the operation","Adds an external signer to the container for the specified …","Whether the signer should use the <code>sighash_type</code> set in the …","Whether we should grind ECDSA signature to ensure signing …","Create a map of public keys to secret keys","Whether the wallet should assume a specific height has …","","","","","","","","","","","","","","","","","Build a new signer container from a <code>KeyMap</code>","","","","","","","","","","","","","","","","","","","","","","Return the secret key for the signer","","","","","","","","Finds the signer with lowest ordering for a given id in …","","","","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Return the <code>SignerId</code> for this signer","","","","Returns the list of identifiers of all the signers in the …","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Create a wrapped signer from a signer and a context","Default constructor","","","","Removes a signer from the container and returns it","Whether to remove partial signatures from the PSBT inputs …","Whether to remove taproot specific fields from the PSBT on …","Sign a single psbt input","","","","Sign all the inputs of the psbt","","Whether we should try to sign a taproot transaction with …","Returns the list of signers in the container, sorted by …","Specifies which Taproot script-spend leaves we should sign …","","","","","","","","","Whether the signer should trust the <code>witness_utxo</code>, if the …","Whether to try finalizing the PSBT after the inputs are …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Whether the signer can sign for the internal key or not","Error returned from <code>TxBuilder::add_foreign_utxo</code>.","Error returned from <code>TxBuilder::add_utxo</code> and …","Error returned from <code>TxBuilder::allow_shrinking</code>","BIP69 / Lexicographic","Marker type to indicate the <code>TxBuilder</code> is being used to …","Use both change and non-change outputs (default)","Only use non-change outputs (see …","Policy regarding the use of change outputs when creating a …","Marker type to indicate the <code>TxBuilder</code> is being used to …","Requested outpoint doesn’t exist in the tx (vout greater …","Foreign utxo outpoint txid does not match PSBT input txid","Script/PubKey was not in the original transaction","Foreign utxo missing witness_utxo or non_witness_utxo","Only use change outputs (see <code>TxBuilder::only_spend_change</code>)","Randomized (default)","A transaction builder","Context in which the <code>TxBuilder</code> is valid","Ordering of the transaction’s inputs and outputs","Happens when trying to spend an UTXO that is not in the …","Unchanged","Add data as an output, using OP_RETURN","Add a foreign UTXO i.e. a UTXO not owned by this wallet.","Same as add_foreign_utxo but allows to set the nSequence …","Fill-in the <code>PSBT_GLOBAL_XPUB</code> field with the extended keys …","Add a recipient to the internal list","Add a utxo to the internal list of unspendable utxos","Add a utxo to the internal list of utxos that <strong>must</strong> be spent","Add the list of outpoints to the internal list of UTXOs …","Set whether or not the dust limit is checked.","Explicitly tells the wallet that it is allowed to reduce …","","","","","","","","","","","","","","","","","Set a specific <code>ChangeSpendPolicy</code>. See …","","","","","","","","","","","","","Choose the coin selection algorithm","Set the current blockchain height.","","","","","Do not spend change outputs","Sets the address to <em>drain</em> excess coins to.","Spend all the available inputs. This respects filters like …","Enable signaling RBF","Enable signaling RBF with a specific nSequence value","","","Set an absolute fee The fee_absolute method refers to the …","Set a custom fee rate.","Finish building the transaction.","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Fill-in the <code>psbt::Output::redeem_script</code> and …","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Only spend utxos added by <code>add_utxo</code>.","Use a specific nLockTime while creating the transaction","Only spend change outputs","Only Fill-in the <code>psbt::Input::witness_utxo</code> field when …","Choose the ordering for inputs and outputs of the …","","","Set the policy path to use while creating the transaction …","","","","Replace the recipients already added with a new list","Sign with a specific sig hash","Sort transaction inputs and outputs by <code>TxOrdering</code> variant","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Replace the internal list of unspendable utxos with a new …","Build a transaction with a specific version","","","","","","","","","Foreign UTXO outpoint","PSBT input txid"],"i":[1,5,0,1,0,5,0,0,0,0,0,0,1,1,1,3,4,5,1,3,4,5,0,1,3,4,5,1,3,4,5,1,3,3,0,0,1,3,1,3,4,5,1,3,4,5,0,1,3,4,5,1,3,1,3,4,5,3,3,0,5,3,1,0,4,5,1,3,0,0,1,3,4,5,1,3,4,5,1,3,4,5,5,3,1,3,4,5,4,0,1,3,4,5,0,209,209,209,17,0,0,0,0,0,0,0,0,49,0,0,26,17,0,0,0,17,26,0,17,17,17,26,17,35,36,23,23,17,17,35,36,23,17,35,36,23,23,23,23,0,49,35,36,49,36,49,49,35,36,49,35,36,49,49,35,36,49,35,36,49,35,36,0,17,35,36,23,17,35,36,23,17,35,36,23,23,17,17,17,17,17,17,23,17,23,17,35,36,23,0,17,23,23,210,17,23,17,17,17,35,36,23,23,17,23,17,17,17,17,17,17,17,35,36,23,23,23,17,23,23,23,17,23,23,23,17,17,23,23,17,17,35,36,23,17,35,36,23,23,17,175,63,17,17,23,23,23,17,23,23,49,35,36,23,17,23,17,49,35,36,17,17,17,17,17,17,17,17,17,17,17,17,17,17,23,49,23,17,23,23,17,35,36,23,49,35,36,17,17,0,23,17,23,17,23,23,17,17,23,17,23,49,35,36,23,0,17,35,36,23,17,23,17,49,49,17,23,17,35,36,23,17,35,36,23,23,17,35,36,23,17,17,35,36,23,23,0,0,48,48,0,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,84,77,77,0,85,0,0,84,83,0,84,84,77,77,77,84,85,46,77,85,85,0,0,0,46,46,83,84,84,0,0,84,84,84,83,83,84,85,47,86,77,46,83,84,85,47,86,77,46,83,84,85,47,86,46,83,84,85,47,86,46,47,86,86,83,84,85,47,86,77,83,84,85,47,86,77,77,46,83,84,85,85,47,47,86,77,46,47,83,86,84,47,83,84,85,47,86,77,46,84,85,86,47,86,77,47,47,83,84,85,47,86,86,83,84,85,47,86,46,77,83,84,85,47,86,77,46,83,84,85,47,86,77,46,83,84,85,47,86,77,46,83,84,85,47,86,77,46,211,211,211,212,213,214,213,214,213,214,213,214,213,214,215,216,217,218,219,220,220,219,221,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,90,91,93,95,96,97,98,99,100,101,102,89,90,91,93,95,96,97,98,99,100,101,102,223,89,90,91,93,95,96,97,98,99,100,101,102,89,90,91,93,95,96,97,98,99,100,101,102,89,90,91,93,95,96,97,98,99,100,101,102,87,89,90,91,93,95,96,97,98,99,100,101,102,89,90,91,93,95,96,97,98,99,100,101,102,89,90,91,93,95,96,97,98,99,100,101,102,89,90,91,93,95,96,97,98,99,100,101,102,89,90,91,93,95,96,97,98,99,100,101,102,78,0,0,0,0,224,224,0,0,111,0,0,0,0,78,78,78,49,0,0,22,78,78,108,26,224,115,0,115,0,0,22,26,108,0,0,0,0,22,0,111,108,26,0,225,26,115,106,113,22,107,78,104,26,108,109,110,111,115,106,113,22,107,78,104,26,108,109,110,111,104,49,49,49,49,49,49,49,49,49,106,22,107,104,26,108,109,110,111,106,22,107,104,26,108,109,110,111,104,26,109,111,107,107,106,26,26,104,22,104,26,108,109,110,111,113,22,107,78,78,104,104,26,26,108,108,109,110,111,104,115,115,115,106,113,22,107,78,78,78,104,26,26,108,109,110,111,113,113,26,108,104,26,26,224,226,224,226,115,26,104,26,109,111,115,106,113,22,107,78,104,26,108,109,110,111,26,88,94,106,106,113,26,108,94,115,106,106,26,108,115,115,26,225,22,26,108,225,22,225,22,26,26,104,109,110,104,0,26,49,104,104,0,49,104,26,109,110,49,113,104,26,109,111,49,104,78,104,104,104,26,49,104,0,106,22,107,104,26,108,109,110,111,108,78,104,26,108,49,49,104,115,106,113,22,107,78,104,26,108,109,110,111,115,106,113,22,107,78,104,26,108,109,110,111,115,106,113,22,107,78,104,26,108,109,110,111,115,106,113,22,107,78,104,26,108,109,110,111,0,227,227,227,0,0,0,156,0,155,152,153,154,0,0,0,154,154,154,153,153,153,0,0,152,153,154,152,153,154,156,0,0,123,124,148,124,129,124,124,124,124,124,123,124,135,129,148,152,153,154,155,156,123,124,135,129,148,152,153,154,155,156,124,124,124,124,124,135,129,124,123,135,129,123,135,129,0,124,123,123,135,129,148,124,124,124,123,129,123,129,148,0,0,124,123,123,124,135,129,148,148,152,152,153,153,154,154,155,155,156,156,123,124,135,135,135,129,129,129,148,152,153,154,155,156,124,124,124,124,124,124,135,123,148,129,124,124,124,123,124,135,129,148,152,153,154,155,156,228,129,124,148,124,135,124,124,124,124,124,124,124,124,129,124,124,124,124,124,124,124,124,124,124,152,153,154,155,156,124,124,124,124,124,123,129,124,0,124,124,124,124,123,135,129,123,148,152,153,154,155,156,123,124,123,123,123,124,135,129,148,152,153,154,155,156,123,124,135,129,148,152,153,154,155,156,0,124,123,124,135,129,148,152,153,154,155,156,124,124,123,123,124,135,129,148,152,153,154,155,156,0,229,229,230,230,231,232,231,232,233,233,185,185,0,186,0,0,0,0,0,185,0,186,0,185,186,184,181,182,183,185,186,184,181,182,183,181,182,183,181,182,183,201,181,182,183,0,181,182,183,184,184,185,185,186,184,181,182,183,185,186,184,181,182,183,185,186,184,181,182,183,184,183,185,184,184,181,182,183,185,185,186,184,181,182,183,185,186,184,181,182,183,185,186,184,181,182,183,185,186,184,181,182,183,234,234,235,236,236,235,236,0,165,165,187,0,165,165,142,165,165,142,165,165,0,165,165,165,165,165,187,165,165,165,165,165,165,142,142,165,142,187,165,165,187,165,142,187,165,142,187,187,187,187,165,165,142,142,187,165,165,165,165,165,165,142,187,165,142,187,165,142,187,187,165,142,187,165,142,187,165,142,187,165,142,187,165,142,237,238,237,238,239,239,240,241,0,0,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,195,190,195,151,190,195,151,0,151,151,151,192,151,151,151,151,151,151,151,195,190,192,151,0,0,0,0,0,0,0,0,192,0,0,151,45,150,150,45,150,190,151,192,194,125,45,150,195,190,151,192,194,125,45,150,195,45,190,192,194,125,45,150,195,190,192,194,125,45,150,195,190,125,125,45,150,195,194,242,194,194,194,190,192,125,195,45,190,151,151,192,194,125,45,150,195,190,190,190,151,151,192,194,125,45,150,195,190,242,194,194,194,45,190,151,192,194,125,45,150,195,194,45,190,125,151,45,150,150,243,194,194,194,126,194,150,45,150,190,192,194,125,45,150,195,151,150,150,190,151,192,194,125,45,150,195,190,151,192,194,125,45,150,195,190,151,192,194,125,45,150,195,190,151,192,194,125,45,150,195,244,0,0,0,206,0,205,205,0,0,202,202,204,202,205,206,0,0,0,203,206,141,141,141,141,141,141,141,141,141,141,143,140,141,203,202,204,206,205,143,140,141,203,202,204,206,205,141,143,140,141,206,205,143,140,141,206,205,206,205,141,141,143,140,206,205,141,141,141,141,141,206,205,141,141,141,143,140,141,203,203,202,202,204,204,206,205,143,140,141,203,202,204,206,205,206,205,141,143,140,141,203,202,204,206,205,141,141,141,141,141,206,205,141,203,202,204,141,141,206,143,140,141,206,205,203,202,204,143,140,141,203,202,204,206,205,143,140,141,203,202,204,206,205,143,140,141,203,202,204,206,205,141,141,143,140,141,203,202,204,206,205,245,245],"f":[0,0,0,0,0,0,0,0,0,0,0,0,[1,2],[1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[1,1],[3,3],[4,4],[5,5],[[]],[[]],[[]],[[]],[[1,1],6],0,0,0,0,[[],[[7,[1]]]],[[],[[7,[3]]]],[[1,1],8],[[3,3],8],[[4,4],8],[[5,5],8],[[1,9],10],[[3,9],10],[[4,9],10],[[5,9],10],0,[[]],[[]],[[]],[[]],[1],[3],[[]],[[]],[[]],[[]],0,0,0,[5,11],0,[[1,1],[[12,[6]]]],0,0,[5,[[12,[13]]]],[1,7],[3,7],0,0,[[]],[[]],[[]],[[]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[5,14],0,[[],15],[[],15],[[],15],[[],15],0,[[],16],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[17,18],[[7,[[20,[19]],21]]]],[[],22],[[],22],[23,24],[23,[[25,[23]]]],[[[17,[26]],27],[[7,[[17,[28]],29]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[23,[[31,[23,30]]]],[23,[[33,[32]]]],[23,[[33,[32]]]],0,[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[[],[[7,[34]]]],[[],[[7,[34]]]],[[],[[7,[34]]]],[24,[[7,[34]]]],[24,[[7,[34]]]],[24,[[7,[34]]]],[[],[[7,[34]]]],[[],[[7,[34]]]],[[],[[7,[34]]]],0,[17,17],[35,35],[36,36],[23,23],[[]],[[]],[[]],[[]],[[17,17],6],[[35,35],6],[[36,36],6],[[23,23],6],[23,8],[[[17,[26]],27],[[7,[[17,[28]],29]]]],[[[17,[26]],37,27],[[7,[[17,[38]],29]]]],[[[17,[28]],37],[[7,[[17,[38]],29]]]],[17,39],[[[17,[26]]],40],[[],[[7,[17]]]],[[],[[7,[23]]]],[[[17,[26]]],41],[23,42],[[17,17],8],[[35,35],8],[[36,36],8],[[23,23],8],0,[17,[[7,[42,21]]]],0,[[23,43],[[7,[44]]]],[[45,46,37],[[7,[[12,[47]],48]]]],[[[17,[26]],45,46,37],[[7,[[12,[47]],48]]]],[[[23,[26,49]],45,46,37],[[7,[[12,[47]],48]]]],[[[17,[26]],37,50,[51,[27]]],[[7,[12,29]]]],[[17,9],[[7,[52]]]],[[17,9],[[7,[52]]]],[[35,9],[[7,[52]]]],[[36,9],[[7,[52]]]],[[23,9],[[7,[52]]]],[[23,9],[[7,[52]]]],[17,8],[23,8],[[]],[53,17],[54,17],[55,17],[56,17],[57,17],[58,17],[[]],[[]],[[]],[24,[[7,[23,21]]]],[[24,59,60],23],[16,[[7,[17,21]]]],[16,[[7,[23,21]]]],[[16,43],[[7,[23,21]]]],[16,[[7,[23,21]]]],[61,[[7,[17,21]]]],[61,[[7,[23,21]]]],[[23,62],[[12,[23]]]],[[23,62],12],[17,[[7,[21]]]],[17,[[7,[21]]]],[23,8],[23,8],[[[17,[26]]],8],[17],[35],[36],[23],[[]],[[]],[[]],[[]],[23,24],[[[17,[26]]],[[7,[[31,[[17,[26]],30]],21]]]],[[37,18],[[7,[48]]]],[[63,37,18],[[7,[48]]]],[[[17,[26]]],8],[[[17,[26]]],8],[23,8],[23,64],[23,65],[17,[[7,[66,21]]]],[23,[[7,[66,21]]]],[23,[[7,[67]]]],[23,[[12,[62]]]],[23,[[12,[62]]]],[23,[[12,[62]]]],[23,[[7,[62,21]]]],[17,[[7,[62,21]]]],[23,[[7,[62,21]]]],[17,[[7,[62,21]]]],[[],16],[[],16],[[],16],[[[23,[68]]],[[7,[17,21]]]],[[],17],[[],[[7,[17,21]]]],[[[23,[35]]],[[7,[17,21]]]],[[62,[31,[30]]],[[7,[17,21]]]],[58,17],[55,17],[[],[[7,[17,21]]]],[[[23,[36]]],[[7,[17,21]]]],[[62,[31,[30]]],[[7,[17,21]]]],[[[12,[69]]],[[7,[17,21]]]],[[],[[7,[17,21]]]],[[[23,[36]]],[[7,[17,21]]]],[[62,[31,[30]]],[[7,[17,21]]]],0,[23,[[7,[21]]]],[50,[[7,[23,21]]]],[[37,16],[[7,[21]]]],[50,[[7,[23,21]]]],[[50,43],[[7,[23,21]]]],[[17,17],[[12,[6]]]],[[35,35],[[12,[6]]]],[[36,36],[[12,[6]]]],[[23,23],[[12,[6]]]],[[],62],[[],62],[[],62],[[[17,[28]]],[[7,[70,[17,[28]]]]]],[[[17,[28]]],[[7,[70,[17,[28]]]]]],0,[23,8],[17,[[7,[21]]]],[23,[[7,[44]]]],[[17,71],[[7,[21]]]],[23,[[7,[[31,[[31,[2,30]],30]],21]]]],[23,[[7,[[31,[[31,[2,30]],30]],21]]]],[17,[[7,[42,21]]]],[17,42],[23,62],[17,7],[23,7],[[],72],[[],72],[[],72],[[23,73],23],0,[[]],[[]],[[]],[[]],[[],74],[[],74],[[[17,[26]],73],74],[23,[[7,[21]]]],[23,[[7,[21]]]],[17,[[7,[75]]]],[23,[[7,[75]]]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],0,[[],15],[[],15],[[],15],[[],15],[17,42],[[]],[[]],[[]],[[]],[23,8],[16,[[7,[74,48]]]],[16,[[7,[48]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[48,9],10],[[48,9],10],[76,48],[77,48],[78,48],[[]],[21,48],[79,48],[80,48],[81,48],[[]],[82],[[],74],[[],7],[[],7],[[],15],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[83,83],[84,84],[85,85],[47,47],[86,86],[46,46],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[],86],[[83,83],8],[[84,84],8],[[85,85],8],[[47,47],8],[[86,86],8],[[77,77],8],[[83,9],10],[[84,9],10],[[85,9],10],[[47,9],10],[[86,9],10],[[77,9],10],[[77,9],10],[[46,9],10],[[]],[[]],[[]],[8,85],[[]],[84,47],[[]],[[]],[[]],[[47,73],[[7,[86,77]]]],[83],[86],[84,74],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[84,8],[85,8],[86,8],0,[[86,86],[[12,[6]]]],[82],[47,8],0,[83,7],[84,7],[85,7],[47,7],[86,7],0,[[]],[[]],[[]],[[]],[[]],[[]],[[],74],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[18,[[7,[87,48]]]],[[[89,[[88,[35]]]],18],[[7,[87,48]]]],[[[90,[[88,[36]]]],18],[[7,[87,48]]]],[[[91,[[88,[36]]]],18],[[7,[87,48]]]],[[[93,[[88,[92]]]],18],[[7,[87,48]]]],[[[95,[[94,[35]]]],18],[[7,[87,48]]]],[[[96,[[94,[35]]]],18],[[7,[87,48]]]],[[[97,[[94,[36]]]],18],[[7,[87,48]]]],[[[98,[[94,[36]]]],18],[[7,[87,48]]]],[[[99,[[94,[36]]]],18],[[7,[87,48]]]],[[[100,[[94,[36]]]],18],[[7,[87,48]]]],[[[101,[[94,[92]]]],18],[[7,[87,48]]]],[[[102,[[94,[92]]]],18],[[7,[87,48]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[87,37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[37,18],[[7,[48]]]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],103],[[],22],[[26,27],[[7,[28,29]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[104,[[33,[32]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[23,[[7,[34]]]],[[],[[7,[34]]]],[24,[[7,[34]]]],[[],[[7,[34]]]],[[[106,[105,49]]],[[106,[105,49]]]],[22,22],[107,107],[104,104],[26,26],[108,108],[109,109],[110,110],[111,111],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[104,104],6],[[26,26],6],[[109,109],6],[[111,111],6],0,[[],107],[[[106,[49]]]],[[26,27],[[7,[28,29]]]],[[],[[7,[26]]]],[104,42],[[22,22],8],[[104,104],8],[[26,26],8],[[108,108],8],[[109,109],8],[[110,110],8],[[111,111],8],[[[113,[[0,[112,49]]]],9],10],[[22,9],10],[[107,9],10],[[78,9],10],[[78,9],10],[[104,9],[[7,[52]]]],[[104,9],[[7,[52]]]],[[26,9],[[7,[52]]]],[[26,9],[[7,[52]]]],[[108,9],[[7,[52]]]],[[108,9],[[7,[52]]]],[[109,9],[[7,[52]]]],[[110,9],[[7,[52]]]],[[111,9],[[7,[52]]]],[104,8],[[]],[114,[[115,[49]]]],[116,[[115,[49]]]],[[]],[[]],[[]],[[]],[[]],[21,78],[81,78],[[]],[28,26],[[]],[[]],[[]],[[]],[[]],[[26,103],[[113,[49]]]],[[108,103],[[113,[49]]]],[16,[[7,[26]]]],[16,[[7,[108]]]],[61,[[7,[104,21]]]],[26,[[12,[117]]]],[26,[[31,[117,30]]]],[[],[[7,[106]]]],[[],[[7,[106]]]],[[],[[7,[106]]]],[[],[[7,[106]]]],[[[115,[49]]],8],[26,8],[104],[26],[109],[111],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[26,118],[[],[[7,[113,78]]]],[[[12,[119]],117],[[7,[113,78]]]],[[106,[12,[119]],117],[[7,[113,78]]]],[106,[[7,[113,78]]]],[[[113,[49]]],[[7,[[113,[49]],78]]]],[26,[[7,[[113,[49]],78]]]],[108,[[7,[[113,[49]],78]]]],[[],[[7,[115,78]]]],[[[115,[49]]],[[7,[[115,[49]],78]]]],[106,[[7,[115,78]]]],[[[106,[49]]]],[26,[[31,[26,30]]]],[108,[[31,[108,30]]]],[[[115,[49]],18],[[12,[116]]]],[[[115,[49]],18,37],114],[26,8],[[],8],[22,8],[26,8],[108,8],[[],8],[22,8],[[],8],[22,8],[26,8],[26,8],0,0,0,[104,[[7,[66,21]]]],[[],103],[26,120],[23,[[12,[62]]]],[104,62],[104,62],[[103,103],103],[[],16],[[62,[31,[30]]],[[7,[104,21]]]],[26,62],0,0,[23,[[7,[21]]]],[[[113,[49]],103],[[113,[49]]]],[[104,104],[[12,[6]]]],[[26,26],[[12,[6]]]],[[109,109],[[12,[6]]]],[[111,111],[[12,[6]]]],[[],62],0,[82],[104,[[7,[21]]]],[104,[[7,[[31,[[31,[2,30]],30]],21]]]],[104,62],[26,7],[[],72],[104,24],[[],103],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[108,37],[[7,[26,121]]]],[[],74],[[],74],[[],74],[[],74],[23,[[7,[21]]]],[23,[[7,[21]]]],[104,[[7,[104,75]]]],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],[[12,[41]]]],[[],[[12,[122]]]],[62,[[12,[14]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[123,123],123],[[124,1,125,[127,[126]]]],0,[124,[[73,[1,[0,[128,105]]]]]],[[129,129]],[[124,130,27],[[7,[131]]]],[[124,130,27,132],[[7,[133]]]],[[124,134]],[[124,[136,[135]]],[[7,[131]]]],[124,137],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[124,138],[[7,[[141,[139,140]],142]]]],[124,[[141,[139,143]]]],[[124,144],[[7,[41,145]]]],[[124,144],[[7,[122,145]]]],[[124,144]],0,0,[124,146],[123,123],[135,135],[129,129],[[]],[[]],[[]],0,[124,[[147,[8]]]],0,[[],123],[[],135],[[],129],[148],[[124,1],[[12,[27]]]],[[124,50],12],[[124,1],74],[[],[[7,[123]]]],[[],[[7,[129]]]],[[123,123],8],[[129,129],8],[[148,148],8],0,0,[[124,149,150],[[7,[8,151]]]],[[123,9],[[7,[52]]]],[[123,9],[[7,[52]]]],[[124,9],10],[[135,9],10],[[129,9],10],[[148,9],10],[[148,9],10],[[152,9],10],[[152,9],10],[[153,9],10],[[153,9],10],[[154,9],10],[[154,9],10],[[155,9],10],[[155,9],10],[[156,9],10],[[156,9],10],[[]],[[]],[[[157,[1]]],135],[158,135],[[]],[[[161,[159,[160,[1]]]]],129],[162,129],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[124,123],[[124,1],63],[[124,3,[12,[163]],8],[[7,[164,165]]]],[[124,1],[[127,[45]]]],[[124,138],[[12,[[166,[[127,[144]],159]]]]]],[[124,11],[[12,[3]]]],0,0,0,0,[[124,132],[[7,[8,167]]]],[[124,144,168],[[7,[8,155]]]],[[124,11,14]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[50,8],[129,8],[[124,50],8],0,[124,128],0,[124,169],[124,128],[124,128],[[124,1],170],[[[0,[[171,[129]],172,173]]],[[7,[124,153]]]],[124,174],[[124,1,27],8],[124,18],0,[[175,[12,[175]],[0,[[171,[129]],172,173]],18],[[7,[124,152]]]],[[175,[12,[175]],18],[[7,[124,48]]]],[[175,[12,[175]],18,176],[[7,[124,48]]]],[[175,[12,[175]],[0,[[171,[129]],172,173]],18],[[7,[124,154]]]],[[175,[12,[175]],[0,[[171,[129]],172,173]],18,176],[[7,[124,154]]]],[[175,[12,[175]],[0,[[171,[129]],172,173]],18,176],[[7,[124,152]]]],[[124,1],27],[[124,1],[[147,[148]]]],[[124,1,27],148],[[124,1],[[7,[[12,[47]],48]]]],[82],[82],[82],[82],[82],[[124,1],[[12,[63]]]],[[124,1,27],[[147,[128]]]],[[124,1],[[147,[148]]]],[124,37],[[124,144]],[123,7],[129,7],[[124,149,150],[[7,[8,151]]]],0,[124,177],[124,129],[124,[[178,[1]]]],[124,179],[[]],[[]],[[]],[[],74],[[],74],[[],74],[[],74],[[],74],[[],74],[[],74],[123,180],[124,128],0,[123,180],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],0,[124,137],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[124,1],[[0,[128,105]]]],[[124,1,27],8],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[12,18,37],[[7,[74,48]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[181,181],[182,182],[183,183],[[]],[[]],[[]],[[[31,[4]],[31,[4]],122,41,50],[[7,[184,185]]]],[[181,[31,[4]],[31,[4]],122,41,50],[[7,[184,185]]]],[[182,[31,[4]],[31,[4]],122,41,50],[[7,[184,185]]]],[[183,[31,[4]],[31,[4]],122,41,50],[[7,[184,185]]]],[[41,122,50],186],[[],181],[[],182],[[],183],0,0,[[185,9],10],[[185,9],10],[[186,9],10],[[184,9],10],[[181,9],10],[[182,9],10],[[183,9],10],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[184,41],[41,183],[82],0,[184,41],[[]],[[]],[[]],[[],74],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[187,187],[[]],[[187,9],10],[[187,9],10],[[165,9],10],[[165,9],10],[[142,9],10],[[142,9],10],[[]],[187,165],[48,165],[77,165],[188,165],[[]],[185,165],[[]],[[]],[[]],[[]],[82],[82],[82],[[]],[[],74],[[],74],[[],74],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[189,[[12,[74]]]],[189,74],[[],[[7,[189]]]],[[124,16,8],[[7,[189,16]]]],[[189,9],10],[[189,9],10],[[]],[16,[[7,[189]]]],[[]],0,[189,7],[[],74],[[],7],[[],7],[[],15],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[45,190,125,[127,[126]]],[[12,[[127,[126]]]]]],0,0,[[45,37],191],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[191,17,37],45],[190,190],[192,192],[[[194,[[0,[105,193,112,105]]]]],[[194,[[0,[105,193,112,105]]]]]],[125,125],[45,45],[150,150],[195,195],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[190,190],6],[[125,125],6],[[],125],[[],45],[[],150],[[],195],[[[194,[[0,[193,112,105]]]]]],[[],[[12,[108]]]],[[[194,[196]]],[[12,[108]]]],[[[194,[[197,[116]]]]],[[12,[108]]]],[[[194,[[198,[116]]]]],[[12,[108]]]],[[190,190],8],[[192,192],8],[[125,125],8],[[195,195],8],[[45,190],[[12,[127]]]],[[190,9],10],[[151,9],10],[[151,9],10],[[192,9],10],[[[194,[[0,[112,193,112,105]]]],9],10],[[125,9],10],[[45,9],10],[[150,9],10],[[195,9],10],[[]],[199,190],[120,190],[[]],[200,151],[[]],[[]],[[]],[[]],[[]],[[]],[190],[37,190],[[[194,[196]],37],190],[[[194,[[198,[116]]]],37],190],[[[194,[[197,[116]]]],37],190],[45,[[31,[190]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[0,[193,112,105]],192],[[194,[[0,[193,112,105]]]]]],[[],45],[[190,190],[[12,[6]]]],[[125,125],[[12,[6]]]],[82],[[45,190,125],[[12,[[127,[126]]]]]],0,0,[[149,62,150,37],[[7,[151]]]],[[[194,[[198,[116]]]],149,62,150,37],[[7,[151]]]],[[[194,[196]],149,62,150,37],[[7,[151]]]],[[[194,[[197,[116]]]],149,62,150,37],[[7,[151]]]],[[149,150,37],[[7,[151]]]],[[149,150,37],[[7,[151]]]],0,[45,[[31,[127]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],74],0,0,[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[141,[201,143]]],[[141,[201,143]]]],[[141,11,164,62],[[7,[141,202]]]],[[141,11,164,62,13],[[7,[141,202]]]],[141,141],[[[141,[201,143]],42,180],[[141,[201,143]]]],[[141,11],141],[[141,11],[[7,[141,203]]]],[141,[[7,[141,203]]]],[[141,8],141],[[[141,[139,140]],42],[[7,[[141,[139,140]],204]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[141,205],141],[143,143],[140,140],[[[141,[105]]],[[141,[105]]]],[206,206],[205,205],[[]],[[]],[[]],[[]],[[]],[[206,206],6],[[205,205],6],[[141,201],[[141,[201]]]],[[141,27],141],[[],143],[[],140],[[],206],[[],205],[141,141],[[[141,[201,143]],42],[[141,[201,143]]]],[141,141],[141,141],[[141,13],141],[[206,206],8],[[205,205],8],[[141,41],141],[[141,122],141],[[[141,[201]]],[[7,[149,165]]]],[[143,9],10],[[140,9],10],[[[141,[112,112]],9],10],[[203,9],10],[[203,9],10],[[202,9],10],[[202,9],10],[[204,9],10],[[204,9],10],[[206,9],10],[[205,9],10],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[206],[205],[141,141],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[141,141],[[141,207],141],[141,141],[141,141],[[141,206],141],[[206,206],[[12,[6]]]],[[205,205],[[12,[6]]]],[[141,[73,[74,[31,[62]]]],1],141],[82],[82],[82],[[[141,[201,143]],31],[[141,[201,143]]]],[[141,163],141],[[206,144]],[[]],[[]],[[]],[[]],[[]],[[],74],[[],74],[[],74],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[141,[31,[11]]],141],[[141,208],141],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0],"p":[[4,"KeychainKind"],[15,"u8"],[3,"LocalOutput"],[3,"WeightedUtxo"],[4,"Utxo"],[4,"Ordering"],[4,"Result"],[15,"bool"],[3,"Formatter"],[6,"Result"],[3,"OutPoint"],[4,"Option"],[3,"Sequence"],[3,"TxOut"],[3,"TypeId"],[15,"str"],[4,"Descriptor"],[4,"Network"],[4,"NetworkChecked"],[3,"Address"],[4,"Error"],[4,"ScriptContextEnum"],[3,"Miniscript"],[4,"Terminal"],[4,"Tree"],[4,"DescriptorPublicKey"],[15,"u32"],[3,"DefiniteDescriptorKey"],[4,"ConversionError"],[3,"Global"],[3,"Vec"],[4,"Placeholder"],[3,"Satisfaction"],[4,"ScriptContextError"],[4,"Legacy"],[4,"Segwitv0"],[3,"Secp256k1"],[3,"PublicKey"],[4,"DescriptorType"],[3,"DescriptorId"],[15,"u64"],[3,"ScriptBuf"],[3,"ExtParams"],[4,"AnalysisError"],[3,"SignersContainer"],[4,"BuildSatisfaction"],[3,"Policy"],[4,"Error"],[8,"ScriptContext"],[3,"Script"],[3,"Range"],[3,"Error"],[3,"Pkh"],[3,"Bare"],[3,"Wsh"],[3,"Sh"],[3,"Tr"],[3,"Wpkh"],[3,"Type"],[3,"ExtData"],[3,"Tree"],[15,"usize"],[6,"ExtendedDescriptor"],[3,"Iter"],[3,"PkIter"],[4,"Policy"],[4,"LiftError"],[4,"BareCtx"],[4,"TapTree"],[3,"Plan"],[3,"TxIn"],[4,"SigType"],[3,"BTreeMap"],[3,"String"],[4,"TranslateErr"],[4,"HexToBytesError"],[4,"PolicyError"],[4,"KeyError"],[4,"Error"],[4,"Error"],[4,"Error"],[3,"Demand"],[4,"PkOrF"],[4,"SatisfiableItem"],[4,"Satisfaction"],[3,"Condition"],[6,"DescriptorTemplateOut"],[8,"IntoDescriptorKey"],[3,"P2Pkh"],[3,"P2Wpkh_P2Sh"],[3,"P2Wpkh"],[4,"Tap"],[3,"P2TR"],[8,"DerivableKey"],[3,"Bip44"],[3,"Bip44Public"],[3,"Bip49"],[3,"Bip49Public"],[3,"Bip84"],[3,"Bip84Public"],[3,"Bip86"],[3,"Bip86Public"],[6,"ValidNetworks"],[3,"SortedMultiVec"],[8,"Clone"],[3,"GeneratedKey"],[3,"PrivateKeyGenerateOptions"],[4,"DescriptorSecretKey"],[3,"SinglePub"],[3,"SinglePriv"],[4,"SinglePubKey"],[8,"Debug"],[4,"DescriptorKey"],[3,"Xpub"],[4,"ExtendedKey"],[3,"Xpriv"],[3,"DerivationPath"],[3,"Assets"],[6,"KeySource"],[3,"Fingerprint"],[3,"DescriptorKeyParseError"],[3,"FeeRate"],[3,"Balance"],[3,"Wallet"],[3,"SignerOrdering"],[8,"TransactionSigner"],[3,"Arc"],[8,"Iterator"],[3,"ChangeSet"],[3,"Block"],[3,"CannotConnectError"],[3,"BlockId"],[4,"ApplyHeaderError"],[8,"IntoIterator"],[3,"Update"],[8,"Into"],[3,"TxGraph"],[3,"Txid"],[6,"DefaultCoinSelectionAlgorithm"],[3,"BumpFee"],[3,"TxBuilder"],[4,"BuildFeeBumpError"],[3,"CreateTx"],[3,"Transaction"],[4,"CalculateFeeError"],[3,"CheckPointIter"],[6,"Result"],[3,"AddressInfo"],[3,"Psbt"],[3,"SignOptions"],[4,"SignerError"],[4,"NewError"],[4,"LoadError"],[4,"NewOrLoadError"],[4,"InsertTxError"],[4,"ApplyBlockError"],[3,"FullScanResult"],[3,"SyncResult"],[3,"ConfirmationTimeHeightAnchor"],[3,"ChangeSet"],[3,"ChangeSet"],[6,"ChangeSet"],[3,"PsbtSighashType"],[3,"Input"],[4,"CreateTxError"],[3,"CanonicalTx"],[3,"AlterCheckPointError"],[4,"ConfirmationTime"],[3,"CheckPoint"],[8,"DoubleEndedIterator"],[8,"PersistBackend"],[8,"Send"],[8,"Sync"],[3,"LocalChain"],[8,"IntoWalletDescriptor"],[3,"BlockHash"],[3,"KeychainTxOutIndex"],[3,"FullScanRequest"],[3,"SyncRequest"],[3,"Amount"],[3,"LargestFirstCoinSelection"],[3,"OldestFirstCoinSelection"],[3,"BranchAndBoundCoinSelection"],[3,"CoinSelectionResult"],[4,"Error"],[4,"Excess"],[4,"MiniscriptPsbtError"],[4,"Error"],[3,"FullyNodedExport"],[4,"SignerId"],[6,"KeyMap"],[4,"SignerContext"],[8,"Sized"],[3,"SignerWrapper"],[4,"TapLeavesOptions"],[3,"PrivateKey"],[3,"DescriptorXKey"],[3,"DescriptorMultiXKey"],[3,"Hash"],[4,"Error"],[8,"CoinSelectionAlgorithm"],[4,"AddForeignUtxoError"],[4,"AddUtxoError"],[4,"AllowShrinkingError"],[4,"ChangeSpendPolicy"],[4,"TxOrdering"],[4,"LockTime"],[15,"i32"],[13,"Foreign"],[8,"ExtractPolicy"],[13,"PsbtTimelocks"],[13,"Complete"],[13,"Partial"],[13,"PartialComplete"],[13,"Sha256Preimage"],[13,"Hash256Preimage"],[13,"Ripemd160Preimage"],[13,"Hash160Preimage"],[13,"Thresh"],[13,"Multisig"],[13,"AbsoluteTimelock"],[13,"RelativeTimelock"],[8,"DescriptorTemplate"],[8,"GeneratableKey"],[8,"ExtScriptContext"],[8,"GeneratableDefaultOptions"],[8,"PsbtUtils"],[8,"IsDust"],[13,"UnexpectedConnectedToHash"],[13,"ConfirmationHeightCannotBeGreaterThanTip"],[13,"LoadedGenesisDoesNotMatch"],[13,"LoadedNetworkDoesNotMatch"],[13,"LoadedDescriptorDoesNotMatch"],[13,"InsufficientFunds"],[13,"Change"],[13,"NoChange"],[13,"InsufficientFunds"],[13,"RbfSequenceCsv"],[13,"LockTime"],[13,"FeeTooLow"],[13,"FeeRateTooLow"],[8,"SignerCommon"],[8,"InputSigner"],[13,"Tap"],[13,"InvalidTxid"]]},\
"example_bitcoind_rpc_polling":{"doc":"","t":[13,17,6,17,17,17,4,13,17,13,3,4,17,13,13,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,12,12,12,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,12,12],"n":["Block","CHANNEL_BOUND","ChangeSet","DB_COMMIT_DELAY","DB_MAGIC","DB_PATH","Emission","Live","MEMPOOL_EMIT_DELAY","Mempool","RpcArgs","RpcCommands","STDOUT_PRINT_DELAY","Sync","Tip","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","await_flag","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","fallback_height","fmt","fmt","fmt","from","from","from","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","has_subcommand","into","into","into","main","new_client","rpc_cookie","rpc_password","rpc_user","start_ctrlc_handler","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","url","vzip","vzip","vzip","rpc_args","rpc_args"],"q":["example_bitcoind_rpc_polling","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","example_bitcoind_rpc_polling::RpcCommands",""],"d":["","The mpsc channel bound for emissions from <code>Emitter</code>.","","Delay for committing to persistence.","","","","Sync by having the emitter logic in a separate thread","Delay between mempool emissions.","","","","Delay for printing status to stdout.","Syncs local state with remote state via RPC (starting from …","","","","","","","","","","","","","","","","","Starting block height to fallback to if no point of …","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","","","RPC auth cookie file","RPC auth password","RPC auth username","","","","","","","","","","","","","","","","","RPC URL","","","","",""],"i":[7,0,0,0,0,0,0,6,0,7,0,0,0,6,7,5,5,6,6,0,7,5,6,7,5,6,5,6,5,6,5,7,5,6,7,5,6,5,6,5,6,6,7,5,6,0,5,5,5,5,0,5,6,7,5,6,7,5,6,7,5,6,5,6,5,6,5,7,5,6,18,19],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[1,1],[1,1],[1,1],[1,1],[[2,3],4],[[]],[[]],[[]],[[]],[[]],[[]],[5,5],[6,6],[[]],[[]],0,[[7,8],9],[[5,8],9],[[6,8],9],[[]],[[]],[[]],[10,[[12,[5,11]]]],[10,[[12,[6,11]]]],[10,[[12,[5,11]]]],[10,[[12,[6,11]]]],[13,4],[[]],[[]],[[]],[[],14],[5,[[14,[15]]]],0,0,0,[[],[[16,[2]]]],[[]],[[]],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],17],[[],17],[[],17],[[5,10],[[12,[11]]]],[[6,10],[[12,[11]]]],[[5,10],[[12,[11]]]],[[6,10],[[12,[11]]]],0,[[]],[[]],[[]],0,0],"p":[[6,"Command"],[3,"AtomicBool"],[3,"Duration"],[15,"bool"],[3,"RpcArgs"],[4,"RpcCommands"],[4,"Emission"],[3,"Formatter"],[6,"Result"],[3,"ArgMatches"],[3,"Error"],[4,"Result"],[15,"str"],[6,"Result"],[3,"Client"],[3,"Arc"],[3,"TypeId"],[13,"Sync"],[13,"Live"]]},\
"example_cli":{"doc":"","t":[13,4,3,13,13,13,4,4,3,13,13,3,13,4,6,6,13,13,13,13,13,13,13,6,13,13,13,4,2,12,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,2,11,11,11,11,11,11,11,11,11,11,11,12,12,5,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,12,12,12,5,12,11,11,11,11,11,11,11,11,11,11,12,12,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12],"n":["Address","AddressCmd","Args","Balance","BranchAndBound","ChainSpecific","CoinSelectionAlgo","Commands","CreateTxChange","External","Index","Init","Internal","Keychain","KeychainChangeSet","KeychainTxGraph","LargestFirst","List","List","New","NewestFirst","Next","OldestFirst","PlannedUtxo","Send","SmallestFirst","TxOut","TxOutCmd","anyhow","args","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands","augment_subcommands","augment_subcommands_for_update","augment_subcommands_for_update","augment_subcommands_for_update","bdk_file_store","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change_descriptor","change_keychain","clap","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","command","cp_limit","create_tx","db","db_path","default","descriptor","deserialize","eq","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","from_str","handle_commands","has_subcommand","has_subcommand","has_subcommand","index","index","index_changeset","init","init_changeset","into","into","into","into","into","into","into","into","into_app","into_app_for_update","keymap","network","partial_cmp","planned_utxos","serialize","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","change","addr_cmd","address","chain_specific","coin_select","txout_cmd","value","confirmed","spent","unconfirmed","unspent"],"q":["example_cli","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","example_cli::AddressCmd","example_cli::Commands","","","","","","example_cli::TxOutCmd","","",""],"d":["Address generation and inspection.","","","Get the wallet balance.","","","","","","","Get last revealed address index for each keychain.","The initial state returned by <code>init</code>.","","","","","","List all addresses","List transaction outputs.","Get a new address regardless of the existing unused …","","Get the next unused address.","","","Send coins to an address.","","TxOut related commands.","","","Arguments parsed by the cli.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Persistence backend.","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","Keychain-txout index.","","Parses command line arguments and initializes all …","Initial changeset.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","","","Descriptor keymap.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","List change addresses","","Destination address","","","","Amount to send in satoshis","Return only confirmed outputs.","Return only spent outputs.","Return only unconfirmed outputs.","Return only unspent outputs."],"i":[5,0,0,5,6,5,0,0,0,9,7,0,9,0,0,0,6,7,8,7,6,7,6,0,5,6,5,0,0,28,22,22,5,7,8,5,7,8,0,37,28,22,5,6,7,8,9,37,28,22,5,6,7,8,9,22,37,0,5,6,7,8,9,5,6,7,8,9,9,22,22,0,28,22,6,22,9,9,9,5,6,6,7,8,9,9,37,28,22,5,6,7,8,9,22,5,7,8,22,5,7,8,6,0,5,7,8,37,28,37,0,28,37,28,22,5,6,7,8,9,22,22,28,22,9,0,9,5,6,7,8,9,6,9,37,28,22,5,6,7,8,9,37,28,22,5,6,7,8,9,37,28,22,5,6,7,8,9,22,5,7,8,22,5,7,8,37,28,22,5,6,7,8,9,38,39,40,40,40,41,40,42,42,42,42],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,[[[5,[[0,[2,3]],[0,[2,4]]]]],[[5,[[0,[2,3]],[0,[2,4]]]]]],[6,6],[7,7],[8,8],[9,9],[[]],[[]],[[]],[[]],[[]],[[9,9],10],0,0,[[11,12,6,13,14],15],0,0,[[],6],0,[[],[[16,[9]]]],[[9,9],17],[[],17],[[[5,[[0,[18,3]],[0,[18,4]]]],19],20],[[6,19],20],[[6,19],20],[[7,19],20],[[8,19],20],[[9,19],20],[[9,19],20],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[21,[[16,[[22,[3,4]],23]]]],[21,[[16,[[5,[3,4]],23]]]],[21,[[16,[7,23]]]],[21,[[16,[8,23]]]],[21,[[16,[[22,[3,4]],23]]]],[21,[[16,[[5,[3,4]],23]]]],[21,[[16,[7,23]]]],[21,[[16,[8,23]]]],[24,[[16,[6]]]],[[25,25,25,12,26,27,[5,[3,4]]],15],[24,17],[24,17],[24,17],0,0,0,[24,[[15,[[28,[3,4]]]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],0,0,[[9,9],[[29,[10]]]],[[11,30],[[16,[[34,[[33,[[0,[2,31]],32]]]]]]]],[9,16],[[]],[[]],[[]],[[]],[[]],[[],35],[[],35],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],36],[[],36],[[],36],[[],36],[[],36],[[],36],[[],36],[[],36],[[[22,[3,4]],21],[[16,[23]]]],[[[5,[3,4]],21],[[16,[23]]]],[[7,21],[[16,[23]]]],[[8,21],[[16,[23]]]],[[[22,[3,4]],21],[[16,[23]]]],[[[5,[3,4]],21],[[16,[23]]]],[[7,21],[[16,[23]]]],[[8,21],[[16,[23]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0],"p":[[6,"Command"],[8,"Clone"],[8,"Subcommand"],[8,"Args"],[4,"Commands"],[4,"CoinSelectionAlgo"],[4,"AddressCmd"],[4,"TxOutCmd"],[4,"Keychain"],[4,"Ordering"],[6,"KeychainTxGraph"],[3,"BTreeMap"],[3,"Address"],[15,"u64"],[6,"Result"],[4,"Result"],[15,"bool"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[3,"ArgMatches"],[3,"Args"],[3,"Error"],[15,"str"],[3,"Mutex"],[4,"Network"],[8,"FnOnce"],[3,"Init"],[4,"Option"],[3,"Assets"],[8,"CanDerive"],[8,"Anchor"],[6,"PlannedUtxo"],[3,"Vec"],[3,"String"],[3,"TypeId"],[3,"CreateTxChange"],[13,"List"],[13,"Address"],[13,"Send"],[13,"TxOut"],[13,"List"]]},\
"example_electrum":{"doc":"","t":[6,17,17,3,4,13,3,13,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12],"n":["ChangeSet","DB_MAGIC","DB_PATH","ElectrumArgs","ElectrumCommands","Scan","ScanOptions","Sync","augment_args","augment_args","augment_args_for_update","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","batch_size","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","client","clone","clone","clone","clone_into","clone_into","clone_into","electrum_args","electrum_url","eq","fmt","fmt","fmt","from","from","from","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","has_subcommand","into","into","into","into_app","into_app_for_update","main","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","vzip","vzip","vzip","all_spks","electrum_args","electrum_args","scan_options","scan_options","stop_gap","unconfirmed","unused_spks","utxos"],"q":["example_electrum","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","example_electrum::ElectrumCommands","","","","","","","",""],"d":["","","","","","Scans the addresses in the wallet using the electrum API.","","Scans particular addresses using the electrum API.","","","","","","","Set batch size for each script_history call to electrum …","","","","","","","","","","","","","","","The electrum url to use to connect to. If not provided it …","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","","","","","","","","","","","","","","","","","","","","","","","","","Scan every address that you have derived.","","","","","When a gap this large has been found for a keychain, it …","Scan unconfirmed transactions for updates.","Scan all the unused addresses.","Scan unspent outpoints for spends or changes to …"],"i":[0,0,0,0,0,6,0,6,2,7,2,7,6,6,7,6,2,7,6,2,7,2,6,2,7,6,2,7,6,2,7,6,2,7,6,2,7,6,2,7,6,2,7,6,6,2,7,7,7,0,6,2,7,6,2,7,6,2,7,6,2,7,6,2,7,6,2,7,6,2,7,16,17,16,17,16,17,16,16,16],"f":[0,0,0,0,0,0,0,0,[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],0,[[]],[[]],[[]],[[]],[[]],[[]],[[2,3],[[5,[4]]]],[6,6],[2,2],[7,7],[[]],[[]],[[]],[6,2],0,[[7,7],8],[[6,9],10],[[2,9],10],[[7,9],10],[[]],[[]],[[]],[11,[[13,[6,12]]]],[11,[[13,[2,12]]]],[11,[[13,[7,12]]]],[11,[[13,[6,12]]]],[11,[[13,[2,12]]]],[11,[[13,[7,12]]]],[14,8],[[]],[[]],[[]],[[],1],[[],1],[[],5],[[]],[[]],[[]],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],15],[[],15],[[],15],[[6,11],[[13,[12]]]],[[2,11],[[13,[12]]]],[[7,11],[[13,[12]]]],[[6,11],[[13,[12]]]],[[2,11],[[13,[12]]]],[[7,11],[[13,[12]]]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0],"p":[[6,"Command"],[3,"ElectrumArgs"],[4,"Network"],[3,"Client"],[6,"Result"],[4,"ElectrumCommands"],[3,"ScanOptions"],[15,"bool"],[3,"Formatter"],[6,"Result"],[3,"ArgMatches"],[3,"Error"],[4,"Result"],[15,"str"],[3,"TypeId"],[13,"Sync"],[13,"Scan"]]},\
"wallet_electrum_example":{"doc":"","t":[17,17,17,17,5],"n":["BATCH_SIZE","DB_MAGIC","SEND_AMOUNT","STOP_GAP","main"],"q":["wallet_electrum_example","","","",""],"d":["","","","",""],"i":[0,0,0,0,0],"f":[0,0,0,0,[[],[[2,[1]]]]],"p":[[3,"Error"],[4,"Result"]]},\
"wallet_esplora_async":{"doc":"","t":[17,17,17,17,5],"n":["DB_MAGIC","PARALLEL_REQUESTS","SEND_AMOUNT","STOP_GAP","main"],"q":["wallet_esplora_async","","","",""],"d":["","","","",""],"i":[0,0,0,0,0],"f":[0,0,0,0,[[],[[2,[1]]]]],"p":[[3,"Error"],[4,"Result"]]},\
"wallet_esplora_blocking":{"doc":"","t":[17,17,17,17,5],"n":["DB_MAGIC","PARALLEL_REQUESTS","SEND_AMOUNT","STOP_GAP","main"],"q":["wallet_esplora_blocking","","","",""],"d":["","","","",""],"i":[0,0,0,0,0],"f":[0,0,0,0,[[],[[2,[1]]]]],"p":[[3,"Error"],[4,"Result"]]},\
-"wallet_rpc":{"doc":"","t":[3,13,17,4,13,13,11,11,11,11,11,11,12,11,12,12,11,11,11,11,11,11,11,11,11,11,5,12,12,12,12,12,11,11,11,11,11,11,11,11,12,11,11],"n":["Args","Block","DB_MAGIC","Emission","Mempool","SigTerm","augment_args","augment_args_for_update","borrow","borrow","borrow_mut","borrow_mut","change_descriptor","client","db_path","descriptor","fmt","fmt","from","from","from_arg_matches","from_arg_matches_mut","into","into","into_app","into_app_for_update","main","network","rpc_cookie","rpc_pass","rpc_user","start_height","try_from","try_from","try_into","try_into","type_id","type_id","update_from_arg_matches","update_from_arg_matches_mut","url","vzip","vzip"],"q":["wallet_rpc","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Bitcoind RPC example using <code>bdk::Wallet</code>.","","","","","","","","","","","","Wallet change descriptor","","Where to store wallet data","Wallet descriptor","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","","","","Bitcoin network to connect to","RPC auth cookie file","RPC auth password","RPC auth username","Earliest block height to start sync from","","","","","","","","","RPC URL","",""],"i":[0,7,0,0,7,7,2,2,2,7,2,7,2,2,2,2,2,7,2,7,2,2,2,7,2,2,0,2,2,2,2,2,2,7,2,7,2,7,2,2,2,2,7],"f":[0,0,0,0,0,0,[1,1],[1,1],[[]],[[]],[[]],[[]],0,[2,[[4,[3]]]],0,0,[[2,5],6],[[7,5],6],[[]],[[]],[8,[[10,[2,9]]]],[8,[[10,[2,9]]]],[[]],[[]],[[],1],[[],1],[[],4],0,0,0,0,0,[[],10],[[],10],[[],10],[[],10],[[],11],[[],11],[[2,8],[[10,[9]]]],[[2,8],[[10,[9]]]],0,[[]],[[]]],"p":[[6,"Command"],[3,"Args"],[3,"Client"],[6,"Result"],[3,"Formatter"],[6,"Result"],[4,"Emission"],[3,"ArgMatches"],[3,"Error"],[4,"Result"],[3,"TypeId"]]}\
+"wallet_rpc":{"doc":"","t":[3,13,17,4,13,13,11,11,11,11,11,11,12,11,12,12,11,11,11,11,11,11,11,11,11,11,5,12,12,12,12,12,11,11,11,11,11,11,11,11,12,11,11],"n":["Args","Block","DB_MAGIC","Emission","Mempool","SigTerm","augment_args","augment_args_for_update","borrow","borrow","borrow_mut","borrow_mut","change_descriptor","client","db_path","descriptor","fmt","fmt","from","from","from_arg_matches","from_arg_matches_mut","into","into","into_app","into_app_for_update","main","network","rpc_cookie","rpc_pass","rpc_user","start_height","try_from","try_from","try_into","try_into","type_id","type_id","update_from_arg_matches","update_from_arg_matches_mut","url","vzip","vzip"],"q":["wallet_rpc","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Bitcoind RPC example using <code>bdk_wallet::Wallet</code>.","","","","","","","","","","","","Wallet change descriptor","","Where to store wallet data","Wallet descriptor","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","","","","Bitcoin network to connect to","RPC auth cookie file","RPC auth password","RPC auth username","Earliest block height to start sync from","","","","","","","","","RPC URL","",""],"i":[0,7,0,0,7,7,2,2,2,7,2,7,2,2,2,2,2,7,2,7,2,2,2,7,2,2,0,2,2,2,2,2,2,7,2,7,2,7,2,2,2,2,7],"f":[0,0,0,0,0,0,[1,1],[1,1],[[]],[[]],[[]],[[]],0,[2,[[4,[3]]]],0,0,[[2,5],6],[[7,5],6],[[]],[[]],[8,[[10,[2,9]]]],[8,[[10,[2,9]]]],[[]],[[]],[[],1],[[],1],[[],4],0,0,0,0,0,[[],10],[[],10],[[],10],[[],10],[[],11],[[],11],[[2,8],[[10,[9]]]],[[2,8],[[10,[9]]]],0,[[]],[[]]],"p":[[6,"Command"],[3,"Args"],[3,"Client"],[6,"Result"],[3,"Formatter"],[6,"Result"],[4,"Emission"],[3,"ArgMatches"],[3,"Error"],[4,"Result"],[3,"TypeId"]]}\
}');
if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)};
if (typeof exports !== 'undefined') {exports.searchIndex = searchIndex};
-<!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="Settings of Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc settings</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="./static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="./static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="./bdk_esplora/index.html"><div class="logo-container"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="./bdk_esplora/index.html"><div class="logo-container"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location">Settings</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Rustdoc settings</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section>You need to enable Javascript be able to update your settings.</section></noscript><link rel="stylesheet" href="./static.files/settings-af96d9e2fc13e081.css"><script defer src="./static.files/settings-bebeae96e00e4617.js"></script></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="bdk_esplora" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+<!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="Settings of Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc settings</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="./static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="./static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="./static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="./static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="./static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="./static.files/storage-d43fa987303ecbbb.js"></script><script defer src="./static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="./static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="./static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="./static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="./static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="./bdk_testenv/index.html"><div class="logo-container"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="./bdk_testenv/index.html"><div class="logo-container"><img class="rust-logo" src="./static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location">Settings</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="./help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Rustdoc settings</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section>You need to enable Javascript be able to update your settings.</section></noscript><link rel="stylesheet" href="./static.files/settings-af96d9e2fc13e081.css"><script defer src="./static.files/settings-bebeae96e00e4617.js"></script></section></div></main><div id="rustdoc-vars" data-root-path="./" data-static-root-path="./static.files/" data-current-crate="bdk_testenv" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
var sourcesIndex = JSON.parse('{\
-"bdk":["",[["descriptor",[],["checksum.rs","dsl.rs","error.rs","mod.rs","policy.rs","template.rs"]],["keys",[],["mod.rs"]],["psbt",[],["mod.rs"]],["wallet",[],["coin_selection.rs","error.rs","export.rs","mod.rs","signer.rs","tx_builder.rs","utils.rs"]]],["lib.rs","types.rs"]],\
"bdk_bitcoind_rpc":["",[],["lib.rs"]],\
"bdk_chain":["",[["keychain",[],["txout_index.rs"]]],["chain_data.rs","chain_oracle.rs","descriptor_ext.rs","example_utils.rs","indexed_tx_graph.rs","keychain.rs","lib.rs","local_chain.rs","spk_client.rs","spk_iter.rs","spk_txout_index.rs","tx_data_traits.rs","tx_graph.rs"]],\
"bdk_coin_select":["",[],["bnb.rs","coin_selector.rs","lib.rs"]],\
"bdk_persist":["",[],["lib.rs","persist.rs"]],\
"bdk_testenv":["",[],["lib.rs"]],\
"bdk_tmp_plan":["",[],["lib.rs","plan_impls.rs","requirements.rs","template.rs"]],\
+"bdk_wallet":["",[["descriptor",[],["checksum.rs","dsl.rs","error.rs","mod.rs","policy.rs","template.rs"]],["keys",[],["mod.rs"]],["psbt",[],["mod.rs"]],["wallet",[],["coin_selection.rs","error.rs","export.rs","mod.rs","signer.rs","tx_builder.rs","utils.rs"]]],["lib.rs","types.rs"]],\
"example_bitcoind_rpc_polling":["",[],["main.rs"]],\
"example_cli":["",[],["lib.rs"]],\
"example_electrum":["",[],["main.rs"]],\
+++ /dev/null
-<!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="Source of the Rust file `crates/bdk/src/descriptor/checksum.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>checksum.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk/index.html">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
-<a href="#2" id="2">2</a>
-<a href="#3" id="3">3</a>
-<a href="#4" id="4">4</a>
-<a href="#5" id="5">5</a>
-<a href="#6" id="6">6</a>
-<a href="#7" id="7">7</a>
-<a href="#8" id="8">8</a>
-<a href="#9" id="9">9</a>
-<a href="#10" id="10">10</a>
-<a href="#11" id="11">11</a>
-<a href="#12" id="12">12</a>
-<a href="#13" id="13">13</a>
-<a href="#14" id="14">14</a>
-<a href="#15" id="15">15</a>
-<a href="#16" id="16">16</a>
-<a href="#17" id="17">17</a>
-<a href="#18" id="18">18</a>
-<a href="#19" id="19">19</a>
-<a href="#20" id="20">20</a>
-<a href="#21" id="21">21</a>
-<a href="#22" id="22">22</a>
-<a href="#23" id="23">23</a>
-<a href="#24" id="24">24</a>
-<a href="#25" id="25">25</a>
-<a href="#26" id="26">26</a>
-<a href="#27" id="27">27</a>
-<a href="#28" id="28">28</a>
-<a href="#29" id="29">29</a>
-<a href="#30" id="30">30</a>
-<a href="#31" id="31">31</a>
-<a href="#32" id="32">32</a>
-<a href="#33" id="33">33</a>
-<a href="#34" id="34">34</a>
-<a href="#35" id="35">35</a>
-<a href="#36" id="36">36</a>
-<a href="#37" id="37">37</a>
-<a href="#38" id="38">38</a>
-<a href="#39" id="39">39</a>
-<a href="#40" id="40">40</a>
-<a href="#41" id="41">41</a>
-<a href="#42" id="42">42</a>
-<a href="#43" id="43">43</a>
-<a href="#44" id="44">44</a>
-<a href="#45" id="45">45</a>
-<a href="#46" id="46">46</a>
-<a href="#47" id="47">47</a>
-<a href="#48" id="48">48</a>
-<a href="#49" id="49">49</a>
-<a href="#50" id="50">50</a>
-<a href="#51" id="51">51</a>
-<a href="#52" id="52">52</a>
-<a href="#53" id="53">53</a>
-<a href="#54" id="54">54</a>
-<a href="#55" id="55">55</a>
-<a href="#56" id="56">56</a>
-<a href="#57" id="57">57</a>
-<a href="#58" id="58">58</a>
-<a href="#59" id="59">59</a>
-<a href="#60" id="60">60</a>
-<a href="#61" id="61">61</a>
-<a href="#62" id="62">62</a>
-<a href="#63" id="63">63</a>
-<a href="#64" id="64">64</a>
-<a href="#65" id="65">65</a>
-<a href="#66" id="66">66</a>
-<a href="#67" id="67">67</a>
-<a href="#68" id="68">68</a>
-<a href="#69" id="69">69</a>
-<a href="#70" id="70">70</a>
-<a href="#71" id="71">71</a>
-<a href="#72" id="72">72</a>
-<a href="#73" id="73">73</a>
-<a href="#74" id="74">74</a>
-<a href="#75" id="75">75</a>
-<a href="#76" id="76">76</a>
-<a href="#77" id="77">77</a>
-<a href="#78" id="78">78</a>
-<a href="#79" id="79">79</a>
-<a href="#80" id="80">80</a>
-<a href="#81" id="81">81</a>
-<a href="#82" id="82">82</a>
-<a href="#83" id="83">83</a>
-<a href="#84" id="84">84</a>
-<a href="#85" id="85">85</a>
-<a href="#86" id="86">86</a>
-<a href="#87" id="87">87</a>
-<a href="#88" id="88">88</a>
-<a href="#89" id="89">89</a>
-<a href="#90" id="90">90</a>
-<a href="#91" id="91">91</a>
-<a href="#92" id="92">92</a>
-<a href="#93" id="93">93</a>
-<a href="#94" id="94">94</a>
-<a href="#95" id="95">95</a>
-<a href="#96" id="96">96</a>
-<a href="#97" id="97">97</a>
-<a href="#98" id="98">98</a>
-<a href="#99" id="99">99</a>
-<a href="#100" id="100">100</a>
-<a href="#101" id="101">101</a>
-<a href="#102" id="102">102</a>
-<a href="#103" id="103">103</a>
-<a href="#104" id="104">104</a>
-<a href="#105" id="105">105</a>
-<a href="#106" id="106">106</a>
-<a href="#107" id="107">107</a>
-<a href="#108" id="108">108</a>
-<a href="#109" id="109">109</a>
-<a href="#110" id="110">110</a>
-<a href="#111" id="111">111</a>
-<a href="#112" id="112">112</a>
-<a href="#113" id="113">113</a>
-<a href="#114" id="114">114</a>
-<a href="#115" id="115">115</a>
-<a href="#116" id="116">116</a>
-<a href="#117" id="117">117</a>
-<a href="#118" id="118">118</a>
-<a href="#119" id="119">119</a>
-<a href="#120" id="120">120</a>
-<a href="#121" id="121">121</a>
-<a href="#122" id="122">122</a>
-<a href="#123" id="123">123</a>
-<a href="#124" id="124">124</a>
-<a href="#125" id="125">125</a>
-<a href="#126" id="126">126</a>
-<a href="#127" id="127">127</a>
-<a href="#128" id="128">128</a>
-<a href="#129" id="129">129</a>
-<a href="#130" id="130">130</a>
-<a href="#131" id="131">131</a>
-<a href="#132" id="132">132</a>
-<a href="#133" id="133">133</a>
-<a href="#134" id="134">134</a>
-<a href="#135" id="135">135</a>
-<a href="#136" id="136">136</a>
-<a href="#137" id="137">137</a>
-<a href="#138" id="138">138</a>
-<a href="#139" id="139">139</a>
-<a href="#140" id="140">140</a>
-<a href="#141" id="141">141</a>
-<a href="#142" id="142">142</a>
-<a href="#143" id="143">143</a>
-<a href="#144" id="144">144</a>
-<a href="#145" id="145">145</a>
-<a href="#146" id="146">146</a>
-<a href="#147" id="147">147</a>
-</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-</span><span class="doccomment">//! Descriptor checksum
-//!
-//! This module contains a re-implementation of the function used by Bitcoin Core to calculate the
-//! checksum of a descriptor
-
-</span><span class="kw">use </span><span class="kw">crate</span>::descriptor::DescriptorError;
-<span class="kw">use </span>alloc::string::String;
-
-<span class="kw">const </span>INPUT_CHARSET: <span class="kw-2">&</span>[u8] = <span class="string">b"0123456789()[],'/*abcdefgh@:$%{}IJKLMNOPQRSTUVWXYZ&+-.;<=>?!^_|~ijklmnopqrstuvwxyzABCDEFGH`#\"\\ "</span>;
-<span class="kw">const </span>CHECKSUM_CHARSET: <span class="kw-2">&</span>[u8] = <span class="string">b"qpzry9x8gf2tvdw0s3jn54khce6mua7l"</span>;
-
-<span class="kw">fn </span>poly_mod(<span class="kw-2">mut </span>c: u64, val: u64) -> u64 {
- <span class="kw">let </span>c0 = c >> <span class="number">35</span>;
- c = ((c & <span class="number">0x7ffffffff</span>) << <span class="number">5</span>) ^ val;
- <span class="kw">if </span>c0 & <span class="number">1 </span>> <span class="number">0 </span>{
- c ^= <span class="number">0xf5dee51989
- </span>};
- <span class="kw">if </span>c0 & <span class="number">2 </span>> <span class="number">0 </span>{
- c ^= <span class="number">0xa9fdca3312
- </span>};
- <span class="kw">if </span>c0 & <span class="number">4 </span>> <span class="number">0 </span>{
- c ^= <span class="number">0x1bab10e32d
- </span>};
- <span class="kw">if </span>c0 & <span class="number">8 </span>> <span class="number">0 </span>{
- c ^= <span class="number">0x3706b1677a
- </span>};
- <span class="kw">if </span>c0 & <span class="number">16 </span>> <span class="number">0 </span>{
- c ^= <span class="number">0x644d626ffd
- </span>};
-
- c
-}
-
-<span class="doccomment">/// Compute the checksum bytes of a descriptor, excludes any existing checksum in the descriptor string from the calculation
-</span><span class="kw">pub fn </span>calc_checksum_bytes(<span class="kw-2">mut </span>desc: <span class="kw-2">&</span>str) -> <span class="prelude-ty">Result</span><[u8; <span class="number">8</span>], DescriptorError> {
- <span class="kw">let </span><span class="kw-2">mut </span>c = <span class="number">1</span>;
- <span class="kw">let </span><span class="kw-2">mut </span>cls = <span class="number">0</span>;
- <span class="kw">let </span><span class="kw-2">mut </span>clscount = <span class="number">0</span>;
-
- <span class="kw">let </span><span class="kw-2">mut </span>original_checksum = <span class="prelude-val">None</span>;
- <span class="kw">if let </span><span class="prelude-val">Some</span>(split) = desc.split_once(<span class="string">'#'</span>) {
- desc = split.<span class="number">0</span>;
- original_checksum = <span class="prelude-val">Some</span>(split.<span class="number">1</span>);
- }
-
- <span class="kw">for </span>ch <span class="kw">in </span>desc.as_bytes() {
- <span class="kw">let </span>pos = INPUT_CHARSET
- .iter()
- .position(|b| b == ch)
- .ok_or(DescriptorError::InvalidDescriptorCharacter(<span class="kw-2">*</span>ch))<span class="question-mark">? </span><span class="kw">as </span>u64;
- c = poly_mod(c, pos & <span class="number">31</span>);
- cls = cls * <span class="number">3 </span>+ (pos >> <span class="number">5</span>);
- clscount += <span class="number">1</span>;
- <span class="kw">if </span>clscount == <span class="number">3 </span>{
- c = poly_mod(c, cls);
- cls = <span class="number">0</span>;
- clscount = <span class="number">0</span>;
- }
- }
- <span class="kw">if </span>clscount > <span class="number">0 </span>{
- c = poly_mod(c, cls);
- }
- (<span class="number">0</span>..<span class="number">8</span>).for_each(|<span class="kw">_</span>| c = poly_mod(c, <span class="number">0</span>));
- c ^= <span class="number">1</span>;
-
- <span class="kw">let </span><span class="kw-2">mut </span>checksum = [<span class="number">0_u8</span>; <span class="number">8</span>];
- <span class="kw">for </span>j <span class="kw">in </span><span class="number">0</span>..<span class="number">8 </span>{
- checksum[j] = CHECKSUM_CHARSET[((c >> (<span class="number">5 </span>* (<span class="number">7 </span>- j))) & <span class="number">31</span>) <span class="kw">as </span>usize];
- }
-
- <span class="comment">// if input data already had a checksum, check calculated checksum against original checksum
- </span><span class="kw">if let </span><span class="prelude-val">Some</span>(original_checksum) = original_checksum {
- <span class="kw">if </span>original_checksum.as_bytes() != checksum {
- <span class="kw">return </span><span class="prelude-val">Err</span>(DescriptorError::InvalidDescriptorChecksum);
- }
- }
-
- <span class="prelude-val">Ok</span>(checksum)
-}
-
-<span class="doccomment">/// Compute the checksum of a descriptor, excludes any existing checksum in the descriptor string from the calculation
-</span><span class="kw">pub fn </span>calc_checksum(desc: <span class="kw-2">&</span>str) -> <span class="prelude-ty">Result</span><String, DescriptorError> {
- <span class="comment">// unsafe is okay here as the checksum only uses bytes in `CHECKSUM_CHARSET`
- </span>calc_checksum_bytes(desc).map(|b| <span class="kw">unsafe </span>{ String::from_utf8_unchecked(b.to_vec()) })
-}
-
-<span class="attr">#[cfg(test)]
-</span><span class="kw">mod </span>test {
- <span class="kw">use super</span>::<span class="kw-2">*</span>;
- <span class="kw">use </span><span class="kw">crate</span>::descriptor::calc_checksum;
- <span class="kw">use </span>assert_matches::assert_matches;
-
- <span class="comment">// test calc_checksum() function; it should return the same value as Bitcoin Core
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_calc_checksum() {
- <span class="kw">let </span>desc = <span class="string">"wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)"</span>;
- <span class="macro">assert_eq!</span>(calc_checksum(desc).unwrap(), <span class="string">"tqz0nc62"</span>);
-
- <span class="kw">let </span>desc = <span class="string">"pkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/44'/1'/0'/0/*)"</span>;
- <span class="macro">assert_eq!</span>(calc_checksum(desc).unwrap(), <span class="string">"lasegmfs"</span>);
- }
-
- <span class="comment">// test calc_checksum() function; it should return the same value as Bitcoin Core even if the
- // descriptor string includes a checksum hash
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_calc_checksum_with_checksum_hash() {
- <span class="kw">let </span>desc = <span class="string">"wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)#tqz0nc62"</span>;
- <span class="macro">assert_eq!</span>(calc_checksum(desc).unwrap(), <span class="string">"tqz0nc62"</span>);
-
- <span class="kw">let </span>desc = <span class="string">"pkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/44'/1'/0'/0/*)#lasegmfs"</span>;
- <span class="macro">assert_eq!</span>(calc_checksum(desc).unwrap(), <span class="string">"lasegmfs"</span>);
-
- <span class="kw">let </span>desc = <span class="string">"wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)#tqz0nc26"</span>;
- <span class="macro">assert_matches!</span>(
- calc_checksum(desc),
- <span class="prelude-val">Err</span>(DescriptorError::InvalidDescriptorChecksum)
- );
-
- <span class="kw">let </span>desc = <span class="string">"pkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/44'/1'/0'/0/*)#lasegmsf"</span>;
- <span class="macro">assert_matches!</span>(
- calc_checksum(desc),
- <span class="prelude-val">Err</span>(DescriptorError::InvalidDescriptorChecksum)
- );
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_calc_checksum_invalid_character() {
- <span class="kw">let </span>sparkle_heart = <span class="kw">unsafe </span>{ core::str::from_utf8_unchecked(<span class="kw-2">&</span>[<span class="number">240</span>, <span class="number">159</span>, <span class="number">146</span>, <span class="number">150</span>]) };
- <span class="kw">let </span>invalid_desc = <span class="macro">format!</span>(<span class="string">"wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcL{}fjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)"</span>, sparkle_heart);
-
- <span class="macro">assert_matches!</span>(
- calc_checksum(<span class="kw-2">&</span>invalid_desc),
- <span class="prelude-val">Err</span>(DescriptorError::InvalidDescriptorCharacter(invalid_char)) <span class="kw">if </span>invalid_char == sparkle_heart.as_bytes()[<span class="number">0</span>]
- );
- }
-}
-</code></pre></div>
-</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Source of the Rust file `crates/bdk/src/descriptor/dsl.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>dsl.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk/index.html">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
-<a href="#2" id="2">2</a>
-<a href="#3" id="3">3</a>
-<a href="#4" id="4">4</a>
-<a href="#5" id="5">5</a>
-<a href="#6" id="6">6</a>
-<a href="#7" id="7">7</a>
-<a href="#8" id="8">8</a>
-<a href="#9" id="9">9</a>
-<a href="#10" id="10">10</a>
-<a href="#11" id="11">11</a>
-<a href="#12" id="12">12</a>
-<a href="#13" id="13">13</a>
-<a href="#14" id="14">14</a>
-<a href="#15" id="15">15</a>
-<a href="#16" id="16">16</a>
-<a href="#17" id="17">17</a>
-<a href="#18" id="18">18</a>
-<a href="#19" id="19">19</a>
-<a href="#20" id="20">20</a>
-<a href="#21" id="21">21</a>
-<a href="#22" id="22">22</a>
-<a href="#23" id="23">23</a>
-<a href="#24" id="24">24</a>
-<a href="#25" id="25">25</a>
-<a href="#26" id="26">26</a>
-<a href="#27" id="27">27</a>
-<a href="#28" id="28">28</a>
-<a href="#29" id="29">29</a>
-<a href="#30" id="30">30</a>
-<a href="#31" id="31">31</a>
-<a href="#32" id="32">32</a>
-<a href="#33" id="33">33</a>
-<a href="#34" id="34">34</a>
-<a href="#35" id="35">35</a>
-<a href="#36" id="36">36</a>
-<a href="#37" id="37">37</a>
-<a href="#38" id="38">38</a>
-<a href="#39" id="39">39</a>
-<a href="#40" id="40">40</a>
-<a href="#41" id="41">41</a>
-<a href="#42" id="42">42</a>
-<a href="#43" id="43">43</a>
-<a href="#44" id="44">44</a>
-<a href="#45" id="45">45</a>
-<a href="#46" id="46">46</a>
-<a href="#47" id="47">47</a>
-<a href="#48" id="48">48</a>
-<a href="#49" id="49">49</a>
-<a href="#50" id="50">50</a>
-<a href="#51" id="51">51</a>
-<a href="#52" id="52">52</a>
-<a href="#53" id="53">53</a>
-<a href="#54" id="54">54</a>
-<a href="#55" id="55">55</a>
-<a href="#56" id="56">56</a>
-<a href="#57" id="57">57</a>
-<a href="#58" id="58">58</a>
-<a href="#59" id="59">59</a>
-<a href="#60" id="60">60</a>
-<a href="#61" id="61">61</a>
-<a href="#62" id="62">62</a>
-<a href="#63" id="63">63</a>
-<a href="#64" id="64">64</a>
-<a href="#65" id="65">65</a>
-<a href="#66" id="66">66</a>
-<a href="#67" id="67">67</a>
-<a href="#68" id="68">68</a>
-<a href="#69" id="69">69</a>
-<a href="#70" id="70">70</a>
-<a href="#71" id="71">71</a>
-<a href="#72" id="72">72</a>
-<a href="#73" id="73">73</a>
-<a href="#74" id="74">74</a>
-<a href="#75" id="75">75</a>
-<a href="#76" id="76">76</a>
-<a href="#77" id="77">77</a>
-<a href="#78" id="78">78</a>
-<a href="#79" id="79">79</a>
-<a href="#80" id="80">80</a>
-<a href="#81" id="81">81</a>
-<a href="#82" id="82">82</a>
-<a href="#83" id="83">83</a>
-<a href="#84" id="84">84</a>
-<a href="#85" id="85">85</a>
-<a href="#86" id="86">86</a>
-<a href="#87" id="87">87</a>
-<a href="#88" id="88">88</a>
-<a href="#89" id="89">89</a>
-<a href="#90" id="90">90</a>
-<a href="#91" id="91">91</a>
-<a href="#92" id="92">92</a>
-<a href="#93" id="93">93</a>
-<a href="#94" id="94">94</a>
-<a href="#95" id="95">95</a>
-<a href="#96" id="96">96</a>
-<a href="#97" id="97">97</a>
-<a href="#98" id="98">98</a>
-<a href="#99" id="99">99</a>
-<a href="#100" id="100">100</a>
-<a href="#101" id="101">101</a>
-<a href="#102" id="102">102</a>
-<a href="#103" id="103">103</a>
-<a href="#104" id="104">104</a>
-<a href="#105" id="105">105</a>
-<a href="#106" id="106">106</a>
-<a href="#107" id="107">107</a>
-<a href="#108" id="108">108</a>
-<a href="#109" id="109">109</a>
-<a href="#110" id="110">110</a>
-<a href="#111" id="111">111</a>
-<a href="#112" id="112">112</a>
-<a href="#113" id="113">113</a>
-<a href="#114" id="114">114</a>
-<a href="#115" id="115">115</a>
-<a href="#116" id="116">116</a>
-<a href="#117" id="117">117</a>
-<a href="#118" id="118">118</a>
-<a href="#119" id="119">119</a>
-<a href="#120" id="120">120</a>
-<a href="#121" id="121">121</a>
-<a href="#122" id="122">122</a>
-<a href="#123" id="123">123</a>
-<a href="#124" id="124">124</a>
-<a href="#125" id="125">125</a>
-<a href="#126" id="126">126</a>
-<a href="#127" id="127">127</a>
-<a href="#128" id="128">128</a>
-<a href="#129" id="129">129</a>
-<a href="#130" id="130">130</a>
-<a href="#131" id="131">131</a>
-<a href="#132" id="132">132</a>
-<a href="#133" id="133">133</a>
-<a href="#134" id="134">134</a>
-<a href="#135" id="135">135</a>
-<a href="#136" id="136">136</a>
-<a href="#137" id="137">137</a>
-<a href="#138" id="138">138</a>
-<a href="#139" id="139">139</a>
-<a href="#140" id="140">140</a>
-<a href="#141" id="141">141</a>
-<a href="#142" id="142">142</a>
-<a href="#143" id="143">143</a>
-<a href="#144" id="144">144</a>
-<a href="#145" id="145">145</a>
-<a href="#146" id="146">146</a>
-<a href="#147" id="147">147</a>
-<a href="#148" id="148">148</a>
-<a href="#149" id="149">149</a>
-<a href="#150" id="150">150</a>
-<a href="#151" id="151">151</a>
-<a href="#152" id="152">152</a>
-<a href="#153" id="153">153</a>
-<a href="#154" id="154">154</a>
-<a href="#155" id="155">155</a>
-<a href="#156" id="156">156</a>
-<a href="#157" id="157">157</a>
-<a href="#158" id="158">158</a>
-<a href="#159" id="159">159</a>
-<a href="#160" id="160">160</a>
-<a href="#161" id="161">161</a>
-<a href="#162" id="162">162</a>
-<a href="#163" id="163">163</a>
-<a href="#164" id="164">164</a>
-<a href="#165" id="165">165</a>
-<a href="#166" id="166">166</a>
-<a href="#167" id="167">167</a>
-<a href="#168" id="168">168</a>
-<a href="#169" id="169">169</a>
-<a href="#170" id="170">170</a>
-<a href="#171" id="171">171</a>
-<a href="#172" id="172">172</a>
-<a href="#173" id="173">173</a>
-<a href="#174" id="174">174</a>
-<a href="#175" id="175">175</a>
-<a href="#176" id="176">176</a>
-<a href="#177" id="177">177</a>
-<a href="#178" id="178">178</a>
-<a href="#179" id="179">179</a>
-<a href="#180" id="180">180</a>
-<a href="#181" id="181">181</a>
-<a href="#182" id="182">182</a>
-<a href="#183" id="183">183</a>
-<a href="#184" id="184">184</a>
-<a href="#185" id="185">185</a>
-<a href="#186" id="186">186</a>
-<a href="#187" id="187">187</a>
-<a href="#188" id="188">188</a>
-<a href="#189" id="189">189</a>
-<a href="#190" id="190">190</a>
-<a href="#191" id="191">191</a>
-<a href="#192" id="192">192</a>
-<a href="#193" id="193">193</a>
-<a href="#194" id="194">194</a>
-<a href="#195" id="195">195</a>
-<a href="#196" id="196">196</a>
-<a href="#197" id="197">197</a>
-<a href="#198" id="198">198</a>
-<a href="#199" id="199">199</a>
-<a href="#200" id="200">200</a>
-<a href="#201" id="201">201</a>
-<a href="#202" id="202">202</a>
-<a href="#203" id="203">203</a>
-<a href="#204" id="204">204</a>
-<a href="#205" id="205">205</a>
-<a href="#206" id="206">206</a>
-<a href="#207" id="207">207</a>
-<a href="#208" id="208">208</a>
-<a href="#209" id="209">209</a>
-<a href="#210" id="210">210</a>
-<a href="#211" id="211">211</a>
-<a href="#212" id="212">212</a>
-<a href="#213" id="213">213</a>
-<a href="#214" id="214">214</a>
-<a href="#215" id="215">215</a>
-<a href="#216" id="216">216</a>
-<a href="#217" id="217">217</a>
-<a href="#218" id="218">218</a>
-<a href="#219" id="219">219</a>
-<a href="#220" id="220">220</a>
-<a href="#221" id="221">221</a>
-<a href="#222" id="222">222</a>
-<a href="#223" id="223">223</a>
-<a href="#224" id="224">224</a>
-<a href="#225" id="225">225</a>
-<a href="#226" id="226">226</a>
-<a href="#227" id="227">227</a>
-<a href="#228" id="228">228</a>
-<a href="#229" id="229">229</a>
-<a href="#230" id="230">230</a>
-<a href="#231" id="231">231</a>
-<a href="#232" id="232">232</a>
-<a href="#233" id="233">233</a>
-<a href="#234" id="234">234</a>
-<a href="#235" id="235">235</a>
-<a href="#236" id="236">236</a>
-<a href="#237" id="237">237</a>
-<a href="#238" id="238">238</a>
-<a href="#239" id="239">239</a>
-<a href="#240" id="240">240</a>
-<a href="#241" id="241">241</a>
-<a href="#242" id="242">242</a>
-<a href="#243" id="243">243</a>
-<a href="#244" id="244">244</a>
-<a href="#245" id="245">245</a>
-<a href="#246" id="246">246</a>
-<a href="#247" id="247">247</a>
-<a href="#248" id="248">248</a>
-<a href="#249" id="249">249</a>
-<a href="#250" id="250">250</a>
-<a href="#251" id="251">251</a>
-<a href="#252" id="252">252</a>
-<a href="#253" id="253">253</a>
-<a href="#254" id="254">254</a>
-<a href="#255" id="255">255</a>
-<a href="#256" id="256">256</a>
-<a href="#257" id="257">257</a>
-<a href="#258" id="258">258</a>
-<a href="#259" id="259">259</a>
-<a href="#260" id="260">260</a>
-<a href="#261" id="261">261</a>
-<a href="#262" id="262">262</a>
-<a href="#263" id="263">263</a>
-<a href="#264" id="264">264</a>
-<a href="#265" id="265">265</a>
-<a href="#266" id="266">266</a>
-<a href="#267" id="267">267</a>
-<a href="#268" id="268">268</a>
-<a href="#269" id="269">269</a>
-<a href="#270" id="270">270</a>
-<a href="#271" id="271">271</a>
-<a href="#272" id="272">272</a>
-<a href="#273" id="273">273</a>
-<a href="#274" id="274">274</a>
-<a href="#275" id="275">275</a>
-<a href="#276" id="276">276</a>
-<a href="#277" id="277">277</a>
-<a href="#278" id="278">278</a>
-<a href="#279" id="279">279</a>
-<a href="#280" id="280">280</a>
-<a href="#281" id="281">281</a>
-<a href="#282" id="282">282</a>
-<a href="#283" id="283">283</a>
-<a href="#284" id="284">284</a>
-<a href="#285" id="285">285</a>
-<a href="#286" id="286">286</a>
-<a href="#287" id="287">287</a>
-<a href="#288" id="288">288</a>
-<a href="#289" id="289">289</a>
-<a href="#290" id="290">290</a>
-<a href="#291" id="291">291</a>
-<a href="#292" id="292">292</a>
-<a href="#293" id="293">293</a>
-<a href="#294" id="294">294</a>
-<a href="#295" id="295">295</a>
-<a href="#296" id="296">296</a>
-<a href="#297" id="297">297</a>
-<a href="#298" id="298">298</a>
-<a href="#299" id="299">299</a>
-<a href="#300" id="300">300</a>
-<a href="#301" id="301">301</a>
-<a href="#302" id="302">302</a>
-<a href="#303" id="303">303</a>
-<a href="#304" id="304">304</a>
-<a href="#305" id="305">305</a>
-<a href="#306" id="306">306</a>
-<a href="#307" id="307">307</a>
-<a href="#308" id="308">308</a>
-<a href="#309" id="309">309</a>
-<a href="#310" id="310">310</a>
-<a href="#311" id="311">311</a>
-<a href="#312" id="312">312</a>
-<a href="#313" id="313">313</a>
-<a href="#314" id="314">314</a>
-<a href="#315" id="315">315</a>
-<a href="#316" id="316">316</a>
-<a href="#317" id="317">317</a>
-<a href="#318" id="318">318</a>
-<a href="#319" id="319">319</a>
-<a href="#320" id="320">320</a>
-<a href="#321" id="321">321</a>
-<a href="#322" id="322">322</a>
-<a href="#323" id="323">323</a>
-<a href="#324" id="324">324</a>
-<a href="#325" id="325">325</a>
-<a href="#326" id="326">326</a>
-<a href="#327" id="327">327</a>
-<a href="#328" id="328">328</a>
-<a href="#329" id="329">329</a>
-<a href="#330" id="330">330</a>
-<a href="#331" id="331">331</a>
-<a href="#332" id="332">332</a>
-<a href="#333" id="333">333</a>
-<a href="#334" id="334">334</a>
-<a href="#335" id="335">335</a>
-<a href="#336" id="336">336</a>
-<a href="#337" id="337">337</a>
-<a href="#338" id="338">338</a>
-<a href="#339" id="339">339</a>
-<a href="#340" id="340">340</a>
-<a href="#341" id="341">341</a>
-<a href="#342" id="342">342</a>
-<a href="#343" id="343">343</a>
-<a href="#344" id="344">344</a>
-<a href="#345" id="345">345</a>
-<a href="#346" id="346">346</a>
-<a href="#347" id="347">347</a>
-<a href="#348" id="348">348</a>
-<a href="#349" id="349">349</a>
-<a href="#350" id="350">350</a>
-<a href="#351" id="351">351</a>
-<a href="#352" id="352">352</a>
-<a href="#353" id="353">353</a>
-<a href="#354" id="354">354</a>
-<a href="#355" id="355">355</a>
-<a href="#356" id="356">356</a>
-<a href="#357" id="357">357</a>
-<a href="#358" id="358">358</a>
-<a href="#359" id="359">359</a>
-<a href="#360" id="360">360</a>
-<a href="#361" id="361">361</a>
-<a href="#362" id="362">362</a>
-<a href="#363" id="363">363</a>
-<a href="#364" id="364">364</a>
-<a href="#365" id="365">365</a>
-<a href="#366" id="366">366</a>
-<a href="#367" id="367">367</a>
-<a href="#368" id="368">368</a>
-<a href="#369" id="369">369</a>
-<a href="#370" id="370">370</a>
-<a href="#371" id="371">371</a>
-<a href="#372" id="372">372</a>
-<a href="#373" id="373">373</a>
-<a href="#374" id="374">374</a>
-<a href="#375" id="375">375</a>
-<a href="#376" id="376">376</a>
-<a href="#377" id="377">377</a>
-<a href="#378" id="378">378</a>
-<a href="#379" id="379">379</a>
-<a href="#380" id="380">380</a>
-<a href="#381" id="381">381</a>
-<a href="#382" id="382">382</a>
-<a href="#383" id="383">383</a>
-<a href="#384" id="384">384</a>
-<a href="#385" id="385">385</a>
-<a href="#386" id="386">386</a>
-<a href="#387" id="387">387</a>
-<a href="#388" id="388">388</a>
-<a href="#389" id="389">389</a>
-<a href="#390" id="390">390</a>
-<a href="#391" id="391">391</a>
-<a href="#392" id="392">392</a>
-<a href="#393" id="393">393</a>
-<a href="#394" id="394">394</a>
-<a href="#395" id="395">395</a>
-<a href="#396" id="396">396</a>
-<a href="#397" id="397">397</a>
-<a href="#398" id="398">398</a>
-<a href="#399" id="399">399</a>
-<a href="#400" id="400">400</a>
-<a href="#401" id="401">401</a>
-<a href="#402" id="402">402</a>
-<a href="#403" id="403">403</a>
-<a href="#404" id="404">404</a>
-<a href="#405" id="405">405</a>
-<a href="#406" id="406">406</a>
-<a href="#407" id="407">407</a>
-<a href="#408" id="408">408</a>
-<a href="#409" id="409">409</a>
-<a href="#410" id="410">410</a>
-<a href="#411" id="411">411</a>
-<a href="#412" id="412">412</a>
-<a href="#413" id="413">413</a>
-<a href="#414" id="414">414</a>
-<a href="#415" id="415">415</a>
-<a href="#416" id="416">416</a>
-<a href="#417" id="417">417</a>
-<a href="#418" id="418">418</a>
-<a href="#419" id="419">419</a>
-<a href="#420" id="420">420</a>
-<a href="#421" id="421">421</a>
-<a href="#422" id="422">422</a>
-<a href="#423" id="423">423</a>
-<a href="#424" id="424">424</a>
-<a href="#425" id="425">425</a>
-<a href="#426" id="426">426</a>
-<a href="#427" id="427">427</a>
-<a href="#428" id="428">428</a>
-<a href="#429" id="429">429</a>
-<a href="#430" id="430">430</a>
-<a href="#431" id="431">431</a>
-<a href="#432" id="432">432</a>
-<a href="#433" id="433">433</a>
-<a href="#434" id="434">434</a>
-<a href="#435" id="435">435</a>
-<a href="#436" id="436">436</a>
-<a href="#437" id="437">437</a>
-<a href="#438" id="438">438</a>
-<a href="#439" id="439">439</a>
-<a href="#440" id="440">440</a>
-<a href="#441" id="441">441</a>
-<a href="#442" id="442">442</a>
-<a href="#443" id="443">443</a>
-<a href="#444" id="444">444</a>
-<a href="#445" id="445">445</a>
-<a href="#446" id="446">446</a>
-<a href="#447" id="447">447</a>
-<a href="#448" id="448">448</a>
-<a href="#449" id="449">449</a>
-<a href="#450" id="450">450</a>
-<a href="#451" id="451">451</a>
-<a href="#452" id="452">452</a>
-<a href="#453" id="453">453</a>
-<a href="#454" id="454">454</a>
-<a href="#455" id="455">455</a>
-<a href="#456" id="456">456</a>
-<a href="#457" id="457">457</a>
-<a href="#458" id="458">458</a>
-<a href="#459" id="459">459</a>
-<a href="#460" id="460">460</a>
-<a href="#461" id="461">461</a>
-<a href="#462" id="462">462</a>
-<a href="#463" id="463">463</a>
-<a href="#464" id="464">464</a>
-<a href="#465" id="465">465</a>
-<a href="#466" id="466">466</a>
-<a href="#467" id="467">467</a>
-<a href="#468" id="468">468</a>
-<a href="#469" id="469">469</a>
-<a href="#470" id="470">470</a>
-<a href="#471" id="471">471</a>
-<a href="#472" id="472">472</a>
-<a href="#473" id="473">473</a>
-<a href="#474" id="474">474</a>
-<a href="#475" id="475">475</a>
-<a href="#476" id="476">476</a>
-<a href="#477" id="477">477</a>
-<a href="#478" id="478">478</a>
-<a href="#479" id="479">479</a>
-<a href="#480" id="480">480</a>
-<a href="#481" id="481">481</a>
-<a href="#482" id="482">482</a>
-<a href="#483" id="483">483</a>
-<a href="#484" id="484">484</a>
-<a href="#485" id="485">485</a>
-<a href="#486" id="486">486</a>
-<a href="#487" id="487">487</a>
-<a href="#488" id="488">488</a>
-<a href="#489" id="489">489</a>
-<a href="#490" id="490">490</a>
-<a href="#491" id="491">491</a>
-<a href="#492" id="492">492</a>
-<a href="#493" id="493">493</a>
-<a href="#494" id="494">494</a>
-<a href="#495" id="495">495</a>
-<a href="#496" id="496">496</a>
-<a href="#497" id="497">497</a>
-<a href="#498" id="498">498</a>
-<a href="#499" id="499">499</a>
-<a href="#500" id="500">500</a>
-<a href="#501" id="501">501</a>
-<a href="#502" id="502">502</a>
-<a href="#503" id="503">503</a>
-<a href="#504" id="504">504</a>
-<a href="#505" id="505">505</a>
-<a href="#506" id="506">506</a>
-<a href="#507" id="507">507</a>
-<a href="#508" id="508">508</a>
-<a href="#509" id="509">509</a>
-<a href="#510" id="510">510</a>
-<a href="#511" id="511">511</a>
-<a href="#512" id="512">512</a>
-<a href="#513" id="513">513</a>
-<a href="#514" id="514">514</a>
-<a href="#515" id="515">515</a>
-<a href="#516" id="516">516</a>
-<a href="#517" id="517">517</a>
-<a href="#518" id="518">518</a>
-<a href="#519" id="519">519</a>
-<a href="#520" id="520">520</a>
-<a href="#521" id="521">521</a>
-<a href="#522" id="522">522</a>
-<a href="#523" id="523">523</a>
-<a href="#524" id="524">524</a>
-<a href="#525" id="525">525</a>
-<a href="#526" id="526">526</a>
-<a href="#527" id="527">527</a>
-<a href="#528" id="528">528</a>
-<a href="#529" id="529">529</a>
-<a href="#530" id="530">530</a>
-<a href="#531" id="531">531</a>
-<a href="#532" id="532">532</a>
-<a href="#533" id="533">533</a>
-<a href="#534" id="534">534</a>
-<a href="#535" id="535">535</a>
-<a href="#536" id="536">536</a>
-<a href="#537" id="537">537</a>
-<a href="#538" id="538">538</a>
-<a href="#539" id="539">539</a>
-<a href="#540" id="540">540</a>
-<a href="#541" id="541">541</a>
-<a href="#542" id="542">542</a>
-<a href="#543" id="543">543</a>
-<a href="#544" id="544">544</a>
-<a href="#545" id="545">545</a>
-<a href="#546" id="546">546</a>
-<a href="#547" id="547">547</a>
-<a href="#548" id="548">548</a>
-<a href="#549" id="549">549</a>
-<a href="#550" id="550">550</a>
-<a href="#551" id="551">551</a>
-<a href="#552" id="552">552</a>
-<a href="#553" id="553">553</a>
-<a href="#554" id="554">554</a>
-<a href="#555" id="555">555</a>
-<a href="#556" id="556">556</a>
-<a href="#557" id="557">557</a>
-<a href="#558" id="558">558</a>
-<a href="#559" id="559">559</a>
-<a href="#560" id="560">560</a>
-<a href="#561" id="561">561</a>
-<a href="#562" id="562">562</a>
-<a href="#563" id="563">563</a>
-<a href="#564" id="564">564</a>
-<a href="#565" id="565">565</a>
-<a href="#566" id="566">566</a>
-<a href="#567" id="567">567</a>
-<a href="#568" id="568">568</a>
-<a href="#569" id="569">569</a>
-<a href="#570" id="570">570</a>
-<a href="#571" id="571">571</a>
-<a href="#572" id="572">572</a>
-<a href="#573" id="573">573</a>
-<a href="#574" id="574">574</a>
-<a href="#575" id="575">575</a>
-<a href="#576" id="576">576</a>
-<a href="#577" id="577">577</a>
-<a href="#578" id="578">578</a>
-<a href="#579" id="579">579</a>
-<a href="#580" id="580">580</a>
-<a href="#581" id="581">581</a>
-<a href="#582" id="582">582</a>
-<a href="#583" id="583">583</a>
-<a href="#584" id="584">584</a>
-<a href="#585" id="585">585</a>
-<a href="#586" id="586">586</a>
-<a href="#587" id="587">587</a>
-<a href="#588" id="588">588</a>
-<a href="#589" id="589">589</a>
-<a href="#590" id="590">590</a>
-<a href="#591" id="591">591</a>
-<a href="#592" id="592">592</a>
-<a href="#593" id="593">593</a>
-<a href="#594" id="594">594</a>
-<a href="#595" id="595">595</a>
-<a href="#596" id="596">596</a>
-<a href="#597" id="597">597</a>
-<a href="#598" id="598">598</a>
-<a href="#599" id="599">599</a>
-<a href="#600" id="600">600</a>
-<a href="#601" id="601">601</a>
-<a href="#602" id="602">602</a>
-<a href="#603" id="603">603</a>
-<a href="#604" id="604">604</a>
-<a href="#605" id="605">605</a>
-<a href="#606" id="606">606</a>
-<a href="#607" id="607">607</a>
-<a href="#608" id="608">608</a>
-<a href="#609" id="609">609</a>
-<a href="#610" id="610">610</a>
-<a href="#611" id="611">611</a>
-<a href="#612" id="612">612</a>
-<a href="#613" id="613">613</a>
-<a href="#614" id="614">614</a>
-<a href="#615" id="615">615</a>
-<a href="#616" id="616">616</a>
-<a href="#617" id="617">617</a>
-<a href="#618" id="618">618</a>
-<a href="#619" id="619">619</a>
-<a href="#620" id="620">620</a>
-<a href="#621" id="621">621</a>
-<a href="#622" id="622">622</a>
-<a href="#623" id="623">623</a>
-<a href="#624" id="624">624</a>
-<a href="#625" id="625">625</a>
-<a href="#626" id="626">626</a>
-<a href="#627" id="627">627</a>
-<a href="#628" id="628">628</a>
-<a href="#629" id="629">629</a>
-<a href="#630" id="630">630</a>
-<a href="#631" id="631">631</a>
-<a href="#632" id="632">632</a>
-<a href="#633" id="633">633</a>
-<a href="#634" id="634">634</a>
-<a href="#635" id="635">635</a>
-<a href="#636" id="636">636</a>
-<a href="#637" id="637">637</a>
-<a href="#638" id="638">638</a>
-<a href="#639" id="639">639</a>
-<a href="#640" id="640">640</a>
-<a href="#641" id="641">641</a>
-<a href="#642" id="642">642</a>
-<a href="#643" id="643">643</a>
-<a href="#644" id="644">644</a>
-<a href="#645" id="645">645</a>
-<a href="#646" id="646">646</a>
-<a href="#647" id="647">647</a>
-<a href="#648" id="648">648</a>
-<a href="#649" id="649">649</a>
-<a href="#650" id="650">650</a>
-<a href="#651" id="651">651</a>
-<a href="#652" id="652">652</a>
-<a href="#653" id="653">653</a>
-<a href="#654" id="654">654</a>
-<a href="#655" id="655">655</a>
-<a href="#656" id="656">656</a>
-<a href="#657" id="657">657</a>
-<a href="#658" id="658">658</a>
-<a href="#659" id="659">659</a>
-<a href="#660" id="660">660</a>
-<a href="#661" id="661">661</a>
-<a href="#662" id="662">662</a>
-<a href="#663" id="663">663</a>
-<a href="#664" id="664">664</a>
-<a href="#665" id="665">665</a>
-<a href="#666" id="666">666</a>
-<a href="#667" id="667">667</a>
-<a href="#668" id="668">668</a>
-<a href="#669" id="669">669</a>
-<a href="#670" id="670">670</a>
-<a href="#671" id="671">671</a>
-<a href="#672" id="672">672</a>
-<a href="#673" id="673">673</a>
-<a href="#674" id="674">674</a>
-<a href="#675" id="675">675</a>
-<a href="#676" id="676">676</a>
-<a href="#677" id="677">677</a>
-<a href="#678" id="678">678</a>
-<a href="#679" id="679">679</a>
-<a href="#680" id="680">680</a>
-<a href="#681" id="681">681</a>
-<a href="#682" id="682">682</a>
-<a href="#683" id="683">683</a>
-<a href="#684" id="684">684</a>
-<a href="#685" id="685">685</a>
-<a href="#686" id="686">686</a>
-<a href="#687" id="687">687</a>
-<a href="#688" id="688">688</a>
-<a href="#689" id="689">689</a>
-<a href="#690" id="690">690</a>
-<a href="#691" id="691">691</a>
-<a href="#692" id="692">692</a>
-<a href="#693" id="693">693</a>
-<a href="#694" id="694">694</a>
-<a href="#695" id="695">695</a>
-<a href="#696" id="696">696</a>
-<a href="#697" id="697">697</a>
-<a href="#698" id="698">698</a>
-<a href="#699" id="699">699</a>
-<a href="#700" id="700">700</a>
-<a href="#701" id="701">701</a>
-<a href="#702" id="702">702</a>
-<a href="#703" id="703">703</a>
-<a href="#704" id="704">704</a>
-<a href="#705" id="705">705</a>
-<a href="#706" id="706">706</a>
-<a href="#707" id="707">707</a>
-<a href="#708" id="708">708</a>
-<a href="#709" id="709">709</a>
-<a href="#710" id="710">710</a>
-<a href="#711" id="711">711</a>
-<a href="#712" id="712">712</a>
-<a href="#713" id="713">713</a>
-<a href="#714" id="714">714</a>
-<a href="#715" id="715">715</a>
-<a href="#716" id="716">716</a>
-<a href="#717" id="717">717</a>
-<a href="#718" id="718">718</a>
-<a href="#719" id="719">719</a>
-<a href="#720" id="720">720</a>
-<a href="#721" id="721">721</a>
-<a href="#722" id="722">722</a>
-<a href="#723" id="723">723</a>
-<a href="#724" id="724">724</a>
-<a href="#725" id="725">725</a>
-<a href="#726" id="726">726</a>
-<a href="#727" id="727">727</a>
-<a href="#728" id="728">728</a>
-<a href="#729" id="729">729</a>
-<a href="#730" id="730">730</a>
-<a href="#731" id="731">731</a>
-<a href="#732" id="732">732</a>
-<a href="#733" id="733">733</a>
-<a href="#734" id="734">734</a>
-<a href="#735" id="735">735</a>
-<a href="#736" id="736">736</a>
-<a href="#737" id="737">737</a>
-<a href="#738" id="738">738</a>
-<a href="#739" id="739">739</a>
-<a href="#740" id="740">740</a>
-<a href="#741" id="741">741</a>
-<a href="#742" id="742">742</a>
-<a href="#743" id="743">743</a>
-<a href="#744" id="744">744</a>
-<a href="#745" id="745">745</a>
-<a href="#746" id="746">746</a>
-<a href="#747" id="747">747</a>
-<a href="#748" id="748">748</a>
-<a href="#749" id="749">749</a>
-<a href="#750" id="750">750</a>
-<a href="#751" id="751">751</a>
-<a href="#752" id="752">752</a>
-<a href="#753" id="753">753</a>
-<a href="#754" id="754">754</a>
-<a href="#755" id="755">755</a>
-<a href="#756" id="756">756</a>
-<a href="#757" id="757">757</a>
-<a href="#758" id="758">758</a>
-<a href="#759" id="759">759</a>
-<a href="#760" id="760">760</a>
-<a href="#761" id="761">761</a>
-<a href="#762" id="762">762</a>
-<a href="#763" id="763">763</a>
-<a href="#764" id="764">764</a>
-<a href="#765" id="765">765</a>
-<a href="#766" id="766">766</a>
-<a href="#767" id="767">767</a>
-<a href="#768" id="768">768</a>
-<a href="#769" id="769">769</a>
-<a href="#770" id="770">770</a>
-<a href="#771" id="771">771</a>
-<a href="#772" id="772">772</a>
-<a href="#773" id="773">773</a>
-<a href="#774" id="774">774</a>
-<a href="#775" id="775">775</a>
-<a href="#776" id="776">776</a>
-<a href="#777" id="777">777</a>
-<a href="#778" id="778">778</a>
-<a href="#779" id="779">779</a>
-<a href="#780" id="780">780</a>
-<a href="#781" id="781">781</a>
-<a href="#782" id="782">782</a>
-<a href="#783" id="783">783</a>
-<a href="#784" id="784">784</a>
-<a href="#785" id="785">785</a>
-<a href="#786" id="786">786</a>
-<a href="#787" id="787">787</a>
-<a href="#788" id="788">788</a>
-<a href="#789" id="789">789</a>
-<a href="#790" id="790">790</a>
-<a href="#791" id="791">791</a>
-<a href="#792" id="792">792</a>
-<a href="#793" id="793">793</a>
-<a href="#794" id="794">794</a>
-<a href="#795" id="795">795</a>
-<a href="#796" id="796">796</a>
-<a href="#797" id="797">797</a>
-<a href="#798" id="798">798</a>
-<a href="#799" id="799">799</a>
-<a href="#800" id="800">800</a>
-<a href="#801" id="801">801</a>
-<a href="#802" id="802">802</a>
-<a href="#803" id="803">803</a>
-<a href="#804" id="804">804</a>
-<a href="#805" id="805">805</a>
-<a href="#806" id="806">806</a>
-<a href="#807" id="807">807</a>
-<a href="#808" id="808">808</a>
-<a href="#809" id="809">809</a>
-<a href="#810" id="810">810</a>
-<a href="#811" id="811">811</a>
-<a href="#812" id="812">812</a>
-<a href="#813" id="813">813</a>
-<a href="#814" id="814">814</a>
-<a href="#815" id="815">815</a>
-<a href="#816" id="816">816</a>
-<a href="#817" id="817">817</a>
-<a href="#818" id="818">818</a>
-<a href="#819" id="819">819</a>
-<a href="#820" id="820">820</a>
-<a href="#821" id="821">821</a>
-<a href="#822" id="822">822</a>
-<a href="#823" id="823">823</a>
-<a href="#824" id="824">824</a>
-<a href="#825" id="825">825</a>
-<a href="#826" id="826">826</a>
-<a href="#827" id="827">827</a>
-<a href="#828" id="828">828</a>
-<a href="#829" id="829">829</a>
-<a href="#830" id="830">830</a>
-<a href="#831" id="831">831</a>
-<a href="#832" id="832">832</a>
-<a href="#833" id="833">833</a>
-<a href="#834" id="834">834</a>
-<a href="#835" id="835">835</a>
-<a href="#836" id="836">836</a>
-<a href="#837" id="837">837</a>
-<a href="#838" id="838">838</a>
-<a href="#839" id="839">839</a>
-<a href="#840" id="840">840</a>
-<a href="#841" id="841">841</a>
-<a href="#842" id="842">842</a>
-<a href="#843" id="843">843</a>
-<a href="#844" id="844">844</a>
-<a href="#845" id="845">845</a>
-<a href="#846" id="846">846</a>
-<a href="#847" id="847">847</a>
-<a href="#848" id="848">848</a>
-<a href="#849" id="849">849</a>
-<a href="#850" id="850">850</a>
-<a href="#851" id="851">851</a>
-<a href="#852" id="852">852</a>
-<a href="#853" id="853">853</a>
-<a href="#854" id="854">854</a>
-<a href="#855" id="855">855</a>
-<a href="#856" id="856">856</a>
-<a href="#857" id="857">857</a>
-<a href="#858" id="858">858</a>
-<a href="#859" id="859">859</a>
-<a href="#860" id="860">860</a>
-<a href="#861" id="861">861</a>
-<a href="#862" id="862">862</a>
-<a href="#863" id="863">863</a>
-<a href="#864" id="864">864</a>
-<a href="#865" id="865">865</a>
-<a href="#866" id="866">866</a>
-<a href="#867" id="867">867</a>
-<a href="#868" id="868">868</a>
-<a href="#869" id="869">869</a>
-<a href="#870" id="870">870</a>
-<a href="#871" id="871">871</a>
-<a href="#872" id="872">872</a>
-<a href="#873" id="873">873</a>
-<a href="#874" id="874">874</a>
-<a href="#875" id="875">875</a>
-<a href="#876" id="876">876</a>
-<a href="#877" id="877">877</a>
-<a href="#878" id="878">878</a>
-<a href="#879" id="879">879</a>
-<a href="#880" id="880">880</a>
-<a href="#881" id="881">881</a>
-<a href="#882" id="882">882</a>
-<a href="#883" id="883">883</a>
-<a href="#884" id="884">884</a>
-<a href="#885" id="885">885</a>
-<a href="#886" id="886">886</a>
-<a href="#887" id="887">887</a>
-<a href="#888" id="888">888</a>
-<a href="#889" id="889">889</a>
-<a href="#890" id="890">890</a>
-<a href="#891" id="891">891</a>
-<a href="#892" id="892">892</a>
-<a href="#893" id="893">893</a>
-<a href="#894" id="894">894</a>
-<a href="#895" id="895">895</a>
-<a href="#896" id="896">896</a>
-<a href="#897" id="897">897</a>
-<a href="#898" id="898">898</a>
-<a href="#899" id="899">899</a>
-<a href="#900" id="900">900</a>
-<a href="#901" id="901">901</a>
-<a href="#902" id="902">902</a>
-<a href="#903" id="903">903</a>
-<a href="#904" id="904">904</a>
-<a href="#905" id="905">905</a>
-<a href="#906" id="906">906</a>
-<a href="#907" id="907">907</a>
-<a href="#908" id="908">908</a>
-<a href="#909" id="909">909</a>
-<a href="#910" id="910">910</a>
-<a href="#911" id="911">911</a>
-<a href="#912" id="912">912</a>
-<a href="#913" id="913">913</a>
-<a href="#914" id="914">914</a>
-<a href="#915" id="915">915</a>
-<a href="#916" id="916">916</a>
-<a href="#917" id="917">917</a>
-<a href="#918" id="918">918</a>
-<a href="#919" id="919">919</a>
-<a href="#920" id="920">920</a>
-<a href="#921" id="921">921</a>
-<a href="#922" id="922">922</a>
-<a href="#923" id="923">923</a>
-<a href="#924" id="924">924</a>
-<a href="#925" id="925">925</a>
-<a href="#926" id="926">926</a>
-<a href="#927" id="927">927</a>
-<a href="#928" id="928">928</a>
-<a href="#929" id="929">929</a>
-<a href="#930" id="930">930</a>
-<a href="#931" id="931">931</a>
-<a href="#932" id="932">932</a>
-<a href="#933" id="933">933</a>
-<a href="#934" id="934">934</a>
-<a href="#935" id="935">935</a>
-<a href="#936" id="936">936</a>
-<a href="#937" id="937">937</a>
-<a href="#938" id="938">938</a>
-<a href="#939" id="939">939</a>
-<a href="#940" id="940">940</a>
-<a href="#941" id="941">941</a>
-<a href="#942" id="942">942</a>
-<a href="#943" id="943">943</a>
-<a href="#944" id="944">944</a>
-<a href="#945" id="945">945</a>
-<a href="#946" id="946">946</a>
-<a href="#947" id="947">947</a>
-<a href="#948" id="948">948</a>
-<a href="#949" id="949">949</a>
-<a href="#950" id="950">950</a>
-<a href="#951" id="951">951</a>
-<a href="#952" id="952">952</a>
-<a href="#953" id="953">953</a>
-<a href="#954" id="954">954</a>
-<a href="#955" id="955">955</a>
-<a href="#956" id="956">956</a>
-<a href="#957" id="957">957</a>
-<a href="#958" id="958">958</a>
-<a href="#959" id="959">959</a>
-<a href="#960" id="960">960</a>
-<a href="#961" id="961">961</a>
-<a href="#962" id="962">962</a>
-<a href="#963" id="963">963</a>
-<a href="#964" id="964">964</a>
-<a href="#965" id="965">965</a>
-<a href="#966" id="966">966</a>
-<a href="#967" id="967">967</a>
-<a href="#968" id="968">968</a>
-<a href="#969" id="969">969</a>
-<a href="#970" id="970">970</a>
-<a href="#971" id="971">971</a>
-<a href="#972" id="972">972</a>
-<a href="#973" id="973">973</a>
-<a href="#974" id="974">974</a>
-<a href="#975" id="975">975</a>
-<a href="#976" id="976">976</a>
-<a href="#977" id="977">977</a>
-<a href="#978" id="978">978</a>
-<a href="#979" id="979">979</a>
-<a href="#980" id="980">980</a>
-<a href="#981" id="981">981</a>
-<a href="#982" id="982">982</a>
-<a href="#983" id="983">983</a>
-<a href="#984" id="984">984</a>
-<a href="#985" id="985">985</a>
-<a href="#986" id="986">986</a>
-<a href="#987" id="987">987</a>
-<a href="#988" id="988">988</a>
-<a href="#989" id="989">989</a>
-<a href="#990" id="990">990</a>
-<a href="#991" id="991">991</a>
-<a href="#992" id="992">992</a>
-<a href="#993" id="993">993</a>
-<a href="#994" id="994">994</a>
-<a href="#995" id="995">995</a>
-<a href="#996" id="996">996</a>
-<a href="#997" id="997">997</a>
-<a href="#998" id="998">998</a>
-<a href="#999" id="999">999</a>
-<a href="#1000" id="1000">1000</a>
-<a href="#1001" id="1001">1001</a>
-<a href="#1002" id="1002">1002</a>
-<a href="#1003" id="1003">1003</a>
-<a href="#1004" id="1004">1004</a>
-<a href="#1005" id="1005">1005</a>
-<a href="#1006" id="1006">1006</a>
-<a href="#1007" id="1007">1007</a>
-<a href="#1008" id="1008">1008</a>
-<a href="#1009" id="1009">1009</a>
-<a href="#1010" id="1010">1010</a>
-<a href="#1011" id="1011">1011</a>
-<a href="#1012" id="1012">1012</a>
-<a href="#1013" id="1013">1013</a>
-<a href="#1014" id="1014">1014</a>
-<a href="#1015" id="1015">1015</a>
-<a href="#1016" id="1016">1016</a>
-<a href="#1017" id="1017">1017</a>
-<a href="#1018" id="1018">1018</a>
-<a href="#1019" id="1019">1019</a>
-<a href="#1020" id="1020">1020</a>
-<a href="#1021" id="1021">1021</a>
-<a href="#1022" id="1022">1022</a>
-<a href="#1023" id="1023">1023</a>
-<a href="#1024" id="1024">1024</a>
-<a href="#1025" id="1025">1025</a>
-<a href="#1026" id="1026">1026</a>
-<a href="#1027" id="1027">1027</a>
-<a href="#1028" id="1028">1028</a>
-<a href="#1029" id="1029">1029</a>
-<a href="#1030" id="1030">1030</a>
-<a href="#1031" id="1031">1031</a>
-<a href="#1032" id="1032">1032</a>
-<a href="#1033" id="1033">1033</a>
-<a href="#1034" id="1034">1034</a>
-<a href="#1035" id="1035">1035</a>
-<a href="#1036" id="1036">1036</a>
-<a href="#1037" id="1037">1037</a>
-<a href="#1038" id="1038">1038</a>
-<a href="#1039" id="1039">1039</a>
-<a href="#1040" id="1040">1040</a>
-<a href="#1041" id="1041">1041</a>
-<a href="#1042" id="1042">1042</a>
-<a href="#1043" id="1043">1043</a>
-<a href="#1044" id="1044">1044</a>
-<a href="#1045" id="1045">1045</a>
-<a href="#1046" id="1046">1046</a>
-<a href="#1047" id="1047">1047</a>
-<a href="#1048" id="1048">1048</a>
-<a href="#1049" id="1049">1049</a>
-<a href="#1050" id="1050">1050</a>
-<a href="#1051" id="1051">1051</a>
-<a href="#1052" id="1052">1052</a>
-<a href="#1053" id="1053">1053</a>
-<a href="#1054" id="1054">1054</a>
-<a href="#1055" id="1055">1055</a>
-<a href="#1056" id="1056">1056</a>
-<a href="#1057" id="1057">1057</a>
-<a href="#1058" id="1058">1058</a>
-<a href="#1059" id="1059">1059</a>
-<a href="#1060" id="1060">1060</a>
-<a href="#1061" id="1061">1061</a>
-<a href="#1062" id="1062">1062</a>
-<a href="#1063" id="1063">1063</a>
-<a href="#1064" id="1064">1064</a>
-<a href="#1065" id="1065">1065</a>
-<a href="#1066" id="1066">1066</a>
-<a href="#1067" id="1067">1067</a>
-<a href="#1068" id="1068">1068</a>
-<a href="#1069" id="1069">1069</a>
-<a href="#1070" id="1070">1070</a>
-<a href="#1071" id="1071">1071</a>
-<a href="#1072" id="1072">1072</a>
-<a href="#1073" id="1073">1073</a>
-<a href="#1074" id="1074">1074</a>
-<a href="#1075" id="1075">1075</a>
-<a href="#1076" id="1076">1076</a>
-<a href="#1077" id="1077">1077</a>
-<a href="#1078" id="1078">1078</a>
-<a href="#1079" id="1079">1079</a>
-<a href="#1080" id="1080">1080</a>
-<a href="#1081" id="1081">1081</a>
-<a href="#1082" id="1082">1082</a>
-<a href="#1083" id="1083">1083</a>
-<a href="#1084" id="1084">1084</a>
-<a href="#1085" id="1085">1085</a>
-<a href="#1086" id="1086">1086</a>
-<a href="#1087" id="1087">1087</a>
-<a href="#1088" id="1088">1088</a>
-<a href="#1089" id="1089">1089</a>
-<a href="#1090" id="1090">1090</a>
-<a href="#1091" id="1091">1091</a>
-<a href="#1092" id="1092">1092</a>
-<a href="#1093" id="1093">1093</a>
-<a href="#1094" id="1094">1094</a>
-<a href="#1095" id="1095">1095</a>
-<a href="#1096" id="1096">1096</a>
-<a href="#1097" id="1097">1097</a>
-<a href="#1098" id="1098">1098</a>
-<a href="#1099" id="1099">1099</a>
-<a href="#1100" id="1100">1100</a>
-<a href="#1101" id="1101">1101</a>
-<a href="#1102" id="1102">1102</a>
-<a href="#1103" id="1103">1103</a>
-<a href="#1104" id="1104">1104</a>
-<a href="#1105" id="1105">1105</a>
-<a href="#1106" id="1106">1106</a>
-<a href="#1107" id="1107">1107</a>
-<a href="#1108" id="1108">1108</a>
-<a href="#1109" id="1109">1109</a>
-<a href="#1110" id="1110">1110</a>
-<a href="#1111" id="1111">1111</a>
-<a href="#1112" id="1112">1112</a>
-<a href="#1113" id="1113">1113</a>
-<a href="#1114" id="1114">1114</a>
-<a href="#1115" id="1115">1115</a>
-<a href="#1116" id="1116">1116</a>
-<a href="#1117" id="1117">1117</a>
-<a href="#1118" id="1118">1118</a>
-<a href="#1119" id="1119">1119</a>
-<a href="#1120" id="1120">1120</a>
-<a href="#1121" id="1121">1121</a>
-<a href="#1122" id="1122">1122</a>
-<a href="#1123" id="1123">1123</a>
-<a href="#1124" id="1124">1124</a>
-<a href="#1125" id="1125">1125</a>
-<a href="#1126" id="1126">1126</a>
-<a href="#1127" id="1127">1127</a>
-<a href="#1128" id="1128">1128</a>
-<a href="#1129" id="1129">1129</a>
-<a href="#1130" id="1130">1130</a>
-<a href="#1131" id="1131">1131</a>
-<a href="#1132" id="1132">1132</a>
-<a href="#1133" id="1133">1133</a>
-<a href="#1134" id="1134">1134</a>
-<a href="#1135" id="1135">1135</a>
-<a href="#1136" id="1136">1136</a>
-<a href="#1137" id="1137">1137</a>
-<a href="#1138" id="1138">1138</a>
-<a href="#1139" id="1139">1139</a>
-<a href="#1140" id="1140">1140</a>
-<a href="#1141" id="1141">1141</a>
-<a href="#1142" id="1142">1142</a>
-<a href="#1143" id="1143">1143</a>
-<a href="#1144" id="1144">1144</a>
-<a href="#1145" id="1145">1145</a>
-<a href="#1146" id="1146">1146</a>
-<a href="#1147" id="1147">1147</a>
-<a href="#1148" id="1148">1148</a>
-<a href="#1149" id="1149">1149</a>
-<a href="#1150" id="1150">1150</a>
-<a href="#1151" id="1151">1151</a>
-<a href="#1152" id="1152">1152</a>
-<a href="#1153" id="1153">1153</a>
-<a href="#1154" id="1154">1154</a>
-<a href="#1155" id="1155">1155</a>
-<a href="#1156" id="1156">1156</a>
-<a href="#1157" id="1157">1157</a>
-<a href="#1158" id="1158">1158</a>
-<a href="#1159" id="1159">1159</a>
-<a href="#1160" id="1160">1160</a>
-<a href="#1161" id="1161">1161</a>
-<a href="#1162" id="1162">1162</a>
-<a href="#1163" id="1163">1163</a>
-<a href="#1164" id="1164">1164</a>
-<a href="#1165" id="1165">1165</a>
-<a href="#1166" id="1166">1166</a>
-<a href="#1167" id="1167">1167</a>
-<a href="#1168" id="1168">1168</a>
-<a href="#1169" id="1169">1169</a>
-<a href="#1170" id="1170">1170</a>
-<a href="#1171" id="1171">1171</a>
-<a href="#1172" id="1172">1172</a>
-<a href="#1173" id="1173">1173</a>
-<a href="#1174" id="1174">1174</a>
-<a href="#1175" id="1175">1175</a>
-<a href="#1176" id="1176">1176</a>
-<a href="#1177" id="1177">1177</a>
-<a href="#1178" id="1178">1178</a>
-<a href="#1179" id="1179">1179</a>
-<a href="#1180" id="1180">1180</a>
-<a href="#1181" id="1181">1181</a>
-<a href="#1182" id="1182">1182</a>
-<a href="#1183" id="1183">1183</a>
-<a href="#1184" id="1184">1184</a>
-<a href="#1185" id="1185">1185</a>
-<a href="#1186" id="1186">1186</a>
-<a href="#1187" id="1187">1187</a>
-<a href="#1188" id="1188">1188</a>
-<a href="#1189" id="1189">1189</a>
-<a href="#1190" id="1190">1190</a>
-<a href="#1191" id="1191">1191</a>
-<a href="#1192" id="1192">1192</a>
-<a href="#1193" id="1193">1193</a>
-<a href="#1194" id="1194">1194</a>
-<a href="#1195" id="1195">1195</a>
-<a href="#1196" id="1196">1196</a>
-<a href="#1197" id="1197">1197</a>
-<a href="#1198" id="1198">1198</a>
-<a href="#1199" id="1199">1199</a>
-<a href="#1200" id="1200">1200</a>
-<a href="#1201" id="1201">1201</a>
-<a href="#1202" id="1202">1202</a>
-<a href="#1203" id="1203">1203</a>
-<a href="#1204" id="1204">1204</a>
-<a href="#1205" id="1205">1205</a>
-<a href="#1206" id="1206">1206</a>
-<a href="#1207" id="1207">1207</a>
-<a href="#1208" id="1208">1208</a>
-<a href="#1209" id="1209">1209</a>
-<a href="#1210" id="1210">1210</a>
-<a href="#1211" id="1211">1211</a>
-<a href="#1212" id="1212">1212</a>
-<a href="#1213" id="1213">1213</a>
-<a href="#1214" id="1214">1214</a>
-<a href="#1215" id="1215">1215</a>
-<a href="#1216" id="1216">1216</a>
-</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-</span><span class="doccomment">//! Descriptors DSL
-
-</span><span class="attr">#[doc(hidden)]
-#[macro_export]
-</span><span class="macro">macro_rules! </span>impl_top_level_sh {
- <span class="comment">// disallow `sortedmulti` in `bare()`
- </span>( Bare, new, new, Legacy, sortedmulti $( <span class="macro-nonterminal">$inner</span>:tt )* ) => {
- <span class="macro">compile_error!</span>(<span class="string">"`bare()` descriptors can't contain any `sortedmulti()` operands"</span>);
- };
- ( Bare, new, new, Legacy, sortedmulti_vec $( <span class="macro-nonterminal">$inner</span>:tt )* ) => {
- <span class="macro">compile_error!</span>(<span class="string">"`bare()` descriptors can't contain any `sortedmulti_vec()` operands"</span>);
- };
-
- ( <span class="macro-nonterminal">$inner_struct</span>:ident, <span class="macro-nonterminal">$constructor</span>:ident, <span class="macro-nonterminal">$sortedmulti_constructor</span>:ident, <span class="macro-nonterminal">$ctx</span>:ident, sortedmulti $( <span class="macro-nonterminal">$inner</span>:tt )* ) => {{
- <span class="kw">use </span>core::marker::PhantomData;
-
- <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::descriptor</span>::{<span class="macro-nonterminal">$inner_struct</span>, Descriptor, DescriptorPublicKey};
- <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript</span>::<span class="macro-nonterminal">$ctx</span>;
-
- <span class="kw">let </span>build_desc = |k, pks| {
- <span class="prelude-val">Ok</span>((Descriptor::<DescriptorPublicKey>::<span class="macro-nonterminal">$inner_struct</span>(<span class="macro-nonterminal">$inner_struct</span>::<span class="macro-nonterminal">$sortedmulti_constructor</span>(k, pks)<span class="question-mark">?</span>), PhantomData::<<span class="macro-nonterminal">$ctx</span>>))
- };
-
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_sortedmulti!</span>(<span class="macro-nonterminal">build_desc</span>, sortedmulti $( <span class="macro-nonterminal">$inner </span>)<span class="kw-2">*</span>)
- }};
- ( <span class="macro-nonterminal">$inner_struct</span>:ident, <span class="macro-nonterminal">$constructor</span>:ident, <span class="macro-nonterminal">$sortedmulti_constructor</span>:ident, <span class="macro-nonterminal">$ctx</span>:ident, sortedmulti_vec $( <span class="macro-nonterminal">$inner</span>:tt )* ) => {{
- <span class="kw">use </span>core::marker::PhantomData;
-
- <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::descriptor</span>::{<span class="macro-nonterminal">$inner_struct</span>, Descriptor, DescriptorPublicKey};
- <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript</span>::<span class="macro-nonterminal">$ctx</span>;
-
- <span class="kw">let </span>build_desc = |k, pks| {
- <span class="prelude-val">Ok</span>((Descriptor::<DescriptorPublicKey>::<span class="macro-nonterminal">$inner_struct</span>(<span class="macro-nonterminal">$inner_struct</span>::<span class="macro-nonterminal">$sortedmulti_constructor</span>(k, pks)<span class="question-mark">?</span>), PhantomData::<<span class="macro-nonterminal">$ctx</span>>))
- };
-
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_sortedmulti!</span>(<span class="macro-nonterminal">build_desc</span>, sortedmulti_vec $( <span class="macro-nonterminal">$inner </span>)<span class="kw-2">*</span>)
- }};
-
- ( <span class="macro-nonterminal">$inner_struct</span>:ident, <span class="macro-nonterminal">$constructor</span>:ident, <span class="macro-nonterminal">$sortedmulti_constructor</span>:ident, <span class="macro-nonterminal">$ctx</span>:ident, $( <span class="macro-nonterminal">$minisc</span>:tt )* ) => {{
- <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::descriptor</span>::{<span class="macro-nonterminal">$inner_struct</span>, Descriptor, DescriptorPublicKey};
-
- <span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>($( <span class="macro-nonterminal">$minisc </span>)<span class="kw-2">*</span>)
- .and_then(|(minisc, keymap, networks)| <span class="prelude-val">Ok</span>((<span class="macro-nonterminal">$inner_struct</span>::<span class="macro-nonterminal">$constructor</span>(minisc)<span class="question-mark">?</span>, keymap, networks)))
- .and_then(|(inner, key_map, valid_networks)| <span class="prelude-val">Ok</span>((Descriptor::<DescriptorPublicKey>::<span class="macro-nonterminal">$inner_struct</span>(inner), key_map, valid_networks)))
- }};
-}
-
-<span class="attr">#[doc(hidden)]
-#[macro_export]
-</span><span class="macro">macro_rules! </span>impl_top_level_pk {
- ( <span class="macro-nonterminal">$inner_type</span>:ident, <span class="macro-nonterminal">$ctx</span>:ty, <span class="macro-nonterminal">$key</span>:expr ) => {{
- <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::descriptor</span>::<span class="macro-nonterminal">$inner_type</span>;
-
- <span class="attr">#[allow(unused_imports)]
- </span><span class="kw">use </span><span class="macro-nonterminal">$crate::keys</span>::{DescriptorKey, IntoDescriptorKey};
- <span class="kw">let </span>secp = <span class="macro-nonterminal">$crate::bitcoin::secp256k1::Secp256k1::new</span>();
-
- <span class="macro-nonterminal">$key</span>.into_descriptor_key()
- .and_then(|key: DescriptorKey<<span class="macro-nonterminal">$ctx</span>>| key.extract(<span class="kw-2">&</span>secp))
- .map_err(<span class="macro-nonterminal">$crate::descriptor::DescriptorError::Key</span>)
- .map(|(pk, key_map, valid_networks)| (<span class="macro-nonterminal">$inner_type::new</span>(pk), key_map, valid_networks))
- }};
-}
-
-<span class="attr">#[doc(hidden)]
-#[macro_export]
-</span><span class="macro">macro_rules! </span>impl_top_level_tr {
- ( <span class="macro-nonterminal">$internal_key</span>:expr, <span class="macro-nonterminal">$tap_tree</span>:expr ) => {{
- <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::descriptor</span>::{
- Descriptor, DescriptorPublicKey, KeyMap, TapTree, Tr,
- };
- <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::Tap</span>;
-
- <span class="attr">#[allow(unused_imports)]
- </span><span class="kw">use </span><span class="macro-nonterminal">$crate::keys</span>::{DescriptorKey, IntoDescriptorKey, ValidNetworks};
-
- <span class="kw">let </span>secp = <span class="macro-nonterminal">$crate::bitcoin::secp256k1::Secp256k1::new</span>();
-
- <span class="macro-nonterminal">$internal_key
- </span>.into_descriptor_key()
- .and_then(|key: DescriptorKey<Tap>| key.extract(<span class="kw-2">&</span>secp))
- .map_err(<span class="macro-nonterminal">$crate::descriptor::DescriptorError::Key</span>)
- .and_then(|(pk, <span class="kw-2">mut </span>key_map, <span class="kw-2">mut </span>valid_networks)| {
- <span class="kw">let </span>tap_tree = <span class="macro-nonterminal">$tap_tree</span>.map(
- |(tap_tree, tree_keymap, tree_networks): (
- TapTree<DescriptorPublicKey>,
- KeyMap,
- ValidNetworks,
- )| {
- key_map.extend(tree_keymap.into_iter());
- valid_networks =
- <span class="macro-nonterminal">$crate::keys::merge_networks</span>(<span class="kw-2">&</span>valid_networks, <span class="kw-2">&</span>tree_networks);
-
- tap_tree
- },
- );
-
- <span class="prelude-val">Ok</span>((
- Descriptor::<DescriptorPublicKey>::Tr(Tr::new(pk, tap_tree)<span class="question-mark">?</span>),
- key_map,
- valid_networks,
- ))
- })
- }};
-}
-
-<span class="attr">#[doc(hidden)]
-#[macro_export]
-</span><span class="macro">macro_rules! </span>impl_leaf_opcode {
- ( <span class="macro-nonterminal">$terminal_variant</span>:ident ) => {{
- <span class="kw">use </span><span class="macro-nonterminal">$crate::descriptor::CheckMiniscript</span>;
-
- <span class="macro-nonterminal">$crate::miniscript::Miniscript::from_ast</span>(
- <span class="macro-nonterminal">$crate::miniscript::miniscript::decode::Terminal</span>::<span class="macro-nonterminal">$terminal_variant</span>,
- )
- .map_err(<span class="macro-nonterminal">$crate::descriptor::DescriptorError::Miniscript</span>)
- .and_then(|minisc| {
- minisc.check_miniscript()<span class="question-mark">?</span>;
- <span class="prelude-val">Ok</span>(minisc)
- })
- .map(|minisc| {
- (
- minisc,
- <span class="macro-nonterminal">$crate::miniscript::descriptor::KeyMap::default</span>(),
- <span class="macro-nonterminal">$crate::keys::any_network</span>(),
- )
- })
- }};
-}
-
-<span class="attr">#[doc(hidden)]
-#[macro_export]
-</span><span class="macro">macro_rules! </span>impl_leaf_opcode_value {
- ( <span class="macro-nonterminal">$terminal_variant</span>:ident, <span class="macro-nonterminal">$value</span>:expr ) => {{
- <span class="kw">use </span><span class="macro-nonterminal">$crate::descriptor::CheckMiniscript</span>;
-
- <span class="macro-nonterminal">$crate::miniscript::Miniscript::from_ast</span>(
- <span class="macro-nonterminal">$crate::miniscript::miniscript::decode::Terminal</span>::<span class="macro-nonterminal">$terminal_variant</span>(<span class="macro-nonterminal">$value</span>),
- )
- .map_err(<span class="macro-nonterminal">$crate::descriptor::DescriptorError::Miniscript</span>)
- .and_then(|minisc| {
- minisc.check_miniscript()<span class="question-mark">?</span>;
- <span class="prelude-val">Ok</span>(minisc)
- })
- .map(|minisc| {
- (
- minisc,
- <span class="macro-nonterminal">$crate::miniscript::descriptor::KeyMap::default</span>(),
- <span class="macro-nonterminal">$crate::keys::any_network</span>(),
- )
- })
- }};
-}
-
-<span class="attr">#[doc(hidden)]
-#[macro_export]
-</span><span class="macro">macro_rules! </span>impl_leaf_opcode_value_two {
- ( <span class="macro-nonterminal">$terminal_variant</span>:ident, <span class="macro-nonterminal">$one</span>:expr, <span class="macro-nonterminal">$two</span>:expr ) => {{
- <span class="kw">use </span><span class="macro-nonterminal">$crate::descriptor::CheckMiniscript</span>;
-
- <span class="macro-nonterminal">$crate::miniscript::Miniscript::from_ast</span>(
- <span class="macro-nonterminal">$crate::miniscript::miniscript::decode::Terminal</span>::<span class="macro-nonterminal">$terminal_variant</span>(<span class="macro-nonterminal">$one</span>, <span class="macro-nonterminal">$two</span>),
- )
- .map_err(<span class="macro-nonterminal">$crate::descriptor::DescriptorError::Miniscript</span>)
- .and_then(|minisc| {
- minisc.check_miniscript()<span class="question-mark">?</span>;
- <span class="prelude-val">Ok</span>(minisc)
- })
- .map(|minisc| {
- (
- minisc,
- <span class="macro-nonterminal">$crate::miniscript::descriptor::KeyMap::default</span>(),
- <span class="macro-nonterminal">$crate::keys::any_network</span>(),
- )
- })
- }};
-}
-
-<span class="attr">#[doc(hidden)]
-#[macro_export]
-</span><span class="macro">macro_rules! </span>impl_node_opcode_two {
- ( <span class="macro-nonterminal">$terminal_variant</span>:ident, $( <span class="macro-nonterminal">$inner</span>:tt )* ) => ({
- <span class="kw">use </span><span class="macro-nonterminal">$crate::descriptor::CheckMiniscript</span>;
-
- <span class="kw">let </span>inner = <span class="macro-nonterminal">$</span><span class="macro">crate::fragment_internal!</span>( @<span class="macro-nonterminal">t </span>$( <span class="macro-nonterminal">$inner </span>)* );
- <span class="kw">let </span>(a, b) = <span class="macro-nonterminal">$crate::descriptor::dsl::TupleTwo::from</span>(inner).flattened();
-
- a
- .and_then(|a| <span class="prelude-val">Ok</span>((a, b<span class="question-mark">?</span>)))
- .and_then(|((a_minisc, <span class="kw-2">mut </span>a_keymap, a_networks), (b_minisc, b_keymap, b_networks))| {
- <span class="comment">// join key_maps
- </span>a_keymap.extend(b_keymap.into_iter());
-
- <span class="kw">let </span>minisc = <span class="macro-nonterminal">$crate::miniscript::Miniscript::from_ast</span>(<span class="macro-nonterminal">$crate::miniscript::miniscript::decode::Terminal</span>::<span class="macro-nonterminal">$terminal_variant</span>(
- <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(a_minisc),
- <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(b_minisc),
- ))<span class="question-mark">?</span>;
-
- minisc.check_miniscript()<span class="question-mark">?</span>;
-
- <span class="prelude-val">Ok</span>((minisc, a_keymap, <span class="macro-nonterminal">$crate::keys::merge_networks</span>(<span class="kw-2">&</span>a_networks, <span class="kw-2">&</span>b_networks)))
- })
- });
-}
-
-<span class="attr">#[doc(hidden)]
-#[macro_export]
-</span><span class="macro">macro_rules! </span>impl_node_opcode_three {
- ( <span class="macro-nonterminal">$terminal_variant</span>:ident, $( <span class="macro-nonterminal">$inner</span>:tt )* ) => ({
- <span class="kw">use </span><span class="macro-nonterminal">$crate::descriptor::CheckMiniscript</span>;
-
- <span class="kw">let </span>inner = <span class="macro-nonterminal">$</span><span class="macro">crate::fragment_internal!</span>( @<span class="macro-nonterminal">t </span>$( <span class="macro-nonterminal">$inner </span>)* );
- <span class="kw">let </span>(a, b, c) = <span class="macro-nonterminal">$crate::descriptor::dsl::TupleThree::from</span>(inner).flattened();
-
- a
- .and_then(|a| <span class="prelude-val">Ok</span>((a, b<span class="question-mark">?</span>, c<span class="question-mark">?</span>)))
- .and_then(|((a_minisc, <span class="kw-2">mut </span>a_keymap, a_networks), (b_minisc, b_keymap, b_networks), (c_minisc, c_keymap, c_networks))| {
- <span class="comment">// join key_maps
- </span>a_keymap.extend(b_keymap.into_iter());
- a_keymap.extend(c_keymap.into_iter());
-
- <span class="kw">let </span>networks = <span class="macro-nonterminal">$crate::keys::merge_networks</span>(<span class="kw-2">&</span>a_networks, <span class="kw-2">&</span>b_networks);
- <span class="kw">let </span>networks = <span class="macro-nonterminal">$crate::keys::merge_networks</span>(<span class="kw-2">&</span>networks, <span class="kw-2">&</span>c_networks);
-
- <span class="kw">let </span>minisc = <span class="macro-nonterminal">$crate::miniscript::Miniscript::from_ast</span>(<span class="macro-nonterminal">$crate::miniscript::miniscript::decode::Terminal</span>::<span class="macro-nonterminal">$terminal_variant</span>(
- <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(a_minisc),
- <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(b_minisc),
- <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(c_minisc),
- ))<span class="question-mark">?</span>;
-
- minisc.check_miniscript()<span class="question-mark">?</span>;
-
- <span class="prelude-val">Ok</span>((minisc, a_keymap, networks))
- })
- });
-}
-
-<span class="attr">#[doc(hidden)]
-#[macro_export]
-</span><span class="macro">macro_rules! </span>impl_sortedmulti {
- ( <span class="macro-nonterminal">$build_desc</span>:expr, sortedmulti_vec ( <span class="macro-nonterminal">$thresh</span>:expr, <span class="macro-nonterminal">$keys</span>:expr ) ) => ({
- <span class="kw">let </span>secp = <span class="macro-nonterminal">$crate::bitcoin::secp256k1::Secp256k1::new</span>();
- <span class="macro-nonterminal">$crate::keys::make_sortedmulti</span>(<span class="macro-nonterminal">$thresh</span>, <span class="macro-nonterminal">$keys</span>, <span class="macro-nonterminal">$build_desc</span>, <span class="kw-2">&</span>secp)
- });
- ( <span class="macro-nonterminal">$build_desc</span>:expr, sortedmulti ( <span class="macro-nonterminal">$thresh</span>:expr $(, <span class="macro-nonterminal">$key</span>:expr )+ ) ) => ({
- <span class="kw">use </span><span class="macro-nonterminal">$crate::keys::IntoDescriptorKey</span>;
- <span class="kw">let </span>secp = <span class="macro-nonterminal">$crate::bitcoin::secp256k1::Secp256k1::new</span>();
-
- <span class="kw">let </span>keys = <span class="macro">vec!</span>[
- $(
- <span class="macro-nonterminal">$key</span>.into_descriptor_key(),
- )*
- ];
-
- keys.into_iter().collect::<<span class="prelude-ty">Result</span><<span class="macro-nonterminal">$crate::alloc::vec::Vec</span><<span class="kw">_</span>>, <span class="kw">_</span>>>()
- .map_err(<span class="macro-nonterminal">$crate::descriptor::DescriptorError::Key</span>)
- .and_then(|keys| <span class="macro-nonterminal">$crate::keys::make_sortedmulti</span>(<span class="macro-nonterminal">$thresh</span>, keys, <span class="macro-nonterminal">$build_desc</span>, <span class="kw-2">&</span>secp))
- });
-
-}
-
-<span class="attr">#[doc(hidden)]
-#[macro_export]
-</span><span class="macro">macro_rules! </span>parse_tap_tree {
- ( @merge <span class="macro-nonterminal">$tree_a</span>:expr, <span class="macro-nonterminal">$tree_b</span>:expr) => {{
- <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::descriptor::TapTree</span>;
-
- <span class="macro-nonterminal">$tree_a
- </span>.and_then(|tree_a| <span class="prelude-val">Ok</span>((tree_a, <span class="macro-nonterminal">$tree_b</span><span class="question-mark">?</span>)))
- .and_then(|((a_tree, <span class="kw-2">mut </span>a_keymap, a_networks), (b_tree, b_keymap, b_networks))| {
- a_keymap.extend(b_keymap.into_iter());
- <span class="prelude-val">Ok</span>((TapTree::combine(a_tree, b_tree), a_keymap, <span class="macro-nonterminal">$crate::keys::merge_networks</span>(<span class="kw-2">&</span>a_networks, <span class="kw-2">&</span>b_networks)))
- })
-
- }};
-
- <span class="comment">// Two sub-trees
- </span>( { { $( <span class="macro-nonterminal">$tree_a</span>:tt )* }, { $( <span class="macro-nonterminal">$tree_b</span>:tt )* } } ) => {{
- <span class="kw">let </span>tree_a = <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>( { $( <span class="macro-nonterminal">$tree_a </span>)* } );
- <span class="kw">let </span>tree_b = <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>( { $( <span class="macro-nonterminal">$tree_b </span>)* } );
-
- <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>(@<span class="macro-nonterminal">merge </span>tree_a, tree_b)
- }};
-
- <span class="comment">// One leaf and a sub-tree
- </span>( { <span class="macro-nonterminal">$op_a</span>:ident ( $( <span class="macro-nonterminal">$minisc_a</span>:tt )* ), { $( <span class="macro-nonterminal">$tree_b</span>:tt )* } } ) => {{
- <span class="kw">let </span>tree_a = <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>( <span class="macro-nonterminal">$op_a </span>( $( <span class="macro-nonterminal">$minisc_a </span>)* ) );
- <span class="kw">let </span>tree_b = <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>( { $( <span class="macro-nonterminal">$tree_b </span>)* } );
-
- <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>(@<span class="macro-nonterminal">merge </span>tree_a, tree_b)
- }};
- ( { { $( <span class="macro-nonterminal">$tree_a</span>:tt )* }, <span class="macro-nonterminal">$op_b</span>:ident ( $( <span class="macro-nonterminal">$minisc_b</span>:tt )* ) } ) => {{
- <span class="kw">let </span>tree_a = <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>( { $( <span class="macro-nonterminal">$tree_a </span>)* } );
- <span class="kw">let </span>tree_b = <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>( <span class="macro-nonterminal">$op_b </span>( $( <span class="macro-nonterminal">$minisc_b </span>)* ) );
-
- <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>(@<span class="macro-nonterminal">merge </span>tree_a, tree_b)
- }};
-
- <span class="comment">// Two leaves
- </span>( { <span class="macro-nonterminal">$op_a</span>:ident ( $( <span class="macro-nonterminal">$minisc_a</span>:tt )* ), <span class="macro-nonterminal">$op_b</span>:ident ( $( <span class="macro-nonterminal">$minisc_b</span>:tt )* ) } ) => {{
- <span class="kw">let </span>tree_a = <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>( <span class="macro-nonterminal">$op_a </span>( $( <span class="macro-nonterminal">$minisc_a </span>)* ) );
- <span class="kw">let </span>tree_b = <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>( <span class="macro-nonterminal">$op_b </span>( $( <span class="macro-nonterminal">$minisc_b </span>)* ) );
-
- <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>(@<span class="macro-nonterminal">merge </span>tree_a, tree_b)
- }};
-
- <span class="comment">// Single leaf
- </span>( <span class="macro-nonterminal">$op</span>:ident ( $( <span class="macro-nonterminal">$minisc</span>:tt )* ) ) => {{
- <span class="kw">use </span><span class="macro-nonterminal">$crate::alloc::sync::Arc</span>;
- <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::descriptor::TapTree</span>;
-
- <span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>( <span class="macro-nonterminal">$op </span>( $( <span class="macro-nonterminal">$minisc </span>)* ) )
- .map(|(a_minisc, a_keymap, a_networks)| (TapTree::Leaf(Arc::new(a_minisc)), a_keymap, a_networks))
- }};
-}
-
-<span class="attr">#[doc(hidden)]
-#[macro_export]
-</span><span class="macro">macro_rules! </span>apply_modifier {
- ( <span class="macro-nonterminal">$terminal_variant</span>:ident, <span class="macro-nonterminal">$inner</span>:expr ) => {{
- <span class="kw">use </span><span class="macro-nonterminal">$crate::descriptor::CheckMiniscript</span>;
-
- <span class="macro-nonterminal">$inner
- </span>.map_err(|e| -> <span class="macro-nonterminal">$crate::descriptor::DescriptorError </span>{ e.into() })
- .and_then(|(minisc, keymap, networks)| {
- <span class="kw">let </span>minisc = <span class="macro-nonterminal">$crate::miniscript::Miniscript::from_ast</span>(
- <span class="macro-nonterminal">$crate::miniscript::miniscript::decode::Terminal</span>::<span class="macro-nonterminal">$terminal_variant</span>(
- <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(minisc),
- ),
- )<span class="question-mark">?</span>;
-
- minisc.check_miniscript()<span class="question-mark">?</span>;
-
- <span class="prelude-val">Ok</span>((minisc, keymap, networks))
- })
- }};
-
- ( a: <span class="macro-nonterminal">$inner</span>:expr ) => {{
- <span class="macro-nonterminal">$</span><span class="macro">crate::apply_modifier!</span>(<span class="macro-nonterminal">Alt</span>, <span class="macro-nonterminal">$inner</span>)
- }};
- ( s: <span class="macro-nonterminal">$inner</span>:expr ) => {{
- <span class="macro-nonterminal">$</span><span class="macro">crate::apply_modifier!</span>(<span class="macro-nonterminal">Swap</span>, <span class="macro-nonterminal">$inner</span>)
- }};
- ( c: <span class="macro-nonterminal">$inner</span>:expr ) => {{
- <span class="macro-nonterminal">$</span><span class="macro">crate::apply_modifier!</span>(<span class="macro-nonterminal">Check</span>, <span class="macro-nonterminal">$inner</span>)
- }};
- ( d: <span class="macro-nonterminal">$inner</span>:expr ) => {{
- <span class="macro-nonterminal">$</span><span class="macro">crate::apply_modifier!</span>(<span class="macro-nonterminal">DupIf</span>, <span class="macro-nonterminal">$inner</span>)
- }};
- ( v: <span class="macro-nonterminal">$inner</span>:expr ) => {{
- <span class="macro-nonterminal">$</span><span class="macro">crate::apply_modifier!</span>(<span class="macro-nonterminal">Verify</span>, <span class="macro-nonterminal">$inner</span>)
- }};
- ( j: <span class="macro-nonterminal">$inner</span>:expr ) => {{
- <span class="macro-nonterminal">$</span><span class="macro">crate::apply_modifier!</span>(<span class="macro-nonterminal">NonZero</span>, <span class="macro-nonterminal">$inner</span>)
- }};
- ( n: <span class="macro-nonterminal">$inner</span>:expr ) => {{
- <span class="macro-nonterminal">$</span><span class="macro">crate::apply_modifier!</span>(<span class="macro-nonterminal">ZeroNotEqual</span>, <span class="macro-nonterminal">$inner</span>)
- }};
-
- <span class="comment">// Modifiers expanded to other operators
- </span>( t: <span class="macro-nonterminal">$inner</span>:expr ) => {{
- <span class="macro-nonterminal">$inner</span>.and_then(|(a_minisc, a_keymap, a_networks)| {
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode_value_two!</span>(
- <span class="macro-nonterminal">AndV</span>,
- <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(a_minisc),
- <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(<span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>(<span class="bool-val">true</span>).<span class="macro-nonterminal">unwrap</span>().<span class="number">0</span>)
- )
- .map(|(minisc, <span class="kw">_</span>, <span class="kw">_</span>)| (minisc, a_keymap, a_networks))
- })
- }};
- ( l: <span class="macro-nonterminal">$inner</span>:expr ) => {{
- <span class="macro-nonterminal">$inner</span>.and_then(|(a_minisc, a_keymap, a_networks)| {
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode_value_two!</span>(
- <span class="macro-nonterminal">OrI</span>,
- <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(<span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>(<span class="bool-val">false</span>).<span class="macro-nonterminal">unwrap</span>().<span class="number">0</span>),
- <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(a_minisc)
- )
- .map(|(minisc, <span class="kw">_</span>, <span class="kw">_</span>)| (minisc, a_keymap, a_networks))
- })
- }};
- ( u: <span class="macro-nonterminal">$inner</span>:expr ) => {{
- <span class="macro-nonterminal">$inner</span>.and_then(|(a_minisc, a_keymap, a_networks)| {
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode_value_two!</span>(
- <span class="macro-nonterminal">OrI</span>,
- <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(a_minisc),
- <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(<span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>(<span class="bool-val">false</span>).<span class="macro-nonterminal">unwrap</span>().<span class="number">0</span>)
- )
- .map(|(minisc, <span class="kw">_</span>, <span class="kw">_</span>)| (minisc, a_keymap, a_networks))
- })
- }};
-}
-
-<span class="doccomment">/// Macro to write full descriptors with code
-///
-/// This macro expands to a `Result` of
-/// [`DescriptorTemplateOut`](super::template::DescriptorTemplateOut) and [`DescriptorError`](crate::descriptor::DescriptorError)
-///
-/// The syntax is very similar to the normal descriptor syntax, with the exception that modifiers
-/// cannot be grouped together. For instance, a descriptor fragment like `sdv:older(144)` has to be
-/// broken up to `s:d:v:older(144)`.
-///
-/// The `pk()`, `pk_k()` and `pk_h()` operands can take as argument any type that implements
-/// [`IntoDescriptorKey`]. This means that keys can also be written inline as strings, but in that
-/// case they must be wrapped in quotes, which is another difference compared to the standard
-/// descriptor syntax.
-///
-/// [`IntoDescriptorKey`]: crate::keys::IntoDescriptorKey
-///
-/// ## Example
-///
-/// Signature plus timelock descriptor:
-///
-/// ```
-/// # use std::str::FromStr;
-/// let (my_descriptor, my_keys_map, networks) = bdk::descriptor!(sh(wsh(and_v(v:pk("cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy"),older(50)))))?;
-/// # Ok::<(), Box<dyn std::error::Error>>(())
-/// ```
-///
-/// -------
-///
-/// 2-of-3 that becomes a 1-of-3 after a timelock has expired. Both `descriptor_a` and `descriptor_b` are equivalent: the first
-/// syntax is more suitable for a fixed number of items known at compile time, while the other accepts a
-/// [`Vec`] of items, which makes it more suitable for writing dynamic descriptors.
-///
-/// They both produce the descriptor: `wsh(thresh(2,pk(...),s:pk(...),sndv:older(...)))`
-///
-/// ```
-/// # use std::str::FromStr;
-/// let my_key_1 = bitcoin::PublicKey::from_str(
-/// "02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c",
-/// )?;
-/// let my_key_2 =
-/// bitcoin::PrivateKey::from_wif("cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy")?;
-/// let my_timelock = 50;
-///
-/// let (descriptor_a, key_map_a, networks) = bdk::descriptor! {
-/// wsh (
-/// thresh(2, pk(my_key_1), s:pk(my_key_2), s:n:d:v:older(my_timelock))
-/// )
-/// }?;
-///
-/// #[rustfmt::skip]
-/// let b_items = vec![
-/// bdk::fragment!(pk(my_key_1))?,
-/// bdk::fragment!(s:pk(my_key_2))?,
-/// bdk::fragment!(s:n:d:v:older(my_timelock))?,
-/// ];
-/// let (descriptor_b, mut key_map_b, networks) = bdk::descriptor!(wsh(thresh_vec(2, b_items)))?;
-///
-/// assert_eq!(descriptor_a, descriptor_b);
-/// assert_eq!(key_map_a.len(), key_map_b.len());
-/// # Ok::<(), Box<dyn std::error::Error>>(())
-/// ```
-///
-/// ------
-///
-/// Simple 2-of-2 multi-signature, equivalent to: `wsh(multi(2, ...))`
-///
-/// ```
-/// # use std::str::FromStr;
-/// let my_key_1 = bitcoin::PublicKey::from_str(
-/// "02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c",
-/// )?;
-/// let my_key_2 =
-/// bitcoin::PrivateKey::from_wif("cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy")?;
-///
-/// let (descriptor, key_map, networks) = bdk::descriptor! {
-/// wsh (
-/// multi(2, my_key_1, my_key_2)
-/// )
-/// }?;
-/// # Ok::<(), Box<dyn std::error::Error>>(())
-/// ```
-///
-/// ------
-///
-/// Native-Segwit single-sig, equivalent to: `wpkh(...)`
-///
-/// ```
-/// let my_key =
-/// bitcoin::PrivateKey::from_wif("cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy")?;
-///
-/// let (descriptor, key_map, networks) = bdk::descriptor!(wpkh(my_key))?;
-/// # Ok::<(), Box<dyn std::error::Error>>(())
-/// ```
-///
-/// [`Vec`]: alloc::vec::Vec
-</span><span class="attr">#[macro_export]
-</span><span class="macro">macro_rules! </span>descriptor {
- ( bare ( $( <span class="macro-nonterminal">$minisc</span>:tt )* ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_top_level_sh!</span>(<span class="macro-nonterminal">Bare</span>, new, new, Legacy, $( <span class="macro-nonterminal">$minisc </span>)<span class="kw-2">*</span>)
- });
- ( sh ( wsh ( $( <span class="macro-nonterminal">$minisc</span>:tt )* ) ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::descriptor!</span>(<span class="macro-nonterminal">shwsh </span>($( <span class="macro-nonterminal">$minisc </span>)<span class="kw-2">*</span>))
- });
- ( shwsh ( $( <span class="macro-nonterminal">$minisc</span>:tt )* ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_top_level_sh!</span>(<span class="macro-nonterminal">Sh</span>, new_wsh, new_wsh_sortedmulti, Segwitv0, $( <span class="macro-nonterminal">$minisc </span>)<span class="kw-2">*</span>)
- });
- ( pk ( <span class="macro-nonterminal">$key</span>:expr ) ) => ({
- <span class="comment">// `pk()` is actually implemented as `bare(pk())`
- </span><span class="macro-nonterminal">$</span><span class="macro">crate::descriptor!</span>( <span class="macro-nonterminal">bare </span>( pk ( <span class="macro-nonterminal">$key </span>) ) )
- });
- ( pkh ( <span class="macro-nonterminal">$key</span>:expr ) ) => ({
- <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::descriptor</span>::{Descriptor, DescriptorPublicKey};
-
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_top_level_pk!</span>(<span class="macro-nonterminal">Pkh</span>, <span class="macro-nonterminal">$crate::miniscript::Legacy</span>, <span class="macro-nonterminal">$key</span>)
- .and_then(|(a, b, c)| <span class="prelude-val">Ok</span>((a.map_err(|e| miniscript::Error::from(e))<span class="question-mark">?</span>, b, c)))
- .map(|(a, b, c)| (Descriptor::<DescriptorPublicKey>::Pkh(a), b, c))
- });
- ( wpkh ( <span class="macro-nonterminal">$key</span>:expr ) ) => ({
- <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::descriptor</span>::{Descriptor, DescriptorPublicKey};
-
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_top_level_pk!</span>(<span class="macro-nonterminal">Wpkh</span>, <span class="macro-nonterminal">$crate::miniscript::Segwitv0</span>, <span class="macro-nonterminal">$key</span>)
- .and_then(|(a, b, c)| <span class="prelude-val">Ok</span>((a.map_err(|e| miniscript::Error::from(e))<span class="question-mark">?</span>, b, c)))
- .map(|(a, b, c)| (Descriptor::<DescriptorPublicKey>::Wpkh(a), b, c))
- });
- ( sh ( wpkh ( <span class="macro-nonterminal">$key</span>:expr ) ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::descriptor!</span>(<span class="macro-nonterminal">shwpkh </span>( <span class="macro-nonterminal">$key </span>))
- });
- ( shwpkh ( <span class="macro-nonterminal">$key</span>:expr ) ) => ({
- <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::descriptor</span>::{Descriptor, DescriptorPublicKey, Sh};
-
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_top_level_pk!</span>(<span class="macro-nonterminal">Wpkh</span>, <span class="macro-nonterminal">$crate::miniscript::Segwitv0</span>, <span class="macro-nonterminal">$key</span>)
- .and_then(|(a, b, c)| <span class="prelude-val">Ok</span>((a.map_err(|e| miniscript::Error::from(e))<span class="question-mark">?</span>, b, c)))
- .and_then(|(a, b, c)| <span class="prelude-val">Ok</span>((Descriptor::<DescriptorPublicKey>::Sh(Sh::new_wpkh(a.into_inner())<span class="question-mark">?</span>), b, c)))
- });
- ( sh ( $( <span class="macro-nonterminal">$minisc</span>:tt )* ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_top_level_sh!</span>(<span class="macro-nonterminal">Sh</span>, new, new_sortedmulti, Legacy, $( <span class="macro-nonterminal">$minisc </span>)<span class="kw-2">*</span>)
- });
- ( wsh ( $( <span class="macro-nonterminal">$minisc</span>:tt )* ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_top_level_sh!</span>(<span class="macro-nonterminal">Wsh</span>, new, new_sortedmulti, Segwitv0, $( <span class="macro-nonterminal">$minisc </span>)<span class="kw-2">*</span>)
- });
-
- ( tr ( <span class="macro-nonterminal">$internal_key</span>:expr ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_top_level_tr!</span>(<span class="macro-nonterminal">$internal_key</span>, <span class="prelude-val">None</span>)
- });
- ( tr ( <span class="macro-nonterminal">$internal_key</span>:expr, $( <span class="macro-nonterminal">$taptree</span>:tt )* ) ) => ({
- <span class="kw">let </span>tap_tree = <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>( $( <span class="macro-nonterminal">$taptree </span>)* );
- tap_tree
- .and_then(|tap_tree| <span class="macro-nonterminal">$</span><span class="macro">crate::impl_top_level_tr!</span>(<span class="macro-nonterminal">$internal_key</span>, <span class="prelude-val">Some</span>(tap_tree)))
- });
-}
-
-<span class="attr">#[doc(hidden)]
-</span><span class="kw">pub struct </span>TupleTwo<A, B> {
- <span class="kw">pub </span>a: A,
- <span class="kw">pub </span>b: B,
-}
-
-<span class="kw">impl</span><A, B> TupleTwo<A, B> {
- <span class="kw">pub fn </span>flattened(<span class="self">self</span>) -> (A, B) {
- (<span class="self">self</span>.a, <span class="self">self</span>.b)
- }
-}
-
-<span class="kw">impl</span><A, B> From<(A, (B, ()))> <span class="kw">for </span>TupleTwo<A, B> {
- <span class="kw">fn </span>from((a, (b, <span class="kw">_</span>)): (A, (B, ()))) -> <span class="self">Self </span>{
- TupleTwo { a, b }
- }
-}
-
-<span class="attr">#[doc(hidden)]
-</span><span class="kw">pub struct </span>TupleThree<A, B, C> {
- <span class="kw">pub </span>a: A,
- <span class="kw">pub </span>b: B,
- <span class="kw">pub </span>c: C,
-}
-
-<span class="kw">impl</span><A, B, C> TupleThree<A, B, C> {
- <span class="kw">pub fn </span>flattened(<span class="self">self</span>) -> (A, B, C) {
- (<span class="self">self</span>.a, <span class="self">self</span>.b, <span class="self">self</span>.c)
- }
-}
-
-<span class="kw">impl</span><A, B, C> From<(A, (B, (C, ())))> <span class="kw">for </span>TupleThree<A, B, C> {
- <span class="kw">fn </span>from((a, (b, (c, <span class="kw">_</span>))): (A, (B, (C, ())))) -> <span class="self">Self </span>{
- TupleThree { a, b, c }
- }
-}
-
-<span class="attr">#[doc(hidden)]
-#[macro_export]
-</span><span class="macro">macro_rules! </span>group_multi_keys {
- ( $( <span class="macro-nonterminal">$key</span>:expr ),+ ) => {{
- <span class="kw">use </span><span class="macro-nonterminal">$crate::keys::IntoDescriptorKey</span>;
-
- <span class="kw">let </span>keys = <span class="macro">vec!</span>[
- $(
- <span class="macro-nonterminal">$key</span>.into_descriptor_key(),
- )*
- ];
-
- keys.into_iter().collect::<<span class="prelude-ty">Result</span><<span class="macro-nonterminal">$crate::alloc::vec::Vec</span><<span class="kw">_</span>>, <span class="kw">_</span>>>()
- .map_err(<span class="macro-nonterminal">$crate::descriptor::DescriptorError::Key</span>)
- }};
-}
-
-<span class="attr">#[doc(hidden)]
-#[macro_export]
-</span><span class="macro">macro_rules! </span>fragment_internal {
- <span class="comment">// The @v prefix is used to parse a sequence of operands and return them in a vector. This is
- // used by operands that take a variable number of arguments, like `thresh()` and `multi()`.
- </span>( @v <span class="macro-nonterminal">$op</span>:ident ( $( <span class="macro-nonterminal">$args</span>:tt )* ) $( <span class="macro-nonterminal">$tail</span>:tt )* ) => ({
- <span class="kw">let </span><span class="kw-2">mut </span>v = <span class="macro">vec!</span>[<span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>( <span class="macro-nonterminal">$op </span>( $( <span class="macro-nonterminal">$args </span>)* ) )];
- v.append(<span class="kw-2">&mut </span><span class="macro-nonterminal">$</span><span class="macro">crate::fragment_internal!</span>( @<span class="macro-nonterminal">v </span>$( <span class="macro-nonterminal">$tail </span>)* ));
-
- v
- });
- <span class="comment">// Match modifiers
- </span>( @v <span class="macro-nonterminal">$modif</span>:tt : $( <span class="macro-nonterminal">$tail</span>:tt )* ) => ({
- <span class="kw">let </span><span class="kw-2">mut </span>v = <span class="macro-nonterminal">$</span><span class="macro">crate::fragment_internal!</span>( @<span class="macro-nonterminal">v </span>$( <span class="macro-nonterminal">$tail </span>)* );
- <span class="kw">let </span>first = v.drain(..<span class="number">1</span>).next().unwrap();
-
- <span class="kw">let </span>first = <span class="macro-nonterminal">$</span><span class="macro">crate::apply_modifier!</span>(<span class="macro-nonterminal">$modif</span>:first);
-
- <span class="kw">let </span><span class="kw-2">mut </span>v_final = <span class="macro">vec!</span>[first];
- v_final.append(<span class="kw-2">&mut </span>v);
-
- v_final
- });
- <span class="comment">// Remove commas between operands
- </span>( @v , $( <span class="macro-nonterminal">$tail</span>:tt )* ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::fragment_internal!</span>( @<span class="macro-nonterminal">v </span>$( <span class="macro-nonterminal">$tail </span>)* )
- });
- ( @v ) => ({
- <span class="macro">vec!</span>[]
- });
-
- <span class="comment">// The @t prefix is used to parse a sequence of operands and return them in a tuple. This
- // allows checking at compile-time the number of arguments passed to an operand. For this
- // reason it's used by `and_*()`, `or_*()`, etc.
- //
- // Unfortunately, due to the fact that concatenating tuples is pretty hard, the final result
- // adds in the first spot the parsed operand and in the second spot the result of parsing
- // all the following ones. For two operands the type then corresponds to: (X, (X, ())). For
- // three operands it's (X, (X, (X, ()))), etc.
- //
- // To check that the right number of arguments has been passed we can "cast" those tuples to
- // more convenient structures like `TupleTwo`. If the conversion succeeds, the right number of
- // args was passed. Otherwise the compilation fails entirely.
- </span>( @t <span class="macro-nonterminal">$op</span>:ident ( $( <span class="macro-nonterminal">$args</span>:tt )* ) $( <span class="macro-nonterminal">$tail</span>:tt )* ) => ({
- (<span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>( <span class="macro-nonterminal">$op </span>( $( <span class="macro-nonterminal">$args </span>)* ) ), <span class="macro-nonterminal">$</span><span class="macro">crate::fragment_internal!</span>( @<span class="macro-nonterminal">t </span>$( <span class="macro-nonterminal">$tail </span>)* ))
- });
- <span class="comment">// Match modifiers
- </span>( @t <span class="macro-nonterminal">$modif</span>:tt : $( <span class="macro-nonterminal">$tail</span>:tt )* ) => ({
- <span class="kw">let </span>(first, tail) = <span class="macro-nonterminal">$</span><span class="macro">crate::fragment_internal!</span>( @<span class="macro-nonterminal">t </span>$( <span class="macro-nonterminal">$tail </span>)* );
- (<span class="macro-nonterminal">$</span><span class="macro">crate::apply_modifier!</span>(<span class="macro-nonterminal">$modif</span>:first), tail)
- });
- <span class="comment">// Remove commas between operands
- </span>( @t , $( <span class="macro-nonterminal">$tail</span>:tt )* ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::fragment_internal!</span>( @<span class="macro-nonterminal">t </span>$( <span class="macro-nonterminal">$tail </span>)* )
- });
- ( @t ) => ({});
-
- <span class="comment">// Fallback to calling `fragment!()`
- </span>( $( <span class="macro-nonterminal">$tokens</span>:tt )* ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>($( <span class="macro-nonterminal">$tokens </span>)<span class="kw-2">*</span>)
- });
-}
-
-<span class="doccomment">/// Macro to write descriptor fragments with code
-///
-/// This macro will be expanded to an object of type `Result<(Miniscript<DescriptorPublicKey, _>, KeyMap, ValidNetworks), DescriptorError>`. It allows writing
-/// fragments of larger descriptors that can be pieced together using `fragment!(thresh_vec(m, ...))`.
-///
-/// The syntax to write macro fragment is the same as documented for the [`descriptor`] macro.
-</span><span class="attr">#[macro_export]
-</span><span class="macro">macro_rules! </span>fragment {
- <span class="comment">// Modifiers
- </span>( <span class="macro-nonterminal">$modif</span>:tt : $( <span class="macro-nonterminal">$tail</span>:tt )* ) => ({
- <span class="kw">let </span>op = <span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>( $( <span class="macro-nonterminal">$tail </span>)* );
- <span class="macro-nonterminal">$</span><span class="macro">crate::apply_modifier!</span>(<span class="macro-nonterminal">$modif</span>:op)
- });
-
- <span class="comment">// Miniscript
- </span>( <span class="bool-val">true </span>) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode!</span>(<span class="macro-nonterminal">True</span>)
- });
- ( <span class="bool-val">false </span>) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode!</span>(<span class="macro-nonterminal">False</span>)
- });
- ( pk_k ( <span class="macro-nonterminal">$key</span>:expr ) ) => ({
- <span class="kw">let </span>secp = <span class="macro-nonterminal">$crate::bitcoin::secp256k1::Secp256k1::new</span>();
- <span class="macro-nonterminal">$crate::keys::make_pk</span>(<span class="macro-nonterminal">$key</span>, <span class="kw-2">&</span>secp)
- });
- ( pk ( <span class="macro-nonterminal">$key</span>:expr ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>(<span class="macro-nonterminal">c</span>:pk_k ( <span class="macro-nonterminal">$key </span>))
- });
- ( pk_h ( <span class="macro-nonterminal">$key</span>:expr ) ) => ({
- <span class="kw">let </span>secp = <span class="macro-nonterminal">$crate::bitcoin::secp256k1::Secp256k1::new</span>();
- <span class="macro-nonterminal">$crate::keys::make_pkh</span>(<span class="macro-nonterminal">$key</span>, <span class="kw-2">&</span>secp)
- });
- ( after ( <span class="macro-nonterminal">$value</span>:expr ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode_value!</span>(<span class="macro-nonterminal">After</span>, <span class="macro-nonterminal">$crate::miniscript::AbsLockTime::from_consensus</span>(<span class="macro-nonterminal">$value</span>))
- });
- ( older ( <span class="macro-nonterminal">$value</span>:expr ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode_value!</span>(<span class="macro-nonterminal">Older</span>, <span class="macro-nonterminal">$crate::bitcoin::Sequence</span>(<span class="macro-nonterminal">$value</span>)) <span class="comment">// TODO!!
- </span>});
- ( sha256 ( <span class="macro-nonterminal">$hash</span>:expr ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode_value!</span>(<span class="macro-nonterminal">Sha256</span>, <span class="macro-nonterminal">$hash</span>)
- });
- ( hash256 ( <span class="macro-nonterminal">$hash</span>:expr ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode_value!</span>(<span class="macro-nonterminal">Hash256</span>, <span class="macro-nonterminal">$hash</span>)
- });
- ( ripemd160 ( <span class="macro-nonterminal">$hash</span>:expr ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode_value!</span>(<span class="macro-nonterminal">Ripemd160</span>, <span class="macro-nonterminal">$hash</span>)
- });
- ( hash160 ( <span class="macro-nonterminal">$hash</span>:expr ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode_value!</span>(<span class="macro-nonterminal">Hash160</span>, <span class="macro-nonterminal">$hash</span>)
- });
- ( and_v ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_node_opcode_two!</span>(<span class="macro-nonterminal">AndV</span>, $( <span class="macro-nonterminal">$inner </span>)<span class="kw-2">*</span>)
- });
- ( and_b ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_node_opcode_two!</span>(<span class="macro-nonterminal">AndB</span>, $( <span class="macro-nonterminal">$inner </span>)<span class="kw-2">*</span>)
- });
- ( and_or ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_node_opcode_three!</span>(<span class="macro-nonterminal">AndOr</span>, $( <span class="macro-nonterminal">$inner </span>)<span class="kw-2">*</span>)
- });
- ( andor ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_node_opcode_three!</span>(<span class="macro-nonterminal">AndOr</span>, $( <span class="macro-nonterminal">$inner </span>)<span class="kw-2">*</span>)
- });
- ( or_b ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_node_opcode_two!</span>(<span class="macro-nonterminal">OrB</span>, $( <span class="macro-nonterminal">$inner </span>)<span class="kw-2">*</span>)
- });
- ( or_d ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_node_opcode_two!</span>(<span class="macro-nonterminal">OrD</span>, $( <span class="macro-nonterminal">$inner </span>)<span class="kw-2">*</span>)
- });
- ( or_c ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_node_opcode_two!</span>(<span class="macro-nonterminal">OrC</span>, $( <span class="macro-nonterminal">$inner </span>)<span class="kw-2">*</span>)
- });
- ( or_i ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_node_opcode_two!</span>(<span class="macro-nonterminal">OrI</span>, $( <span class="macro-nonterminal">$inner </span>)<span class="kw-2">*</span>)
- });
- ( thresh_vec ( <span class="macro-nonterminal">$thresh</span>:expr, <span class="macro-nonterminal">$items</span>:expr ) ) => ({
- <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::descriptor::KeyMap</span>;
-
- <span class="kw">let </span>(items, key_maps_networks): (<span class="macro-nonterminal">$crate::alloc::vec::Vec</span><<span class="kw">_</span>>, <span class="macro-nonterminal">$crate::alloc::vec::Vec</span><<span class="kw">_</span>>) = <span class="macro-nonterminal">$items</span>.into_iter().map(|(a, b, c)| (a, (b, c))).unzip();
- <span class="kw">let </span>items = items.into_iter().map(<span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>).collect();
-
- <span class="kw">let </span>(key_maps, valid_networks) = key_maps_networks.into_iter().fold((KeyMap::default(), <span class="macro-nonterminal">$crate::keys::any_network</span>()), |(<span class="kw-2">mut </span>keys_acc, net_acc), (key, net)| {
- keys_acc.extend(key.into_iter());
- <span class="kw">let </span>net_acc = <span class="macro-nonterminal">$crate::keys::merge_networks</span>(<span class="kw-2">&</span>net_acc, <span class="kw-2">&</span>net);
-
- (keys_acc, net_acc)
- });
-
- <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode_value_two!</span>(<span class="macro-nonterminal">Thresh</span>, <span class="macro-nonterminal">$thresh</span>, items)
- .map(|(minisc, <span class="kw">_</span>, <span class="kw">_</span>)| (minisc, key_maps, valid_networks))
- });
- ( thresh ( <span class="macro-nonterminal">$thresh</span>:expr, $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => ({
- <span class="kw">let </span>items = <span class="macro-nonterminal">$</span><span class="macro">crate::fragment_internal!</span>( @<span class="macro-nonterminal">v </span>$( <span class="macro-nonterminal">$inner </span>)* );
-
- items.into_iter().collect::<<span class="prelude-ty">Result</span><<span class="macro-nonterminal">$crate::alloc::vec::Vec</span><<span class="kw">_</span>>, <span class="kw">_</span>>>()
- .and_then(|items| <span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>(<span class="macro-nonterminal">thresh_vec</span>(<span class="macro-nonterminal">$thresh</span>, items)))
- });
- ( multi_vec ( <span class="macro-nonterminal">$thresh</span>:expr, <span class="macro-nonterminal">$keys</span>:expr ) ) => ({
- <span class="kw">let </span>secp = <span class="macro-nonterminal">$crate::bitcoin::secp256k1::Secp256k1::new</span>();
-
- <span class="macro-nonterminal">$crate::keys::make_multi</span>(<span class="macro-nonterminal">$thresh</span>, <span class="macro-nonterminal">$crate::miniscript::Terminal::Multi</span>, <span class="macro-nonterminal">$keys</span>, <span class="kw-2">&</span>secp)
- });
- ( multi ( <span class="macro-nonterminal">$thresh</span>:expr $(, <span class="macro-nonterminal">$key</span>:expr )+ ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::group_multi_keys!</span>( $( <span class="macro-nonterminal">$key </span>),* )
- .and_then(|keys| <span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>( <span class="macro-nonterminal">multi_vec </span>( <span class="macro-nonterminal">$thresh</span>, keys ) ))
- });
- ( multi_a_vec ( <span class="macro-nonterminal">$thresh</span>:expr, <span class="macro-nonterminal">$keys</span>:expr ) ) => ({
- <span class="kw">let </span>secp = <span class="macro-nonterminal">$crate::bitcoin::secp256k1::Secp256k1::new</span>();
-
- <span class="macro-nonterminal">$crate::keys::make_multi</span>(<span class="macro-nonterminal">$thresh</span>, <span class="macro-nonterminal">$crate::miniscript::Terminal::MultiA</span>, <span class="macro-nonterminal">$keys</span>, <span class="kw-2">&</span>secp)
- });
- ( multi_a ( <span class="macro-nonterminal">$thresh</span>:expr $(, <span class="macro-nonterminal">$key</span>:expr )+ ) ) => ({
- <span class="macro-nonterminal">$</span><span class="macro">crate::group_multi_keys!</span>( $( <span class="macro-nonterminal">$key </span>),* )
- .and_then(|keys| <span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>( <span class="macro-nonterminal">multi_a_vec </span>( <span class="macro-nonterminal">$thresh</span>, keys ) ))
- });
-
- <span class="comment">// `sortedmulti()` is handled separately
- </span>( sortedmulti ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => ({
- <span class="macro">compile_error!</span>(<span class="string">"`sortedmulti` can only be used as the root operand of a descriptor"</span>);
- });
- ( sortedmulti_vec ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => ({
- <span class="macro">compile_error!</span>(<span class="string">"`sortedmulti_vec` can only be used as the root operand of a descriptor"</span>);
- });
-}
-
-<span class="attr">#[cfg(test)]
-</span><span class="kw">mod </span>test {
- <span class="kw">use </span>alloc::string::ToString;
- <span class="kw">use </span>bitcoin::secp256k1::Secp256k1;
- <span class="kw">use </span>miniscript::descriptor::{DescriptorPublicKey, KeyMap};
- <span class="kw">use </span>miniscript::{Descriptor, Legacy, Segwitv0};
-
- <span class="kw">use </span>core::str::FromStr;
-
- <span class="kw">use </span><span class="kw">crate</span>::descriptor::{DescriptorError, DescriptorMeta};
- <span class="kw">use </span><span class="kw">crate</span>::keys::{DescriptorKey, IntoDescriptorKey, ValidNetworks};
- <span class="kw">use </span>bitcoin::bip32;
- <span class="kw">use </span>bitcoin::Network::{Bitcoin, Regtest, Signet, Testnet};
- <span class="kw">use </span>bitcoin::PrivateKey;
-
- <span class="comment">// test the descriptor!() macro
-
- // verify descriptor generates expected script(s) (if bare or pk) or address(es)
- </span><span class="kw">fn </span>check(
- desc: <span class="prelude-ty">Result</span><(Descriptor<DescriptorPublicKey>, KeyMap, ValidNetworks), DescriptorError>,
- is_witness: bool,
- is_fixed: bool,
- expected: <span class="kw-2">&</span>[<span class="kw-2">&</span>str],
- ) {
- <span class="kw">let </span>(desc, _key_map, _networks) = desc.unwrap();
- <span class="macro">assert_eq!</span>(desc.is_witness(), is_witness);
- <span class="macro">assert_eq!</span>(!desc.has_wildcard(), is_fixed);
- <span class="kw">for </span>i <span class="kw">in </span><span class="number">0</span>..expected.len() {
- <span class="kw">let </span>child_desc = desc
- .at_derivation_index(i <span class="kw">as </span>u32)
- .expect(<span class="string">"i is not hardened"</span>);
- <span class="kw">let </span>address = child_desc.address(Regtest);
- <span class="kw">if let </span><span class="prelude-val">Ok</span>(address) = address {
- <span class="macro">assert_eq!</span>(address.to_string(), <span class="kw-2">*</span>expected.get(i).unwrap());
- } <span class="kw">else </span>{
- <span class="kw">let </span>script = child_desc.script_pubkey();
- <span class="macro">assert_eq!</span>(script.to_hex_string(), <span class="kw-2">*</span>expected.get(i).unwrap());
- }
- }
- }
-
- <span class="comment">// - at least one of each "type" of operator; i.e. one modifier, one leaf_opcode, one leaf_opcode_value, etc.
- // - mixing up key types that implement IntoDescriptorKey in multi() or thresh()
-
- // expected script for pk and bare manually created
- // expected addresses created with `bitcoin-cli getdescriptorinfo` (for hash) and `bitcoin-cli deriveaddresses`
-
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_fixed_legacy_descriptors() {
- <span class="kw">let </span>pubkey1 = bitcoin::PublicKey::from_str(
- <span class="string">"03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd"</span>,
- )
- .unwrap();
- <span class="kw">let </span>pubkey2 = bitcoin::PublicKey::from_str(
- <span class="string">"032e58afe51f9ed8ad3cc7897f634d881fdbe49a81564629ded8156bebd2ffd1af"</span>,
- )
- .unwrap();
-
- check(
- <span class="macro">descriptor!</span>(bare(multi(<span class="number">1</span>,pubkey1,pubkey2))),
- <span class="bool-val">false</span>,
- <span class="bool-val">true</span>,
- <span class="kw-2">&</span>[<span class="string">"512103a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd21032e58afe51f9ed8ad3cc7897f634d881fdbe49a81564629ded8156bebd2ffd1af52ae"</span>],
- );
- check(
- <span class="macro">descriptor!</span>(pk(pubkey1)),
- <span class="bool-val">false</span>,
- <span class="bool-val">true</span>,
- <span class="kw-2">&</span>[<span class="string">"2103a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bdac"</span>],
- );
- check(
- <span class="macro">descriptor!</span>(pkh(pubkey1)),
- <span class="bool-val">false</span>,
- <span class="bool-val">true</span>,
- <span class="kw-2">&</span>[<span class="string">"muZpTpBYhxmRFuCjLc7C6BBDF32C8XVJUi"</span>],
- );
- check(
- <span class="macro">descriptor!</span>(sh(multi(<span class="number">1</span>, pubkey1, pubkey2))),
- <span class="bool-val">false</span>,
- <span class="bool-val">true</span>,
- <span class="kw-2">&</span>[<span class="string">"2MymURoV1bzuMnWMGiXzyomDkeuxXY7Suey"</span>],
- );
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_fixed_segwitv0_descriptors() {
- <span class="kw">let </span>pubkey1 = bitcoin::PublicKey::from_str(
- <span class="string">"03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd"</span>,
- )
- .unwrap();
- <span class="kw">let </span>pubkey2 = bitcoin::PublicKey::from_str(
- <span class="string">"032e58afe51f9ed8ad3cc7897f634d881fdbe49a81564629ded8156bebd2ffd1af"</span>,
- )
- .unwrap();
-
- check(
- <span class="macro">descriptor!</span>(wpkh(pubkey1)),
- <span class="bool-val">true</span>,
- <span class="bool-val">true</span>,
- <span class="kw-2">&</span>[<span class="string">"bcrt1qngw83fg8dz0k749cg7k3emc7v98wy0c7azaa6h"</span>],
- );
- check(
- <span class="macro">descriptor!</span>(sh(wpkh(pubkey1))),
- <span class="bool-val">true</span>,
- <span class="bool-val">true</span>,
- <span class="kw-2">&</span>[<span class="string">"2N5LiC3CqzxDamRTPG1kiNv1FpNJQ7x28sb"</span>],
- );
- check(
- <span class="macro">descriptor!</span>(wsh(multi(<span class="number">1</span>, pubkey1, pubkey2))),
- <span class="bool-val">true</span>,
- <span class="bool-val">true</span>,
- <span class="kw-2">&</span>[<span class="string">"bcrt1qgw8jvv2hsrvjfa6q66rk6har7d32lrqm5unnf5cl63q9phxfvgps5fyfqe"</span>],
- );
- check(
- <span class="macro">descriptor!</span>(sh(wsh(multi(<span class="number">1</span>, pubkey1, pubkey2)))),
- <span class="bool-val">true</span>,
- <span class="bool-val">true</span>,
- <span class="kw-2">&</span>[<span class="string">"2NCidRJysy7apkmE6JF5mLLaJFkrN3Ub9iy"</span>],
- );
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_fixed_threeop_descriptors() {
- <span class="kw">let </span>redeem_key = bitcoin::PublicKey::from_str(
- <span class="string">"03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd"</span>,
- )
- .unwrap();
- <span class="kw">let </span>move_key = bitcoin::PublicKey::from_str(
- <span class="string">"032e58afe51f9ed8ad3cc7897f634d881fdbe49a81564629ded8156bebd2ffd1af"</span>,
- )
- .unwrap();
-
- check(
- <span class="macro">descriptor!</span>(sh(wsh(and_or(pk(redeem_key), older(<span class="number">1000</span>), pk(move_key))))),
- <span class="bool-val">true</span>,
- <span class="bool-val">true</span>,
- <span class="kw-2">&</span>[<span class="string">"2MypGwr5eQWAWWJtiJgUEToVxc4zuokjQRe"</span>],
- );
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_bip32_legacy_descriptors() {
- <span class="kw">let </span>xprv = bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy"</span>).unwrap();
-
- <span class="kw">let </span>path = bip32::DerivationPath::from_str(<span class="string">"m/0"</span>).unwrap();
- <span class="kw">let </span>desc_key = (xprv, path.clone()).into_descriptor_key().unwrap();
- check(
- <span class="macro">descriptor!</span>(pk(desc_key)),
- <span class="bool-val">false</span>,
- <span class="bool-val">false</span>,
- <span class="kw-2">&</span>[
- <span class="string">"2102363ad03c10024e1b597a5b01b9982807fb638e00b06f3b2d4a89707de3b93c37ac"</span>,
- <span class="string">"2102063a21fd780df370ed2fc8c4b86aa5ea642630609c203009df631feb7b480dd2ac"</span>,
- <span class="string">"2102ba2685ad1fa5891cb100f1656b2ce3801822ccb9bac0336734a6f8c1b93ebbc0ac"</span>,
- ],
- );
-
- <span class="kw">let </span>desc_key = (xprv, path.clone()).into_descriptor_key().unwrap();
- check(
- <span class="macro">descriptor!</span>(pkh(desc_key)),
- <span class="bool-val">false</span>,
- <span class="bool-val">false</span>,
- <span class="kw-2">&</span>[
- <span class="string">"muvBdsVpJxpFuTHMKA47htJPdCvdt4F9DP"</span>,
- <span class="string">"mxQSHK7DL2t1DN3xFxov1janCoXSSkrSPj"</span>,
- <span class="string">"mfz43r15GiWo4nizmyzMNubsnkDpByFFAn"</span>,
- ],
- );
-
- <span class="kw">let </span>path2 = bip32::DerivationPath::from_str(<span class="string">"m/2147483647'/0"</span>).unwrap();
- <span class="kw">let </span>desc_key1 = (xprv, path).into_descriptor_key().unwrap();
- <span class="kw">let </span>desc_key2 = (xprv, path2).into_descriptor_key().unwrap();
-
- check(
- <span class="macro">descriptor!</span>(sh(multi(<span class="number">1</span>, desc_key1, desc_key2))),
- <span class="bool-val">false</span>,
- <span class="bool-val">false</span>,
- <span class="kw-2">&</span>[
- <span class="string">"2MtMDXsfwefZkEEhVViEPidvcKRUtJamJJ8"</span>,
- <span class="string">"2MwAUZ1NYyWjhVvGTethFL6n7nZhS8WE6At"</span>,
- <span class="string">"2MuT6Bj66HLwZd7s4SoD8XbK4GwriKEA6Gr"</span>,
- ],
- );
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_bip32_segwitv0_descriptors() {
- <span class="kw">let </span>xprv = bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy"</span>).unwrap();
-
- <span class="kw">let </span>path = bip32::DerivationPath::from_str(<span class="string">"m/0"</span>).unwrap();
- <span class="kw">let </span>desc_key = (xprv, path.clone()).into_descriptor_key().unwrap();
- check(
- <span class="macro">descriptor!</span>(wpkh(desc_key)),
- <span class="bool-val">true</span>,
- <span class="bool-val">false</span>,
- <span class="kw-2">&</span>[
- <span class="string">"bcrt1qnhm8w9fhc8cxzgqsmqdf9fyjccyvc0gltnymu0"</span>,
- <span class="string">"bcrt1qhylfd55rn75w9fj06zspctad5w4hz33rf0ttad"</span>,
- <span class="string">"bcrt1qq5sq3a6k9av9d8cne0k9wcldy4nqey5yt6889r"</span>,
- ],
- );
-
- <span class="kw">let </span>desc_key = (xprv, path.clone()).into_descriptor_key().unwrap();
- check(
- <span class="macro">descriptor!</span>(sh(wpkh(desc_key))),
- <span class="bool-val">true</span>,
- <span class="bool-val">false</span>,
- <span class="kw-2">&</span>[
- <span class="string">"2MxvjQCaLqZ5QxZ7XotZDQ63hZw3NPss763"</span>,
- <span class="string">"2NDUoevN4QMzhvHDMGhKuiT2fN9HXbFRMwn"</span>,
- <span class="string">"2NF4BEAY2jF1Fu8vqfN3NVKoFtom77pUxrx"</span>,
- ],
- );
-
- <span class="kw">let </span>path2 = bip32::DerivationPath::from_str(<span class="string">"m/2147483647'/0"</span>).unwrap();
- <span class="kw">let </span>desc_key1 = (xprv, path.clone()).into_descriptor_key().unwrap();
- <span class="kw">let </span>desc_key2 = (xprv, path2.clone()).into_descriptor_key().unwrap();
- check(
- <span class="macro">descriptor!</span>(wsh(multi(<span class="number">1</span>, desc_key1, desc_key2))),
- <span class="bool-val">true</span>,
- <span class="bool-val">false</span>,
- <span class="kw-2">&</span>[
- <span class="string">"bcrt1qfxv8mxmlv5sz8q2mnuyaqdfe9jr4vvmx0csjhn092p6f4qfygfkq2hng49"</span>,
- <span class="string">"bcrt1qerj85g243e6jlcdxpmn9spk0gefcwvu7nw7ee059d5ydzpdhkm2qwfkf5k"</span>,
- <span class="string">"bcrt1qxkl2qss3k58q9ktc8e89pwr4gnptfpw4hju4xstxcjc0hkcae3jstluty7"</span>,
- ],
- );
-
- <span class="kw">let </span>desc_key1 = (xprv, path).into_descriptor_key().unwrap();
- <span class="kw">let </span>desc_key2 = (xprv, path2).into_descriptor_key().unwrap();
- check(
- <span class="macro">descriptor!</span>(sh(wsh(multi(<span class="number">1</span>, desc_key1, desc_key2)))),
- <span class="bool-val">true</span>,
- <span class="bool-val">false</span>,
- <span class="kw-2">&</span>[
- <span class="string">"2NFCtXvx9q4ci2kvKub17iSTgvRXGctCGhz"</span>,
- <span class="string">"2NB2PrFPv5NxWCpygas8tPrGJG2ZFgeuwJw"</span>,
- <span class="string">"2N79ZAGo5cMi5Jt7Wo9L5YmF5GkEw7sjWdC"</span>,
- ],
- );
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_dsl_sortedmulti() {
- <span class="kw">let </span>key_1 = bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy"</span>).unwrap();
- <span class="kw">let </span>path_1 = bip32::DerivationPath::from_str(<span class="string">"m/0"</span>).unwrap();
-
- <span class="kw">let </span>key_2 = bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPegBHHnq7YEgM815dG24M2Jk5RVqipgDxF1HJ1tsnT815X5Fd5FRfMVUs8NZs9XCb6y9an8hRPThnhfwfXJ36intaekySHGF"</span>).unwrap();
- <span class="kw">let </span>path_2 = bip32::DerivationPath::from_str(<span class="string">"m/1"</span>).unwrap();
-
- <span class="kw">let </span>desc_key1 = (key_1, path_1);
- <span class="kw">let </span>desc_key2 = (key_2, path_2);
-
- check(
- <span class="macro">descriptor!</span>(sh(sortedmulti(<span class="number">1</span>, desc_key1.clone(), desc_key2.clone()))),
- <span class="bool-val">false</span>,
- <span class="bool-val">false</span>,
- <span class="kw-2">&</span>[
- <span class="string">"2MsxzPEJDBzpGffJXPaDpfXZAUNnZhaMh2N"</span>,
- <span class="string">"2My3x3DLPK3UbGWGpxrXr1RnbD8MNC4FpgS"</span>,
- <span class="string">"2NByEuiQT7YLqHCTNxL5KwYjvtuCYcXNBSC"</span>,
- <span class="string">"2N1TGbP81kj2VUKTSWgrwxoMfuWjvfUdyu7"</span>,
- <span class="string">"2N3Bomq2fpAcLRNfZnD3bCWK9quan28CxCR"</span>,
- <span class="string">"2N9nrZaEzEFDqEAU9RPvDnXGT6AVwBDKAQb"</span>,
- ],
- );
-
- check(
- <span class="macro">descriptor!</span>(sh(wsh(sortedmulti(
- <span class="number">1</span>,
- desc_key1.clone(),
- desc_key2.clone()
- )))),
- <span class="bool-val">true</span>,
- <span class="bool-val">false</span>,
- <span class="kw-2">&</span>[
- <span class="string">"2NCogc5YyM4N6ruv1hUa7WLMW1BPeCK7N9B"</span>,
- <span class="string">"2N6mkSAKi1V2oaBXby7XHdvBMKEDRQcFpNe"</span>,
- <span class="string">"2NFmTSttm9v6bXeoWaBvpMcgfPQcZhNn3Eh"</span>,
- <span class="string">"2Mvib87RBPUHXNEpX5S5Kv1qqrhBfgBGsJM"</span>,
- <span class="string">"2MtMv5mcK2EjcLsH8Txpx2JxLLzHr4ttczL"</span>,
- <span class="string">"2MsWCB56rb4T6yPv8QudZGHERTwNgesE4f6"</span>,
- ],
- );
-
- check(
- <span class="macro">descriptor!</span>(wsh(sortedmulti_vec(<span class="number">1</span>, <span class="macro">vec!</span>[desc_key1, desc_key2]))),
- <span class="bool-val">true</span>,
- <span class="bool-val">false</span>,
- <span class="kw-2">&</span>[
- <span class="string">"bcrt1qcvq0lg8q7a47ytrd7zk5y7uls7mulrenjgvflwylpppgwf8029es4vhpnj"</span>,
- <span class="string">"bcrt1q80yn8sdt6l7pjvkz25lglyaqctlmsq9ugk80rmxt8yu0npdsj97sc7l4de"</span>,
- <span class="string">"bcrt1qrvf6024v9s50qhffe3t2fr2q9ckdhx2g6jz32chm2pp24ymgtr5qfrdmct"</span>,
- <span class="string">"bcrt1q6srfmra0ynypym35c7jvsxt2u4yrugeajq95kg2ps7lk6h2gaunsq9lzxn"</span>,
- <span class="string">"bcrt1qhl8rrzzcdpu7tcup3lcg7tge52sqvwy5fcv4k78v6kxtwmqf3v6qpvyjza"</span>,
- <span class="string">"bcrt1ql2elz9mhm9ll27ddpewhxs732xyl2fk2kpkqz9gdyh33wgcun4vstrd49k"</span>,
- ],
- );
- }
-
- <span class="comment">// - verify the valid_networks returned is correctly computed based on the keys present in the descriptor
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_valid_networks() {
- <span class="kw">let </span>xprv = bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy"</span>).unwrap();
- <span class="kw">let </span>path = bip32::DerivationPath::from_str(<span class="string">"m/0"</span>).unwrap();
- <span class="kw">let </span>desc_key = (xprv, path).into_descriptor_key().unwrap();
-
- <span class="kw">let </span>(_desc, _key_map, valid_networks) = <span class="macro">descriptor!</span>(pkh(desc_key)).unwrap();
- <span class="macro">assert_eq!</span>(
- valid_networks,
- [Testnet, Regtest, Signet].iter().cloned().collect()
- );
-
- <span class="kw">let </span>xprv = bip32::Xpriv::from_str(<span class="string">"xprv9s21ZrQH143K3QTDL4LXw2F7HEK3wJUD2nW2nRk4stbPy6cq3jPPqjiChkVvvNKmPGJxWUtg6LnF5kejMRNNU3TGtRBeJgk33yuGBxrMPHi"</span>).unwrap();
- <span class="kw">let </span>path = bip32::DerivationPath::from_str(<span class="string">"m/10/20/30/40"</span>).unwrap();
- <span class="kw">let </span>desc_key = (xprv, path).into_descriptor_key().unwrap();
-
- <span class="kw">let </span>(_desc, _key_map, valid_networks) = <span class="macro">descriptor!</span>(wpkh(desc_key)).unwrap();
- <span class="macro">assert_eq!</span>(valid_networks, [Bitcoin].iter().cloned().collect());
- }
-
- <span class="comment">// - verify the key_maps are correctly merged together
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_key_maps_merged() {
- <span class="kw">let </span>secp = Secp256k1::new();
-
- <span class="kw">let </span>xprv1 = bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy"</span>).unwrap();
- <span class="kw">let </span>path1 = bip32::DerivationPath::from_str(<span class="string">"m/0"</span>).unwrap();
- <span class="kw">let </span>desc_key1 = (xprv1, path1.clone()).into_descriptor_key().unwrap();
-
- <span class="kw">let </span>xprv2 = bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPegBHHnq7YEgM815dG24M2Jk5RVqipgDxF1HJ1tsnT815X5Fd5FRfMVUs8NZs9XCb6y9an8hRPThnhfwfXJ36intaekySHGF"</span>).unwrap();
- <span class="kw">let </span>path2 = bip32::DerivationPath::from_str(<span class="string">"m/2147483647'/0"</span>).unwrap();
- <span class="kw">let </span>desc_key2 = (xprv2, path2.clone()).into_descriptor_key().unwrap();
-
- <span class="kw">let </span>xprv3 = bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPdZXrcHNLf5JAJWFAoJ2TrstMRdSKtEggz6PddbuSkvHKM9oKJyFgZV1B7rw8oChspxyYbtmEXYyg1AjfWbL3ho3XHDpHRZf"</span>).unwrap();
- <span class="kw">let </span>path3 = bip32::DerivationPath::from_str(<span class="string">"m/10/20/30/40"</span>).unwrap();
- <span class="kw">let </span>desc_key3 = (xprv3, path3.clone()).into_descriptor_key().unwrap();
-
- <span class="kw">let </span>(_desc, key_map, _valid_networks) =
- <span class="macro">descriptor!</span>(sh(wsh(multi(<span class="number">2</span>, desc_key1, desc_key2, desc_key3)))).unwrap();
- <span class="macro">assert_eq!</span>(key_map.len(), <span class="number">3</span>);
-
- <span class="kw">let </span>desc_key1: DescriptorKey<Segwitv0> = (xprv1, path1).into_descriptor_key().unwrap();
- <span class="kw">let </span>desc_key2: DescriptorKey<Segwitv0> = (xprv2, path2).into_descriptor_key().unwrap();
- <span class="kw">let </span>desc_key3: DescriptorKey<Segwitv0> = (xprv3, path3).into_descriptor_key().unwrap();
-
- <span class="kw">let </span>(key1, _key_map, _valid_networks) = desc_key1.extract(<span class="kw-2">&</span>secp).unwrap();
- <span class="kw">let </span>(key2, _key_map, _valid_networks) = desc_key2.extract(<span class="kw-2">&</span>secp).unwrap();
- <span class="kw">let </span>(key3, _key_map, _valid_networks) = desc_key3.extract(<span class="kw-2">&</span>secp).unwrap();
- <span class="macro">assert_eq!</span>(key_map.get(<span class="kw-2">&</span>key1).unwrap().to_string(), <span class="string">"tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy/0/*"</span>);
- <span class="macro">assert_eq!</span>(key_map.get(<span class="kw-2">&</span>key2).unwrap().to_string(), <span class="string">"tprv8ZgxMBicQKsPegBHHnq7YEgM815dG24M2Jk5RVqipgDxF1HJ1tsnT815X5Fd5FRfMVUs8NZs9XCb6y9an8hRPThnhfwfXJ36intaekySHGF/2147483647'/0/*"</span>);
- <span class="macro">assert_eq!</span>(key_map.get(<span class="kw-2">&</span>key3).unwrap().to_string(), <span class="string">"tprv8ZgxMBicQKsPdZXrcHNLf5JAJWFAoJ2TrstMRdSKtEggz6PddbuSkvHKM9oKJyFgZV1B7rw8oChspxyYbtmEXYyg1AjfWbL3ho3XHDpHRZf/10/20/30/40/*"</span>);
- }
-
- <span class="comment">// - verify the ScriptContext is correctly validated (i.e. passing a type that only impl IntoDescriptorKey<Segwitv0> to a pkh() descriptor should throw a compilation error
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_script_context_validation() {
- <span class="comment">// this compiles
- </span><span class="kw">let </span>xprv = bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy"</span>).unwrap();
- <span class="kw">let </span>path = bip32::DerivationPath::from_str(<span class="string">"m/0"</span>).unwrap();
- <span class="kw">let </span>desc_key: DescriptorKey<Legacy> = (xprv, path).into_descriptor_key().unwrap();
-
- <span class="kw">let </span>(desc, _key_map, _valid_networks) = <span class="macro">descriptor!</span>(pkh(desc_key)).unwrap();
- <span class="macro">assert_eq!</span>(desc.to_string(), <span class="string">"pkh(tpubD6NzVbkrYhZ4WR7a4vY1VT3khMJMeAxVsfq9TBJyJWrNk247zCJtV7AWf6UJP7rAVsn8NNKdJi3gFyKPTmWZS9iukb91xbn2HbFSMQm2igY/0/*)#yrnz9pp2"</span>);
-
- <span class="comment">// as expected this does not compile due to invalid context
- //let desc_key:DescriptorKey<Segwitv0> = (xprv, path.clone()).into_descriptor_key().unwrap();
- //let (desc, _key_map, _valid_networks) = descriptor!(pkh(desc_key)).unwrap();
- </span>}
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_dsl_modifiers() {
- <span class="kw">let </span>private_key =
- PrivateKey::from_wif(<span class="string">"cSQPHDBwXGjVzWRqAHm6zfvQhaTuj1f2bFH58h55ghbjtFwvmeXR"</span>).unwrap();
- <span class="kw">let </span>(descriptor, <span class="kw">_</span>, <span class="kw">_</span>) =
- <span class="macro">descriptor!</span>(wsh(thresh(<span class="number">2</span>,n:d:v:older(<span class="number">1</span>),s:pk(private_key),s:pk(private_key)))).unwrap();
-
- <span class="macro">assert_eq!</span>(descriptor.to_string(), <span class="string">"wsh(thresh(2,ndv:older(1),s:pk(02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c),s:pk(02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c)))#zzk3ux8g"</span>)
- }
-
- <span class="attr">#[test]
- #[should_panic(expected = <span class="string">"Miniscript(ContextError(UncompressedKeysNotAllowed))"</span>)]
- </span><span class="kw">fn </span>test_dsl_miniscript_checks() {
- <span class="kw">let </span><span class="kw-2">mut </span>uncompressed_pk =
- PrivateKey::from_wif(<span class="string">"L5EZftvrYaSudiozVRzTqLcHLNDoVn7H5HSfM9BAN6tMJX8oTWz6"</span>).unwrap();
- uncompressed_pk.compressed = <span class="bool-val">false</span>;
-
- <span class="macro">descriptor!</span>(wsh(v: pk(uncompressed_pk))).unwrap();
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_dsl_tr_only_key() {
- <span class="kw">let </span>private_key =
- PrivateKey::from_wif(<span class="string">"cSQPHDBwXGjVzWRqAHm6zfvQhaTuj1f2bFH58h55ghbjtFwvmeXR"</span>).unwrap();
- <span class="kw">let </span>(descriptor, <span class="kw">_</span>, <span class="kw">_</span>) = <span class="macro">descriptor!</span>(tr(private_key)).unwrap();
-
- <span class="macro">assert_eq!</span>(
- descriptor.to_string(),
- <span class="string">"tr(02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c)#heq9m95v"
- </span>)
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_dsl_tr_simple_tree() {
- <span class="kw">let </span>private_key =
- PrivateKey::from_wif(<span class="string">"cSQPHDBwXGjVzWRqAHm6zfvQhaTuj1f2bFH58h55ghbjtFwvmeXR"</span>).unwrap();
- <span class="kw">let </span>(descriptor, <span class="kw">_</span>, <span class="kw">_</span>) =
- <span class="macro">descriptor!</span>(tr(private_key, { pk(private_key), pk(private_key) })).unwrap();
-
- <span class="macro">assert_eq!</span>(descriptor.to_string(), <span class="string">"tr(02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c,{pk(02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c),pk(02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c)})#xy5fjw6d"</span>)
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_dsl_tr_single_leaf() {
- <span class="kw">let </span>private_key =
- PrivateKey::from_wif(<span class="string">"cSQPHDBwXGjVzWRqAHm6zfvQhaTuj1f2bFH58h55ghbjtFwvmeXR"</span>).unwrap();
- <span class="kw">let </span>(descriptor, <span class="kw">_</span>, <span class="kw">_</span>) = <span class="macro">descriptor!</span>(tr(private_key, pk(private_key))).unwrap();
-
- <span class="macro">assert_eq!</span>(descriptor.to_string(), <span class="string">"tr(02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c,pk(02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c))#lzl2vmc7"</span>)
- }
-}
-</code></pre></div>
-</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Source of the Rust file `crates/bdk/src/descriptor/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk/index.html">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
-<a href="#2" id="2">2</a>
-<a href="#3" id="3">3</a>
-<a href="#4" id="4">4</a>
-<a href="#5" id="5">5</a>
-<a href="#6" id="6">6</a>
-<a href="#7" id="7">7</a>
-<a href="#8" id="8">8</a>
-<a href="#9" id="9">9</a>
-<a href="#10" id="10">10</a>
-<a href="#11" id="11">11</a>
-<a href="#12" id="12">12</a>
-<a href="#13" id="13">13</a>
-<a href="#14" id="14">14</a>
-<a href="#15" id="15">15</a>
-<a href="#16" id="16">16</a>
-<a href="#17" id="17">17</a>
-<a href="#18" id="18">18</a>
-<a href="#19" id="19">19</a>
-<a href="#20" id="20">20</a>
-<a href="#21" id="21">21</a>
-<a href="#22" id="22">22</a>
-<a href="#23" id="23">23</a>
-<a href="#24" id="24">24</a>
-<a href="#25" id="25">25</a>
-<a href="#26" id="26">26</a>
-<a href="#27" id="27">27</a>
-<a href="#28" id="28">28</a>
-<a href="#29" id="29">29</a>
-<a href="#30" id="30">30</a>
-<a href="#31" id="31">31</a>
-<a href="#32" id="32">32</a>
-<a href="#33" id="33">33</a>
-<a href="#34" id="34">34</a>
-<a href="#35" id="35">35</a>
-<a href="#36" id="36">36</a>
-<a href="#37" id="37">37</a>
-<a href="#38" id="38">38</a>
-<a href="#39" id="39">39</a>
-<a href="#40" id="40">40</a>
-<a href="#41" id="41">41</a>
-<a href="#42" id="42">42</a>
-<a href="#43" id="43">43</a>
-<a href="#44" id="44">44</a>
-<a href="#45" id="45">45</a>
-<a href="#46" id="46">46</a>
-<a href="#47" id="47">47</a>
-<a href="#48" id="48">48</a>
-<a href="#49" id="49">49</a>
-<a href="#50" id="50">50</a>
-<a href="#51" id="51">51</a>
-<a href="#52" id="52">52</a>
-<a href="#53" id="53">53</a>
-<a href="#54" id="54">54</a>
-<a href="#55" id="55">55</a>
-<a href="#56" id="56">56</a>
-<a href="#57" id="57">57</a>
-<a href="#58" id="58">58</a>
-<a href="#59" id="59">59</a>
-<a href="#60" id="60">60</a>
-<a href="#61" id="61">61</a>
-<a href="#62" id="62">62</a>
-<a href="#63" id="63">63</a>
-<a href="#64" id="64">64</a>
-<a href="#65" id="65">65</a>
-<a href="#66" id="66">66</a>
-<a href="#67" id="67">67</a>
-<a href="#68" id="68">68</a>
-<a href="#69" id="69">69</a>
-<a href="#70" id="70">70</a>
-<a href="#71" id="71">71</a>
-<a href="#72" id="72">72</a>
-<a href="#73" id="73">73</a>
-<a href="#74" id="74">74</a>
-<a href="#75" id="75">75</a>
-<a href="#76" id="76">76</a>
-<a href="#77" id="77">77</a>
-<a href="#78" id="78">78</a>
-<a href="#79" id="79">79</a>
-<a href="#80" id="80">80</a>
-<a href="#81" id="81">81</a>
-<a href="#82" id="82">82</a>
-<a href="#83" id="83">83</a>
-<a href="#84" id="84">84</a>
-<a href="#85" id="85">85</a>
-<a href="#86" id="86">86</a>
-<a href="#87" id="87">87</a>
-<a href="#88" id="88">88</a>
-<a href="#89" id="89">89</a>
-<a href="#90" id="90">90</a>
-<a href="#91" id="91">91</a>
-<a href="#92" id="92">92</a>
-<a href="#93" id="93">93</a>
-<a href="#94" id="94">94</a>
-<a href="#95" id="95">95</a>
-<a href="#96" id="96">96</a>
-<a href="#97" id="97">97</a>
-<a href="#98" id="98">98</a>
-<a href="#99" id="99">99</a>
-<a href="#100" id="100">100</a>
-<a href="#101" id="101">101</a>
-<a href="#102" id="102">102</a>
-<a href="#103" id="103">103</a>
-<a href="#104" id="104">104</a>
-<a href="#105" id="105">105</a>
-<a href="#106" id="106">106</a>
-<a href="#107" id="107">107</a>
-<a href="#108" id="108">108</a>
-<a href="#109" id="109">109</a>
-<a href="#110" id="110">110</a>
-<a href="#111" id="111">111</a>
-<a href="#112" id="112">112</a>
-<a href="#113" id="113">113</a>
-<a href="#114" id="114">114</a>
-<a href="#115" id="115">115</a>
-<a href="#116" id="116">116</a>
-<a href="#117" id="117">117</a>
-<a href="#118" id="118">118</a>
-<a href="#119" id="119">119</a>
-<a href="#120" id="120">120</a>
-<a href="#121" id="121">121</a>
-<a href="#122" id="122">122</a>
-<a href="#123" id="123">123</a>
-</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-</span><span class="doccomment">//! Descriptor errors
-</span><span class="kw">use </span>core::fmt;
-
-<span class="doccomment">/// Errors related to the parsing and usage of descriptors
-</span><span class="attr">#[derive(Debug)]
-</span><span class="kw">pub enum </span>Error {
- <span class="doccomment">/// Invalid HD Key path, such as having a wildcard but a length != 1
- </span>InvalidHdKeyPath,
- <span class="doccomment">/// The provided descriptor doesn't match its checksum
- </span>InvalidDescriptorChecksum,
- <span class="doccomment">/// The descriptor contains hardened derivation steps on public extended keys
- </span>HardenedDerivationXpub,
- <span class="doccomment">/// The descriptor contains multipath keys
- </span>MultiPath,
-
- <span class="doccomment">/// Error thrown while working with [`keys`](crate::keys)
- </span>Key(<span class="kw">crate</span>::keys::KeyError),
- <span class="doccomment">/// Error while extracting and manipulating policies
- </span>Policy(<span class="kw">crate</span>::descriptor::policy::PolicyError),
-
- <span class="doccomment">/// Invalid byte found in the descriptor checksum
- </span>InvalidDescriptorCharacter(u8),
-
- <span class="doccomment">/// BIP32 error
- </span>Bip32(bitcoin::bip32::Error),
- <span class="doccomment">/// Error during base58 decoding
- </span>Base58(bitcoin::base58::Error),
- <span class="doccomment">/// Key-related error
- </span>Pk(bitcoin::key::Error),
- <span class="doccomment">/// Miniscript error
- </span>Miniscript(miniscript::Error),
- <span class="doccomment">/// Hex decoding error
- </span>Hex(bitcoin::hex::HexToBytesError),
-}
-
-<span class="kw">impl </span>From<<span class="kw">crate</span>::keys::KeyError> <span class="kw">for </span>Error {
- <span class="kw">fn </span>from(key_error: <span class="kw">crate</span>::keys::KeyError) -> Error {
- <span class="kw">match </span>key_error {
- <span class="kw">crate</span>::keys::KeyError::Miniscript(inner) => Error::Miniscript(inner),
- <span class="kw">crate</span>::keys::KeyError::Bip32(inner) => Error::Bip32(inner),
- e => Error::Key(e),
- }
- }
-}
-
-<span class="kw">impl </span>fmt::Display <span class="kw">for </span>Error {
- <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
- <span class="kw">match </span><span class="self">self </span>{
- <span class="self">Self</span>::InvalidHdKeyPath => <span class="macro">write!</span>(f, <span class="string">"Invalid HD key path"</span>),
- <span class="self">Self</span>::InvalidDescriptorChecksum => {
- <span class="macro">write!</span>(f, <span class="string">"The provided descriptor doesn't match its checksum"</span>)
- }
- <span class="self">Self</span>::HardenedDerivationXpub => <span class="macro">write!</span>(
- f,
- <span class="string">"The descriptor contains hardened derivation steps on public extended keys"
- </span>),
- <span class="self">Self</span>::MultiPath => <span class="macro">write!</span>(
- f,
- <span class="string">"The descriptor contains multipath keys, which are not supported yet"
- </span>),
- <span class="self">Self</span>::Key(err) => <span class="macro">write!</span>(f, <span class="string">"Key error: {}"</span>, err),
- <span class="self">Self</span>::Policy(err) => <span class="macro">write!</span>(f, <span class="string">"Policy error: {}"</span>, err),
- <span class="self">Self</span>::InvalidDescriptorCharacter(char) => {
- <span class="macro">write!</span>(f, <span class="string">"Invalid descriptor character: {}"</span>, char)
- }
- <span class="self">Self</span>::Bip32(err) => <span class="macro">write!</span>(f, <span class="string">"BIP32 error: {}"</span>, err),
- <span class="self">Self</span>::Base58(err) => <span class="macro">write!</span>(f, <span class="string">"Base58 error: {}"</span>, err),
- <span class="self">Self</span>::Pk(err) => <span class="macro">write!</span>(f, <span class="string">"Key-related error: {}"</span>, err),
- <span class="self">Self</span>::Miniscript(err) => <span class="macro">write!</span>(f, <span class="string">"Miniscript error: {}"</span>, err),
- <span class="self">Self</span>::Hex(err) => <span class="macro">write!</span>(f, <span class="string">"Hex decoding error: {}"</span>, err),
- }
- }
-}
-
-<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
-</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>Error {}
-
-<span class="kw">impl </span>From<bitcoin::bip32::Error> <span class="kw">for </span>Error {
- <span class="kw">fn </span>from(err: bitcoin::bip32::Error) -> <span class="self">Self </span>{
- Error::Bip32(err)
- }
-}
-
-<span class="kw">impl </span>From<bitcoin::base58::Error> <span class="kw">for </span>Error {
- <span class="kw">fn </span>from(err: bitcoin::base58::Error) -> <span class="self">Self </span>{
- Error::Base58(err)
- }
-}
-
-<span class="kw">impl </span>From<bitcoin::key::Error> <span class="kw">for </span>Error {
- <span class="kw">fn </span>from(err: bitcoin::key::Error) -> <span class="self">Self </span>{
- Error::Pk(err)
- }
-}
-
-<span class="kw">impl </span>From<miniscript::Error> <span class="kw">for </span>Error {
- <span class="kw">fn </span>from(err: miniscript::Error) -> <span class="self">Self </span>{
- Error::Miniscript(err)
- }
-}
-
-<span class="kw">impl </span>From<bitcoin::hex::HexToBytesError> <span class="kw">for </span>Error {
- <span class="kw">fn </span>from(err: bitcoin::hex::HexToBytesError) -> <span class="self">Self </span>{
- Error::Hex(err)
- }
-}
-
-<span class="kw">impl </span>From<<span class="kw">crate</span>::descriptor::policy::PolicyError> <span class="kw">for </span>Error {
- <span class="kw">fn </span>from(err: <span class="kw">crate</span>::descriptor::policy::PolicyError) -> <span class="self">Self </span>{
- Error::Policy(err)
- }
-}
-</code></pre></div>
-</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Source of the Rust file `crates/bdk/src/descriptor/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk/index.html">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
-<a href="#2" id="2">2</a>
-<a href="#3" id="3">3</a>
-<a href="#4" id="4">4</a>
-<a href="#5" id="5">5</a>
-<a href="#6" id="6">6</a>
-<a href="#7" id="7">7</a>
-<a href="#8" id="8">8</a>
-<a href="#9" id="9">9</a>
-<a href="#10" id="10">10</a>
-<a href="#11" id="11">11</a>
-<a href="#12" id="12">12</a>
-<a href="#13" id="13">13</a>
-<a href="#14" id="14">14</a>
-<a href="#15" id="15">15</a>
-<a href="#16" id="16">16</a>
-<a href="#17" id="17">17</a>
-<a href="#18" id="18">18</a>
-<a href="#19" id="19">19</a>
-<a href="#20" id="20">20</a>
-<a href="#21" id="21">21</a>
-<a href="#22" id="22">22</a>
-<a href="#23" id="23">23</a>
-<a href="#24" id="24">24</a>
-<a href="#25" id="25">25</a>
-<a href="#26" id="26">26</a>
-<a href="#27" id="27">27</a>
-<a href="#28" id="28">28</a>
-<a href="#29" id="29">29</a>
-<a href="#30" id="30">30</a>
-<a href="#31" id="31">31</a>
-<a href="#32" id="32">32</a>
-<a href="#33" id="33">33</a>
-<a href="#34" id="34">34</a>
-<a href="#35" id="35">35</a>
-<a href="#36" id="36">36</a>
-<a href="#37" id="37">37</a>
-<a href="#38" id="38">38</a>
-<a href="#39" id="39">39</a>
-<a href="#40" id="40">40</a>
-<a href="#41" id="41">41</a>
-<a href="#42" id="42">42</a>
-<a href="#43" id="43">43</a>
-<a href="#44" id="44">44</a>
-<a href="#45" id="45">45</a>
-<a href="#46" id="46">46</a>
-<a href="#47" id="47">47</a>
-<a href="#48" id="48">48</a>
-<a href="#49" id="49">49</a>
-<a href="#50" id="50">50</a>
-<a href="#51" id="51">51</a>
-<a href="#52" id="52">52</a>
-<a href="#53" id="53">53</a>
-<a href="#54" id="54">54</a>
-<a href="#55" id="55">55</a>
-<a href="#56" id="56">56</a>
-<a href="#57" id="57">57</a>
-<a href="#58" id="58">58</a>
-<a href="#59" id="59">59</a>
-<a href="#60" id="60">60</a>
-<a href="#61" id="61">61</a>
-<a href="#62" id="62">62</a>
-<a href="#63" id="63">63</a>
-<a href="#64" id="64">64</a>
-<a href="#65" id="65">65</a>
-<a href="#66" id="66">66</a>
-<a href="#67" id="67">67</a>
-<a href="#68" id="68">68</a>
-<a href="#69" id="69">69</a>
-<a href="#70" id="70">70</a>
-<a href="#71" id="71">71</a>
-<a href="#72" id="72">72</a>
-<a href="#73" id="73">73</a>
-<a href="#74" id="74">74</a>
-<a href="#75" id="75">75</a>
-<a href="#76" id="76">76</a>
-<a href="#77" id="77">77</a>
-<a href="#78" id="78">78</a>
-<a href="#79" id="79">79</a>
-<a href="#80" id="80">80</a>
-<a href="#81" id="81">81</a>
-<a href="#82" id="82">82</a>
-<a href="#83" id="83">83</a>
-<a href="#84" id="84">84</a>
-<a href="#85" id="85">85</a>
-<a href="#86" id="86">86</a>
-<a href="#87" id="87">87</a>
-<a href="#88" id="88">88</a>
-<a href="#89" id="89">89</a>
-<a href="#90" id="90">90</a>
-<a href="#91" id="91">91</a>
-<a href="#92" id="92">92</a>
-<a href="#93" id="93">93</a>
-<a href="#94" id="94">94</a>
-<a href="#95" id="95">95</a>
-<a href="#96" id="96">96</a>
-<a href="#97" id="97">97</a>
-<a href="#98" id="98">98</a>
-<a href="#99" id="99">99</a>
-<a href="#100" id="100">100</a>
-<a href="#101" id="101">101</a>
-<a href="#102" id="102">102</a>
-<a href="#103" id="103">103</a>
-<a href="#104" id="104">104</a>
-<a href="#105" id="105">105</a>
-<a href="#106" id="106">106</a>
-<a href="#107" id="107">107</a>
-<a href="#108" id="108">108</a>
-<a href="#109" id="109">109</a>
-<a href="#110" id="110">110</a>
-<a href="#111" id="111">111</a>
-<a href="#112" id="112">112</a>
-<a href="#113" id="113">113</a>
-<a href="#114" id="114">114</a>
-<a href="#115" id="115">115</a>
-<a href="#116" id="116">116</a>
-<a href="#117" id="117">117</a>
-<a href="#118" id="118">118</a>
-<a href="#119" id="119">119</a>
-<a href="#120" id="120">120</a>
-<a href="#121" id="121">121</a>
-<a href="#122" id="122">122</a>
-<a href="#123" id="123">123</a>
-<a href="#124" id="124">124</a>
-<a href="#125" id="125">125</a>
-<a href="#126" id="126">126</a>
-<a href="#127" id="127">127</a>
-<a href="#128" id="128">128</a>
-<a href="#129" id="129">129</a>
-<a href="#130" id="130">130</a>
-<a href="#131" id="131">131</a>
-<a href="#132" id="132">132</a>
-<a href="#133" id="133">133</a>
-<a href="#134" id="134">134</a>
-<a href="#135" id="135">135</a>
-<a href="#136" id="136">136</a>
-<a href="#137" id="137">137</a>
-<a href="#138" id="138">138</a>
-<a href="#139" id="139">139</a>
-<a href="#140" id="140">140</a>
-<a href="#141" id="141">141</a>
-<a href="#142" id="142">142</a>
-<a href="#143" id="143">143</a>
-<a href="#144" id="144">144</a>
-<a href="#145" id="145">145</a>
-<a href="#146" id="146">146</a>
-<a href="#147" id="147">147</a>
-<a href="#148" id="148">148</a>
-<a href="#149" id="149">149</a>
-<a href="#150" id="150">150</a>
-<a href="#151" id="151">151</a>
-<a href="#152" id="152">152</a>
-<a href="#153" id="153">153</a>
-<a href="#154" id="154">154</a>
-<a href="#155" id="155">155</a>
-<a href="#156" id="156">156</a>
-<a href="#157" id="157">157</a>
-<a href="#158" id="158">158</a>
-<a href="#159" id="159">159</a>
-<a href="#160" id="160">160</a>
-<a href="#161" id="161">161</a>
-<a href="#162" id="162">162</a>
-<a href="#163" id="163">163</a>
-<a href="#164" id="164">164</a>
-<a href="#165" id="165">165</a>
-<a href="#166" id="166">166</a>
-<a href="#167" id="167">167</a>
-<a href="#168" id="168">168</a>
-<a href="#169" id="169">169</a>
-<a href="#170" id="170">170</a>
-<a href="#171" id="171">171</a>
-<a href="#172" id="172">172</a>
-<a href="#173" id="173">173</a>
-<a href="#174" id="174">174</a>
-<a href="#175" id="175">175</a>
-<a href="#176" id="176">176</a>
-<a href="#177" id="177">177</a>
-<a href="#178" id="178">178</a>
-<a href="#179" id="179">179</a>
-<a href="#180" id="180">180</a>
-<a href="#181" id="181">181</a>
-<a href="#182" id="182">182</a>
-<a href="#183" id="183">183</a>
-<a href="#184" id="184">184</a>
-<a href="#185" id="185">185</a>
-<a href="#186" id="186">186</a>
-<a href="#187" id="187">187</a>
-<a href="#188" id="188">188</a>
-<a href="#189" id="189">189</a>
-<a href="#190" id="190">190</a>
-<a href="#191" id="191">191</a>
-<a href="#192" id="192">192</a>
-<a href="#193" id="193">193</a>
-<a href="#194" id="194">194</a>
-<a href="#195" id="195">195</a>
-<a href="#196" id="196">196</a>
-<a href="#197" id="197">197</a>
-<a href="#198" id="198">198</a>
-<a href="#199" id="199">199</a>
-<a href="#200" id="200">200</a>
-<a href="#201" id="201">201</a>
-<a href="#202" id="202">202</a>
-<a href="#203" id="203">203</a>
-<a href="#204" id="204">204</a>
-<a href="#205" id="205">205</a>
-<a href="#206" id="206">206</a>
-<a href="#207" id="207">207</a>
-<a href="#208" id="208">208</a>
-<a href="#209" id="209">209</a>
-<a href="#210" id="210">210</a>
-<a href="#211" id="211">211</a>
-<a href="#212" id="212">212</a>
-<a href="#213" id="213">213</a>
-<a href="#214" id="214">214</a>
-<a href="#215" id="215">215</a>
-<a href="#216" id="216">216</a>
-<a href="#217" id="217">217</a>
-<a href="#218" id="218">218</a>
-<a href="#219" id="219">219</a>
-<a href="#220" id="220">220</a>
-<a href="#221" id="221">221</a>
-<a href="#222" id="222">222</a>
-<a href="#223" id="223">223</a>
-<a href="#224" id="224">224</a>
-<a href="#225" id="225">225</a>
-<a href="#226" id="226">226</a>
-<a href="#227" id="227">227</a>
-<a href="#228" id="228">228</a>
-<a href="#229" id="229">229</a>
-<a href="#230" id="230">230</a>
-<a href="#231" id="231">231</a>
-<a href="#232" id="232">232</a>
-<a href="#233" id="233">233</a>
-<a href="#234" id="234">234</a>
-<a href="#235" id="235">235</a>
-<a href="#236" id="236">236</a>
-<a href="#237" id="237">237</a>
-<a href="#238" id="238">238</a>
-<a href="#239" id="239">239</a>
-<a href="#240" id="240">240</a>
-<a href="#241" id="241">241</a>
-<a href="#242" id="242">242</a>
-<a href="#243" id="243">243</a>
-<a href="#244" id="244">244</a>
-<a href="#245" id="245">245</a>
-<a href="#246" id="246">246</a>
-<a href="#247" id="247">247</a>
-<a href="#248" id="248">248</a>
-<a href="#249" id="249">249</a>
-<a href="#250" id="250">250</a>
-<a href="#251" id="251">251</a>
-<a href="#252" id="252">252</a>
-<a href="#253" id="253">253</a>
-<a href="#254" id="254">254</a>
-<a href="#255" id="255">255</a>
-<a href="#256" id="256">256</a>
-<a href="#257" id="257">257</a>
-<a href="#258" id="258">258</a>
-<a href="#259" id="259">259</a>
-<a href="#260" id="260">260</a>
-<a href="#261" id="261">261</a>
-<a href="#262" id="262">262</a>
-<a href="#263" id="263">263</a>
-<a href="#264" id="264">264</a>
-<a href="#265" id="265">265</a>
-<a href="#266" id="266">266</a>
-<a href="#267" id="267">267</a>
-<a href="#268" id="268">268</a>
-<a href="#269" id="269">269</a>
-<a href="#270" id="270">270</a>
-<a href="#271" id="271">271</a>
-<a href="#272" id="272">272</a>
-<a href="#273" id="273">273</a>
-<a href="#274" id="274">274</a>
-<a href="#275" id="275">275</a>
-<a href="#276" id="276">276</a>
-<a href="#277" id="277">277</a>
-<a href="#278" id="278">278</a>
-<a href="#279" id="279">279</a>
-<a href="#280" id="280">280</a>
-<a href="#281" id="281">281</a>
-<a href="#282" id="282">282</a>
-<a href="#283" id="283">283</a>
-<a href="#284" id="284">284</a>
-<a href="#285" id="285">285</a>
-<a href="#286" id="286">286</a>
-<a href="#287" id="287">287</a>
-<a href="#288" id="288">288</a>
-<a href="#289" id="289">289</a>
-<a href="#290" id="290">290</a>
-<a href="#291" id="291">291</a>
-<a href="#292" id="292">292</a>
-<a href="#293" id="293">293</a>
-<a href="#294" id="294">294</a>
-<a href="#295" id="295">295</a>
-<a href="#296" id="296">296</a>
-<a href="#297" id="297">297</a>
-<a href="#298" id="298">298</a>
-<a href="#299" id="299">299</a>
-<a href="#300" id="300">300</a>
-<a href="#301" id="301">301</a>
-<a href="#302" id="302">302</a>
-<a href="#303" id="303">303</a>
-<a href="#304" id="304">304</a>
-<a href="#305" id="305">305</a>
-<a href="#306" id="306">306</a>
-<a href="#307" id="307">307</a>
-<a href="#308" id="308">308</a>
-<a href="#309" id="309">309</a>
-<a href="#310" id="310">310</a>
-<a href="#311" id="311">311</a>
-<a href="#312" id="312">312</a>
-<a href="#313" id="313">313</a>
-<a href="#314" id="314">314</a>
-<a href="#315" id="315">315</a>
-<a href="#316" id="316">316</a>
-<a href="#317" id="317">317</a>
-<a href="#318" id="318">318</a>
-<a href="#319" id="319">319</a>
-<a href="#320" id="320">320</a>
-<a href="#321" id="321">321</a>
-<a href="#322" id="322">322</a>
-<a href="#323" id="323">323</a>
-<a href="#324" id="324">324</a>
-<a href="#325" id="325">325</a>
-<a href="#326" id="326">326</a>
-<a href="#327" id="327">327</a>
-<a href="#328" id="328">328</a>
-<a href="#329" id="329">329</a>
-<a href="#330" id="330">330</a>
-<a href="#331" id="331">331</a>
-<a href="#332" id="332">332</a>
-<a href="#333" id="333">333</a>
-<a href="#334" id="334">334</a>
-<a href="#335" id="335">335</a>
-<a href="#336" id="336">336</a>
-<a href="#337" id="337">337</a>
-<a href="#338" id="338">338</a>
-<a href="#339" id="339">339</a>
-<a href="#340" id="340">340</a>
-<a href="#341" id="341">341</a>
-<a href="#342" id="342">342</a>
-<a href="#343" id="343">343</a>
-<a href="#344" id="344">344</a>
-<a href="#345" id="345">345</a>
-<a href="#346" id="346">346</a>
-<a href="#347" id="347">347</a>
-<a href="#348" id="348">348</a>
-<a href="#349" id="349">349</a>
-<a href="#350" id="350">350</a>
-<a href="#351" id="351">351</a>
-<a href="#352" id="352">352</a>
-<a href="#353" id="353">353</a>
-<a href="#354" id="354">354</a>
-<a href="#355" id="355">355</a>
-<a href="#356" id="356">356</a>
-<a href="#357" id="357">357</a>
-<a href="#358" id="358">358</a>
-<a href="#359" id="359">359</a>
-<a href="#360" id="360">360</a>
-<a href="#361" id="361">361</a>
-<a href="#362" id="362">362</a>
-<a href="#363" id="363">363</a>
-<a href="#364" id="364">364</a>
-<a href="#365" id="365">365</a>
-<a href="#366" id="366">366</a>
-<a href="#367" id="367">367</a>
-<a href="#368" id="368">368</a>
-<a href="#369" id="369">369</a>
-<a href="#370" id="370">370</a>
-<a href="#371" id="371">371</a>
-<a href="#372" id="372">372</a>
-<a href="#373" id="373">373</a>
-<a href="#374" id="374">374</a>
-<a href="#375" id="375">375</a>
-<a href="#376" id="376">376</a>
-<a href="#377" id="377">377</a>
-<a href="#378" id="378">378</a>
-<a href="#379" id="379">379</a>
-<a href="#380" id="380">380</a>
-<a href="#381" id="381">381</a>
-<a href="#382" id="382">382</a>
-<a href="#383" id="383">383</a>
-<a href="#384" id="384">384</a>
-<a href="#385" id="385">385</a>
-<a href="#386" id="386">386</a>
-<a href="#387" id="387">387</a>
-<a href="#388" id="388">388</a>
-<a href="#389" id="389">389</a>
-<a href="#390" id="390">390</a>
-<a href="#391" id="391">391</a>
-<a href="#392" id="392">392</a>
-<a href="#393" id="393">393</a>
-<a href="#394" id="394">394</a>
-<a href="#395" id="395">395</a>
-<a href="#396" id="396">396</a>
-<a href="#397" id="397">397</a>
-<a href="#398" id="398">398</a>
-<a href="#399" id="399">399</a>
-<a href="#400" id="400">400</a>
-<a href="#401" id="401">401</a>
-<a href="#402" id="402">402</a>
-<a href="#403" id="403">403</a>
-<a href="#404" id="404">404</a>
-<a href="#405" id="405">405</a>
-<a href="#406" id="406">406</a>
-<a href="#407" id="407">407</a>
-<a href="#408" id="408">408</a>
-<a href="#409" id="409">409</a>
-<a href="#410" id="410">410</a>
-<a href="#411" id="411">411</a>
-<a href="#412" id="412">412</a>
-<a href="#413" id="413">413</a>
-<a href="#414" id="414">414</a>
-<a href="#415" id="415">415</a>
-<a href="#416" id="416">416</a>
-<a href="#417" id="417">417</a>
-<a href="#418" id="418">418</a>
-<a href="#419" id="419">419</a>
-<a href="#420" id="420">420</a>
-<a href="#421" id="421">421</a>
-<a href="#422" id="422">422</a>
-<a href="#423" id="423">423</a>
-<a href="#424" id="424">424</a>
-<a href="#425" id="425">425</a>
-<a href="#426" id="426">426</a>
-<a href="#427" id="427">427</a>
-<a href="#428" id="428">428</a>
-<a href="#429" id="429">429</a>
-<a href="#430" id="430">430</a>
-<a href="#431" id="431">431</a>
-<a href="#432" id="432">432</a>
-<a href="#433" id="433">433</a>
-<a href="#434" id="434">434</a>
-<a href="#435" id="435">435</a>
-<a href="#436" id="436">436</a>
-<a href="#437" id="437">437</a>
-<a href="#438" id="438">438</a>
-<a href="#439" id="439">439</a>
-<a href="#440" id="440">440</a>
-<a href="#441" id="441">441</a>
-<a href="#442" id="442">442</a>
-<a href="#443" id="443">443</a>
-<a href="#444" id="444">444</a>
-<a href="#445" id="445">445</a>
-<a href="#446" id="446">446</a>
-<a href="#447" id="447">447</a>
-<a href="#448" id="448">448</a>
-<a href="#449" id="449">449</a>
-<a href="#450" id="450">450</a>
-<a href="#451" id="451">451</a>
-<a href="#452" id="452">452</a>
-<a href="#453" id="453">453</a>
-<a href="#454" id="454">454</a>
-<a href="#455" id="455">455</a>
-<a href="#456" id="456">456</a>
-<a href="#457" id="457">457</a>
-<a href="#458" id="458">458</a>
-<a href="#459" id="459">459</a>
-<a href="#460" id="460">460</a>
-<a href="#461" id="461">461</a>
-<a href="#462" id="462">462</a>
-<a href="#463" id="463">463</a>
-<a href="#464" id="464">464</a>
-<a href="#465" id="465">465</a>
-<a href="#466" id="466">466</a>
-<a href="#467" id="467">467</a>
-<a href="#468" id="468">468</a>
-<a href="#469" id="469">469</a>
-<a href="#470" id="470">470</a>
-<a href="#471" id="471">471</a>
-<a href="#472" id="472">472</a>
-<a href="#473" id="473">473</a>
-<a href="#474" id="474">474</a>
-<a href="#475" id="475">475</a>
-<a href="#476" id="476">476</a>
-<a href="#477" id="477">477</a>
-<a href="#478" id="478">478</a>
-<a href="#479" id="479">479</a>
-<a href="#480" id="480">480</a>
-<a href="#481" id="481">481</a>
-<a href="#482" id="482">482</a>
-<a href="#483" id="483">483</a>
-<a href="#484" id="484">484</a>
-<a href="#485" id="485">485</a>
-<a href="#486" id="486">486</a>
-<a href="#487" id="487">487</a>
-<a href="#488" id="488">488</a>
-<a href="#489" id="489">489</a>
-<a href="#490" id="490">490</a>
-<a href="#491" id="491">491</a>
-<a href="#492" id="492">492</a>
-<a href="#493" id="493">493</a>
-<a href="#494" id="494">494</a>
-<a href="#495" id="495">495</a>
-<a href="#496" id="496">496</a>
-<a href="#497" id="497">497</a>
-<a href="#498" id="498">498</a>
-<a href="#499" id="499">499</a>
-<a href="#500" id="500">500</a>
-<a href="#501" id="501">501</a>
-<a href="#502" id="502">502</a>
-<a href="#503" id="503">503</a>
-<a href="#504" id="504">504</a>
-<a href="#505" id="505">505</a>
-<a href="#506" id="506">506</a>
-<a href="#507" id="507">507</a>
-<a href="#508" id="508">508</a>
-<a href="#509" id="509">509</a>
-<a href="#510" id="510">510</a>
-<a href="#511" id="511">511</a>
-<a href="#512" id="512">512</a>
-<a href="#513" id="513">513</a>
-<a href="#514" id="514">514</a>
-<a href="#515" id="515">515</a>
-<a href="#516" id="516">516</a>
-<a href="#517" id="517">517</a>
-<a href="#518" id="518">518</a>
-<a href="#519" id="519">519</a>
-<a href="#520" id="520">520</a>
-<a href="#521" id="521">521</a>
-<a href="#522" id="522">522</a>
-<a href="#523" id="523">523</a>
-<a href="#524" id="524">524</a>
-<a href="#525" id="525">525</a>
-<a href="#526" id="526">526</a>
-<a href="#527" id="527">527</a>
-<a href="#528" id="528">528</a>
-<a href="#529" id="529">529</a>
-<a href="#530" id="530">530</a>
-<a href="#531" id="531">531</a>
-<a href="#532" id="532">532</a>
-<a href="#533" id="533">533</a>
-<a href="#534" id="534">534</a>
-<a href="#535" id="535">535</a>
-<a href="#536" id="536">536</a>
-<a href="#537" id="537">537</a>
-<a href="#538" id="538">538</a>
-<a href="#539" id="539">539</a>
-<a href="#540" id="540">540</a>
-<a href="#541" id="541">541</a>
-<a href="#542" id="542">542</a>
-<a href="#543" id="543">543</a>
-<a href="#544" id="544">544</a>
-<a href="#545" id="545">545</a>
-<a href="#546" id="546">546</a>
-<a href="#547" id="547">547</a>
-<a href="#548" id="548">548</a>
-<a href="#549" id="549">549</a>
-<a href="#550" id="550">550</a>
-<a href="#551" id="551">551</a>
-<a href="#552" id="552">552</a>
-<a href="#553" id="553">553</a>
-<a href="#554" id="554">554</a>
-<a href="#555" id="555">555</a>
-<a href="#556" id="556">556</a>
-<a href="#557" id="557">557</a>
-<a href="#558" id="558">558</a>
-<a href="#559" id="559">559</a>
-<a href="#560" id="560">560</a>
-<a href="#561" id="561">561</a>
-<a href="#562" id="562">562</a>
-<a href="#563" id="563">563</a>
-<a href="#564" id="564">564</a>
-<a href="#565" id="565">565</a>
-<a href="#566" id="566">566</a>
-<a href="#567" id="567">567</a>
-<a href="#568" id="568">568</a>
-<a href="#569" id="569">569</a>
-<a href="#570" id="570">570</a>
-<a href="#571" id="571">571</a>
-<a href="#572" id="572">572</a>
-<a href="#573" id="573">573</a>
-<a href="#574" id="574">574</a>
-<a href="#575" id="575">575</a>
-<a href="#576" id="576">576</a>
-<a href="#577" id="577">577</a>
-<a href="#578" id="578">578</a>
-<a href="#579" id="579">579</a>
-<a href="#580" id="580">580</a>
-<a href="#581" id="581">581</a>
-<a href="#582" id="582">582</a>
-<a href="#583" id="583">583</a>
-<a href="#584" id="584">584</a>
-<a href="#585" id="585">585</a>
-<a href="#586" id="586">586</a>
-<a href="#587" id="587">587</a>
-<a href="#588" id="588">588</a>
-<a href="#589" id="589">589</a>
-<a href="#590" id="590">590</a>
-<a href="#591" id="591">591</a>
-<a href="#592" id="592">592</a>
-<a href="#593" id="593">593</a>
-<a href="#594" id="594">594</a>
-<a href="#595" id="595">595</a>
-<a href="#596" id="596">596</a>
-<a href="#597" id="597">597</a>
-<a href="#598" id="598">598</a>
-<a href="#599" id="599">599</a>
-<a href="#600" id="600">600</a>
-<a href="#601" id="601">601</a>
-<a href="#602" id="602">602</a>
-<a href="#603" id="603">603</a>
-<a href="#604" id="604">604</a>
-<a href="#605" id="605">605</a>
-<a href="#606" id="606">606</a>
-<a href="#607" id="607">607</a>
-<a href="#608" id="608">608</a>
-<a href="#609" id="609">609</a>
-<a href="#610" id="610">610</a>
-<a href="#611" id="611">611</a>
-<a href="#612" id="612">612</a>
-<a href="#613" id="613">613</a>
-<a href="#614" id="614">614</a>
-<a href="#615" id="615">615</a>
-<a href="#616" id="616">616</a>
-<a href="#617" id="617">617</a>
-<a href="#618" id="618">618</a>
-<a href="#619" id="619">619</a>
-<a href="#620" id="620">620</a>
-<a href="#621" id="621">621</a>
-<a href="#622" id="622">622</a>
-<a href="#623" id="623">623</a>
-<a href="#624" id="624">624</a>
-<a href="#625" id="625">625</a>
-<a href="#626" id="626">626</a>
-<a href="#627" id="627">627</a>
-<a href="#628" id="628">628</a>
-<a href="#629" id="629">629</a>
-<a href="#630" id="630">630</a>
-<a href="#631" id="631">631</a>
-<a href="#632" id="632">632</a>
-<a href="#633" id="633">633</a>
-<a href="#634" id="634">634</a>
-<a href="#635" id="635">635</a>
-<a href="#636" id="636">636</a>
-<a href="#637" id="637">637</a>
-<a href="#638" id="638">638</a>
-<a href="#639" id="639">639</a>
-<a href="#640" id="640">640</a>
-<a href="#641" id="641">641</a>
-<a href="#642" id="642">642</a>
-<a href="#643" id="643">643</a>
-<a href="#644" id="644">644</a>
-<a href="#645" id="645">645</a>
-<a href="#646" id="646">646</a>
-<a href="#647" id="647">647</a>
-<a href="#648" id="648">648</a>
-<a href="#649" id="649">649</a>
-<a href="#650" id="650">650</a>
-<a href="#651" id="651">651</a>
-<a href="#652" id="652">652</a>
-<a href="#653" id="653">653</a>
-<a href="#654" id="654">654</a>
-<a href="#655" id="655">655</a>
-<a href="#656" id="656">656</a>
-<a href="#657" id="657">657</a>
-<a href="#658" id="658">658</a>
-<a href="#659" id="659">659</a>
-<a href="#660" id="660">660</a>
-<a href="#661" id="661">661</a>
-<a href="#662" id="662">662</a>
-<a href="#663" id="663">663</a>
-<a href="#664" id="664">664</a>
-<a href="#665" id="665">665</a>
-<a href="#666" id="666">666</a>
-<a href="#667" id="667">667</a>
-<a href="#668" id="668">668</a>
-<a href="#669" id="669">669</a>
-<a href="#670" id="670">670</a>
-<a href="#671" id="671">671</a>
-<a href="#672" id="672">672</a>
-<a href="#673" id="673">673</a>
-<a href="#674" id="674">674</a>
-<a href="#675" id="675">675</a>
-<a href="#676" id="676">676</a>
-<a href="#677" id="677">677</a>
-<a href="#678" id="678">678</a>
-<a href="#679" id="679">679</a>
-<a href="#680" id="680">680</a>
-<a href="#681" id="681">681</a>
-<a href="#682" id="682">682</a>
-<a href="#683" id="683">683</a>
-<a href="#684" id="684">684</a>
-<a href="#685" id="685">685</a>
-<a href="#686" id="686">686</a>
-<a href="#687" id="687">687</a>
-<a href="#688" id="688">688</a>
-<a href="#689" id="689">689</a>
-<a href="#690" id="690">690</a>
-<a href="#691" id="691">691</a>
-<a href="#692" id="692">692</a>
-<a href="#693" id="693">693</a>
-<a href="#694" id="694">694</a>
-<a href="#695" id="695">695</a>
-<a href="#696" id="696">696</a>
-<a href="#697" id="697">697</a>
-<a href="#698" id="698">698</a>
-<a href="#699" id="699">699</a>
-<a href="#700" id="700">700</a>
-<a href="#701" id="701">701</a>
-<a href="#702" id="702">702</a>
-<a href="#703" id="703">703</a>
-<a href="#704" id="704">704</a>
-<a href="#705" id="705">705</a>
-<a href="#706" id="706">706</a>
-<a href="#707" id="707">707</a>
-<a href="#708" id="708">708</a>
-<a href="#709" id="709">709</a>
-<a href="#710" id="710">710</a>
-<a href="#711" id="711">711</a>
-<a href="#712" id="712">712</a>
-<a href="#713" id="713">713</a>
-<a href="#714" id="714">714</a>
-<a href="#715" id="715">715</a>
-<a href="#716" id="716">716</a>
-<a href="#717" id="717">717</a>
-<a href="#718" id="718">718</a>
-<a href="#719" id="719">719</a>
-<a href="#720" id="720">720</a>
-<a href="#721" id="721">721</a>
-<a href="#722" id="722">722</a>
-<a href="#723" id="723">723</a>
-<a href="#724" id="724">724</a>
-<a href="#725" id="725">725</a>
-<a href="#726" id="726">726</a>
-<a href="#727" id="727">727</a>
-<a href="#728" id="728">728</a>
-<a href="#729" id="729">729</a>
-<a href="#730" id="730">730</a>
-<a href="#731" id="731">731</a>
-<a href="#732" id="732">732</a>
-<a href="#733" id="733">733</a>
-<a href="#734" id="734">734</a>
-<a href="#735" id="735">735</a>
-<a href="#736" id="736">736</a>
-<a href="#737" id="737">737</a>
-<a href="#738" id="738">738</a>
-<a href="#739" id="739">739</a>
-<a href="#740" id="740">740</a>
-<a href="#741" id="741">741</a>
-<a href="#742" id="742">742</a>
-<a href="#743" id="743">743</a>
-<a href="#744" id="744">744</a>
-<a href="#745" id="745">745</a>
-<a href="#746" id="746">746</a>
-<a href="#747" id="747">747</a>
-<a href="#748" id="748">748</a>
-<a href="#749" id="749">749</a>
-<a href="#750" id="750">750</a>
-<a href="#751" id="751">751</a>
-<a href="#752" id="752">752</a>
-<a href="#753" id="753">753</a>
-<a href="#754" id="754">754</a>
-<a href="#755" id="755">755</a>
-<a href="#756" id="756">756</a>
-<a href="#757" id="757">757</a>
-<a href="#758" id="758">758</a>
-<a href="#759" id="759">759</a>
-<a href="#760" id="760">760</a>
-<a href="#761" id="761">761</a>
-<a href="#762" id="762">762</a>
-<a href="#763" id="763">763</a>
-<a href="#764" id="764">764</a>
-<a href="#765" id="765">765</a>
-<a href="#766" id="766">766</a>
-<a href="#767" id="767">767</a>
-<a href="#768" id="768">768</a>
-<a href="#769" id="769">769</a>
-<a href="#770" id="770">770</a>
-<a href="#771" id="771">771</a>
-<a href="#772" id="772">772</a>
-<a href="#773" id="773">773</a>
-<a href="#774" id="774">774</a>
-<a href="#775" id="775">775</a>
-<a href="#776" id="776">776</a>
-<a href="#777" id="777">777</a>
-<a href="#778" id="778">778</a>
-<a href="#779" id="779">779</a>
-<a href="#780" id="780">780</a>
-<a href="#781" id="781">781</a>
-<a href="#782" id="782">782</a>
-<a href="#783" id="783">783</a>
-<a href="#784" id="784">784</a>
-<a href="#785" id="785">785</a>
-<a href="#786" id="786">786</a>
-<a href="#787" id="787">787</a>
-<a href="#788" id="788">788</a>
-<a href="#789" id="789">789</a>
-<a href="#790" id="790">790</a>
-<a href="#791" id="791">791</a>
-<a href="#792" id="792">792</a>
-<a href="#793" id="793">793</a>
-<a href="#794" id="794">794</a>
-<a href="#795" id="795">795</a>
-<a href="#796" id="796">796</a>
-<a href="#797" id="797">797</a>
-<a href="#798" id="798">798</a>
-<a href="#799" id="799">799</a>
-<a href="#800" id="800">800</a>
-<a href="#801" id="801">801</a>
-<a href="#802" id="802">802</a>
-<a href="#803" id="803">803</a>
-<a href="#804" id="804">804</a>
-<a href="#805" id="805">805</a>
-<a href="#806" id="806">806</a>
-<a href="#807" id="807">807</a>
-<a href="#808" id="808">808</a>
-<a href="#809" id="809">809</a>
-<a href="#810" id="810">810</a>
-<a href="#811" id="811">811</a>
-<a href="#812" id="812">812</a>
-<a href="#813" id="813">813</a>
-<a href="#814" id="814">814</a>
-<a href="#815" id="815">815</a>
-<a href="#816" id="816">816</a>
-<a href="#817" id="817">817</a>
-<a href="#818" id="818">818</a>
-<a href="#819" id="819">819</a>
-<a href="#820" id="820">820</a>
-<a href="#821" id="821">821</a>
-<a href="#822" id="822">822</a>
-<a href="#823" id="823">823</a>
-<a href="#824" id="824">824</a>
-<a href="#825" id="825">825</a>
-<a href="#826" id="826">826</a>
-<a href="#827" id="827">827</a>
-<a href="#828" id="828">828</a>
-<a href="#829" id="829">829</a>
-<a href="#830" id="830">830</a>
-<a href="#831" id="831">831</a>
-<a href="#832" id="832">832</a>
-<a href="#833" id="833">833</a>
-<a href="#834" id="834">834</a>
-<a href="#835" id="835">835</a>
-<a href="#836" id="836">836</a>
-<a href="#837" id="837">837</a>
-<a href="#838" id="838">838</a>
-<a href="#839" id="839">839</a>
-<a href="#840" id="840">840</a>
-<a href="#841" id="841">841</a>
-<a href="#842" id="842">842</a>
-<a href="#843" id="843">843</a>
-<a href="#844" id="844">844</a>
-<a href="#845" id="845">845</a>
-<a href="#846" id="846">846</a>
-<a href="#847" id="847">847</a>
-<a href="#848" id="848">848</a>
-<a href="#849" id="849">849</a>
-<a href="#850" id="850">850</a>
-<a href="#851" id="851">851</a>
-<a href="#852" id="852">852</a>
-<a href="#853" id="853">853</a>
-<a href="#854" id="854">854</a>
-<a href="#855" id="855">855</a>
-<a href="#856" id="856">856</a>
-<a href="#857" id="857">857</a>
-<a href="#858" id="858">858</a>
-<a href="#859" id="859">859</a>
-<a href="#860" id="860">860</a>
-<a href="#861" id="861">861</a>
-<a href="#862" id="862">862</a>
-<a href="#863" id="863">863</a>
-<a href="#864" id="864">864</a>
-<a href="#865" id="865">865</a>
-<a href="#866" id="866">866</a>
-<a href="#867" id="867">867</a>
-<a href="#868" id="868">868</a>
-<a href="#869" id="869">869</a>
-<a href="#870" id="870">870</a>
-<a href="#871" id="871">871</a>
-<a href="#872" id="872">872</a>
-<a href="#873" id="873">873</a>
-<a href="#874" id="874">874</a>
-<a href="#875" id="875">875</a>
-<a href="#876" id="876">876</a>
-<a href="#877" id="877">877</a>
-<a href="#878" id="878">878</a>
-<a href="#879" id="879">879</a>
-<a href="#880" id="880">880</a>
-<a href="#881" id="881">881</a>
-<a href="#882" id="882">882</a>
-<a href="#883" id="883">883</a>
-<a href="#884" id="884">884</a>
-<a href="#885" id="885">885</a>
-<a href="#886" id="886">886</a>
-<a href="#887" id="887">887</a>
-<a href="#888" id="888">888</a>
-<a href="#889" id="889">889</a>
-<a href="#890" id="890">890</a>
-<a href="#891" id="891">891</a>
-<a href="#892" id="892">892</a>
-<a href="#893" id="893">893</a>
-<a href="#894" id="894">894</a>
-<a href="#895" id="895">895</a>
-<a href="#896" id="896">896</a>
-<a href="#897" id="897">897</a>
-<a href="#898" id="898">898</a>
-<a href="#899" id="899">899</a>
-<a href="#900" id="900">900</a>
-</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-</span><span class="doccomment">//! Descriptors
-//!
-//! This module contains generic utilities to work with descriptors, plus some re-exported types
-//! from [`miniscript`].
-
-</span><span class="kw">use </span><span class="kw">crate</span>::collections::BTreeMap;
-<span class="kw">use </span>alloc::string::String;
-<span class="kw">use </span>alloc::vec::Vec;
-
-<span class="kw">use </span>bitcoin::bip32::{ChildNumber, DerivationPath, Fingerprint, KeySource, Xpub};
-<span class="kw">use </span>bitcoin::{key::XOnlyPublicKey, secp256k1, PublicKey};
-<span class="kw">use </span>bitcoin::{psbt, taproot};
-<span class="kw">use </span>bitcoin::{Network, TxOut};
-
-<span class="kw">use </span>miniscript::descriptor::{
- DefiniteDescriptorKey, DescriptorMultiXKey, DescriptorSecretKey, DescriptorType,
- DescriptorXKey, InnerXKey, KeyMap, SinglePubKey, Wildcard,
-};
-<span class="kw">pub use </span>miniscript::{
- Descriptor, DescriptorPublicKey, Legacy, Miniscript, ScriptContext, Segwitv0,
-};
-<span class="kw">use </span>miniscript::{ForEachKey, MiniscriptKey, TranslatePk};
-
-<span class="kw">use </span><span class="kw">crate</span>::descriptor::policy::BuildSatisfaction;
-
-<span class="kw">pub mod </span>checksum;
-<span class="attr">#[doc(hidden)]
-</span><span class="kw">pub mod </span>dsl;
-<span class="kw">pub mod </span>error;
-<span class="kw">pub mod </span>policy;
-<span class="kw">pub mod </span>template;
-
-<span class="kw">pub use </span><span class="self">self</span>::checksum::calc_checksum;
-<span class="kw">use </span><span class="self">self</span>::checksum::calc_checksum_bytes;
-<span class="kw">pub use </span><span class="self">self</span>::error::Error <span class="kw">as </span>DescriptorError;
-<span class="kw">pub use </span><span class="self">self</span>::policy::Policy;
-<span class="kw">use </span><span class="self">self</span>::template::DescriptorTemplateOut;
-<span class="kw">use </span><span class="kw">crate</span>::keys::{IntoDescriptorKey, KeyError};
-<span class="kw">use </span><span class="kw">crate</span>::wallet::signer::SignersContainer;
-<span class="kw">use </span><span class="kw">crate</span>::wallet::utils::SecpCtx;
-
-<span class="doccomment">/// Alias for a [`Descriptor`] that can contain extended keys using [`DescriptorPublicKey`]
-</span><span class="kw">pub type </span>ExtendedDescriptor = Descriptor<DescriptorPublicKey>;
-
-<span class="doccomment">/// Alias for a [`Descriptor`] that contains extended **derived** keys
-</span><span class="kw">pub type </span>DerivedDescriptor = Descriptor<DefiniteDescriptorKey>;
-
-<span class="doccomment">/// Alias for the type of maps that represent derivation paths in a [`psbt::Input`] or
-/// [`psbt::Output`]
-///
-/// [`psbt::Input`]: bitcoin::psbt::Input
-/// [`psbt::Output`]: bitcoin::psbt::Output
-</span><span class="kw">pub type </span>HdKeyPaths = BTreeMap<secp256k1::PublicKey, KeySource>;
-
-<span class="doccomment">/// Alias for the type of maps that represent taproot key origins in a [`psbt::Input`] or
-/// [`psbt::Output`]
-///
-/// [`psbt::Input`]: bitcoin::psbt::Input
-/// [`psbt::Output`]: bitcoin::psbt::Output
-</span><span class="kw">pub type </span>TapKeyOrigins = BTreeMap<XOnlyPublicKey, (Vec<taproot::TapLeafHash>, KeySource)>;
-
-<span class="doccomment">/// Trait for types which can be converted into an [`ExtendedDescriptor`] and a [`KeyMap`] usable by a wallet in a specific [`Network`]
-</span><span class="kw">pub trait </span>IntoWalletDescriptor {
- <span class="doccomment">/// Convert to wallet descriptor
- </span><span class="kw">fn </span>into_wallet_descriptor(
- <span class="self">self</span>,
- secp: <span class="kw-2">&</span>SecpCtx,
- network: Network,
- ) -> <span class="prelude-ty">Result</span><(ExtendedDescriptor, KeyMap), DescriptorError>;
-}
-
-<span class="kw">impl </span>IntoWalletDescriptor <span class="kw">for </span><span class="kw-2">&</span>str {
- <span class="kw">fn </span>into_wallet_descriptor(
- <span class="self">self</span>,
- secp: <span class="kw-2">&</span>SecpCtx,
- network: Network,
- ) -> <span class="prelude-ty">Result</span><(ExtendedDescriptor, KeyMap), DescriptorError> {
- <span class="kw">let </span>descriptor = <span class="kw">match </span><span class="self">self</span>.split_once(<span class="string">'#'</span>) {
- <span class="prelude-val">Some</span>((desc, original_checksum)) => {
- <span class="kw">let </span>checksum = calc_checksum_bytes(desc)<span class="question-mark">?</span>;
- <span class="kw">if </span>original_checksum.as_bytes() != checksum {
- <span class="kw">return </span><span class="prelude-val">Err</span>(DescriptorError::InvalidDescriptorChecksum);
- }
- desc
- }
- <span class="prelude-val">None </span>=> <span class="self">self</span>,
- };
-
- ExtendedDescriptor::parse_descriptor(secp, descriptor)<span class="question-mark">?
- </span>.into_wallet_descriptor(secp, network)
- }
-}
-
-<span class="kw">impl </span>IntoWalletDescriptor <span class="kw">for </span><span class="kw-2">&</span>String {
- <span class="kw">fn </span>into_wallet_descriptor(
- <span class="self">self</span>,
- secp: <span class="kw-2">&</span>SecpCtx,
- network: Network,
- ) -> <span class="prelude-ty">Result</span><(ExtendedDescriptor, KeyMap), DescriptorError> {
- <span class="self">self</span>.as_str().into_wallet_descriptor(secp, network)
- }
-}
-
-<span class="kw">impl </span>IntoWalletDescriptor <span class="kw">for </span>ExtendedDescriptor {
- <span class="kw">fn </span>into_wallet_descriptor(
- <span class="self">self</span>,
- secp: <span class="kw-2">&</span>SecpCtx,
- network: Network,
- ) -> <span class="prelude-ty">Result</span><(ExtendedDescriptor, KeyMap), DescriptorError> {
- (<span class="self">self</span>, KeyMap::default()).into_wallet_descriptor(secp, network)
- }
-}
-
-<span class="kw">impl </span>IntoWalletDescriptor <span class="kw">for </span>(ExtendedDescriptor, KeyMap) {
- <span class="kw">fn </span>into_wallet_descriptor(
- <span class="self">self</span>,
- secp: <span class="kw-2">&</span>SecpCtx,
- network: Network,
- ) -> <span class="prelude-ty">Result</span><(ExtendedDescriptor, KeyMap), DescriptorError> {
- <span class="kw">use </span><span class="kw">crate</span>::keys::DescriptorKey;
-
- <span class="kw">struct </span>Translator<<span class="lifetime">'s</span>, <span class="lifetime">'d</span>> {
- secp: <span class="kw-2">&</span><span class="lifetime">'s </span>SecpCtx,
- descriptor: <span class="kw-2">&</span><span class="lifetime">'d </span>ExtendedDescriptor,
- network: Network,
- }
-
- <span class="kw">impl</span><<span class="lifetime">'s</span>, <span class="lifetime">'d</span>> miniscript::Translator<DescriptorPublicKey, String, DescriptorError>
- <span class="kw">for </span>Translator<<span class="lifetime">'s</span>, <span class="lifetime">'d</span>>
- {
- <span class="kw">fn </span>pk(<span class="kw-2">&mut </span><span class="self">self</span>, pk: <span class="kw-2">&</span>DescriptorPublicKey) -> <span class="prelude-ty">Result</span><String, DescriptorError> {
- <span class="kw">let </span>secp = <span class="kw-2">&</span><span class="self">self</span>.secp;
-
- <span class="kw">let </span>(<span class="kw">_</span>, <span class="kw">_</span>, networks) = <span class="kw">if </span><span class="self">self</span>.descriptor.is_taproot() {
- <span class="kw">let </span>descriptor_key: DescriptorKey<miniscript::Tap> =
- pk.clone().into_descriptor_key()<span class="question-mark">?</span>;
- descriptor_key.extract(secp)<span class="question-mark">?
- </span>} <span class="kw">else if </span><span class="self">self</span>.descriptor.is_witness() {
- <span class="kw">let </span>descriptor_key: DescriptorKey<miniscript::Segwitv0> =
- pk.clone().into_descriptor_key()<span class="question-mark">?</span>;
- descriptor_key.extract(secp)<span class="question-mark">?
- </span>} <span class="kw">else </span>{
- <span class="kw">let </span>descriptor_key: DescriptorKey<miniscript::Legacy> =
- pk.clone().into_descriptor_key()<span class="question-mark">?</span>;
- descriptor_key.extract(secp)<span class="question-mark">?
- </span>};
-
- <span class="kw">if </span>networks.contains(<span class="kw-2">&</span><span class="self">self</span>.network) {
- <span class="prelude-val">Ok</span>(Default::default())
- } <span class="kw">else </span>{
- <span class="prelude-val">Err</span>(DescriptorError::Key(KeyError::InvalidNetwork))
- }
- }
- <span class="kw">fn </span>sha256(
- <span class="kw-2">&mut </span><span class="self">self</span>,
- _sha256: <span class="kw-2">&</span><DescriptorPublicKey <span class="kw">as </span>MiniscriptKey>::Sha256,
- ) -> <span class="prelude-ty">Result</span><String, DescriptorError> {
- <span class="prelude-val">Ok</span>(Default::default())
- }
- <span class="kw">fn </span>hash256(
- <span class="kw-2">&mut </span><span class="self">self</span>,
- _hash256: <span class="kw-2">&</span><DescriptorPublicKey <span class="kw">as </span>MiniscriptKey>::Hash256,
- ) -> <span class="prelude-ty">Result</span><String, DescriptorError> {
- <span class="prelude-val">Ok</span>(Default::default())
- }
- <span class="kw">fn </span>ripemd160(
- <span class="kw-2">&mut </span><span class="self">self</span>,
- _ripemd160: <span class="kw-2">&</span><DescriptorPublicKey <span class="kw">as </span>MiniscriptKey>::Ripemd160,
- ) -> <span class="prelude-ty">Result</span><String, DescriptorError> {
- <span class="prelude-val">Ok</span>(Default::default())
- }
- <span class="kw">fn </span>hash160(
- <span class="kw-2">&mut </span><span class="self">self</span>,
- _hash160: <span class="kw-2">&</span><DescriptorPublicKey <span class="kw">as </span>MiniscriptKey>::Hash160,
- ) -> <span class="prelude-ty">Result</span><String, DescriptorError> {
- <span class="prelude-val">Ok</span>(Default::default())
- }
- }
-
- <span class="comment">// check the network for the keys
- </span><span class="kw">use </span>miniscript::TranslateErr;
- <span class="kw">match </span><span class="self">self</span>.<span class="number">0</span>.translate_pk(<span class="kw-2">&mut </span>Translator {
- secp,
- network,
- descriptor: <span class="kw-2">&</span><span class="self">self</span>.<span class="number">0</span>,
- }) {
- <span class="prelude-val">Ok</span>(<span class="kw">_</span>) => {}
- <span class="prelude-val">Err</span>(TranslateErr::TranslatorErr(e)) => <span class="kw">return </span><span class="prelude-val">Err</span>(e),
- <span class="prelude-val">Err</span>(TranslateErr::OuterError(e)) => <span class="kw">return </span><span class="prelude-val">Err</span>(e.into()),
- }
-
- <span class="prelude-val">Ok</span>(<span class="self">self</span>)
- }
-}
-
-<span class="kw">impl </span>IntoWalletDescriptor <span class="kw">for </span>DescriptorTemplateOut {
- <span class="kw">fn </span>into_wallet_descriptor(
- <span class="self">self</span>,
- _secp: <span class="kw-2">&</span>SecpCtx,
- network: Network,
- ) -> <span class="prelude-ty">Result</span><(ExtendedDescriptor, KeyMap), DescriptorError> {
- <span class="kw">struct </span>Translator {
- network: Network,
- }
-
- <span class="kw">impl </span>miniscript::Translator<DescriptorPublicKey, DescriptorPublicKey, DescriptorError>
- <span class="kw">for </span>Translator
- {
- <span class="kw">fn </span>pk(
- <span class="kw-2">&mut </span><span class="self">self</span>,
- pk: <span class="kw-2">&</span>DescriptorPublicKey,
- ) -> <span class="prelude-ty">Result</span><DescriptorPublicKey, DescriptorError> {
- <span class="comment">// workaround for xpubs generated by other key types, like bip39: since when the
- // conversion is made one network has to be chosen, what we generally choose
- // "mainnet", but then override the set of valid networks to specify that all of
- // them are valid. here we reset the network to make sure the wallet struct gets a
- // descriptor with the right network everywhere.
- </span><span class="kw">let </span>pk = <span class="kw">match </span>pk {
- DescriptorPublicKey::XPub(<span class="kw-2">ref </span>xpub) => {
- <span class="kw">let </span><span class="kw-2">mut </span>xpub = xpub.clone();
- xpub.xkey.network = <span class="self">self</span>.network;
-
- DescriptorPublicKey::XPub(xpub)
- }
- other => other.clone(),
- };
-
- <span class="prelude-val">Ok</span>(pk)
- }
- <span class="macro">miniscript::translate_hash_clone!</span>(
- DescriptorPublicKey,
- DescriptorPublicKey,
- DescriptorError
- );
- }
-
- <span class="kw">let </span>(desc, keymap, networks) = <span class="self">self</span>;
-
- <span class="kw">if </span>!networks.contains(<span class="kw-2">&</span>network) {
- <span class="kw">return </span><span class="prelude-val">Err</span>(DescriptorError::Key(KeyError::InvalidNetwork));
- }
-
- <span class="comment">// fixup the network for keys that need it in the descriptor
- </span><span class="kw">use </span>miniscript::TranslateErr;
- <span class="kw">let </span>translated = <span class="kw">match </span>desc.translate_pk(<span class="kw-2">&mut </span>Translator { network }) {
- <span class="prelude-val">Ok</span>(descriptor) => descriptor,
- <span class="prelude-val">Err</span>(TranslateErr::TranslatorErr(e)) => <span class="kw">return </span><span class="prelude-val">Err</span>(e),
- <span class="prelude-val">Err</span>(TranslateErr::OuterError(e)) => <span class="kw">return </span><span class="prelude-val">Err</span>(e.into()),
- };
- <span class="comment">// ...and in the key map
- </span><span class="kw">let </span>fixed_keymap = keymap
- .into_iter()
- .map(|(<span class="kw-2">mut </span>k, <span class="kw-2">mut </span>v)| {
- <span class="kw">match </span>(<span class="kw-2">&mut </span>k, <span class="kw-2">&mut </span>v) {
- (DescriptorPublicKey::XPub(xpub), DescriptorSecretKey::XPrv(xprv)) => {
- xpub.xkey.network = network;
- xprv.xkey.network = network;
- }
- (<span class="kw">_</span>, DescriptorSecretKey::Single(key)) => {
- key.key.network = network;
- }
- <span class="kw">_ </span>=> {}
- }
-
- (k, v)
- })
- .collect();
-
- <span class="prelude-val">Ok</span>((translated, fixed_keymap))
- }
-}
-
-<span class="doccomment">/// Wrapper for `IntoWalletDescriptor` that performs additional checks on the keys contained in the
-/// descriptor
-</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>into_wallet_descriptor_checked<T: IntoWalletDescriptor>(
- inner: T,
- secp: <span class="kw-2">&</span>SecpCtx,
- network: Network,
-) -> <span class="prelude-ty">Result</span><(ExtendedDescriptor, KeyMap), DescriptorError> {
- <span class="kw">let </span>(descriptor, keymap) = inner.into_wallet_descriptor(secp, network)<span class="question-mark">?</span>;
-
- <span class="comment">// Ensure the keys don't contain any hardened derivation steps or hardened wildcards
- </span><span class="kw">let </span>descriptor_contains_hardened_steps = descriptor.for_any_key(|k| {
- <span class="kw">if let </span>DescriptorPublicKey::XPub(DescriptorXKey {
- derivation_path,
- wildcard,
- ..
- }) = k
- {
- <span class="kw">return </span><span class="kw-2">*</span>wildcard == Wildcard::Hardened
- || derivation_path.into_iter().any(ChildNumber::is_hardened);
- }
-
- <span class="bool-val">false
- </span>});
- <span class="kw">if </span>descriptor_contains_hardened_steps {
- <span class="kw">return </span><span class="prelude-val">Err</span>(DescriptorError::HardenedDerivationXpub);
- }
-
- <span class="kw">if </span>descriptor.is_multipath() {
- <span class="kw">return </span><span class="prelude-val">Err</span>(DescriptorError::MultiPath);
- }
-
- <span class="comment">// Run miniscript's sanity check, which will look for duplicated keys and other potential
- // issues
- </span>descriptor.sanity_check()<span class="question-mark">?</span>;
-
- <span class="prelude-val">Ok</span>((descriptor, keymap))
-}
-
-<span class="attr">#[doc(hidden)]
-</span><span class="doccomment">/// Used internally mainly by the `descriptor!()` and `fragment!()` macros
-</span><span class="kw">pub trait </span>CheckMiniscript<Ctx: miniscript::ScriptContext> {
- <span class="kw">fn </span>check_miniscript(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Result</span><(), miniscript::Error>;
-}
-
-<span class="kw">impl</span><Ctx: miniscript::ScriptContext, Pk: miniscript::MiniscriptKey> CheckMiniscript<Ctx>
- <span class="kw">for </span>miniscript::Miniscript<Pk, Ctx>
-{
- <span class="kw">fn </span>check_miniscript(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Result</span><(), miniscript::Error> {
- Ctx::check_global_validity(<span class="self">self</span>)<span class="question-mark">?</span>;
-
- <span class="prelude-val">Ok</span>(())
- }
-}
-
-<span class="doccomment">/// Trait implemented on [`Descriptor`]s to add a method to extract the spending [`policy`]
-</span><span class="kw">pub trait </span>ExtractPolicy {
- <span class="doccomment">/// Extract the spending [`policy`]
- </span><span class="kw">fn </span>extract_policy(
- <span class="kw-2">&</span><span class="self">self</span>,
- signers: <span class="kw-2">&</span>SignersContainer,
- psbt: BuildSatisfaction,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> <span class="prelude-ty">Result</span><<span class="prelude-ty">Option</span><Policy>, DescriptorError>;
-}
-
-<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">trait </span>XKeyUtils {
- <span class="kw">fn </span>root_fingerprint(<span class="kw-2">&</span><span class="self">self</span>, secp: <span class="kw-2">&</span>SecpCtx) -> Fingerprint;
-}
-
-<span class="kw">impl</span><T> XKeyUtils <span class="kw">for </span>DescriptorMultiXKey<T>
-<span class="kw">where
- </span>T: InnerXKey,
-{
- <span class="kw">fn </span>root_fingerprint(<span class="kw-2">&</span><span class="self">self</span>, secp: <span class="kw-2">&</span>SecpCtx) -> Fingerprint {
- <span class="kw">match </span><span class="self">self</span>.origin {
- <span class="prelude-val">Some</span>((fingerprint, <span class="kw">_</span>)) => fingerprint,
- <span class="prelude-val">None </span>=> <span class="self">self</span>.xkey.xkey_fingerprint(secp),
- }
- }
-}
-
-<span class="kw">impl</span><T> XKeyUtils <span class="kw">for </span>DescriptorXKey<T>
-<span class="kw">where
- </span>T: InnerXKey,
-{
- <span class="kw">fn </span>root_fingerprint(<span class="kw-2">&</span><span class="self">self</span>, secp: <span class="kw-2">&</span>SecpCtx) -> Fingerprint {
- <span class="kw">match </span><span class="self">self</span>.origin {
- <span class="prelude-val">Some</span>((fingerprint, <span class="kw">_</span>)) => fingerprint,
- <span class="prelude-val">None </span>=> <span class="self">self</span>.xkey.xkey_fingerprint(secp),
- }
- }
-}
-
-<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">trait </span>DescriptorMeta {
- <span class="kw">fn </span>is_witness(<span class="kw-2">&</span><span class="self">self</span>) -> bool;
- <span class="kw">fn </span>is_taproot(<span class="kw-2">&</span><span class="self">self</span>) -> bool;
- <span class="kw">fn </span>get_extended_keys(<span class="kw-2">&</span><span class="self">self</span>) -> Vec<DescriptorXKey<Xpub>>;
- <span class="kw">fn </span>derive_from_hd_keypaths(
- <span class="kw-2">&</span><span class="self">self</span>,
- hd_keypaths: <span class="kw-2">&</span>HdKeyPaths,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> <span class="prelude-ty">Option</span><DerivedDescriptor>;
- <span class="kw">fn </span>derive_from_tap_key_origins(
- <span class="kw-2">&</span><span class="self">self</span>,
- tap_key_origins: <span class="kw-2">&</span>TapKeyOrigins,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> <span class="prelude-ty">Option</span><DerivedDescriptor>;
- <span class="kw">fn </span>derive_from_psbt_key_origins(
- <span class="kw-2">&</span><span class="self">self</span>,
- key_origins: BTreeMap<Fingerprint, (<span class="kw-2">&</span>DerivationPath, SinglePubKey)>,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> <span class="prelude-ty">Option</span><DerivedDescriptor>;
- <span class="kw">fn </span>derive_from_psbt_input(
- <span class="kw-2">&</span><span class="self">self</span>,
- psbt_input: <span class="kw-2">&</span>psbt::Input,
- utxo: <span class="prelude-ty">Option</span><TxOut>,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> <span class="prelude-ty">Option</span><DerivedDescriptor>;
-}
-
-<span class="kw">impl </span>DescriptorMeta <span class="kw">for </span>ExtendedDescriptor {
- <span class="kw">fn </span>is_witness(<span class="kw-2">&</span><span class="self">self</span>) -> bool {
- <span class="macro">matches!</span>(
- <span class="self">self</span>.desc_type(),
- DescriptorType::Wpkh
- | DescriptorType::ShWpkh
- | DescriptorType::Wsh
- | DescriptorType::ShWsh
- | DescriptorType::ShWshSortedMulti
- | DescriptorType::WshSortedMulti
- )
- }
-
- <span class="kw">fn </span>is_taproot(<span class="kw-2">&</span><span class="self">self</span>) -> bool {
- <span class="self">self</span>.desc_type() == DescriptorType::Tr
- }
-
- <span class="kw">fn </span>get_extended_keys(<span class="kw-2">&</span><span class="self">self</span>) -> Vec<DescriptorXKey<Xpub>> {
- <span class="kw">let </span><span class="kw-2">mut </span>answer = Vec::new();
-
- <span class="self">self</span>.for_each_key(|pk| {
- <span class="kw">if let </span>DescriptorPublicKey::XPub(xpub) = pk {
- answer.push(xpub.clone());
- }
-
- <span class="bool-val">true
- </span>});
-
- answer
- }
-
- <span class="kw">fn </span>derive_from_psbt_key_origins(
- <span class="kw-2">&</span><span class="self">self</span>,
- key_origins: BTreeMap<Fingerprint, (<span class="kw-2">&</span>DerivationPath, SinglePubKey)>,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> <span class="prelude-ty">Option</span><DerivedDescriptor> {
- <span class="comment">// Ensure that deriving `xpub` with `path` yields `expected`
- </span><span class="kw">let </span>verify_key =
- |xpub: <span class="kw-2">&</span>DescriptorXKey<Xpub>, path: <span class="kw-2">&</span>DerivationPath, expected: <span class="kw-2">&</span>SinglePubKey| {
- <span class="kw">let </span>derived = xpub
- .xkey
- .derive_pub(secp, path)
- .expect(<span class="string">"The path should never contain hardened derivation steps"</span>)
- .public_key;
-
- <span class="kw">match </span>expected {
- SinglePubKey::FullKey(pk) <span class="kw">if </span><span class="kw-2">&</span>PublicKey::new(derived) == pk => <span class="bool-val">true</span>,
- SinglePubKey::XOnly(pk) <span class="kw">if </span><span class="kw-2">&</span>XOnlyPublicKey::from(derived) == pk => <span class="bool-val">true</span>,
- <span class="kw">_ </span>=> <span class="bool-val">false</span>,
- }
- };
-
- <span class="kw">let </span><span class="kw-2">mut </span>path_found = <span class="prelude-val">None</span>;
-
- <span class="comment">// using `for_any_key` should make this stop as soon as we return `true`
- </span><span class="self">self</span>.for_any_key(|key| {
- <span class="kw">if let </span>DescriptorPublicKey::XPub(xpub) = key {
- <span class="comment">// Check if the key matches one entry in our `key_origins`. If it does, `matches()` will
- // return the "prefix" that matched, so we remove that prefix from the full path
- // found in `key_origins` and save it in `derive_path`. We expect this to be a derivation
- // path of length 1 if the key is `wildcard` and an empty path otherwise.
- </span><span class="kw">let </span>root_fingerprint = xpub.root_fingerprint(secp);
- <span class="kw">let </span>derive_path = key_origins
- .get_key_value(<span class="kw-2">&</span>root_fingerprint)
- .and_then(|(fingerprint, (path, expected))| {
- xpub.matches(<span class="kw-2">&</span>(<span class="kw-2">*</span>fingerprint, (<span class="kw-2">*</span>path).clone()), secp)
- .zip(<span class="prelude-val">Some</span>((path, expected)))
- })
- .and_then(|(prefix, (full_path, expected))| {
- <span class="kw">let </span>derive_path = full_path
- .into_iter()
- .skip(prefix.into_iter().count())
- .cloned()
- .collect::<DerivationPath>();
-
- <span class="comment">// `derive_path` only contains the replacement index for the wildcard, if present, or
- // an empty path for fixed descriptors. To verify the key we also need the normal steps
- // that come before the wildcard, so we take them directly from `xpub` and then append
- // the final index
- </span><span class="kw">if </span>verify_key(
- xpub,
- <span class="kw-2">&</span>xpub.derivation_path.extend(derive_path.clone()),
- expected,
- ) {
- <span class="prelude-val">Some</span>(derive_path)
- } <span class="kw">else </span>{
- <span class="prelude-val">None
- </span>}
- });
-
- <span class="kw">match </span>derive_path {
- <span class="prelude-val">Some</span>(path) <span class="kw">if </span>xpub.wildcard != Wildcard::None && path.len() == <span class="number">1 </span>=> {
- <span class="comment">// Ignore hardened wildcards
- </span><span class="kw">if let </span>ChildNumber::Normal { index } = path[<span class="number">0</span>] {
- path_found = <span class="prelude-val">Some</span>(index);
- <span class="kw">return </span><span class="bool-val">true</span>;
- }
- }
- <span class="prelude-val">Some</span>(path) <span class="kw">if </span>xpub.wildcard == Wildcard::None && path.is_empty() => {
- path_found = <span class="prelude-val">Some</span>(<span class="number">0</span>);
- <span class="kw">return </span><span class="bool-val">true</span>;
- }
- <span class="kw">_ </span>=> {}
- }
- }
-
- <span class="bool-val">false
- </span>});
-
- path_found.map(|path| {
- <span class="self">self</span>.at_derivation_index(path)
- .expect(<span class="string">"We ignore hardened wildcards"</span>)
- })
- }
-
- <span class="kw">fn </span>derive_from_hd_keypaths(
- <span class="kw-2">&</span><span class="self">self</span>,
- hd_keypaths: <span class="kw-2">&</span>HdKeyPaths,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> <span class="prelude-ty">Option</span><DerivedDescriptor> {
- <span class="comment">// "Convert" an hd_keypaths map to the format required by `derive_from_psbt_key_origins`
- </span><span class="kw">let </span>key_origins = hd_keypaths
- .iter()
- .map(|(pk, (fingerprint, path))| {
- (
- <span class="kw-2">*</span>fingerprint,
- (path, SinglePubKey::FullKey(PublicKey::new(<span class="kw-2">*</span>pk))),
- )
- })
- .collect();
- <span class="self">self</span>.derive_from_psbt_key_origins(key_origins, secp)
- }
-
- <span class="kw">fn </span>derive_from_tap_key_origins(
- <span class="kw-2">&</span><span class="self">self</span>,
- tap_key_origins: <span class="kw-2">&</span>TapKeyOrigins,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> <span class="prelude-ty">Option</span><DerivedDescriptor> {
- <span class="comment">// "Convert" a tap_key_origins map to the format required by `derive_from_psbt_key_origins`
- </span><span class="kw">let </span>key_origins = tap_key_origins
- .iter()
- .map(|(pk, (<span class="kw">_</span>, (fingerprint, path)))| (<span class="kw-2">*</span>fingerprint, (path, SinglePubKey::XOnly(<span class="kw-2">*</span>pk))))
- .collect();
- <span class="self">self</span>.derive_from_psbt_key_origins(key_origins, secp)
- }
-
- <span class="kw">fn </span>derive_from_psbt_input(
- <span class="kw-2">&</span><span class="self">self</span>,
- psbt_input: <span class="kw-2">&</span>psbt::Input,
- utxo: <span class="prelude-ty">Option</span><TxOut>,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> <span class="prelude-ty">Option</span><DerivedDescriptor> {
- <span class="kw">if let </span><span class="prelude-val">Some</span>(derived) = <span class="self">self</span>.derive_from_hd_keypaths(<span class="kw-2">&</span>psbt_input.bip32_derivation, secp) {
- <span class="kw">return </span><span class="prelude-val">Some</span>(derived);
- }
- <span class="kw">if let </span><span class="prelude-val">Some</span>(derived) = <span class="self">self</span>.derive_from_tap_key_origins(<span class="kw-2">&</span>psbt_input.tap_key_origins, secp) {
- <span class="kw">return </span><span class="prelude-val">Some</span>(derived);
- }
- <span class="kw">if </span><span class="self">self</span>.has_wildcard() {
- <span class="comment">// We can't try to bruteforce the derivation index, exit here
- </span><span class="kw">return </span><span class="prelude-val">None</span>;
- }
-
- <span class="kw">let </span>descriptor = <span class="self">self</span>.at_derivation_index(<span class="number">0</span>).expect(<span class="string">"0 is not hardened"</span>);
- <span class="kw">match </span>descriptor.desc_type() {
- <span class="comment">// TODO: add pk() here
- </span>DescriptorType::Pkh
- | DescriptorType::Wpkh
- | DescriptorType::ShWpkh
- | DescriptorType::Tr
- <span class="kw">if </span>utxo.is_some()
- && descriptor.script_pubkey() == utxo.as_ref().unwrap().script_pubkey =>
- {
- <span class="prelude-val">Some</span>(descriptor)
- }
- DescriptorType::Bare | DescriptorType::Sh | DescriptorType::ShSortedMulti
- <span class="kw">if </span>psbt_input.redeem_script.is_some()
- && <span class="kw-2">&</span>descriptor.explicit_script().unwrap()
- == psbt_input.redeem_script.as_ref().unwrap() =>
- {
- <span class="prelude-val">Some</span>(descriptor)
- }
- DescriptorType::Wsh
- | DescriptorType::ShWsh
- | DescriptorType::ShWshSortedMulti
- | DescriptorType::WshSortedMulti
- <span class="kw">if </span>psbt_input.witness_script.is_some()
- && <span class="kw-2">&</span>descriptor.explicit_script().unwrap()
- == psbt_input.witness_script.as_ref().unwrap() =>
- {
- <span class="prelude-val">Some</span>(descriptor)
- }
- <span class="kw">_ </span>=> <span class="prelude-val">None</span>,
- }
- }
-}
-
-<span class="attr">#[cfg(test)]
-</span><span class="kw">mod </span>test {
- <span class="kw">use </span>alloc::string::ToString;
- <span class="kw">use </span>core::str::FromStr;
-
- <span class="kw">use </span>assert_matches::assert_matches;
- <span class="kw">use </span>bitcoin::hex::FromHex;
- <span class="kw">use </span>bitcoin::secp256k1::Secp256k1;
- <span class="kw">use </span>bitcoin::ScriptBuf;
- <span class="kw">use </span>bitcoin::{bip32, Psbt};
-
- <span class="kw">use super</span>::<span class="kw-2">*</span>;
- <span class="kw">use </span><span class="kw">crate</span>::psbt::PsbtUtils;
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_derive_from_psbt_input_wpkh_wif() {
- <span class="kw">let </span>descriptor = Descriptor::<DescriptorPublicKey>::from_str(
- <span class="string">"wpkh(02b4632d08485ff1df2db55b9dafd23347d1c47a457072a1e87be26896549a8737)"</span>,
- )
- .unwrap();
- <span class="kw">let </span>psbt = Psbt::deserialize(
- <span class="kw-2">&</span>Vec::<u8>::from_hex(
- <span class="string">"70736274ff010052010000000162307be8e431fbaff807cdf9cdc3fde44d7402\
- 11bc8342c31ffd6ec11fe35bcc0100000000ffffffff01328601000000000016\
- 001493ce48570b55c42c2af816aeaba06cfee1224fae000000000001011fa086\
- 01000000000016001493ce48570b55c42c2af816aeaba06cfee1224fae010304\
- 010000000000"</span>,
- )
- .unwrap(),
- )
- .unwrap();
-
- <span class="macro">assert!</span>(descriptor
- .derive_from_psbt_input(<span class="kw-2">&</span>psbt.inputs[<span class="number">0</span>], psbt.get_utxo_for(<span class="number">0</span>), <span class="kw-2">&</span>Secp256k1::new())
- .is_some());
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_derive_from_psbt_input_pkh_tpub() {
- <span class="kw">let </span>descriptor = Descriptor::<DescriptorPublicKey>::from_str(
- <span class="string">"pkh([0f056943/44h/0h/0h]tpubDDpWvmUrPZrhSPmUzCMBHffvC3HyMAPnWDSAQNBTnj1iZeJa7BZQEttFiP4DS4GCcXQHezdXhn86Hj6LHX5EDstXPWrMaSneRWM8yUf6NFd/10/*)"</span>,
- )
- .unwrap();
- <span class="kw">let </span>psbt = Psbt::deserialize(
- <span class="kw-2">&</span>Vec::<u8>::from_hex(
- <span class="string">"70736274ff010053010000000145843b86be54a3cd8c9e38444e1162676c00df\
- e7964122a70df491ea12fd67090100000000ffffffff01c19598000000000017\
- a91432bb94283282f72b2e034709e348c44d5a4db0ef8700000000000100f902\
- 0000000001010167e99c0eb67640f3a1b6805f2d8be8238c947f8aaf49eb0a9c\
- bee6a42c984200000000171600142b29a22019cca05b9c2b2d283a4c4489e1cf\
- 9f8ffeffffff02a01dced06100000017a914e2abf033cadbd74f0f4c74946201\
- decd20d5c43c8780969800000000001976a9148b0fce5fb1264e599a65387313\
- 3c95478b902eb288ac02473044022015d9211576163fa5b001e84dfa3d44efd9\
- 86b8f3a0d3d2174369288b2b750906022048dacc0e5d73ae42512fd2b97e2071\
- a8d0bce443b390b1fe0b8128fe70ec919e01210232dad1c5a67dcb0116d407e2\
- 52584228ab7ec00e8b9779d0c3ffe8114fc1a7d2c80600000103040100000022\
- 0603433b83583f8c4879b329dd08bbc7da935e4cc02f637ff746e05f0466ffb2\
- a6a2180f0569432c00008000000080000000800a000000000000000000"</span>,
- )
- .unwrap(),
- )
- .unwrap();
-
- <span class="macro">assert!</span>(descriptor
- .derive_from_psbt_input(<span class="kw-2">&</span>psbt.inputs[<span class="number">0</span>], psbt.get_utxo_for(<span class="number">0</span>), <span class="kw-2">&</span>Secp256k1::new())
- .is_some());
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_derive_from_psbt_input_wsh() {
- <span class="kw">let </span>descriptor = Descriptor::<DescriptorPublicKey>::from_str(
- <span class="string">"wsh(and_v(v:pk(03b6633fef2397a0a9de9d7b6f23aef8368a6e362b0581f0f0af70d5ecfd254b14),older(6)))"</span>,
- )
- .unwrap();
- <span class="kw">let </span>psbt = Psbt::deserialize(
- <span class="kw-2">&</span>Vec::<u8>::from_hex(
- <span class="string">"70736274ff01005302000000011c8116eea34408ab6529223c9a176606742207\
- 67a1ff1d46a6e3c4a88243ea6e01000000000600000001109698000000000017\
- a914ad105f61102e0d01d7af40d06d6a5c3ae2f7fde387000000000001012b80\
- 969800000000002200203ca72f106a72234754890ca7640c43f65d2174e44d33\
- 336030f9059345091044010304010000000105252103b6633fef2397a0a9de9d\
- 7b6f23aef8368a6e362b0581f0f0af70d5ecfd254b14ad56b20000"</span>,
- )
- .unwrap(),
- )
- .unwrap();
-
- <span class="macro">assert!</span>(descriptor
- .derive_from_psbt_input(<span class="kw-2">&</span>psbt.inputs[<span class="number">0</span>], psbt.get_utxo_for(<span class="number">0</span>), <span class="kw-2">&</span>Secp256k1::new())
- .is_some());
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_derive_from_psbt_input_sh() {
- <span class="kw">let </span>descriptor = Descriptor::<DescriptorPublicKey>::from_str(
- <span class="string">"sh(and_v(v:pk(021403881a5587297818fcaf17d239cefca22fce84a45b3b1d23e836c4af671dbb),after(630000)))"</span>,
- )
- .unwrap();
- <span class="kw">let </span>psbt = Psbt::deserialize(
- <span class="kw-2">&</span>Vec::<u8>::from_hex(
- <span class="string">"70736274ff0100530100000001bc8c13df445dfadcc42afa6dc841f85d22b01d\
- a6270ebf981740f4b7b1d800390000000000feffffff01ba9598000000000017\
- a91457b148ba4d3e5fa8608a8657875124e3d1c9390887f09c0900000100e002\
- 0000000001016ba1bbe05cc93574a0d611ec7d93ad0ab6685b28d0cd80e8a82d\
- debb326643c90100000000feffffff02809698000000000017a914d9a6e8c455\
- 8e16c8253afe53ce37ad61cf4c38c487403504cf6100000017a9144044fb6e0b\
- 757dfc1b34886b6a95aef4d3db137e870247304402202a9b72d939bcde8ba2a1\
- e0980597e47af4f5c152a78499143c3d0a78ac2286a602207a45b1df9e93b8c9\
- 6f09f5c025fe3e413ca4b905fe65ee55d32a3276439a9b8f012102dc1fcc2636\
- 4da1aa718f03d8d9bd6f2ff410ed2cf1245a168aa3bcc995ac18e0a806000001\
- 03040100000001042821021403881a5587297818fcaf17d239cefca22fce84a4\
- 5b3b1d23e836c4af671dbbad03f09c09b10000"</span>,
- )
- .unwrap(),
- )
- .unwrap();
-
- <span class="macro">assert!</span>(descriptor
- .derive_from_psbt_input(<span class="kw-2">&</span>psbt.inputs[<span class="number">0</span>], psbt.get_utxo_for(<span class="number">0</span>), <span class="kw-2">&</span>Secp256k1::new())
- .is_some());
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_to_wallet_descriptor_fixup_networks() {
- <span class="kw">use </span><span class="kw">crate</span>::keys::{any_network, IntoDescriptorKey};
-
- <span class="kw">let </span>secp = Secp256k1::new();
-
- <span class="kw">let </span>xprv = bip32::Xpriv::from_str(<span class="string">"xprv9s21ZrQH143K3c3gF1DUWpWNr2SG2XrG8oYPpqYh7hoWsJy9NjabErnzriJPpnGHyKz5NgdXmq1KVbqS1r4NXdCoKitWg5e86zqXHa8kxyB"</span>).unwrap();
- <span class="kw">let </span>path = bip32::DerivationPath::from_str(<span class="string">"m/0"</span>).unwrap();
-
- <span class="comment">// here `to_descriptor_key` will set the valid networks for the key to only mainnet, since
- // we are using an "xpub"
- </span><span class="kw">let </span>key = (xprv, path.clone()).into_descriptor_key().unwrap();
- <span class="comment">// override it with any. this happens in some key conversions, like bip39
- </span><span class="kw">let </span>key = key.override_valid_networks(any_network());
-
- <span class="comment">// make a descriptor out of it
- </span><span class="kw">let </span>desc = <span class="macro">crate::descriptor!</span>(wpkh(key)).unwrap();
- <span class="comment">// this should convert the key that supports "any_network" to the right network (testnet)
- </span><span class="kw">let </span>(wallet_desc, keymap) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
-
- <span class="kw">let </span><span class="kw-2">mut </span>xprv_testnet = xprv;
- xprv_testnet.network = Network::Testnet;
-
- <span class="kw">let </span>xpub_testnet = bip32::Xpub::from_priv(<span class="kw-2">&</span>secp, <span class="kw-2">&</span>xprv_testnet);
- <span class="kw">let </span>desc_pubkey = DescriptorPublicKey::XPub(DescriptorXKey {
- xkey: xpub_testnet,
- origin: <span class="prelude-val">None</span>,
- derivation_path: path,
- wildcard: Wildcard::Unhardened,
- });
-
- <span class="macro">assert_eq!</span>(wallet_desc.to_string(), <span class="string">"wpkh(tpubD6NzVbkrYhZ4XtJzoDja5snUjBNQRP5B3f4Hyn1T1x6PVPxzzVjvw6nJx2D8RBCxog9GEVjZoyStfepTz7TtKoBVdkCtnc7VCJh9dD4RAU9/0/*)#a3svx0ha"</span>);
- <span class="macro">assert_eq!</span>(
- keymap
- .get(<span class="kw-2">&</span>desc_pubkey)
- .map(|key| key.to_public(<span class="kw-2">&</span>secp).unwrap()),
- <span class="prelude-val">Some</span>(desc_pubkey)
- );
- }
-
- <span class="comment">// test IntoWalletDescriptor trait from &str with and without checksum appended
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_descriptor_from_str_with_checksum() {
- <span class="kw">let </span>secp = Secp256k1::new();
-
- <span class="kw">let </span>desc = <span class="string">"wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)#tqz0nc62"
- </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet);
- <span class="macro">assert!</span>(desc.is_ok());
-
- <span class="kw">let </span>desc = <span class="string">"wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)"
- </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet);
- <span class="macro">assert!</span>(desc.is_ok());
-
- <span class="kw">let </span>desc = <span class="string">"wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/1/2/*)#67ju93jw"
- </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet);
- <span class="macro">assert!</span>(desc.is_ok());
-
- <span class="kw">let </span>desc = <span class="string">"wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/1/2/*)"
- </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet);
- <span class="macro">assert!</span>(desc.is_ok());
-
- <span class="kw">let </span>desc = <span class="string">"wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)#67ju93jw"
- </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet);
- <span class="macro">assert_matches!</span>(desc, <span class="prelude-val">Err</span>(DescriptorError::InvalidDescriptorChecksum));
-
- <span class="kw">let </span>desc = <span class="string">"wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)#67ju93jw"
- </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet);
- <span class="macro">assert_matches!</span>(desc, <span class="prelude-val">Err</span>(DescriptorError::InvalidDescriptorChecksum));
- }
-
- <span class="comment">// test IntoWalletDescriptor trait from &str with keys from right and wrong network
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_descriptor_from_str_with_keys_network() {
- <span class="kw">let </span>secp = Secp256k1::new();
-
- <span class="kw">let </span>desc = <span class="string">"wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)"
- </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet);
- <span class="macro">assert!</span>(desc.is_ok());
-
- <span class="kw">let </span>desc = <span class="string">"wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)"
- </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Regtest);
- <span class="macro">assert!</span>(desc.is_ok());
-
- <span class="kw">let </span>desc = <span class="string">"wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/1/2/*)"
- </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet);
- <span class="macro">assert!</span>(desc.is_ok());
-
- <span class="kw">let </span>desc = <span class="string">"wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/1/2/*)"
- </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Regtest);
- <span class="macro">assert!</span>(desc.is_ok());
-
- <span class="kw">let </span>desc = <span class="string">"sh(wpkh(02864bb4ad00cefa806098a69e192bbda937494e69eb452b87bb3f20f6283baedb))"
- </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet);
- <span class="macro">assert!</span>(desc.is_ok());
-
- <span class="kw">let </span>desc = <span class="string">"sh(wpkh(02864bb4ad00cefa806098a69e192bbda937494e69eb452b87bb3f20f6283baedb))"
- </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Bitcoin);
- <span class="macro">assert!</span>(desc.is_ok());
-
- <span class="kw">let </span>desc = <span class="string">"wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)"
- </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Bitcoin);
- <span class="macro">assert_matches!</span>(desc, <span class="prelude-val">Err</span>(DescriptorError::Key(KeyError::InvalidNetwork)));
-
- <span class="kw">let </span>desc = <span class="string">"wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/1/2/*)"
- </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Bitcoin);
- <span class="macro">assert_matches!</span>(desc, <span class="prelude-val">Err</span>(DescriptorError::Key(KeyError::InvalidNetwork)));
- }
-
- <span class="comment">// test IntoWalletDescriptor trait from the output of the descriptor!() macro
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_descriptor_from_str_from_output_of_macro() {
- <span class="kw">let </span>secp = Secp256k1::new();
-
- <span class="kw">let </span>tpub = bip32::Xpub::from_str(<span class="string">"tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK"</span>).unwrap();
- <span class="kw">let </span>path = bip32::DerivationPath::from_str(<span class="string">"m/1/2"</span>).unwrap();
- <span class="kw">let </span>key = (tpub, path).into_descriptor_key().unwrap();
-
- <span class="comment">// make a descriptor out of it
- </span><span class="kw">let </span>desc = <span class="macro">crate::descriptor!</span>(wpkh(key)).unwrap();
-
- <span class="kw">let </span>(wallet_desc, <span class="kw">_</span>) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
- <span class="kw">let </span>wallet_desc_str = wallet_desc.to_string();
- <span class="macro">assert_eq!</span>(wallet_desc_str, <span class="string">"wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/1/2/*)#67ju93jw"</span>);
-
- <span class="kw">let </span>(wallet_desc2, <span class="kw">_</span>) = wallet_desc_str
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
- <span class="macro">assert_eq!</span>(wallet_desc, wallet_desc2)
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_into_wallet_descriptor_checked() {
- <span class="kw">let </span>secp = Secp256k1::new();
-
- <span class="kw">let </span>descriptor = <span class="string">"wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/0'/1/2/*)"</span>;
- <span class="kw">let </span>result = into_wallet_descriptor_checked(descriptor, <span class="kw-2">&</span>secp, Network::Testnet);
-
- <span class="macro">assert_matches!</span>(result, <span class="prelude-val">Err</span>(DescriptorError::HardenedDerivationXpub));
-
- <span class="kw">let </span>descriptor = <span class="string">"wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/<0;1>/*)"</span>;
- <span class="kw">let </span>result = into_wallet_descriptor_checked(descriptor, <span class="kw-2">&</span>secp, Network::Testnet);
-
- <span class="macro">assert_matches!</span>(result, <span class="prelude-val">Err</span>(DescriptorError::MultiPath));
-
- <span class="comment">// repeated pubkeys
- </span><span class="kw">let </span>descriptor = <span class="string">"wsh(multi(2,tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/0/*,tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/0/*))"</span>;
- <span class="kw">let </span>result = into_wallet_descriptor_checked(descriptor, <span class="kw-2">&</span>secp, Network::Testnet);
-
- <span class="macro">assert!</span>(result.is_err());
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_sh_wsh_sortedmulti_redeemscript() {
- <span class="kw">use </span>miniscript::psbt::PsbtInputExt;
-
- <span class="kw">let </span>secp = Secp256k1::new();
-
- <span class="kw">let </span>descriptor = <span class="string">"sh(wsh(sortedmulti(3,tpubDEsqS36T4DVsKJd9UH8pAKzrkGBYPLEt9jZMwpKtzh1G6mgYehfHt9WCgk7MJG5QGSFWf176KaBNoXbcuFcuadAFKxDpUdMDKGBha7bY3QM/0/*,tpubDF3cpwfs7fMvXXuoQbohXtLjNM6ehwYT287LWtmLsd4r77YLg6MZg4vTETx5MSJ2zkfigbYWu31VA2Z2Vc1cZugCYXgS7FQu6pE8V6TriEH/0/*,tpubDE1SKfcW76Tb2AASv5bQWMuScYNAdoqLHoexw13sNDXwmUhQDBbCD3QAedKGLhxMrWQdMDKENzYtnXPDRvexQPNuDrLj52wAjHhNEm8sJ4p/0/*,tpubDFLc6oXwJmhm3FGGzXkfJNTh2KitoY3WhmmQvuAjMhD8YbyWn5mAqckbxXfm2etM3p5J6JoTpSrMqRSTfMLtNW46poDaEZJ1kjd3csRSjwH/0/*,tpubDEWD9NBeWP59xXmdqSNt4VYdtTGwbpyP8WS962BuqpQeMZmX9Pur14dhXdZT5a7wR1pK6dPtZ9fP5WR493hPzemnBvkfLLYxnUjAKj1JCQV/0/*,tpubDEHyZkkwd7gZWCTgQuYQ9C4myF2hMEmyHsBCCmLssGqoqUxeT3gzohF5uEVURkf9TtmeepJgkSUmteac38FwZqirjApzNX59XSHLcwaTZCH/0/*,tpubDEqLouCekwnMUWN486kxGzD44qVgeyuqHyxUypNEiQt5RnUZNJe386TKPK99fqRV1vRkZjYAjtXGTECz98MCsdLcnkM67U6KdYRzVubeCgZ/0/*)))"</span>;
- <span class="kw">let </span>(descriptor, <span class="kw">_</span>) =
- into_wallet_descriptor_checked(descriptor, <span class="kw-2">&</span>secp, Network::Testnet).unwrap();
-
- <span class="kw">let </span>descriptor = descriptor.at_derivation_index(<span class="number">0</span>).unwrap();
-
- <span class="kw">let </span>script = ScriptBuf::from_hex(<span class="string">"5321022f533b667e2ea3b36e21961c9fe9dca340fbe0af5210173a83ae0337ab20a57621026bb53a98e810bd0ee61a0ed1164ba6c024786d76554e793e202dc6ce9c78c4ea2102d5b8a7d66a41ffdb6f4c53d61994022e886b4f45001fb158b95c9164d45f8ca3210324b75eead2c1f9c60e8adeb5e7009fec7a29afcdb30d829d82d09562fe8bae8521032d34f8932200833487bd294aa219dcbe000b9f9b3d824799541430009f0fa55121037468f8ea99b6c64788398b5ad25480cad08f4b0d65be54ce3a55fd206b5ae4722103f72d3d96663b0ea99b0aeb0d7f273cab11a8de37885f1dddc8d9112adb87169357ae"</span>).unwrap();
-
- <span class="kw">let </span><span class="kw-2">mut </span>psbt_input = psbt::Input::default();
- psbt_input
- .update_with_descriptor_unchecked(<span class="kw-2">&</span>descriptor)
- .unwrap();
-
- <span class="macro">assert_eq!</span>(psbt_input.redeem_script, <span class="prelude-val">Some</span>(script.to_p2wsh()));
- <span class="macro">assert_eq!</span>(psbt_input.witness_script, <span class="prelude-val">Some</span>(script));
- }
-}
-</code></pre></div>
-</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Source of the Rust file `crates/bdk/src/descriptor/policy.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>policy.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk/index.html">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
-<a href="#2" id="2">2</a>
-<a href="#3" id="3">3</a>
-<a href="#4" id="4">4</a>
-<a href="#5" id="5">5</a>
-<a href="#6" id="6">6</a>
-<a href="#7" id="7">7</a>
-<a href="#8" id="8">8</a>
-<a href="#9" id="9">9</a>
-<a href="#10" id="10">10</a>
-<a href="#11" id="11">11</a>
-<a href="#12" id="12">12</a>
-<a href="#13" id="13">13</a>
-<a href="#14" id="14">14</a>
-<a href="#15" id="15">15</a>
-<a href="#16" id="16">16</a>
-<a href="#17" id="17">17</a>
-<a href="#18" id="18">18</a>
-<a href="#19" id="19">19</a>
-<a href="#20" id="20">20</a>
-<a href="#21" id="21">21</a>
-<a href="#22" id="22">22</a>
-<a href="#23" id="23">23</a>
-<a href="#24" id="24">24</a>
-<a href="#25" id="25">25</a>
-<a href="#26" id="26">26</a>
-<a href="#27" id="27">27</a>
-<a href="#28" id="28">28</a>
-<a href="#29" id="29">29</a>
-<a href="#30" id="30">30</a>
-<a href="#31" id="31">31</a>
-<a href="#32" id="32">32</a>
-<a href="#33" id="33">33</a>
-<a href="#34" id="34">34</a>
-<a href="#35" id="35">35</a>
-<a href="#36" id="36">36</a>
-<a href="#37" id="37">37</a>
-<a href="#38" id="38">38</a>
-<a href="#39" id="39">39</a>
-<a href="#40" id="40">40</a>
-<a href="#41" id="41">41</a>
-<a href="#42" id="42">42</a>
-<a href="#43" id="43">43</a>
-<a href="#44" id="44">44</a>
-<a href="#45" id="45">45</a>
-<a href="#46" id="46">46</a>
-<a href="#47" id="47">47</a>
-<a href="#48" id="48">48</a>
-<a href="#49" id="49">49</a>
-<a href="#50" id="50">50</a>
-<a href="#51" id="51">51</a>
-<a href="#52" id="52">52</a>
-<a href="#53" id="53">53</a>
-<a href="#54" id="54">54</a>
-<a href="#55" id="55">55</a>
-<a href="#56" id="56">56</a>
-<a href="#57" id="57">57</a>
-<a href="#58" id="58">58</a>
-<a href="#59" id="59">59</a>
-<a href="#60" id="60">60</a>
-<a href="#61" id="61">61</a>
-<a href="#62" id="62">62</a>
-<a href="#63" id="63">63</a>
-<a href="#64" id="64">64</a>
-<a href="#65" id="65">65</a>
-<a href="#66" id="66">66</a>
-<a href="#67" id="67">67</a>
-<a href="#68" id="68">68</a>
-<a href="#69" id="69">69</a>
-<a href="#70" id="70">70</a>
-<a href="#71" id="71">71</a>
-<a href="#72" id="72">72</a>
-<a href="#73" id="73">73</a>
-<a href="#74" id="74">74</a>
-<a href="#75" id="75">75</a>
-<a href="#76" id="76">76</a>
-<a href="#77" id="77">77</a>
-<a href="#78" id="78">78</a>
-<a href="#79" id="79">79</a>
-<a href="#80" id="80">80</a>
-<a href="#81" id="81">81</a>
-<a href="#82" id="82">82</a>
-<a href="#83" id="83">83</a>
-<a href="#84" id="84">84</a>
-<a href="#85" id="85">85</a>
-<a href="#86" id="86">86</a>
-<a href="#87" id="87">87</a>
-<a href="#88" id="88">88</a>
-<a href="#89" id="89">89</a>
-<a href="#90" id="90">90</a>
-<a href="#91" id="91">91</a>
-<a href="#92" id="92">92</a>
-<a href="#93" id="93">93</a>
-<a href="#94" id="94">94</a>
-<a href="#95" id="95">95</a>
-<a href="#96" id="96">96</a>
-<a href="#97" id="97">97</a>
-<a href="#98" id="98">98</a>
-<a href="#99" id="99">99</a>
-<a href="#100" id="100">100</a>
-<a href="#101" id="101">101</a>
-<a href="#102" id="102">102</a>
-<a href="#103" id="103">103</a>
-<a href="#104" id="104">104</a>
-<a href="#105" id="105">105</a>
-<a href="#106" id="106">106</a>
-<a href="#107" id="107">107</a>
-<a href="#108" id="108">108</a>
-<a href="#109" id="109">109</a>
-<a href="#110" id="110">110</a>
-<a href="#111" id="111">111</a>
-<a href="#112" id="112">112</a>
-<a href="#113" id="113">113</a>
-<a href="#114" id="114">114</a>
-<a href="#115" id="115">115</a>
-<a href="#116" id="116">116</a>
-<a href="#117" id="117">117</a>
-<a href="#118" id="118">118</a>
-<a href="#119" id="119">119</a>
-<a href="#120" id="120">120</a>
-<a href="#121" id="121">121</a>
-<a href="#122" id="122">122</a>
-<a href="#123" id="123">123</a>
-<a href="#124" id="124">124</a>
-<a href="#125" id="125">125</a>
-<a href="#126" id="126">126</a>
-<a href="#127" id="127">127</a>
-<a href="#128" id="128">128</a>
-<a href="#129" id="129">129</a>
-<a href="#130" id="130">130</a>
-<a href="#131" id="131">131</a>
-<a href="#132" id="132">132</a>
-<a href="#133" id="133">133</a>
-<a href="#134" id="134">134</a>
-<a href="#135" id="135">135</a>
-<a href="#136" id="136">136</a>
-<a href="#137" id="137">137</a>
-<a href="#138" id="138">138</a>
-<a href="#139" id="139">139</a>
-<a href="#140" id="140">140</a>
-<a href="#141" id="141">141</a>
-<a href="#142" id="142">142</a>
-<a href="#143" id="143">143</a>
-<a href="#144" id="144">144</a>
-<a href="#145" id="145">145</a>
-<a href="#146" id="146">146</a>
-<a href="#147" id="147">147</a>
-<a href="#148" id="148">148</a>
-<a href="#149" id="149">149</a>
-<a href="#150" id="150">150</a>
-<a href="#151" id="151">151</a>
-<a href="#152" id="152">152</a>
-<a href="#153" id="153">153</a>
-<a href="#154" id="154">154</a>
-<a href="#155" id="155">155</a>
-<a href="#156" id="156">156</a>
-<a href="#157" id="157">157</a>
-<a href="#158" id="158">158</a>
-<a href="#159" id="159">159</a>
-<a href="#160" id="160">160</a>
-<a href="#161" id="161">161</a>
-<a href="#162" id="162">162</a>
-<a href="#163" id="163">163</a>
-<a href="#164" id="164">164</a>
-<a href="#165" id="165">165</a>
-<a href="#166" id="166">166</a>
-<a href="#167" id="167">167</a>
-<a href="#168" id="168">168</a>
-<a href="#169" id="169">169</a>
-<a href="#170" id="170">170</a>
-<a href="#171" id="171">171</a>
-<a href="#172" id="172">172</a>
-<a href="#173" id="173">173</a>
-<a href="#174" id="174">174</a>
-<a href="#175" id="175">175</a>
-<a href="#176" id="176">176</a>
-<a href="#177" id="177">177</a>
-<a href="#178" id="178">178</a>
-<a href="#179" id="179">179</a>
-<a href="#180" id="180">180</a>
-<a href="#181" id="181">181</a>
-<a href="#182" id="182">182</a>
-<a href="#183" id="183">183</a>
-<a href="#184" id="184">184</a>
-<a href="#185" id="185">185</a>
-<a href="#186" id="186">186</a>
-<a href="#187" id="187">187</a>
-<a href="#188" id="188">188</a>
-<a href="#189" id="189">189</a>
-<a href="#190" id="190">190</a>
-<a href="#191" id="191">191</a>
-<a href="#192" id="192">192</a>
-<a href="#193" id="193">193</a>
-<a href="#194" id="194">194</a>
-<a href="#195" id="195">195</a>
-<a href="#196" id="196">196</a>
-<a href="#197" id="197">197</a>
-<a href="#198" id="198">198</a>
-<a href="#199" id="199">199</a>
-<a href="#200" id="200">200</a>
-<a href="#201" id="201">201</a>
-<a href="#202" id="202">202</a>
-<a href="#203" id="203">203</a>
-<a href="#204" id="204">204</a>
-<a href="#205" id="205">205</a>
-<a href="#206" id="206">206</a>
-<a href="#207" id="207">207</a>
-<a href="#208" id="208">208</a>
-<a href="#209" id="209">209</a>
-<a href="#210" id="210">210</a>
-<a href="#211" id="211">211</a>
-<a href="#212" id="212">212</a>
-<a href="#213" id="213">213</a>
-<a href="#214" id="214">214</a>
-<a href="#215" id="215">215</a>
-<a href="#216" id="216">216</a>
-<a href="#217" id="217">217</a>
-<a href="#218" id="218">218</a>
-<a href="#219" id="219">219</a>
-<a href="#220" id="220">220</a>
-<a href="#221" id="221">221</a>
-<a href="#222" id="222">222</a>
-<a href="#223" id="223">223</a>
-<a href="#224" id="224">224</a>
-<a href="#225" id="225">225</a>
-<a href="#226" id="226">226</a>
-<a href="#227" id="227">227</a>
-<a href="#228" id="228">228</a>
-<a href="#229" id="229">229</a>
-<a href="#230" id="230">230</a>
-<a href="#231" id="231">231</a>
-<a href="#232" id="232">232</a>
-<a href="#233" id="233">233</a>
-<a href="#234" id="234">234</a>
-<a href="#235" id="235">235</a>
-<a href="#236" id="236">236</a>
-<a href="#237" id="237">237</a>
-<a href="#238" id="238">238</a>
-<a href="#239" id="239">239</a>
-<a href="#240" id="240">240</a>
-<a href="#241" id="241">241</a>
-<a href="#242" id="242">242</a>
-<a href="#243" id="243">243</a>
-<a href="#244" id="244">244</a>
-<a href="#245" id="245">245</a>
-<a href="#246" id="246">246</a>
-<a href="#247" id="247">247</a>
-<a href="#248" id="248">248</a>
-<a href="#249" id="249">249</a>
-<a href="#250" id="250">250</a>
-<a href="#251" id="251">251</a>
-<a href="#252" id="252">252</a>
-<a href="#253" id="253">253</a>
-<a href="#254" id="254">254</a>
-<a href="#255" id="255">255</a>
-<a href="#256" id="256">256</a>
-<a href="#257" id="257">257</a>
-<a href="#258" id="258">258</a>
-<a href="#259" id="259">259</a>
-<a href="#260" id="260">260</a>
-<a href="#261" id="261">261</a>
-<a href="#262" id="262">262</a>
-<a href="#263" id="263">263</a>
-<a href="#264" id="264">264</a>
-<a href="#265" id="265">265</a>
-<a href="#266" id="266">266</a>
-<a href="#267" id="267">267</a>
-<a href="#268" id="268">268</a>
-<a href="#269" id="269">269</a>
-<a href="#270" id="270">270</a>
-<a href="#271" id="271">271</a>
-<a href="#272" id="272">272</a>
-<a href="#273" id="273">273</a>
-<a href="#274" id="274">274</a>
-<a href="#275" id="275">275</a>
-<a href="#276" id="276">276</a>
-<a href="#277" id="277">277</a>
-<a href="#278" id="278">278</a>
-<a href="#279" id="279">279</a>
-<a href="#280" id="280">280</a>
-<a href="#281" id="281">281</a>
-<a href="#282" id="282">282</a>
-<a href="#283" id="283">283</a>
-<a href="#284" id="284">284</a>
-<a href="#285" id="285">285</a>
-<a href="#286" id="286">286</a>
-<a href="#287" id="287">287</a>
-<a href="#288" id="288">288</a>
-<a href="#289" id="289">289</a>
-<a href="#290" id="290">290</a>
-<a href="#291" id="291">291</a>
-<a href="#292" id="292">292</a>
-<a href="#293" id="293">293</a>
-<a href="#294" id="294">294</a>
-<a href="#295" id="295">295</a>
-<a href="#296" id="296">296</a>
-<a href="#297" id="297">297</a>
-<a href="#298" id="298">298</a>
-<a href="#299" id="299">299</a>
-<a href="#300" id="300">300</a>
-<a href="#301" id="301">301</a>
-<a href="#302" id="302">302</a>
-<a href="#303" id="303">303</a>
-<a href="#304" id="304">304</a>
-<a href="#305" id="305">305</a>
-<a href="#306" id="306">306</a>
-<a href="#307" id="307">307</a>
-<a href="#308" id="308">308</a>
-<a href="#309" id="309">309</a>
-<a href="#310" id="310">310</a>
-<a href="#311" id="311">311</a>
-<a href="#312" id="312">312</a>
-<a href="#313" id="313">313</a>
-<a href="#314" id="314">314</a>
-<a href="#315" id="315">315</a>
-<a href="#316" id="316">316</a>
-<a href="#317" id="317">317</a>
-<a href="#318" id="318">318</a>
-<a href="#319" id="319">319</a>
-<a href="#320" id="320">320</a>
-<a href="#321" id="321">321</a>
-<a href="#322" id="322">322</a>
-<a href="#323" id="323">323</a>
-<a href="#324" id="324">324</a>
-<a href="#325" id="325">325</a>
-<a href="#326" id="326">326</a>
-<a href="#327" id="327">327</a>
-<a href="#328" id="328">328</a>
-<a href="#329" id="329">329</a>
-<a href="#330" id="330">330</a>
-<a href="#331" id="331">331</a>
-<a href="#332" id="332">332</a>
-<a href="#333" id="333">333</a>
-<a href="#334" id="334">334</a>
-<a href="#335" id="335">335</a>
-<a href="#336" id="336">336</a>
-<a href="#337" id="337">337</a>
-<a href="#338" id="338">338</a>
-<a href="#339" id="339">339</a>
-<a href="#340" id="340">340</a>
-<a href="#341" id="341">341</a>
-<a href="#342" id="342">342</a>
-<a href="#343" id="343">343</a>
-<a href="#344" id="344">344</a>
-<a href="#345" id="345">345</a>
-<a href="#346" id="346">346</a>
-<a href="#347" id="347">347</a>
-<a href="#348" id="348">348</a>
-<a href="#349" id="349">349</a>
-<a href="#350" id="350">350</a>
-<a href="#351" id="351">351</a>
-<a href="#352" id="352">352</a>
-<a href="#353" id="353">353</a>
-<a href="#354" id="354">354</a>
-<a href="#355" id="355">355</a>
-<a href="#356" id="356">356</a>
-<a href="#357" id="357">357</a>
-<a href="#358" id="358">358</a>
-<a href="#359" id="359">359</a>
-<a href="#360" id="360">360</a>
-<a href="#361" id="361">361</a>
-<a href="#362" id="362">362</a>
-<a href="#363" id="363">363</a>
-<a href="#364" id="364">364</a>
-<a href="#365" id="365">365</a>
-<a href="#366" id="366">366</a>
-<a href="#367" id="367">367</a>
-<a href="#368" id="368">368</a>
-<a href="#369" id="369">369</a>
-<a href="#370" id="370">370</a>
-<a href="#371" id="371">371</a>
-<a href="#372" id="372">372</a>
-<a href="#373" id="373">373</a>
-<a href="#374" id="374">374</a>
-<a href="#375" id="375">375</a>
-<a href="#376" id="376">376</a>
-<a href="#377" id="377">377</a>
-<a href="#378" id="378">378</a>
-<a href="#379" id="379">379</a>
-<a href="#380" id="380">380</a>
-<a href="#381" id="381">381</a>
-<a href="#382" id="382">382</a>
-<a href="#383" id="383">383</a>
-<a href="#384" id="384">384</a>
-<a href="#385" id="385">385</a>
-<a href="#386" id="386">386</a>
-<a href="#387" id="387">387</a>
-<a href="#388" id="388">388</a>
-<a href="#389" id="389">389</a>
-<a href="#390" id="390">390</a>
-<a href="#391" id="391">391</a>
-<a href="#392" id="392">392</a>
-<a href="#393" id="393">393</a>
-<a href="#394" id="394">394</a>
-<a href="#395" id="395">395</a>
-<a href="#396" id="396">396</a>
-<a href="#397" id="397">397</a>
-<a href="#398" id="398">398</a>
-<a href="#399" id="399">399</a>
-<a href="#400" id="400">400</a>
-<a href="#401" id="401">401</a>
-<a href="#402" id="402">402</a>
-<a href="#403" id="403">403</a>
-<a href="#404" id="404">404</a>
-<a href="#405" id="405">405</a>
-<a href="#406" id="406">406</a>
-<a href="#407" id="407">407</a>
-<a href="#408" id="408">408</a>
-<a href="#409" id="409">409</a>
-<a href="#410" id="410">410</a>
-<a href="#411" id="411">411</a>
-<a href="#412" id="412">412</a>
-<a href="#413" id="413">413</a>
-<a href="#414" id="414">414</a>
-<a href="#415" id="415">415</a>
-<a href="#416" id="416">416</a>
-<a href="#417" id="417">417</a>
-<a href="#418" id="418">418</a>
-<a href="#419" id="419">419</a>
-<a href="#420" id="420">420</a>
-<a href="#421" id="421">421</a>
-<a href="#422" id="422">422</a>
-<a href="#423" id="423">423</a>
-<a href="#424" id="424">424</a>
-<a href="#425" id="425">425</a>
-<a href="#426" id="426">426</a>
-<a href="#427" id="427">427</a>
-<a href="#428" id="428">428</a>
-<a href="#429" id="429">429</a>
-<a href="#430" id="430">430</a>
-<a href="#431" id="431">431</a>
-<a href="#432" id="432">432</a>
-<a href="#433" id="433">433</a>
-<a href="#434" id="434">434</a>
-<a href="#435" id="435">435</a>
-<a href="#436" id="436">436</a>
-<a href="#437" id="437">437</a>
-<a href="#438" id="438">438</a>
-<a href="#439" id="439">439</a>
-<a href="#440" id="440">440</a>
-<a href="#441" id="441">441</a>
-<a href="#442" id="442">442</a>
-<a href="#443" id="443">443</a>
-<a href="#444" id="444">444</a>
-<a href="#445" id="445">445</a>
-<a href="#446" id="446">446</a>
-<a href="#447" id="447">447</a>
-<a href="#448" id="448">448</a>
-<a href="#449" id="449">449</a>
-<a href="#450" id="450">450</a>
-<a href="#451" id="451">451</a>
-<a href="#452" id="452">452</a>
-<a href="#453" id="453">453</a>
-<a href="#454" id="454">454</a>
-<a href="#455" id="455">455</a>
-<a href="#456" id="456">456</a>
-<a href="#457" id="457">457</a>
-<a href="#458" id="458">458</a>
-<a href="#459" id="459">459</a>
-<a href="#460" id="460">460</a>
-<a href="#461" id="461">461</a>
-<a href="#462" id="462">462</a>
-<a href="#463" id="463">463</a>
-<a href="#464" id="464">464</a>
-<a href="#465" id="465">465</a>
-<a href="#466" id="466">466</a>
-<a href="#467" id="467">467</a>
-<a href="#468" id="468">468</a>
-<a href="#469" id="469">469</a>
-<a href="#470" id="470">470</a>
-<a href="#471" id="471">471</a>
-<a href="#472" id="472">472</a>
-<a href="#473" id="473">473</a>
-<a href="#474" id="474">474</a>
-<a href="#475" id="475">475</a>
-<a href="#476" id="476">476</a>
-<a href="#477" id="477">477</a>
-<a href="#478" id="478">478</a>
-<a href="#479" id="479">479</a>
-<a href="#480" id="480">480</a>
-<a href="#481" id="481">481</a>
-<a href="#482" id="482">482</a>
-<a href="#483" id="483">483</a>
-<a href="#484" id="484">484</a>
-<a href="#485" id="485">485</a>
-<a href="#486" id="486">486</a>
-<a href="#487" id="487">487</a>
-<a href="#488" id="488">488</a>
-<a href="#489" id="489">489</a>
-<a href="#490" id="490">490</a>
-<a href="#491" id="491">491</a>
-<a href="#492" id="492">492</a>
-<a href="#493" id="493">493</a>
-<a href="#494" id="494">494</a>
-<a href="#495" id="495">495</a>
-<a href="#496" id="496">496</a>
-<a href="#497" id="497">497</a>
-<a href="#498" id="498">498</a>
-<a href="#499" id="499">499</a>
-<a href="#500" id="500">500</a>
-<a href="#501" id="501">501</a>
-<a href="#502" id="502">502</a>
-<a href="#503" id="503">503</a>
-<a href="#504" id="504">504</a>
-<a href="#505" id="505">505</a>
-<a href="#506" id="506">506</a>
-<a href="#507" id="507">507</a>
-<a href="#508" id="508">508</a>
-<a href="#509" id="509">509</a>
-<a href="#510" id="510">510</a>
-<a href="#511" id="511">511</a>
-<a href="#512" id="512">512</a>
-<a href="#513" id="513">513</a>
-<a href="#514" id="514">514</a>
-<a href="#515" id="515">515</a>
-<a href="#516" id="516">516</a>
-<a href="#517" id="517">517</a>
-<a href="#518" id="518">518</a>
-<a href="#519" id="519">519</a>
-<a href="#520" id="520">520</a>
-<a href="#521" id="521">521</a>
-<a href="#522" id="522">522</a>
-<a href="#523" id="523">523</a>
-<a href="#524" id="524">524</a>
-<a href="#525" id="525">525</a>
-<a href="#526" id="526">526</a>
-<a href="#527" id="527">527</a>
-<a href="#528" id="528">528</a>
-<a href="#529" id="529">529</a>
-<a href="#530" id="530">530</a>
-<a href="#531" id="531">531</a>
-<a href="#532" id="532">532</a>
-<a href="#533" id="533">533</a>
-<a href="#534" id="534">534</a>
-<a href="#535" id="535">535</a>
-<a href="#536" id="536">536</a>
-<a href="#537" id="537">537</a>
-<a href="#538" id="538">538</a>
-<a href="#539" id="539">539</a>
-<a href="#540" id="540">540</a>
-<a href="#541" id="541">541</a>
-<a href="#542" id="542">542</a>
-<a href="#543" id="543">543</a>
-<a href="#544" id="544">544</a>
-<a href="#545" id="545">545</a>
-<a href="#546" id="546">546</a>
-<a href="#547" id="547">547</a>
-<a href="#548" id="548">548</a>
-<a href="#549" id="549">549</a>
-<a href="#550" id="550">550</a>
-<a href="#551" id="551">551</a>
-<a href="#552" id="552">552</a>
-<a href="#553" id="553">553</a>
-<a href="#554" id="554">554</a>
-<a href="#555" id="555">555</a>
-<a href="#556" id="556">556</a>
-<a href="#557" id="557">557</a>
-<a href="#558" id="558">558</a>
-<a href="#559" id="559">559</a>
-<a href="#560" id="560">560</a>
-<a href="#561" id="561">561</a>
-<a href="#562" id="562">562</a>
-<a href="#563" id="563">563</a>
-<a href="#564" id="564">564</a>
-<a href="#565" id="565">565</a>
-<a href="#566" id="566">566</a>
-<a href="#567" id="567">567</a>
-<a href="#568" id="568">568</a>
-<a href="#569" id="569">569</a>
-<a href="#570" id="570">570</a>
-<a href="#571" id="571">571</a>
-<a href="#572" id="572">572</a>
-<a href="#573" id="573">573</a>
-<a href="#574" id="574">574</a>
-<a href="#575" id="575">575</a>
-<a href="#576" id="576">576</a>
-<a href="#577" id="577">577</a>
-<a href="#578" id="578">578</a>
-<a href="#579" id="579">579</a>
-<a href="#580" id="580">580</a>
-<a href="#581" id="581">581</a>
-<a href="#582" id="582">582</a>
-<a href="#583" id="583">583</a>
-<a href="#584" id="584">584</a>
-<a href="#585" id="585">585</a>
-<a href="#586" id="586">586</a>
-<a href="#587" id="587">587</a>
-<a href="#588" id="588">588</a>
-<a href="#589" id="589">589</a>
-<a href="#590" id="590">590</a>
-<a href="#591" id="591">591</a>
-<a href="#592" id="592">592</a>
-<a href="#593" id="593">593</a>
-<a href="#594" id="594">594</a>
-<a href="#595" id="595">595</a>
-<a href="#596" id="596">596</a>
-<a href="#597" id="597">597</a>
-<a href="#598" id="598">598</a>
-<a href="#599" id="599">599</a>
-<a href="#600" id="600">600</a>
-<a href="#601" id="601">601</a>
-<a href="#602" id="602">602</a>
-<a href="#603" id="603">603</a>
-<a href="#604" id="604">604</a>
-<a href="#605" id="605">605</a>
-<a href="#606" id="606">606</a>
-<a href="#607" id="607">607</a>
-<a href="#608" id="608">608</a>
-<a href="#609" id="609">609</a>
-<a href="#610" id="610">610</a>
-<a href="#611" id="611">611</a>
-<a href="#612" id="612">612</a>
-<a href="#613" id="613">613</a>
-<a href="#614" id="614">614</a>
-<a href="#615" id="615">615</a>
-<a href="#616" id="616">616</a>
-<a href="#617" id="617">617</a>
-<a href="#618" id="618">618</a>
-<a href="#619" id="619">619</a>
-<a href="#620" id="620">620</a>
-<a href="#621" id="621">621</a>
-<a href="#622" id="622">622</a>
-<a href="#623" id="623">623</a>
-<a href="#624" id="624">624</a>
-<a href="#625" id="625">625</a>
-<a href="#626" id="626">626</a>
-<a href="#627" id="627">627</a>
-<a href="#628" id="628">628</a>
-<a href="#629" id="629">629</a>
-<a href="#630" id="630">630</a>
-<a href="#631" id="631">631</a>
-<a href="#632" id="632">632</a>
-<a href="#633" id="633">633</a>
-<a href="#634" id="634">634</a>
-<a href="#635" id="635">635</a>
-<a href="#636" id="636">636</a>
-<a href="#637" id="637">637</a>
-<a href="#638" id="638">638</a>
-<a href="#639" id="639">639</a>
-<a href="#640" id="640">640</a>
-<a href="#641" id="641">641</a>
-<a href="#642" id="642">642</a>
-<a href="#643" id="643">643</a>
-<a href="#644" id="644">644</a>
-<a href="#645" id="645">645</a>
-<a href="#646" id="646">646</a>
-<a href="#647" id="647">647</a>
-<a href="#648" id="648">648</a>
-<a href="#649" id="649">649</a>
-<a href="#650" id="650">650</a>
-<a href="#651" id="651">651</a>
-<a href="#652" id="652">652</a>
-<a href="#653" id="653">653</a>
-<a href="#654" id="654">654</a>
-<a href="#655" id="655">655</a>
-<a href="#656" id="656">656</a>
-<a href="#657" id="657">657</a>
-<a href="#658" id="658">658</a>
-<a href="#659" id="659">659</a>
-<a href="#660" id="660">660</a>
-<a href="#661" id="661">661</a>
-<a href="#662" id="662">662</a>
-<a href="#663" id="663">663</a>
-<a href="#664" id="664">664</a>
-<a href="#665" id="665">665</a>
-<a href="#666" id="666">666</a>
-<a href="#667" id="667">667</a>
-<a href="#668" id="668">668</a>
-<a href="#669" id="669">669</a>
-<a href="#670" id="670">670</a>
-<a href="#671" id="671">671</a>
-<a href="#672" id="672">672</a>
-<a href="#673" id="673">673</a>
-<a href="#674" id="674">674</a>
-<a href="#675" id="675">675</a>
-<a href="#676" id="676">676</a>
-<a href="#677" id="677">677</a>
-<a href="#678" id="678">678</a>
-<a href="#679" id="679">679</a>
-<a href="#680" id="680">680</a>
-<a href="#681" id="681">681</a>
-<a href="#682" id="682">682</a>
-<a href="#683" id="683">683</a>
-<a href="#684" id="684">684</a>
-<a href="#685" id="685">685</a>
-<a href="#686" id="686">686</a>
-<a href="#687" id="687">687</a>
-<a href="#688" id="688">688</a>
-<a href="#689" id="689">689</a>
-<a href="#690" id="690">690</a>
-<a href="#691" id="691">691</a>
-<a href="#692" id="692">692</a>
-<a href="#693" id="693">693</a>
-<a href="#694" id="694">694</a>
-<a href="#695" id="695">695</a>
-<a href="#696" id="696">696</a>
-<a href="#697" id="697">697</a>
-<a href="#698" id="698">698</a>
-<a href="#699" id="699">699</a>
-<a href="#700" id="700">700</a>
-<a href="#701" id="701">701</a>
-<a href="#702" id="702">702</a>
-<a href="#703" id="703">703</a>
-<a href="#704" id="704">704</a>
-<a href="#705" id="705">705</a>
-<a href="#706" id="706">706</a>
-<a href="#707" id="707">707</a>
-<a href="#708" id="708">708</a>
-<a href="#709" id="709">709</a>
-<a href="#710" id="710">710</a>
-<a href="#711" id="711">711</a>
-<a href="#712" id="712">712</a>
-<a href="#713" id="713">713</a>
-<a href="#714" id="714">714</a>
-<a href="#715" id="715">715</a>
-<a href="#716" id="716">716</a>
-<a href="#717" id="717">717</a>
-<a href="#718" id="718">718</a>
-<a href="#719" id="719">719</a>
-<a href="#720" id="720">720</a>
-<a href="#721" id="721">721</a>
-<a href="#722" id="722">722</a>
-<a href="#723" id="723">723</a>
-<a href="#724" id="724">724</a>
-<a href="#725" id="725">725</a>
-<a href="#726" id="726">726</a>
-<a href="#727" id="727">727</a>
-<a href="#728" id="728">728</a>
-<a href="#729" id="729">729</a>
-<a href="#730" id="730">730</a>
-<a href="#731" id="731">731</a>
-<a href="#732" id="732">732</a>
-<a href="#733" id="733">733</a>
-<a href="#734" id="734">734</a>
-<a href="#735" id="735">735</a>
-<a href="#736" id="736">736</a>
-<a href="#737" id="737">737</a>
-<a href="#738" id="738">738</a>
-<a href="#739" id="739">739</a>
-<a href="#740" id="740">740</a>
-<a href="#741" id="741">741</a>
-<a href="#742" id="742">742</a>
-<a href="#743" id="743">743</a>
-<a href="#744" id="744">744</a>
-<a href="#745" id="745">745</a>
-<a href="#746" id="746">746</a>
-<a href="#747" id="747">747</a>
-<a href="#748" id="748">748</a>
-<a href="#749" id="749">749</a>
-<a href="#750" id="750">750</a>
-<a href="#751" id="751">751</a>
-<a href="#752" id="752">752</a>
-<a href="#753" id="753">753</a>
-<a href="#754" id="754">754</a>
-<a href="#755" id="755">755</a>
-<a href="#756" id="756">756</a>
-<a href="#757" id="757">757</a>
-<a href="#758" id="758">758</a>
-<a href="#759" id="759">759</a>
-<a href="#760" id="760">760</a>
-<a href="#761" id="761">761</a>
-<a href="#762" id="762">762</a>
-<a href="#763" id="763">763</a>
-<a href="#764" id="764">764</a>
-<a href="#765" id="765">765</a>
-<a href="#766" id="766">766</a>
-<a href="#767" id="767">767</a>
-<a href="#768" id="768">768</a>
-<a href="#769" id="769">769</a>
-<a href="#770" id="770">770</a>
-<a href="#771" id="771">771</a>
-<a href="#772" id="772">772</a>
-<a href="#773" id="773">773</a>
-<a href="#774" id="774">774</a>
-<a href="#775" id="775">775</a>
-<a href="#776" id="776">776</a>
-<a href="#777" id="777">777</a>
-<a href="#778" id="778">778</a>
-<a href="#779" id="779">779</a>
-<a href="#780" id="780">780</a>
-<a href="#781" id="781">781</a>
-<a href="#782" id="782">782</a>
-<a href="#783" id="783">783</a>
-<a href="#784" id="784">784</a>
-<a href="#785" id="785">785</a>
-<a href="#786" id="786">786</a>
-<a href="#787" id="787">787</a>
-<a href="#788" id="788">788</a>
-<a href="#789" id="789">789</a>
-<a href="#790" id="790">790</a>
-<a href="#791" id="791">791</a>
-<a href="#792" id="792">792</a>
-<a href="#793" id="793">793</a>
-<a href="#794" id="794">794</a>
-<a href="#795" id="795">795</a>
-<a href="#796" id="796">796</a>
-<a href="#797" id="797">797</a>
-<a href="#798" id="798">798</a>
-<a href="#799" id="799">799</a>
-<a href="#800" id="800">800</a>
-<a href="#801" id="801">801</a>
-<a href="#802" id="802">802</a>
-<a href="#803" id="803">803</a>
-<a href="#804" id="804">804</a>
-<a href="#805" id="805">805</a>
-<a href="#806" id="806">806</a>
-<a href="#807" id="807">807</a>
-<a href="#808" id="808">808</a>
-<a href="#809" id="809">809</a>
-<a href="#810" id="810">810</a>
-<a href="#811" id="811">811</a>
-<a href="#812" id="812">812</a>
-<a href="#813" id="813">813</a>
-<a href="#814" id="814">814</a>
-<a href="#815" id="815">815</a>
-<a href="#816" id="816">816</a>
-<a href="#817" id="817">817</a>
-<a href="#818" id="818">818</a>
-<a href="#819" id="819">819</a>
-<a href="#820" id="820">820</a>
-<a href="#821" id="821">821</a>
-<a href="#822" id="822">822</a>
-<a href="#823" id="823">823</a>
-<a href="#824" id="824">824</a>
-<a href="#825" id="825">825</a>
-<a href="#826" id="826">826</a>
-<a href="#827" id="827">827</a>
-<a href="#828" id="828">828</a>
-<a href="#829" id="829">829</a>
-<a href="#830" id="830">830</a>
-<a href="#831" id="831">831</a>
-<a href="#832" id="832">832</a>
-<a href="#833" id="833">833</a>
-<a href="#834" id="834">834</a>
-<a href="#835" id="835">835</a>
-<a href="#836" id="836">836</a>
-<a href="#837" id="837">837</a>
-<a href="#838" id="838">838</a>
-<a href="#839" id="839">839</a>
-<a href="#840" id="840">840</a>
-<a href="#841" id="841">841</a>
-<a href="#842" id="842">842</a>
-<a href="#843" id="843">843</a>
-<a href="#844" id="844">844</a>
-<a href="#845" id="845">845</a>
-<a href="#846" id="846">846</a>
-<a href="#847" id="847">847</a>
-<a href="#848" id="848">848</a>
-<a href="#849" id="849">849</a>
-<a href="#850" id="850">850</a>
-<a href="#851" id="851">851</a>
-<a href="#852" id="852">852</a>
-<a href="#853" id="853">853</a>
-<a href="#854" id="854">854</a>
-<a href="#855" id="855">855</a>
-<a href="#856" id="856">856</a>
-<a href="#857" id="857">857</a>
-<a href="#858" id="858">858</a>
-<a href="#859" id="859">859</a>
-<a href="#860" id="860">860</a>
-<a href="#861" id="861">861</a>
-<a href="#862" id="862">862</a>
-<a href="#863" id="863">863</a>
-<a href="#864" id="864">864</a>
-<a href="#865" id="865">865</a>
-<a href="#866" id="866">866</a>
-<a href="#867" id="867">867</a>
-<a href="#868" id="868">868</a>
-<a href="#869" id="869">869</a>
-<a href="#870" id="870">870</a>
-<a href="#871" id="871">871</a>
-<a href="#872" id="872">872</a>
-<a href="#873" id="873">873</a>
-<a href="#874" id="874">874</a>
-<a href="#875" id="875">875</a>
-<a href="#876" id="876">876</a>
-<a href="#877" id="877">877</a>
-<a href="#878" id="878">878</a>
-<a href="#879" id="879">879</a>
-<a href="#880" id="880">880</a>
-<a href="#881" id="881">881</a>
-<a href="#882" id="882">882</a>
-<a href="#883" id="883">883</a>
-<a href="#884" id="884">884</a>
-<a href="#885" id="885">885</a>
-<a href="#886" id="886">886</a>
-<a href="#887" id="887">887</a>
-<a href="#888" id="888">888</a>
-<a href="#889" id="889">889</a>
-<a href="#890" id="890">890</a>
-<a href="#891" id="891">891</a>
-<a href="#892" id="892">892</a>
-<a href="#893" id="893">893</a>
-<a href="#894" id="894">894</a>
-<a href="#895" id="895">895</a>
-<a href="#896" id="896">896</a>
-<a href="#897" id="897">897</a>
-<a href="#898" id="898">898</a>
-<a href="#899" id="899">899</a>
-<a href="#900" id="900">900</a>
-<a href="#901" id="901">901</a>
-<a href="#902" id="902">902</a>
-<a href="#903" id="903">903</a>
-<a href="#904" id="904">904</a>
-<a href="#905" id="905">905</a>
-<a href="#906" id="906">906</a>
-<a href="#907" id="907">907</a>
-<a href="#908" id="908">908</a>
-<a href="#909" id="909">909</a>
-<a href="#910" id="910">910</a>
-<a href="#911" id="911">911</a>
-<a href="#912" id="912">912</a>
-<a href="#913" id="913">913</a>
-<a href="#914" id="914">914</a>
-<a href="#915" id="915">915</a>
-<a href="#916" id="916">916</a>
-<a href="#917" id="917">917</a>
-<a href="#918" id="918">918</a>
-<a href="#919" id="919">919</a>
-<a href="#920" id="920">920</a>
-<a href="#921" id="921">921</a>
-<a href="#922" id="922">922</a>
-<a href="#923" id="923">923</a>
-<a href="#924" id="924">924</a>
-<a href="#925" id="925">925</a>
-<a href="#926" id="926">926</a>
-<a href="#927" id="927">927</a>
-<a href="#928" id="928">928</a>
-<a href="#929" id="929">929</a>
-<a href="#930" id="930">930</a>
-<a href="#931" id="931">931</a>
-<a href="#932" id="932">932</a>
-<a href="#933" id="933">933</a>
-<a href="#934" id="934">934</a>
-<a href="#935" id="935">935</a>
-<a href="#936" id="936">936</a>
-<a href="#937" id="937">937</a>
-<a href="#938" id="938">938</a>
-<a href="#939" id="939">939</a>
-<a href="#940" id="940">940</a>
-<a href="#941" id="941">941</a>
-<a href="#942" id="942">942</a>
-<a href="#943" id="943">943</a>
-<a href="#944" id="944">944</a>
-<a href="#945" id="945">945</a>
-<a href="#946" id="946">946</a>
-<a href="#947" id="947">947</a>
-<a href="#948" id="948">948</a>
-<a href="#949" id="949">949</a>
-<a href="#950" id="950">950</a>
-<a href="#951" id="951">951</a>
-<a href="#952" id="952">952</a>
-<a href="#953" id="953">953</a>
-<a href="#954" id="954">954</a>
-<a href="#955" id="955">955</a>
-<a href="#956" id="956">956</a>
-<a href="#957" id="957">957</a>
-<a href="#958" id="958">958</a>
-<a href="#959" id="959">959</a>
-<a href="#960" id="960">960</a>
-<a href="#961" id="961">961</a>
-<a href="#962" id="962">962</a>
-<a href="#963" id="963">963</a>
-<a href="#964" id="964">964</a>
-<a href="#965" id="965">965</a>
-<a href="#966" id="966">966</a>
-<a href="#967" id="967">967</a>
-<a href="#968" id="968">968</a>
-<a href="#969" id="969">969</a>
-<a href="#970" id="970">970</a>
-<a href="#971" id="971">971</a>
-<a href="#972" id="972">972</a>
-<a href="#973" id="973">973</a>
-<a href="#974" id="974">974</a>
-<a href="#975" id="975">975</a>
-<a href="#976" id="976">976</a>
-<a href="#977" id="977">977</a>
-<a href="#978" id="978">978</a>
-<a href="#979" id="979">979</a>
-<a href="#980" id="980">980</a>
-<a href="#981" id="981">981</a>
-<a href="#982" id="982">982</a>
-<a href="#983" id="983">983</a>
-<a href="#984" id="984">984</a>
-<a href="#985" id="985">985</a>
-<a href="#986" id="986">986</a>
-<a href="#987" id="987">987</a>
-<a href="#988" id="988">988</a>
-<a href="#989" id="989">989</a>
-<a href="#990" id="990">990</a>
-<a href="#991" id="991">991</a>
-<a href="#992" id="992">992</a>
-<a href="#993" id="993">993</a>
-<a href="#994" id="994">994</a>
-<a href="#995" id="995">995</a>
-<a href="#996" id="996">996</a>
-<a href="#997" id="997">997</a>
-<a href="#998" id="998">998</a>
-<a href="#999" id="999">999</a>
-<a href="#1000" id="1000">1000</a>
-<a href="#1001" id="1001">1001</a>
-<a href="#1002" id="1002">1002</a>
-<a href="#1003" id="1003">1003</a>
-<a href="#1004" id="1004">1004</a>
-<a href="#1005" id="1005">1005</a>
-<a href="#1006" id="1006">1006</a>
-<a href="#1007" id="1007">1007</a>
-<a href="#1008" id="1008">1008</a>
-<a href="#1009" id="1009">1009</a>
-<a href="#1010" id="1010">1010</a>
-<a href="#1011" id="1011">1011</a>
-<a href="#1012" id="1012">1012</a>
-<a href="#1013" id="1013">1013</a>
-<a href="#1014" id="1014">1014</a>
-<a href="#1015" id="1015">1015</a>
-<a href="#1016" id="1016">1016</a>
-<a href="#1017" id="1017">1017</a>
-<a href="#1018" id="1018">1018</a>
-<a href="#1019" id="1019">1019</a>
-<a href="#1020" id="1020">1020</a>
-<a href="#1021" id="1021">1021</a>
-<a href="#1022" id="1022">1022</a>
-<a href="#1023" id="1023">1023</a>
-<a href="#1024" id="1024">1024</a>
-<a href="#1025" id="1025">1025</a>
-<a href="#1026" id="1026">1026</a>
-<a href="#1027" id="1027">1027</a>
-<a href="#1028" id="1028">1028</a>
-<a href="#1029" id="1029">1029</a>
-<a href="#1030" id="1030">1030</a>
-<a href="#1031" id="1031">1031</a>
-<a href="#1032" id="1032">1032</a>
-<a href="#1033" id="1033">1033</a>
-<a href="#1034" id="1034">1034</a>
-<a href="#1035" id="1035">1035</a>
-<a href="#1036" id="1036">1036</a>
-<a href="#1037" id="1037">1037</a>
-<a href="#1038" id="1038">1038</a>
-<a href="#1039" id="1039">1039</a>
-<a href="#1040" id="1040">1040</a>
-<a href="#1041" id="1041">1041</a>
-<a href="#1042" id="1042">1042</a>
-<a href="#1043" id="1043">1043</a>
-<a href="#1044" id="1044">1044</a>
-<a href="#1045" id="1045">1045</a>
-<a href="#1046" id="1046">1046</a>
-<a href="#1047" id="1047">1047</a>
-<a href="#1048" id="1048">1048</a>
-<a href="#1049" id="1049">1049</a>
-<a href="#1050" id="1050">1050</a>
-<a href="#1051" id="1051">1051</a>
-<a href="#1052" id="1052">1052</a>
-<a href="#1053" id="1053">1053</a>
-<a href="#1054" id="1054">1054</a>
-<a href="#1055" id="1055">1055</a>
-<a href="#1056" id="1056">1056</a>
-<a href="#1057" id="1057">1057</a>
-<a href="#1058" id="1058">1058</a>
-<a href="#1059" id="1059">1059</a>
-<a href="#1060" id="1060">1060</a>
-<a href="#1061" id="1061">1061</a>
-<a href="#1062" id="1062">1062</a>
-<a href="#1063" id="1063">1063</a>
-<a href="#1064" id="1064">1064</a>
-<a href="#1065" id="1065">1065</a>
-<a href="#1066" id="1066">1066</a>
-<a href="#1067" id="1067">1067</a>
-<a href="#1068" id="1068">1068</a>
-<a href="#1069" id="1069">1069</a>
-<a href="#1070" id="1070">1070</a>
-<a href="#1071" id="1071">1071</a>
-<a href="#1072" id="1072">1072</a>
-<a href="#1073" id="1073">1073</a>
-<a href="#1074" id="1074">1074</a>
-<a href="#1075" id="1075">1075</a>
-<a href="#1076" id="1076">1076</a>
-<a href="#1077" id="1077">1077</a>
-<a href="#1078" id="1078">1078</a>
-<a href="#1079" id="1079">1079</a>
-<a href="#1080" id="1080">1080</a>
-<a href="#1081" id="1081">1081</a>
-<a href="#1082" id="1082">1082</a>
-<a href="#1083" id="1083">1083</a>
-<a href="#1084" id="1084">1084</a>
-<a href="#1085" id="1085">1085</a>
-<a href="#1086" id="1086">1086</a>
-<a href="#1087" id="1087">1087</a>
-<a href="#1088" id="1088">1088</a>
-<a href="#1089" id="1089">1089</a>
-<a href="#1090" id="1090">1090</a>
-<a href="#1091" id="1091">1091</a>
-<a href="#1092" id="1092">1092</a>
-<a href="#1093" id="1093">1093</a>
-<a href="#1094" id="1094">1094</a>
-<a href="#1095" id="1095">1095</a>
-<a href="#1096" id="1096">1096</a>
-<a href="#1097" id="1097">1097</a>
-<a href="#1098" id="1098">1098</a>
-<a href="#1099" id="1099">1099</a>
-<a href="#1100" id="1100">1100</a>
-<a href="#1101" id="1101">1101</a>
-<a href="#1102" id="1102">1102</a>
-<a href="#1103" id="1103">1103</a>
-<a href="#1104" id="1104">1104</a>
-<a href="#1105" id="1105">1105</a>
-<a href="#1106" id="1106">1106</a>
-<a href="#1107" id="1107">1107</a>
-<a href="#1108" id="1108">1108</a>
-<a href="#1109" id="1109">1109</a>
-<a href="#1110" id="1110">1110</a>
-<a href="#1111" id="1111">1111</a>
-<a href="#1112" id="1112">1112</a>
-<a href="#1113" id="1113">1113</a>
-<a href="#1114" id="1114">1114</a>
-<a href="#1115" id="1115">1115</a>
-<a href="#1116" id="1116">1116</a>
-<a href="#1117" id="1117">1117</a>
-<a href="#1118" id="1118">1118</a>
-<a href="#1119" id="1119">1119</a>
-<a href="#1120" id="1120">1120</a>
-<a href="#1121" id="1121">1121</a>
-<a href="#1122" id="1122">1122</a>
-<a href="#1123" id="1123">1123</a>
-<a href="#1124" id="1124">1124</a>
-<a href="#1125" id="1125">1125</a>
-<a href="#1126" id="1126">1126</a>
-<a href="#1127" id="1127">1127</a>
-<a href="#1128" id="1128">1128</a>
-<a href="#1129" id="1129">1129</a>
-<a href="#1130" id="1130">1130</a>
-<a href="#1131" id="1131">1131</a>
-<a href="#1132" id="1132">1132</a>
-<a href="#1133" id="1133">1133</a>
-<a href="#1134" id="1134">1134</a>
-<a href="#1135" id="1135">1135</a>
-<a href="#1136" id="1136">1136</a>
-<a href="#1137" id="1137">1137</a>
-<a href="#1138" id="1138">1138</a>
-<a href="#1139" id="1139">1139</a>
-<a href="#1140" id="1140">1140</a>
-<a href="#1141" id="1141">1141</a>
-<a href="#1142" id="1142">1142</a>
-<a href="#1143" id="1143">1143</a>
-<a href="#1144" id="1144">1144</a>
-<a href="#1145" id="1145">1145</a>
-<a href="#1146" id="1146">1146</a>
-<a href="#1147" id="1147">1147</a>
-<a href="#1148" id="1148">1148</a>
-<a href="#1149" id="1149">1149</a>
-<a href="#1150" id="1150">1150</a>
-<a href="#1151" id="1151">1151</a>
-<a href="#1152" id="1152">1152</a>
-<a href="#1153" id="1153">1153</a>
-<a href="#1154" id="1154">1154</a>
-<a href="#1155" id="1155">1155</a>
-<a href="#1156" id="1156">1156</a>
-<a href="#1157" id="1157">1157</a>
-<a href="#1158" id="1158">1158</a>
-<a href="#1159" id="1159">1159</a>
-<a href="#1160" id="1160">1160</a>
-<a href="#1161" id="1161">1161</a>
-<a href="#1162" id="1162">1162</a>
-<a href="#1163" id="1163">1163</a>
-<a href="#1164" id="1164">1164</a>
-<a href="#1165" id="1165">1165</a>
-<a href="#1166" id="1166">1166</a>
-<a href="#1167" id="1167">1167</a>
-<a href="#1168" id="1168">1168</a>
-<a href="#1169" id="1169">1169</a>
-<a href="#1170" id="1170">1170</a>
-<a href="#1171" id="1171">1171</a>
-<a href="#1172" id="1172">1172</a>
-<a href="#1173" id="1173">1173</a>
-<a href="#1174" id="1174">1174</a>
-<a href="#1175" id="1175">1175</a>
-<a href="#1176" id="1176">1176</a>
-<a href="#1177" id="1177">1177</a>
-<a href="#1178" id="1178">1178</a>
-<a href="#1179" id="1179">1179</a>
-<a href="#1180" id="1180">1180</a>
-<a href="#1181" id="1181">1181</a>
-<a href="#1182" id="1182">1182</a>
-<a href="#1183" id="1183">1183</a>
-<a href="#1184" id="1184">1184</a>
-<a href="#1185" id="1185">1185</a>
-<a href="#1186" id="1186">1186</a>
-<a href="#1187" id="1187">1187</a>
-<a href="#1188" id="1188">1188</a>
-<a href="#1189" id="1189">1189</a>
-<a href="#1190" id="1190">1190</a>
-<a href="#1191" id="1191">1191</a>
-<a href="#1192" id="1192">1192</a>
-<a href="#1193" id="1193">1193</a>
-<a href="#1194" id="1194">1194</a>
-<a href="#1195" id="1195">1195</a>
-<a href="#1196" id="1196">1196</a>
-<a href="#1197" id="1197">1197</a>
-<a href="#1198" id="1198">1198</a>
-<a href="#1199" id="1199">1199</a>
-<a href="#1200" id="1200">1200</a>
-<a href="#1201" id="1201">1201</a>
-<a href="#1202" id="1202">1202</a>
-<a href="#1203" id="1203">1203</a>
-<a href="#1204" id="1204">1204</a>
-<a href="#1205" id="1205">1205</a>
-<a href="#1206" id="1206">1206</a>
-<a href="#1207" id="1207">1207</a>
-<a href="#1208" id="1208">1208</a>
-<a href="#1209" id="1209">1209</a>
-<a href="#1210" id="1210">1210</a>
-<a href="#1211" id="1211">1211</a>
-<a href="#1212" id="1212">1212</a>
-<a href="#1213" id="1213">1213</a>
-<a href="#1214" id="1214">1214</a>
-<a href="#1215" id="1215">1215</a>
-<a href="#1216" id="1216">1216</a>
-<a href="#1217" id="1217">1217</a>
-<a href="#1218" id="1218">1218</a>
-<a href="#1219" id="1219">1219</a>
-<a href="#1220" id="1220">1220</a>
-<a href="#1221" id="1221">1221</a>
-<a href="#1222" id="1222">1222</a>
-<a href="#1223" id="1223">1223</a>
-<a href="#1224" id="1224">1224</a>
-<a href="#1225" id="1225">1225</a>
-<a href="#1226" id="1226">1226</a>
-<a href="#1227" id="1227">1227</a>
-<a href="#1228" id="1228">1228</a>
-<a href="#1229" id="1229">1229</a>
-<a href="#1230" id="1230">1230</a>
-<a href="#1231" id="1231">1231</a>
-<a href="#1232" id="1232">1232</a>
-<a href="#1233" id="1233">1233</a>
-<a href="#1234" id="1234">1234</a>
-<a href="#1235" id="1235">1235</a>
-<a href="#1236" id="1236">1236</a>
-<a href="#1237" id="1237">1237</a>
-<a href="#1238" id="1238">1238</a>
-<a href="#1239" id="1239">1239</a>
-<a href="#1240" id="1240">1240</a>
-<a href="#1241" id="1241">1241</a>
-<a href="#1242" id="1242">1242</a>
-<a href="#1243" id="1243">1243</a>
-<a href="#1244" id="1244">1244</a>
-<a href="#1245" id="1245">1245</a>
-<a href="#1246" id="1246">1246</a>
-<a href="#1247" id="1247">1247</a>
-<a href="#1248" id="1248">1248</a>
-<a href="#1249" id="1249">1249</a>
-<a href="#1250" id="1250">1250</a>
-<a href="#1251" id="1251">1251</a>
-<a href="#1252" id="1252">1252</a>
-<a href="#1253" id="1253">1253</a>
-<a href="#1254" id="1254">1254</a>
-<a href="#1255" id="1255">1255</a>
-<a href="#1256" id="1256">1256</a>
-<a href="#1257" id="1257">1257</a>
-<a href="#1258" id="1258">1258</a>
-<a href="#1259" id="1259">1259</a>
-<a href="#1260" id="1260">1260</a>
-<a href="#1261" id="1261">1261</a>
-<a href="#1262" id="1262">1262</a>
-<a href="#1263" id="1263">1263</a>
-<a href="#1264" id="1264">1264</a>
-<a href="#1265" id="1265">1265</a>
-<a href="#1266" id="1266">1266</a>
-<a href="#1267" id="1267">1267</a>
-<a href="#1268" id="1268">1268</a>
-<a href="#1269" id="1269">1269</a>
-<a href="#1270" id="1270">1270</a>
-<a href="#1271" id="1271">1271</a>
-<a href="#1272" id="1272">1272</a>
-<a href="#1273" id="1273">1273</a>
-<a href="#1274" id="1274">1274</a>
-<a href="#1275" id="1275">1275</a>
-<a href="#1276" id="1276">1276</a>
-<a href="#1277" id="1277">1277</a>
-<a href="#1278" id="1278">1278</a>
-<a href="#1279" id="1279">1279</a>
-<a href="#1280" id="1280">1280</a>
-<a href="#1281" id="1281">1281</a>
-<a href="#1282" id="1282">1282</a>
-<a href="#1283" id="1283">1283</a>
-<a href="#1284" id="1284">1284</a>
-<a href="#1285" id="1285">1285</a>
-<a href="#1286" id="1286">1286</a>
-<a href="#1287" id="1287">1287</a>
-<a href="#1288" id="1288">1288</a>
-<a href="#1289" id="1289">1289</a>
-<a href="#1290" id="1290">1290</a>
-<a href="#1291" id="1291">1291</a>
-<a href="#1292" id="1292">1292</a>
-<a href="#1293" id="1293">1293</a>
-<a href="#1294" id="1294">1294</a>
-<a href="#1295" id="1295">1295</a>
-<a href="#1296" id="1296">1296</a>
-<a href="#1297" id="1297">1297</a>
-<a href="#1298" id="1298">1298</a>
-<a href="#1299" id="1299">1299</a>
-<a href="#1300" id="1300">1300</a>
-<a href="#1301" id="1301">1301</a>
-<a href="#1302" id="1302">1302</a>
-<a href="#1303" id="1303">1303</a>
-<a href="#1304" id="1304">1304</a>
-<a href="#1305" id="1305">1305</a>
-<a href="#1306" id="1306">1306</a>
-<a href="#1307" id="1307">1307</a>
-<a href="#1308" id="1308">1308</a>
-<a href="#1309" id="1309">1309</a>
-<a href="#1310" id="1310">1310</a>
-<a href="#1311" id="1311">1311</a>
-<a href="#1312" id="1312">1312</a>
-<a href="#1313" id="1313">1313</a>
-<a href="#1314" id="1314">1314</a>
-<a href="#1315" id="1315">1315</a>
-<a href="#1316" id="1316">1316</a>
-<a href="#1317" id="1317">1317</a>
-<a href="#1318" id="1318">1318</a>
-<a href="#1319" id="1319">1319</a>
-<a href="#1320" id="1320">1320</a>
-<a href="#1321" id="1321">1321</a>
-<a href="#1322" id="1322">1322</a>
-<a href="#1323" id="1323">1323</a>
-<a href="#1324" id="1324">1324</a>
-<a href="#1325" id="1325">1325</a>
-<a href="#1326" id="1326">1326</a>
-<a href="#1327" id="1327">1327</a>
-<a href="#1328" id="1328">1328</a>
-<a href="#1329" id="1329">1329</a>
-<a href="#1330" id="1330">1330</a>
-<a href="#1331" id="1331">1331</a>
-<a href="#1332" id="1332">1332</a>
-<a href="#1333" id="1333">1333</a>
-<a href="#1334" id="1334">1334</a>
-<a href="#1335" id="1335">1335</a>
-<a href="#1336" id="1336">1336</a>
-<a href="#1337" id="1337">1337</a>
-<a href="#1338" id="1338">1338</a>
-<a href="#1339" id="1339">1339</a>
-<a href="#1340" id="1340">1340</a>
-<a href="#1341" id="1341">1341</a>
-<a href="#1342" id="1342">1342</a>
-<a href="#1343" id="1343">1343</a>
-<a href="#1344" id="1344">1344</a>
-<a href="#1345" id="1345">1345</a>
-<a href="#1346" id="1346">1346</a>
-<a href="#1347" id="1347">1347</a>
-<a href="#1348" id="1348">1348</a>
-<a href="#1349" id="1349">1349</a>
-<a href="#1350" id="1350">1350</a>
-<a href="#1351" id="1351">1351</a>
-<a href="#1352" id="1352">1352</a>
-<a href="#1353" id="1353">1353</a>
-<a href="#1354" id="1354">1354</a>
-<a href="#1355" id="1355">1355</a>
-<a href="#1356" id="1356">1356</a>
-<a href="#1357" id="1357">1357</a>
-<a href="#1358" id="1358">1358</a>
-<a href="#1359" id="1359">1359</a>
-<a href="#1360" id="1360">1360</a>
-<a href="#1361" id="1361">1361</a>
-<a href="#1362" id="1362">1362</a>
-<a href="#1363" id="1363">1363</a>
-<a href="#1364" id="1364">1364</a>
-<a href="#1365" id="1365">1365</a>
-<a href="#1366" id="1366">1366</a>
-<a href="#1367" id="1367">1367</a>
-<a href="#1368" id="1368">1368</a>
-<a href="#1369" id="1369">1369</a>
-<a href="#1370" id="1370">1370</a>
-<a href="#1371" id="1371">1371</a>
-<a href="#1372" id="1372">1372</a>
-<a href="#1373" id="1373">1373</a>
-<a href="#1374" id="1374">1374</a>
-<a href="#1375" id="1375">1375</a>
-<a href="#1376" id="1376">1376</a>
-<a href="#1377" id="1377">1377</a>
-<a href="#1378" id="1378">1378</a>
-<a href="#1379" id="1379">1379</a>
-<a href="#1380" id="1380">1380</a>
-<a href="#1381" id="1381">1381</a>
-<a href="#1382" id="1382">1382</a>
-<a href="#1383" id="1383">1383</a>
-<a href="#1384" id="1384">1384</a>
-<a href="#1385" id="1385">1385</a>
-<a href="#1386" id="1386">1386</a>
-<a href="#1387" id="1387">1387</a>
-<a href="#1388" id="1388">1388</a>
-<a href="#1389" id="1389">1389</a>
-<a href="#1390" id="1390">1390</a>
-<a href="#1391" id="1391">1391</a>
-<a href="#1392" id="1392">1392</a>
-<a href="#1393" id="1393">1393</a>
-<a href="#1394" id="1394">1394</a>
-<a href="#1395" id="1395">1395</a>
-<a href="#1396" id="1396">1396</a>
-<a href="#1397" id="1397">1397</a>
-<a href="#1398" id="1398">1398</a>
-<a href="#1399" id="1399">1399</a>
-<a href="#1400" id="1400">1400</a>
-<a href="#1401" id="1401">1401</a>
-<a href="#1402" id="1402">1402</a>
-<a href="#1403" id="1403">1403</a>
-<a href="#1404" id="1404">1404</a>
-<a href="#1405" id="1405">1405</a>
-<a href="#1406" id="1406">1406</a>
-<a href="#1407" id="1407">1407</a>
-<a href="#1408" id="1408">1408</a>
-<a href="#1409" id="1409">1409</a>
-<a href="#1410" id="1410">1410</a>
-<a href="#1411" id="1411">1411</a>
-<a href="#1412" id="1412">1412</a>
-<a href="#1413" id="1413">1413</a>
-<a href="#1414" id="1414">1414</a>
-<a href="#1415" id="1415">1415</a>
-<a href="#1416" id="1416">1416</a>
-<a href="#1417" id="1417">1417</a>
-<a href="#1418" id="1418">1418</a>
-<a href="#1419" id="1419">1419</a>
-<a href="#1420" id="1420">1420</a>
-<a href="#1421" id="1421">1421</a>
-<a href="#1422" id="1422">1422</a>
-<a href="#1423" id="1423">1423</a>
-<a href="#1424" id="1424">1424</a>
-<a href="#1425" id="1425">1425</a>
-<a href="#1426" id="1426">1426</a>
-<a href="#1427" id="1427">1427</a>
-<a href="#1428" id="1428">1428</a>
-<a href="#1429" id="1429">1429</a>
-<a href="#1430" id="1430">1430</a>
-<a href="#1431" id="1431">1431</a>
-<a href="#1432" id="1432">1432</a>
-<a href="#1433" id="1433">1433</a>
-<a href="#1434" id="1434">1434</a>
-<a href="#1435" id="1435">1435</a>
-<a href="#1436" id="1436">1436</a>
-<a href="#1437" id="1437">1437</a>
-<a href="#1438" id="1438">1438</a>
-<a href="#1439" id="1439">1439</a>
-<a href="#1440" id="1440">1440</a>
-<a href="#1441" id="1441">1441</a>
-<a href="#1442" id="1442">1442</a>
-<a href="#1443" id="1443">1443</a>
-<a href="#1444" id="1444">1444</a>
-<a href="#1445" id="1445">1445</a>
-<a href="#1446" id="1446">1446</a>
-<a href="#1447" id="1447">1447</a>
-<a href="#1448" id="1448">1448</a>
-<a href="#1449" id="1449">1449</a>
-<a href="#1450" id="1450">1450</a>
-<a href="#1451" id="1451">1451</a>
-<a href="#1452" id="1452">1452</a>
-<a href="#1453" id="1453">1453</a>
-<a href="#1454" id="1454">1454</a>
-<a href="#1455" id="1455">1455</a>
-<a href="#1456" id="1456">1456</a>
-<a href="#1457" id="1457">1457</a>
-<a href="#1458" id="1458">1458</a>
-<a href="#1459" id="1459">1459</a>
-<a href="#1460" id="1460">1460</a>
-<a href="#1461" id="1461">1461</a>
-<a href="#1462" id="1462">1462</a>
-<a href="#1463" id="1463">1463</a>
-<a href="#1464" id="1464">1464</a>
-<a href="#1465" id="1465">1465</a>
-<a href="#1466" id="1466">1466</a>
-<a href="#1467" id="1467">1467</a>
-<a href="#1468" id="1468">1468</a>
-<a href="#1469" id="1469">1469</a>
-<a href="#1470" id="1470">1470</a>
-<a href="#1471" id="1471">1471</a>
-<a href="#1472" id="1472">1472</a>
-<a href="#1473" id="1473">1473</a>
-<a href="#1474" id="1474">1474</a>
-<a href="#1475" id="1475">1475</a>
-<a href="#1476" id="1476">1476</a>
-<a href="#1477" id="1477">1477</a>
-<a href="#1478" id="1478">1478</a>
-<a href="#1479" id="1479">1479</a>
-<a href="#1480" id="1480">1480</a>
-<a href="#1481" id="1481">1481</a>
-<a href="#1482" id="1482">1482</a>
-<a href="#1483" id="1483">1483</a>
-<a href="#1484" id="1484">1484</a>
-<a href="#1485" id="1485">1485</a>
-<a href="#1486" id="1486">1486</a>
-<a href="#1487" id="1487">1487</a>
-<a href="#1488" id="1488">1488</a>
-<a href="#1489" id="1489">1489</a>
-<a href="#1490" id="1490">1490</a>
-<a href="#1491" id="1491">1491</a>
-<a href="#1492" id="1492">1492</a>
-<a href="#1493" id="1493">1493</a>
-<a href="#1494" id="1494">1494</a>
-<a href="#1495" id="1495">1495</a>
-<a href="#1496" id="1496">1496</a>
-<a href="#1497" id="1497">1497</a>
-<a href="#1498" id="1498">1498</a>
-<a href="#1499" id="1499">1499</a>
-<a href="#1500" id="1500">1500</a>
-<a href="#1501" id="1501">1501</a>
-<a href="#1502" id="1502">1502</a>
-<a href="#1503" id="1503">1503</a>
-<a href="#1504" id="1504">1504</a>
-<a href="#1505" id="1505">1505</a>
-<a href="#1506" id="1506">1506</a>
-<a href="#1507" id="1507">1507</a>
-<a href="#1508" id="1508">1508</a>
-<a href="#1509" id="1509">1509</a>
-<a href="#1510" id="1510">1510</a>
-<a href="#1511" id="1511">1511</a>
-<a href="#1512" id="1512">1512</a>
-<a href="#1513" id="1513">1513</a>
-<a href="#1514" id="1514">1514</a>
-<a href="#1515" id="1515">1515</a>
-<a href="#1516" id="1516">1516</a>
-<a href="#1517" id="1517">1517</a>
-<a href="#1518" id="1518">1518</a>
-<a href="#1519" id="1519">1519</a>
-<a href="#1520" id="1520">1520</a>
-<a href="#1521" id="1521">1521</a>
-<a href="#1522" id="1522">1522</a>
-<a href="#1523" id="1523">1523</a>
-<a href="#1524" id="1524">1524</a>
-<a href="#1525" id="1525">1525</a>
-<a href="#1526" id="1526">1526</a>
-<a href="#1527" id="1527">1527</a>
-<a href="#1528" id="1528">1528</a>
-<a href="#1529" id="1529">1529</a>
-<a href="#1530" id="1530">1530</a>
-<a href="#1531" id="1531">1531</a>
-<a href="#1532" id="1532">1532</a>
-<a href="#1533" id="1533">1533</a>
-<a href="#1534" id="1534">1534</a>
-<a href="#1535" id="1535">1535</a>
-<a href="#1536" id="1536">1536</a>
-<a href="#1537" id="1537">1537</a>
-<a href="#1538" id="1538">1538</a>
-<a href="#1539" id="1539">1539</a>
-<a href="#1540" id="1540">1540</a>
-<a href="#1541" id="1541">1541</a>
-<a href="#1542" id="1542">1542</a>
-<a href="#1543" id="1543">1543</a>
-<a href="#1544" id="1544">1544</a>
-<a href="#1545" id="1545">1545</a>
-<a href="#1546" id="1546">1546</a>
-<a href="#1547" id="1547">1547</a>
-<a href="#1548" id="1548">1548</a>
-<a href="#1549" id="1549">1549</a>
-<a href="#1550" id="1550">1550</a>
-<a href="#1551" id="1551">1551</a>
-<a href="#1552" id="1552">1552</a>
-<a href="#1553" id="1553">1553</a>
-<a href="#1554" id="1554">1554</a>
-<a href="#1555" id="1555">1555</a>
-<a href="#1556" id="1556">1556</a>
-<a href="#1557" id="1557">1557</a>
-<a href="#1558" id="1558">1558</a>
-<a href="#1559" id="1559">1559</a>
-<a href="#1560" id="1560">1560</a>
-<a href="#1561" id="1561">1561</a>
-<a href="#1562" id="1562">1562</a>
-<a href="#1563" id="1563">1563</a>
-<a href="#1564" id="1564">1564</a>
-<a href="#1565" id="1565">1565</a>
-<a href="#1566" id="1566">1566</a>
-<a href="#1567" id="1567">1567</a>
-<a href="#1568" id="1568">1568</a>
-<a href="#1569" id="1569">1569</a>
-<a href="#1570" id="1570">1570</a>
-<a href="#1571" id="1571">1571</a>
-<a href="#1572" id="1572">1572</a>
-<a href="#1573" id="1573">1573</a>
-<a href="#1574" id="1574">1574</a>
-<a href="#1575" id="1575">1575</a>
-<a href="#1576" id="1576">1576</a>
-<a href="#1577" id="1577">1577</a>
-<a href="#1578" id="1578">1578</a>
-<a href="#1579" id="1579">1579</a>
-<a href="#1580" id="1580">1580</a>
-<a href="#1581" id="1581">1581</a>
-<a href="#1582" id="1582">1582</a>
-<a href="#1583" id="1583">1583</a>
-<a href="#1584" id="1584">1584</a>
-<a href="#1585" id="1585">1585</a>
-<a href="#1586" id="1586">1586</a>
-<a href="#1587" id="1587">1587</a>
-<a href="#1588" id="1588">1588</a>
-<a href="#1589" id="1589">1589</a>
-<a href="#1590" id="1590">1590</a>
-<a href="#1591" id="1591">1591</a>
-<a href="#1592" id="1592">1592</a>
-<a href="#1593" id="1593">1593</a>
-<a href="#1594" id="1594">1594</a>
-<a href="#1595" id="1595">1595</a>
-<a href="#1596" id="1596">1596</a>
-<a href="#1597" id="1597">1597</a>
-<a href="#1598" id="1598">1598</a>
-<a href="#1599" id="1599">1599</a>
-<a href="#1600" id="1600">1600</a>
-<a href="#1601" id="1601">1601</a>
-<a href="#1602" id="1602">1602</a>
-<a href="#1603" id="1603">1603</a>
-<a href="#1604" id="1604">1604</a>
-<a href="#1605" id="1605">1605</a>
-<a href="#1606" id="1606">1606</a>
-<a href="#1607" id="1607">1607</a>
-<a href="#1608" id="1608">1608</a>
-<a href="#1609" id="1609">1609</a>
-<a href="#1610" id="1610">1610</a>
-<a href="#1611" id="1611">1611</a>
-<a href="#1612" id="1612">1612</a>
-<a href="#1613" id="1613">1613</a>
-<a href="#1614" id="1614">1614</a>
-<a href="#1615" id="1615">1615</a>
-<a href="#1616" id="1616">1616</a>
-<a href="#1617" id="1617">1617</a>
-<a href="#1618" id="1618">1618</a>
-<a href="#1619" id="1619">1619</a>
-<a href="#1620" id="1620">1620</a>
-<a href="#1621" id="1621">1621</a>
-<a href="#1622" id="1622">1622</a>
-<a href="#1623" id="1623">1623</a>
-<a href="#1624" id="1624">1624</a>
-<a href="#1625" id="1625">1625</a>
-<a href="#1626" id="1626">1626</a>
-<a href="#1627" id="1627">1627</a>
-<a href="#1628" id="1628">1628</a>
-<a href="#1629" id="1629">1629</a>
-<a href="#1630" id="1630">1630</a>
-<a href="#1631" id="1631">1631</a>
-<a href="#1632" id="1632">1632</a>
-<a href="#1633" id="1633">1633</a>
-<a href="#1634" id="1634">1634</a>
-<a href="#1635" id="1635">1635</a>
-<a href="#1636" id="1636">1636</a>
-<a href="#1637" id="1637">1637</a>
-<a href="#1638" id="1638">1638</a>
-<a href="#1639" id="1639">1639</a>
-<a href="#1640" id="1640">1640</a>
-<a href="#1641" id="1641">1641</a>
-<a href="#1642" id="1642">1642</a>
-<a href="#1643" id="1643">1643</a>
-<a href="#1644" id="1644">1644</a>
-<a href="#1645" id="1645">1645</a>
-<a href="#1646" id="1646">1646</a>
-<a href="#1647" id="1647">1647</a>
-<a href="#1648" id="1648">1648</a>
-<a href="#1649" id="1649">1649</a>
-<a href="#1650" id="1650">1650</a>
-<a href="#1651" id="1651">1651</a>
-<a href="#1652" id="1652">1652</a>
-<a href="#1653" id="1653">1653</a>
-<a href="#1654" id="1654">1654</a>
-<a href="#1655" id="1655">1655</a>
-<a href="#1656" id="1656">1656</a>
-<a href="#1657" id="1657">1657</a>
-<a href="#1658" id="1658">1658</a>
-<a href="#1659" id="1659">1659</a>
-<a href="#1660" id="1660">1660</a>
-<a href="#1661" id="1661">1661</a>
-<a href="#1662" id="1662">1662</a>
-<a href="#1663" id="1663">1663</a>
-<a href="#1664" id="1664">1664</a>
-<a href="#1665" id="1665">1665</a>
-<a href="#1666" id="1666">1666</a>
-<a href="#1667" id="1667">1667</a>
-<a href="#1668" id="1668">1668</a>
-<a href="#1669" id="1669">1669</a>
-<a href="#1670" id="1670">1670</a>
-<a href="#1671" id="1671">1671</a>
-<a href="#1672" id="1672">1672</a>
-<a href="#1673" id="1673">1673</a>
-<a href="#1674" id="1674">1674</a>
-<a href="#1675" id="1675">1675</a>
-<a href="#1676" id="1676">1676</a>
-<a href="#1677" id="1677">1677</a>
-<a href="#1678" id="1678">1678</a>
-<a href="#1679" id="1679">1679</a>
-<a href="#1680" id="1680">1680</a>
-<a href="#1681" id="1681">1681</a>
-<a href="#1682" id="1682">1682</a>
-<a href="#1683" id="1683">1683</a>
-<a href="#1684" id="1684">1684</a>
-<a href="#1685" id="1685">1685</a>
-<a href="#1686" id="1686">1686</a>
-<a href="#1687" id="1687">1687</a>
-<a href="#1688" id="1688">1688</a>
-<a href="#1689" id="1689">1689</a>
-<a href="#1690" id="1690">1690</a>
-<a href="#1691" id="1691">1691</a>
-<a href="#1692" id="1692">1692</a>
-<a href="#1693" id="1693">1693</a>
-<a href="#1694" id="1694">1694</a>
-<a href="#1695" id="1695">1695</a>
-<a href="#1696" id="1696">1696</a>
-<a href="#1697" id="1697">1697</a>
-<a href="#1698" id="1698">1698</a>
-<a href="#1699" id="1699">1699</a>
-<a href="#1700" id="1700">1700</a>
-<a href="#1701" id="1701">1701</a>
-<a href="#1702" id="1702">1702</a>
-<a href="#1703" id="1703">1703</a>
-<a href="#1704" id="1704">1704</a>
-<a href="#1705" id="1705">1705</a>
-<a href="#1706" id="1706">1706</a>
-<a href="#1707" id="1707">1707</a>
-<a href="#1708" id="1708">1708</a>
-<a href="#1709" id="1709">1709</a>
-<a href="#1710" id="1710">1710</a>
-<a href="#1711" id="1711">1711</a>
-<a href="#1712" id="1712">1712</a>
-<a href="#1713" id="1713">1713</a>
-<a href="#1714" id="1714">1714</a>
-<a href="#1715" id="1715">1715</a>
-<a href="#1716" id="1716">1716</a>
-<a href="#1717" id="1717">1717</a>
-<a href="#1718" id="1718">1718</a>
-<a href="#1719" id="1719">1719</a>
-<a href="#1720" id="1720">1720</a>
-<a href="#1721" id="1721">1721</a>
-<a href="#1722" id="1722">1722</a>
-<a href="#1723" id="1723">1723</a>
-<a href="#1724" id="1724">1724</a>
-<a href="#1725" id="1725">1725</a>
-<a href="#1726" id="1726">1726</a>
-<a href="#1727" id="1727">1727</a>
-<a href="#1728" id="1728">1728</a>
-<a href="#1729" id="1729">1729</a>
-<a href="#1730" id="1730">1730</a>
-<a href="#1731" id="1731">1731</a>
-<a href="#1732" id="1732">1732</a>
-<a href="#1733" id="1733">1733</a>
-<a href="#1734" id="1734">1734</a>
-<a href="#1735" id="1735">1735</a>
-<a href="#1736" id="1736">1736</a>
-<a href="#1737" id="1737">1737</a>
-<a href="#1738" id="1738">1738</a>
-<a href="#1739" id="1739">1739</a>
-<a href="#1740" id="1740">1740</a>
-<a href="#1741" id="1741">1741</a>
-<a href="#1742" id="1742">1742</a>
-<a href="#1743" id="1743">1743</a>
-<a href="#1744" id="1744">1744</a>
-<a href="#1745" id="1745">1745</a>
-<a href="#1746" id="1746">1746</a>
-<a href="#1747" id="1747">1747</a>
-<a href="#1748" id="1748">1748</a>
-<a href="#1749" id="1749">1749</a>
-<a href="#1750" id="1750">1750</a>
-<a href="#1751" id="1751">1751</a>
-<a href="#1752" id="1752">1752</a>
-<a href="#1753" id="1753">1753</a>
-<a href="#1754" id="1754">1754</a>
-<a href="#1755" id="1755">1755</a>
-<a href="#1756" id="1756">1756</a>
-<a href="#1757" id="1757">1757</a>
-<a href="#1758" id="1758">1758</a>
-<a href="#1759" id="1759">1759</a>
-<a href="#1760" id="1760">1760</a>
-<a href="#1761" id="1761">1761</a>
-<a href="#1762" id="1762">1762</a>
-<a href="#1763" id="1763">1763</a>
-<a href="#1764" id="1764">1764</a>
-<a href="#1765" id="1765">1765</a>
-<a href="#1766" id="1766">1766</a>
-<a href="#1767" id="1767">1767</a>
-<a href="#1768" id="1768">1768</a>
-<a href="#1769" id="1769">1769</a>
-<a href="#1770" id="1770">1770</a>
-<a href="#1771" id="1771">1771</a>
-<a href="#1772" id="1772">1772</a>
-<a href="#1773" id="1773">1773</a>
-<a href="#1774" id="1774">1774</a>
-<a href="#1775" id="1775">1775</a>
-<a href="#1776" id="1776">1776</a>
-<a href="#1777" id="1777">1777</a>
-<a href="#1778" id="1778">1778</a>
-<a href="#1779" id="1779">1779</a>
-<a href="#1780" id="1780">1780</a>
-<a href="#1781" id="1781">1781</a>
-<a href="#1782" id="1782">1782</a>
-<a href="#1783" id="1783">1783</a>
-<a href="#1784" id="1784">1784</a>
-<a href="#1785" id="1785">1785</a>
-<a href="#1786" id="1786">1786</a>
-<a href="#1787" id="1787">1787</a>
-<a href="#1788" id="1788">1788</a>
-<a href="#1789" id="1789">1789</a>
-<a href="#1790" id="1790">1790</a>
-<a href="#1791" id="1791">1791</a>
-<a href="#1792" id="1792">1792</a>
-<a href="#1793" id="1793">1793</a>
-<a href="#1794" id="1794">1794</a>
-<a href="#1795" id="1795">1795</a>
-<a href="#1796" id="1796">1796</a>
-<a href="#1797" id="1797">1797</a>
-<a href="#1798" id="1798">1798</a>
-<a href="#1799" id="1799">1799</a>
-<a href="#1800" id="1800">1800</a>
-<a href="#1801" id="1801">1801</a>
-<a href="#1802" id="1802">1802</a>
-<a href="#1803" id="1803">1803</a>
-<a href="#1804" id="1804">1804</a>
-<a href="#1805" id="1805">1805</a>
-<a href="#1806" id="1806">1806</a>
-<a href="#1807" id="1807">1807</a>
-<a href="#1808" id="1808">1808</a>
-<a href="#1809" id="1809">1809</a>
-<a href="#1810" id="1810">1810</a>
-<a href="#1811" id="1811">1811</a>
-<a href="#1812" id="1812">1812</a>
-<a href="#1813" id="1813">1813</a>
-<a href="#1814" id="1814">1814</a>
-<a href="#1815" id="1815">1815</a>
-<a href="#1816" id="1816">1816</a>
-<a href="#1817" id="1817">1817</a>
-<a href="#1818" id="1818">1818</a>
-<a href="#1819" id="1819">1819</a>
-<a href="#1820" id="1820">1820</a>
-<a href="#1821" id="1821">1821</a>
-<a href="#1822" id="1822">1822</a>
-<a href="#1823" id="1823">1823</a>
-<a href="#1824" id="1824">1824</a>
-<a href="#1825" id="1825">1825</a>
-<a href="#1826" id="1826">1826</a>
-<a href="#1827" id="1827">1827</a>
-<a href="#1828" id="1828">1828</a>
-<a href="#1829" id="1829">1829</a>
-<a href="#1830" id="1830">1830</a>
-<a href="#1831" id="1831">1831</a>
-<a href="#1832" id="1832">1832</a>
-<a href="#1833" id="1833">1833</a>
-<a href="#1834" id="1834">1834</a>
-<a href="#1835" id="1835">1835</a>
-<a href="#1836" id="1836">1836</a>
-<a href="#1837" id="1837">1837</a>
-<a href="#1838" id="1838">1838</a>
-<a href="#1839" id="1839">1839</a>
-<a href="#1840" id="1840">1840</a>
-<a href="#1841" id="1841">1841</a>
-<a href="#1842" id="1842">1842</a>
-<a href="#1843" id="1843">1843</a>
-<a href="#1844" id="1844">1844</a>
-<a href="#1845" id="1845">1845</a>
-<a href="#1846" id="1846">1846</a>
-<a href="#1847" id="1847">1847</a>
-<a href="#1848" id="1848">1848</a>
-<a href="#1849" id="1849">1849</a>
-<a href="#1850" id="1850">1850</a>
-<a href="#1851" id="1851">1851</a>
-<a href="#1852" id="1852">1852</a>
-<a href="#1853" id="1853">1853</a>
-<a href="#1854" id="1854">1854</a>
-<a href="#1855" id="1855">1855</a>
-<a href="#1856" id="1856">1856</a>
-<a href="#1857" id="1857">1857</a>
-<a href="#1858" id="1858">1858</a>
-<a href="#1859" id="1859">1859</a>
-<a href="#1860" id="1860">1860</a>
-<a href="#1861" id="1861">1861</a>
-<a href="#1862" id="1862">1862</a>
-<a href="#1863" id="1863">1863</a>
-<a href="#1864" id="1864">1864</a>
-<a href="#1865" id="1865">1865</a>
-<a href="#1866" id="1866">1866</a>
-<a href="#1867" id="1867">1867</a>
-<a href="#1868" id="1868">1868</a>
-<a href="#1869" id="1869">1869</a>
-<a href="#1870" id="1870">1870</a>
-<a href="#1871" id="1871">1871</a>
-<a href="#1872" id="1872">1872</a>
-<a href="#1873" id="1873">1873</a>
-<a href="#1874" id="1874">1874</a>
-<a href="#1875" id="1875">1875</a>
-<a href="#1876" id="1876">1876</a>
-<a href="#1877" id="1877">1877</a>
-<a href="#1878" id="1878">1878</a>
-<a href="#1879" id="1879">1879</a>
-<a href="#1880" id="1880">1880</a>
-<a href="#1881" id="1881">1881</a>
-<a href="#1882" id="1882">1882</a>
-<a href="#1883" id="1883">1883</a>
-<a href="#1884" id="1884">1884</a>
-<a href="#1885" id="1885">1885</a>
-<a href="#1886" id="1886">1886</a>
-<a href="#1887" id="1887">1887</a>
-<a href="#1888" id="1888">1888</a>
-<a href="#1889" id="1889">1889</a>
-<a href="#1890" id="1890">1890</a>
-<a href="#1891" id="1891">1891</a>
-<a href="#1892" id="1892">1892</a>
-<a href="#1893" id="1893">1893</a>
-<a href="#1894" id="1894">1894</a>
-<a href="#1895" id="1895">1895</a>
-<a href="#1896" id="1896">1896</a>
-<a href="#1897" id="1897">1897</a>
-<a href="#1898" id="1898">1898</a>
-<a href="#1899" id="1899">1899</a>
-<a href="#1900" id="1900">1900</a>
-<a href="#1901" id="1901">1901</a>
-<a href="#1902" id="1902">1902</a>
-<a href="#1903" id="1903">1903</a>
-<a href="#1904" id="1904">1904</a>
-<a href="#1905" id="1905">1905</a>
-</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-</span><span class="doccomment">//! Descriptor policy
-//!
-//! This module implements the logic to extract and represent the spending policies of a descriptor
-//! in a more human-readable format.
-//!
-//! This is an **EXPERIMENTAL** feature, API and other major changes are expected.
-//!
-//! ## Example
-//!
-//! ```
-//! # use std::sync::Arc;
-//! # use bdk::descriptor::*;
-//! # use bdk::wallet::signer::*;
-//! # use bdk::bitcoin::secp256k1::Secp256k1;
-//! use bdk::descriptor::policy::BuildSatisfaction;
-//! let secp = Secp256k1::new();
-//! let desc = "wsh(and_v(v:pk(cV3oCth6zxZ1UVsHLnGothsWNsaoxRhC6aeNi5VbSdFpwUkgkEci),or_d(pk(cVMTy7uebJgvFaSBwcgvwk8qn8xSLc97dKow4MBetjrrahZoimm2),older(12960))))";
-//!
-//! let (extended_desc, key_map) = ExtendedDescriptor::parse_descriptor(&secp, desc)?;
-//! println!("{:?}", extended_desc);
-//!
-//! let signers = Arc::new(SignersContainer::build(key_map, &extended_desc, &secp));
-//! let policy = extended_desc.extract_policy(&signers, BuildSatisfaction::None, &secp)?;
-//! println!("policy: {}", serde_json::to_string(&policy).unwrap());
-//! # Ok::<(), anyhow::Error>(())
-//! ```
-
-</span><span class="kw">use </span><span class="kw">crate</span>::collections::{BTreeMap, HashSet, VecDeque};
-<span class="kw">use </span>alloc::string::String;
-<span class="kw">use </span>alloc::vec::Vec;
-<span class="kw">use </span>core::cmp::max;
-
-<span class="kw">use </span>core::fmt;
-
-<span class="kw">use </span>serde::ser::SerializeMap;
-<span class="kw">use </span>serde::{Serialize, Serializer};
-
-<span class="kw">use </span>bitcoin::bip32::Fingerprint;
-<span class="kw">use </span>bitcoin::hashes::{hash160, ripemd160, sha256};
-<span class="kw">use </span>bitcoin::{absolute, key::XOnlyPublicKey, PublicKey, Sequence};
-
-<span class="kw">use </span>miniscript::descriptor::{
- DescriptorPublicKey, ShInner, SinglePub, SinglePubKey, SortedMultiVec, WshInner,
-};
-<span class="kw">use </span>miniscript::hash256;
-<span class="kw">use </span>miniscript::{
- Descriptor, Miniscript, Satisfier, ScriptContext, SigType, Terminal, ToPublicKey,
-};
-
-<span class="kw">use </span><span class="kw">crate</span>::descriptor::ExtractPolicy;
-<span class="kw">use </span><span class="kw">crate</span>::keys::ExtScriptContext;
-<span class="kw">use </span><span class="kw">crate</span>::wallet::signer::{SignerId, SignersContainer};
-<span class="kw">use </span><span class="kw">crate</span>::wallet::utils::{After, Older, SecpCtx};
-
-<span class="kw">use </span><span class="kw">super</span>::checksum::calc_checksum;
-<span class="kw">use </span><span class="kw">super</span>::error::Error;
-<span class="kw">use </span><span class="kw">super</span>::XKeyUtils;
-<span class="kw">use </span>bitcoin::psbt::{<span class="self">self</span>, Psbt};
-<span class="kw">use </span>miniscript::psbt::PsbtInputSatisfier;
-
-<span class="doccomment">/// A unique identifier for a key
-</span><span class="attr">#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize)]
-#[serde(rename_all = <span class="string">"snake_case"</span>)]
-</span><span class="kw">pub enum </span>PkOrF {
- <span class="doccomment">/// A legacy public key
- </span>Pubkey(PublicKey),
- <span class="doccomment">/// A x-only public key
- </span>XOnlyPubkey(XOnlyPublicKey),
- <span class="doccomment">/// An extended key fingerprint
- </span>Fingerprint(Fingerprint),
-}
-
-<span class="kw">impl </span>PkOrF {
- <span class="kw">fn </span>from_key(k: <span class="kw-2">&</span>DescriptorPublicKey, secp: <span class="kw-2">&</span>SecpCtx) -> <span class="self">Self </span>{
- <span class="kw">match </span>k {
- DescriptorPublicKey::Single(SinglePub {
- key: SinglePubKey::FullKey(pk),
- ..
- }) => PkOrF::Pubkey(<span class="kw-2">*</span>pk),
- DescriptorPublicKey::Single(SinglePub {
- key: SinglePubKey::XOnly(pk),
- ..
- }) => PkOrF::XOnlyPubkey(<span class="kw-2">*</span>pk),
- DescriptorPublicKey::XPub(xpub) => PkOrF::Fingerprint(xpub.root_fingerprint(secp)),
- DescriptorPublicKey::MultiXPub(multi) => {
- PkOrF::Fingerprint(multi.root_fingerprint(secp))
- }
- }
- }
-}
-
-<span class="doccomment">/// An item that needs to be satisfied
-</span><span class="attr">#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
-#[serde(tag = <span class="string">"type"</span>, rename_all = <span class="string">"UPPERCASE"</span>)]
-</span><span class="kw">pub enum </span>SatisfiableItem {
- <span class="comment">// Leaves
- </span><span class="doccomment">/// ECDSA Signature for a raw public key
- </span>EcdsaSignature(PkOrF),
- <span class="doccomment">/// Schnorr Signature for a raw public key
- </span>SchnorrSignature(PkOrF),
- <span class="doccomment">/// SHA256 preimage hash
- </span>Sha256Preimage {
- <span class="doccomment">/// The digest value
- </span>hash: sha256::Hash,
- },
- <span class="doccomment">/// Double SHA256 preimage hash
- </span>Hash256Preimage {
- <span class="doccomment">/// The digest value
- </span>hash: hash256::Hash,
- },
- <span class="doccomment">/// RIPEMD160 preimage hash
- </span>Ripemd160Preimage {
- <span class="doccomment">/// The digest value
- </span>hash: ripemd160::Hash,
- },
- <span class="doccomment">/// SHA256 then RIPEMD160 preimage hash
- </span>Hash160Preimage {
- <span class="doccomment">/// The digest value
- </span>hash: hash160::Hash,
- },
- <span class="doccomment">/// Absolute timeclock timestamp
- </span>AbsoluteTimelock {
- <span class="doccomment">/// The timelock value
- </span>value: absolute::LockTime,
- },
- <span class="doccomment">/// Relative timelock locktime
- </span>RelativeTimelock {
- <span class="doccomment">/// The timelock value
- </span>value: Sequence,
- },
- <span class="doccomment">/// Multi-signature public keys with threshold count
- </span>Multisig {
- <span class="doccomment">/// The raw public key or extended key fingerprint
- </span>keys: Vec<PkOrF>,
- <span class="doccomment">/// The required threshold count
- </span>threshold: usize,
- },
-
- <span class="comment">// Complex item
- </span><span class="doccomment">/// Threshold items with threshold count
- </span>Thresh {
- <span class="doccomment">/// The policy items
- </span>items: Vec<Policy>,
- <span class="doccomment">/// The required threshold count
- </span>threshold: usize,
- },
-}
-
-<span class="kw">impl </span>SatisfiableItem {
- <span class="doccomment">/// Returns whether the [`SatisfiableItem`] is a leaf item
- </span><span class="kw">pub fn </span>is_leaf(<span class="kw-2">&</span><span class="self">self</span>) -> bool {
- !<span class="macro">matches!</span>(
- <span class="self">self</span>,
- SatisfiableItem::Thresh {
- items: <span class="kw">_</span>,
- threshold: <span class="kw">_</span>,
- }
- )
- }
-
- <span class="doccomment">/// Returns a unique id for the [`SatisfiableItem`]
- </span><span class="kw">pub fn </span>id(<span class="kw-2">&</span><span class="self">self</span>) -> String {
- calc_checksum(<span class="kw-2">&</span>serde_json::to_string(<span class="self">self</span>).expect(<span class="string">"Failed to serialize a SatisfiableItem"</span>))
- .expect(<span class="string">"Failed to compute a SatisfiableItem id"</span>)
- }
-}
-
-<span class="kw">fn </span>combinations(vec: <span class="kw-2">&</span>[usize], size: usize) -> Vec<Vec<usize>> {
- <span class="macro">assert!</span>(vec.len() >= size);
-
- <span class="kw">let </span><span class="kw-2">mut </span>answer = Vec::new();
-
- <span class="kw">let </span><span class="kw-2">mut </span>queue = VecDeque::new();
- <span class="kw">for </span>(index, val) <span class="kw">in </span>vec.iter().enumerate() {
- <span class="kw">let </span><span class="kw-2">mut </span>new_vec = Vec::with_capacity(size);
- new_vec.push(<span class="kw-2">*</span>val);
- queue.push_back((index, new_vec));
- }
-
- <span class="kw">while let </span><span class="prelude-val">Some</span>((index, vals)) = queue.pop_front() {
- <span class="kw">if </span>vals.len() >= size {
- answer.push(vals);
- } <span class="kw">else </span>{
- <span class="kw">for </span>(new_index, val) <span class="kw">in </span>vec.iter().skip(index + <span class="number">1</span>).enumerate() {
- <span class="kw">let </span><span class="kw-2">mut </span>cloned = vals.clone();
- cloned.push(<span class="kw-2">*</span>val);
- queue.push_front((new_index, cloned));
- }
- }
- }
-
- answer
-}
-
-<span class="kw">fn </span>mix<T: Clone>(vec: Vec<Vec<T>>) -> Vec<Vec<T>> {
- <span class="kw">if </span>vec.is_empty() || vec.iter().any(Vec::is_empty) {
- <span class="kw">return </span><span class="macro">vec!</span>[];
- }
-
- <span class="kw">let </span><span class="kw-2">mut </span>answer = Vec::new();
- <span class="kw">let </span>size = vec.len();
-
- <span class="kw">let </span><span class="kw-2">mut </span>queue = VecDeque::new();
- <span class="kw">for </span>i <span class="kw">in </span><span class="kw-2">&</span>vec[<span class="number">0</span>] {
- <span class="kw">let </span><span class="kw-2">mut </span>new_vec = Vec::with_capacity(size);
- new_vec.push(i.clone());
- queue.push_back(new_vec);
- }
-
- <span class="kw">while let </span><span class="prelude-val">Some</span>(vals) = queue.pop_front() {
- <span class="kw">if </span>vals.len() >= size {
- answer.push(vals);
- } <span class="kw">else </span>{
- <span class="kw">let </span>level = vals.len();
- <span class="kw">for </span>i <span class="kw">in </span><span class="kw-2">&</span>vec[level] {
- <span class="kw">let </span><span class="kw-2">mut </span>cloned = vals.clone();
- cloned.push(i.clone());
- queue.push_front(cloned);
- }
- }
- }
-
- answer
-}
-
-<span class="doccomment">/// Type for a map of sets of [`Condition`] items keyed by each set's index
-</span><span class="kw">pub type </span>ConditionMap = BTreeMap<usize, HashSet<Condition>>;
-<span class="doccomment">/// Type for a map of folded sets of [`Condition`] items keyed by a vector of the combined set's indexes
-</span><span class="kw">pub type </span>FoldedConditionMap = BTreeMap<Vec<usize>, HashSet<Condition>>;
-
-<span class="kw">fn </span>serialize_folded_cond_map<S>(
- input_map: <span class="kw-2">&</span>FoldedConditionMap,
- serializer: S,
-) -> <span class="prelude-ty">Result</span><S::Ok, S::Error>
-<span class="kw">where
- </span>S: Serializer,
-{
- <span class="kw">let </span><span class="kw-2">mut </span>map = serializer.serialize_map(<span class="prelude-val">Some</span>(input_map.len()))<span class="question-mark">?</span>;
- <span class="kw">for </span>(k, v) <span class="kw">in </span>input_map {
- <span class="kw">let </span>k_string = <span class="macro">format!</span>(<span class="string">"{:?}"</span>, k);
- map.serialize_entry(<span class="kw-2">&</span>k_string, v)<span class="question-mark">?</span>;
- }
- map.end()
-}
-
-<span class="doccomment">/// Represent if and how much a policy item is satisfied by the wallet's descriptor
-</span><span class="attr">#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
-#[serde(tag = <span class="string">"type"</span>, rename_all = <span class="string">"UPPERCASE"</span>)]
-</span><span class="kw">pub enum </span>Satisfaction {
- <span class="doccomment">/// Only a partial satisfaction of some kind of threshold policy
- </span>Partial {
- <span class="doccomment">/// Total number of items
- </span>n: usize,
- <span class="doccomment">/// Threshold
- </span>m: usize,
- <span class="doccomment">/// The items that can be satisfied by the descriptor or are satisfied in the PSBT
- </span>items: Vec<usize>,
- <span class="attr">#[serde(skip_serializing_if = <span class="string">"Option::is_none"</span>)]
- </span><span class="doccomment">/// Whether the items are sorted in lexicographic order (used by `sortedmulti`)
- </span>sorted: <span class="prelude-ty">Option</span><bool>,
- <span class="attr">#[serde(skip_serializing_if = <span class="string">"BTreeMap::is_empty"</span>)]
- </span><span class="doccomment">/// Extra conditions that also need to be satisfied
- </span>conditions: ConditionMap,
- },
- <span class="doccomment">/// Can reach the threshold of some kind of threshold policy
- </span>PartialComplete {
- <span class="doccomment">/// Total number of items
- </span>n: usize,
- <span class="doccomment">/// Threshold
- </span>m: usize,
- <span class="doccomment">/// The items that can be satisfied by the descriptor
- </span>items: Vec<usize>,
- <span class="attr">#[serde(skip_serializing_if = <span class="string">"Option::is_none"</span>)]
- </span><span class="doccomment">/// Whether the items are sorted in lexicographic order (used by `sortedmulti`)
- </span>sorted: <span class="prelude-ty">Option</span><bool>,
- <span class="attr">#[serde(
- serialize_with = <span class="string">"serialize_folded_cond_map"</span>,
- skip_serializing_if = <span class="string">"BTreeMap::is_empty"
- </span>)]
- </span><span class="doccomment">/// Extra conditions that also need to be satisfied
- </span>conditions: FoldedConditionMap,
- },
-
- <span class="doccomment">/// Can satisfy the policy item
- </span>Complete {
- <span class="doccomment">/// Extra conditions that also need to be satisfied
- </span>condition: Condition,
- },
- <span class="doccomment">/// Cannot satisfy or contribute to the policy item
- </span><span class="prelude-val">None</span>,
-}
-
-<span class="kw">impl </span>Satisfaction {
- <span class="doccomment">/// Returns whether the [`Satisfaction`] is a leaf item
- </span><span class="kw">pub fn </span>is_leaf(<span class="kw-2">&</span><span class="self">self</span>) -> bool {
- <span class="kw">match </span><span class="self">self </span>{
- Satisfaction::None | Satisfaction::Complete { .. } => <span class="bool-val">true</span>,
- Satisfaction::PartialComplete { .. } | Satisfaction::Partial { .. } => <span class="bool-val">false</span>,
- }
- }
-
- <span class="comment">// add `inner` as one of self's partial items. this only makes sense on partials
- </span><span class="kw">fn </span>add(<span class="kw-2">&mut </span><span class="self">self</span>, inner: <span class="kw-2">&</span>Satisfaction, inner_index: usize) -> <span class="prelude-ty">Result</span><(), PolicyError> {
- <span class="kw">match </span><span class="self">self </span>{
- Satisfaction::None | Satisfaction::Complete { .. } => <span class="prelude-val">Err</span>(PolicyError::AddOnLeaf),
- Satisfaction::PartialComplete { .. } => <span class="prelude-val">Err</span>(PolicyError::AddOnPartialComplete),
- Satisfaction::Partial {
- n,
- <span class="kw-2">ref mut </span>conditions,
- <span class="kw-2">ref mut </span>items,
- ..
- } => {
- <span class="kw">if </span>inner_index >= <span class="kw-2">*</span>n || items.contains(<span class="kw-2">&</span>inner_index) {
- <span class="kw">return </span><span class="prelude-val">Err</span>(PolicyError::IndexOutOfRange(inner_index));
- }
-
- <span class="kw">match </span>inner {
- <span class="comment">// not relevant if not completed yet
- </span>Satisfaction::None | Satisfaction::Partial { .. } => <span class="kw">return </span><span class="prelude-val">Ok</span>(()),
- Satisfaction::Complete { condition } => {
- items.push(inner_index);
- conditions.insert(inner_index, <span class="macro">vec!</span>[<span class="kw-2">*</span>condition].into_iter().collect());
- }
- Satisfaction::PartialComplete {
- conditions: other_conditions,
- ..
- } => {
- items.push(inner_index);
- <span class="kw">let </span>conditions_set = other_conditions
- .values()
- .fold(HashSet::new(), |set, i| set.union(i).cloned().collect());
- conditions.insert(inner_index, conditions_set);
- }
- }
-
- <span class="prelude-val">Ok</span>(())
- }
- }
- }
-
- <span class="kw">fn </span>finalize(<span class="kw-2">&mut </span><span class="self">self</span>) {
- <span class="comment">// if partial try to bump it to a partialcomplete
- </span><span class="kw">if let </span>Satisfaction::Partial {
- n,
- m,
- items,
- conditions,
- sorted,
- } = <span class="self">self
- </span>{
- <span class="kw">if </span>items.len() >= <span class="kw-2">*</span>m {
- <span class="kw">let </span><span class="kw-2">mut </span>map = BTreeMap::new();
- <span class="kw">let </span>indexes = combinations(items, <span class="kw-2">*</span>m);
- <span class="comment">// `indexes` at this point is a Vec<Vec<usize>>, with the "n choose k" of items (m of n)
- </span>indexes
- .into_iter()
- <span class="comment">// .inspect(|x| println!("--- orig --- {:?}", x))
- // we map each of the combinations of elements into a tuple of ([chosen items], [conditions]). unfortunately, those items have potentially more than one
- // condition (think about ORs), so we also use `mix` to expand those, i.e. [[0], [1, 2]] becomes [[0, 1], [0, 2]]. This is necessary to make sure that we
- // consider every possible options and check whether or not they are compatible.
- // since this step can turn one item of the iterator into multiple ones, we use `flat_map()` to expand them out
- </span>.flat_map(|i_vec| {
- mix(i_vec
- .iter()
- .map(|i| {
- conditions
- .get(i)
- .map(|set| set.clone().into_iter().collect())
- .unwrap_or_default()
- })
- .collect())
- .into_iter()
- .map(|x| (i_vec.clone(), x))
- .collect::<Vec<(Vec<usize>, Vec<Condition>)>>()
- })
- <span class="comment">// .inspect(|x| println!("flat {:?}", x))
- // try to fold all the conditions for this specific combination of indexes/options. if they are not compatible, try_fold will be Err
- </span>.map(|(key, val)| {
- (
- key,
- val.into_iter()
- .try_fold(Condition::default(), |acc, v| acc.merge(<span class="kw-2">&</span>v)),
- )
- })
- <span class="comment">// .inspect(|x| println!("try_fold {:?}", x))
- // filter out all the incompatible combinations
- </span>.filter(|(<span class="kw">_</span>, val)| val.is_ok())
- <span class="comment">// .inspect(|x| println!("filter {:?}", x))
- // push them into the map
- </span>.for_each(|(key, val)| {
- map.entry(key)
- .or_insert_with(HashSet::new)
- .insert(val.unwrap());
- });
- <span class="comment">// TODO: if the map is empty, the conditions are not compatible, return an error?
- </span><span class="kw-2">*</span><span class="self">self </span>= Satisfaction::PartialComplete {
- n: <span class="kw-2">*</span>n,
- m: <span class="kw-2">*</span>m,
- items: items.clone(),
- conditions: map,
- sorted: <span class="kw-2">*</span>sorted,
- };
- }
- }
- }
-}
-
-<span class="kw">impl </span>From<bool> <span class="kw">for </span>Satisfaction {
- <span class="kw">fn </span>from(other: bool) -> <span class="self">Self </span>{
- <span class="kw">if </span>other {
- Satisfaction::Complete {
- condition: Default::default(),
- }
- } <span class="kw">else </span>{
- Satisfaction::None
- }
- }
-}
-
-<span class="doccomment">/// Descriptor spending policy
-</span><span class="attr">#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
-</span><span class="kw">pub struct </span>Policy {
- <span class="doccomment">/// Identifier for this policy node
- </span><span class="kw">pub </span>id: String,
-
- <span class="doccomment">/// Type of this policy node
- </span><span class="attr">#[serde(flatten)]
- </span><span class="kw">pub </span>item: SatisfiableItem,
- <span class="doccomment">/// How much a given PSBT already satisfies this policy node in terms of signatures
- </span><span class="kw">pub </span>satisfaction: Satisfaction,
- <span class="doccomment">/// How the wallet's descriptor can satisfy this policy node
- </span><span class="kw">pub </span>contribution: Satisfaction,
-}
-
-<span class="doccomment">/// An extra condition that must be satisfied but that is out of control of the user
-/// TODO: use `bitcoin::LockTime` and `bitcoin::Sequence`
-</span><span class="attr">#[derive(Hash, Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Default, Serialize)]
-</span><span class="kw">pub struct </span>Condition {
- <span class="doccomment">/// Optional CheckSequenceVerify condition
- </span><span class="attr">#[serde(skip_serializing_if = <span class="string">"Option::is_none"</span>)]
- </span><span class="kw">pub </span>csv: <span class="prelude-ty">Option</span><Sequence>,
- <span class="doccomment">/// Optional timelock condition
- </span><span class="attr">#[serde(skip_serializing_if = <span class="string">"Option::is_none"</span>)]
- </span><span class="kw">pub </span>timelock: <span class="prelude-ty">Option</span><absolute::LockTime>,
-}
-
-<span class="kw">impl </span>Condition {
- <span class="kw">fn </span>merge_nlocktime(
- a: absolute::LockTime,
- b: absolute::LockTime,
- ) -> <span class="prelude-ty">Result</span><absolute::LockTime, PolicyError> {
- <span class="kw">if </span>!a.is_same_unit(b) {
- <span class="prelude-val">Err</span>(PolicyError::MixedTimelockUnits)
- } <span class="kw">else if </span>a > b {
- <span class="prelude-val">Ok</span>(a)
- } <span class="kw">else </span>{
- <span class="prelude-val">Ok</span>(b)
- }
- }
-
- <span class="kw">fn </span>merge_nsequence(a: Sequence, b: Sequence) -> <span class="prelude-ty">Result</span><Sequence, PolicyError> {
- <span class="kw">if </span>a.is_time_locked() != b.is_time_locked() {
- <span class="prelude-val">Err</span>(PolicyError::MixedTimelockUnits)
- } <span class="kw">else </span>{
- <span class="prelude-val">Ok</span>(max(a, b))
- }
- }
-
- <span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>merge(<span class="kw-2">mut </span><span class="self">self</span>, other: <span class="kw-2">&</span>Condition) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>, PolicyError> {
- <span class="kw">match </span>(<span class="self">self</span>.csv, other.csv) {
- (<span class="prelude-val">Some</span>(a), <span class="prelude-val">Some</span>(b)) => <span class="self">self</span>.csv = <span class="prelude-val">Some</span>(<span class="self">Self</span>::merge_nsequence(a, b)<span class="question-mark">?</span>),
- (<span class="prelude-val">None</span>, any) => <span class="self">self</span>.csv = any,
- <span class="kw">_ </span>=> {}
- }
-
- <span class="kw">match </span>(<span class="self">self</span>.timelock, other.timelock) {
- (<span class="prelude-val">Some</span>(a), <span class="prelude-val">Some</span>(b)) => <span class="self">self</span>.timelock = <span class="prelude-val">Some</span>(<span class="self">Self</span>::merge_nlocktime(a, b)<span class="question-mark">?</span>),
- (<span class="prelude-val">None</span>, any) => <span class="self">self</span>.timelock = any,
- <span class="kw">_ </span>=> {}
- }
-
- <span class="prelude-val">Ok</span>(<span class="self">self</span>)
- }
-
- <span class="doccomment">/// Returns `true` if there are no extra conditions to verify
- </span><span class="kw">pub fn </span>is_null(<span class="kw-2">&</span><span class="self">self</span>) -> bool {
- <span class="self">self</span>.csv.is_none() && <span class="self">self</span>.timelock.is_none()
- }
-}
-
-<span class="doccomment">/// Errors that can happen while extracting and manipulating policies
-</span><span class="attr">#[derive(Debug, PartialEq, Eq)]
-</span><span class="kw">pub enum </span>PolicyError {
- <span class="doccomment">/// Not enough items are selected to satisfy a [`SatisfiableItem::Thresh`] or a [`SatisfiableItem::Multisig`]
- </span>NotEnoughItemsSelected(String),
- <span class="doccomment">/// Index out of range for an item to satisfy a [`SatisfiableItem::Thresh`] or a [`SatisfiableItem::Multisig`]
- </span>IndexOutOfRange(usize),
- <span class="doccomment">/// Can not add to an item that is [`Satisfaction::None`] or [`Satisfaction::Complete`]
- </span>AddOnLeaf,
- <span class="doccomment">/// Can not add to an item that is [`Satisfaction::PartialComplete`]
- </span>AddOnPartialComplete,
- <span class="doccomment">/// Can not merge CSV or timelock values unless both are less than or both are equal or greater than 500_000_000
- </span>MixedTimelockUnits,
- <span class="doccomment">/// Incompatible conditions (not currently used)
- </span>IncompatibleConditions,
-}
-
-<span class="kw">impl </span>fmt::Display <span class="kw">for </span>PolicyError {
- <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
- <span class="kw">match </span><span class="self">self </span>{
- <span class="self">Self</span>::NotEnoughItemsSelected(err) => <span class="macro">write!</span>(f, <span class="string">"Not enough items selected: {}"</span>, err),
- <span class="self">Self</span>::IndexOutOfRange(index) => <span class="macro">write!</span>(f, <span class="string">"Index out of range: {}"</span>, index),
- <span class="self">Self</span>::AddOnLeaf => <span class="macro">write!</span>(f, <span class="string">"Add on leaf"</span>),
- <span class="self">Self</span>::AddOnPartialComplete => <span class="macro">write!</span>(f, <span class="string">"Add on partial complete"</span>),
- <span class="self">Self</span>::MixedTimelockUnits => <span class="macro">write!</span>(f, <span class="string">"Mixed timelock units"</span>),
- <span class="self">Self</span>::IncompatibleConditions => <span class="macro">write!</span>(f, <span class="string">"Incompatible conditions"</span>),
- }
- }
-}
-
-<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
-</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>PolicyError {}
-
-<span class="kw">impl </span>Policy {
- <span class="kw">fn </span>new(item: SatisfiableItem) -> <span class="self">Self </span>{
- Policy {
- id: item.id(),
- item,
- satisfaction: Satisfaction::None,
- contribution: Satisfaction::None,
- }
- }
-
- <span class="kw">fn </span>make_and(a: <span class="prelude-ty">Option</span><Policy>, b: <span class="prelude-ty">Option</span><Policy>) -> <span class="prelude-ty">Result</span><<span class="prelude-ty">Option</span><Policy>, PolicyError> {
- <span class="kw">match </span>(a, b) {
- (<span class="prelude-val">None</span>, <span class="prelude-val">None</span>) => <span class="prelude-val">Ok</span>(<span class="prelude-val">None</span>),
- (<span class="prelude-val">Some</span>(x), <span class="prelude-val">None</span>) | (<span class="prelude-val">None</span>, <span class="prelude-val">Some</span>(x)) => <span class="prelude-val">Ok</span>(<span class="prelude-val">Some</span>(x)),
- (<span class="prelude-val">Some</span>(a), <span class="prelude-val">Some</span>(b)) => <span class="self">Self</span>::make_thresh(<span class="macro">vec!</span>[a, b], <span class="number">2</span>),
- }
- }
-
- <span class="kw">fn </span>make_or(a: <span class="prelude-ty">Option</span><Policy>, b: <span class="prelude-ty">Option</span><Policy>) -> <span class="prelude-ty">Result</span><<span class="prelude-ty">Option</span><Policy>, PolicyError> {
- <span class="kw">match </span>(a, b) {
- (<span class="prelude-val">None</span>, <span class="prelude-val">None</span>) => <span class="prelude-val">Ok</span>(<span class="prelude-val">None</span>),
- (<span class="prelude-val">Some</span>(x), <span class="prelude-val">None</span>) | (<span class="prelude-val">None</span>, <span class="prelude-val">Some</span>(x)) => <span class="prelude-val">Ok</span>(<span class="prelude-val">Some</span>(x)),
- (<span class="prelude-val">Some</span>(a), <span class="prelude-val">Some</span>(b)) => <span class="self">Self</span>::make_thresh(<span class="macro">vec!</span>[a, b], <span class="number">1</span>),
- }
- }
-
- <span class="kw">fn </span>make_thresh(items: Vec<Policy>, threshold: usize) -> <span class="prelude-ty">Result</span><<span class="prelude-ty">Option</span><Policy>, PolicyError> {
- <span class="kw">if </span>threshold == <span class="number">0 </span>{
- <span class="kw">return </span><span class="prelude-val">Ok</span>(<span class="prelude-val">None</span>);
- }
-
- <span class="kw">let </span><span class="kw-2">mut </span>contribution = Satisfaction::Partial {
- n: items.len(),
- m: threshold,
- items: <span class="macro">vec!</span>[],
- conditions: Default::default(),
- sorted: <span class="prelude-val">None</span>,
- };
- <span class="kw">let </span><span class="kw-2">mut </span>satisfaction = contribution.clone();
- <span class="kw">for </span>(index, item) <span class="kw">in </span>items.iter().enumerate() {
- contribution.add(<span class="kw-2">&</span>item.contribution, index)<span class="question-mark">?</span>;
- satisfaction.add(<span class="kw-2">&</span>item.satisfaction, index)<span class="question-mark">?</span>;
- }
-
- contribution.finalize();
- satisfaction.finalize();
-
- <span class="kw">let </span><span class="kw-2">mut </span>policy: Policy = SatisfiableItem::Thresh { items, threshold }.into();
- policy.contribution = contribution;
- policy.satisfaction = satisfaction;
-
- <span class="prelude-val">Ok</span>(<span class="prelude-val">Some</span>(policy))
- }
-
- <span class="kw">fn </span>make_multisig<Ctx: ScriptContext + <span class="lifetime">'static</span>>(
- keys: <span class="kw-2">&</span>[DescriptorPublicKey],
- signers: <span class="kw-2">&</span>SignersContainer,
- build_sat: BuildSatisfaction,
- threshold: usize,
- sorted: bool,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> <span class="prelude-ty">Result</span><<span class="prelude-ty">Option</span><Policy>, PolicyError> {
- <span class="kw">if </span>threshold == <span class="number">0 </span>{
- <span class="kw">return </span><span class="prelude-val">Ok</span>(<span class="prelude-val">None</span>);
- }
-
- <span class="kw">let </span>parsed_keys = keys.iter().map(|k| PkOrF::from_key(k, secp)).collect();
-
- <span class="kw">let </span><span class="kw-2">mut </span>contribution = Satisfaction::Partial {
- n: keys.len(),
- m: threshold,
- items: <span class="macro">vec!</span>[],
- conditions: Default::default(),
- sorted: <span class="prelude-val">Some</span>(sorted),
- };
- <span class="kw">let </span><span class="kw-2">mut </span>satisfaction = contribution.clone();
-
- <span class="kw">for </span>(index, key) <span class="kw">in </span>keys.iter().enumerate() {
- <span class="kw">if </span>signers.find(signer_id(key, secp)).is_some() {
- contribution.add(
- <span class="kw-2">&</span>Satisfaction::Complete {
- condition: Default::default(),
- },
- index,
- )<span class="question-mark">?</span>;
- }
-
- <span class="kw">if let </span><span class="prelude-val">Some</span>(psbt) = build_sat.psbt() {
- <span class="kw">if </span>Ctx::find_signature(psbt, key, secp) {
- satisfaction.add(
- <span class="kw-2">&</span>Satisfaction::Complete {
- condition: Default::default(),
- },
- index,
- )<span class="question-mark">?</span>;
- }
- }
- }
- satisfaction.finalize();
- contribution.finalize();
-
- <span class="kw">let </span><span class="kw-2">mut </span>policy: Policy = SatisfiableItem::Multisig {
- keys: parsed_keys,
- threshold,
- }
- .into();
- policy.contribution = contribution;
- policy.satisfaction = satisfaction;
-
- <span class="prelude-val">Ok</span>(<span class="prelude-val">Some</span>(policy))
- }
-
- <span class="doccomment">/// Return whether or not a specific path in the policy tree is required to unambiguously
- /// create a transaction
- ///
- /// What this means is that for some spending policies the user should select which paths in
- /// the tree it intends to satisfy while signing, because the transaction must be created differently based
- /// on that.
- </span><span class="kw">pub fn </span>requires_path(<span class="kw-2">&</span><span class="self">self</span>) -> bool {
- <span class="self">self</span>.get_condition(<span class="kw-2">&</span>BTreeMap::new()).is_err()
- }
-
- <span class="doccomment">/// Return the conditions that are set by the spending policy for a given path in the
- /// policy tree
- </span><span class="kw">pub fn </span>get_condition(
- <span class="kw-2">&</span><span class="self">self</span>,
- path: <span class="kw-2">&</span>BTreeMap<String, Vec<usize>>,
- ) -> <span class="prelude-ty">Result</span><Condition, PolicyError> {
- <span class="comment">// if items.len() == threshold, selected can be omitted and we take all of them by default
- </span><span class="kw">let </span>default = <span class="kw">match </span><span class="kw-2">&</span><span class="self">self</span>.item {
- SatisfiableItem::Thresh { items, threshold } <span class="kw">if </span>items.len() == <span class="kw-2">*</span>threshold => {
- (<span class="number">0</span>..<span class="kw-2">*</span>threshold).collect()
- }
- SatisfiableItem::Multisig { keys, .. } => (<span class="number">0</span>..keys.len()).collect(),
- <span class="kw">_ </span>=> HashSet::new(),
- };
- <span class="kw">let </span>selected: HashSet<<span class="kw">_</span>> = <span class="kw">match </span>path.get(<span class="kw-2">&</span><span class="self">self</span>.id) {
- <span class="prelude-val">Some</span>(arr) => arr.iter().copied().collect(),
- <span class="kw">_ </span>=> default,
- };
-
- <span class="kw">match </span><span class="kw-2">&</span><span class="self">self</span>.item {
- SatisfiableItem::Thresh { items, threshold } => {
- <span class="kw">let </span>mapped_req = items
- .iter()
- .map(|i| i.get_condition(path))
- .collect::<Vec<<span class="kw">_</span>>>();
-
- <span class="comment">// if all the requirements are null we don't care about `selected` because there
- // are no requirements
- </span><span class="kw">if </span>mapped_req
- .iter()
- .all(|cond| <span class="macro">matches!</span>(cond, <span class="prelude-val">Ok</span>(c) <span class="kw">if </span>c.is_null()))
- {
- <span class="kw">return </span><span class="prelude-val">Ok</span>(Condition::default());
- }
-
- <span class="comment">// make sure all the indexes in the `selected` list are within range
- </span><span class="kw">for </span>index <span class="kw">in </span><span class="kw-2">&</span>selected {
- <span class="kw">if </span><span class="kw-2">*</span>index >= items.len() {
- <span class="kw">return </span><span class="prelude-val">Err</span>(PolicyError::IndexOutOfRange(<span class="kw-2">*</span>index));
- }
- }
-
- <span class="comment">// if we have something, make sure we have enough items. note that the user can set
- // an empty value for this step in case of n-of-n, because `selected` is set to all
- // the elements above
- </span><span class="kw">if </span>selected.len() < <span class="kw-2">*</span>threshold {
- <span class="kw">return </span><span class="prelude-val">Err</span>(PolicyError::NotEnoughItemsSelected(<span class="self">self</span>.id.clone()));
- }
-
- <span class="comment">// check the selected items, see if there are conflicting requirements
- </span>mapped_req
- .into_iter()
- .enumerate()
- .filter(|(index, <span class="kw">_</span>)| selected.contains(index))
- .try_fold(Condition::default(), |acc, (<span class="kw">_</span>, cond)| acc.merge(<span class="kw-2">&</span>cond<span class="question-mark">?</span>))
- }
- SatisfiableItem::Multisig { keys, threshold } => {
- <span class="kw">if </span>selected.len() < <span class="kw-2">*</span>threshold {
- <span class="kw">return </span><span class="prelude-val">Err</span>(PolicyError::NotEnoughItemsSelected(<span class="self">self</span>.id.clone()));
- }
- <span class="kw">if let </span><span class="prelude-val">Some</span>(item) = selected.into_iter().find(|<span class="kw-2">&</span>i| i >= keys.len()) {
- <span class="kw">return </span><span class="prelude-val">Err</span>(PolicyError::IndexOutOfRange(item));
- }
-
- <span class="prelude-val">Ok</span>(Condition::default())
- }
- SatisfiableItem::AbsoluteTimelock { value } => <span class="prelude-val">Ok</span>(Condition {
- csv: <span class="prelude-val">None</span>,
- timelock: <span class="prelude-val">Some</span>(<span class="kw-2">*</span>value),
- }),
- SatisfiableItem::RelativeTimelock { value } => <span class="prelude-val">Ok</span>(Condition {
- csv: <span class="prelude-val">Some</span>(<span class="kw-2">*</span>value),
- timelock: <span class="prelude-val">None</span>,
- }),
- <span class="kw">_ </span>=> <span class="prelude-val">Ok</span>(Condition::default()),
- }
- }
-}
-
-<span class="kw">impl </span>From<SatisfiableItem> <span class="kw">for </span>Policy {
- <span class="kw">fn </span>from(other: SatisfiableItem) -> <span class="self">Self </span>{
- <span class="self">Self</span>::new(other)
- }
-}
-
-<span class="kw">fn </span>signer_id(key: <span class="kw-2">&</span>DescriptorPublicKey, secp: <span class="kw-2">&</span>SecpCtx) -> SignerId {
- <span class="comment">// For consistency we always compute the key hash in "ecdsa" form (with the leading sign
- // prefix) even if we are in a taproot descriptor. We just want some kind of unique identifier
- // for a key, so it doesn't really matter how the identifier is computed.
- </span><span class="kw">match </span>key {
- DescriptorPublicKey::Single(SinglePub {
- key: SinglePubKey::FullKey(pk),
- ..
- }) => pk.to_pubkeyhash(SigType::Ecdsa).into(),
- DescriptorPublicKey::Single(SinglePub {
- key: SinglePubKey::XOnly(pk),
- ..
- }) => pk.to_pubkeyhash(SigType::Ecdsa).into(),
- DescriptorPublicKey::XPub(xpub) => xpub.root_fingerprint(secp).into(),
- DescriptorPublicKey::MultiXPub(xpub) => xpub.root_fingerprint(secp).into(),
- }
-}
-
-<span class="kw">fn </span>make_generic_signature<M: Fn() -> SatisfiableItem, F: Fn(<span class="kw-2">&</span>Psbt) -> bool>(
- key: <span class="kw-2">&</span>DescriptorPublicKey,
- signers: <span class="kw-2">&</span>SignersContainer,
- build_sat: BuildSatisfaction,
- secp: <span class="kw-2">&</span>SecpCtx,
- make_policy: M,
- find_sig: F,
-) -> Policy {
- <span class="kw">let </span><span class="kw-2">mut </span>policy: Policy = make_policy().into();
-
- policy.contribution = <span class="kw">if </span>signers.find(signer_id(key, secp)).is_some() {
- Satisfaction::Complete {
- condition: Default::default(),
- }
- } <span class="kw">else </span>{
- Satisfaction::None
- };
-
- <span class="kw">if let </span><span class="prelude-val">Some</span>(psbt) = build_sat.psbt() {
- policy.satisfaction = <span class="kw">if </span>find_sig(psbt) {
- Satisfaction::Complete {
- condition: Default::default(),
- }
- } <span class="kw">else </span>{
- Satisfaction::None
- };
- }
-
- policy
-}
-
-<span class="kw">fn </span>generic_sig_in_psbt<
- <span class="comment">// C is for "check", it's a closure we use to *check* if a psbt input contains the signature
- // for a specific key
- </span>C: Fn(<span class="kw-2">&</span>psbt::Input, <span class="kw-2">&</span>SinglePubKey) -> bool,
- <span class="comment">// E is for "extract", it extracts a key from the bip32 derivations found in the psbt input
- </span>E: Fn(<span class="kw-2">&</span>psbt::Input, Fingerprint) -> <span class="prelude-ty">Option</span><SinglePubKey>,
->(
- psbt: <span class="kw-2">&</span>Psbt,
- key: <span class="kw-2">&</span>DescriptorPublicKey,
- secp: <span class="kw-2">&</span>SecpCtx,
- check: C,
- extract: E,
-) -> bool {
- <span class="comment">//TODO check signature validity
- </span>psbt.inputs.iter().all(|input| <span class="kw">match </span>key {
- DescriptorPublicKey::Single(SinglePub { key, .. }) => check(input, key),
- DescriptorPublicKey::XPub(xpub) => {
- <span class="comment">//TODO check actual derivation matches
- </span><span class="kw">match </span>extract(input, xpub.root_fingerprint(secp)) {
- <span class="prelude-val">Some</span>(pubkey) => check(input, <span class="kw-2">&</span>pubkey),
- <span class="prelude-val">None </span>=> <span class="bool-val">false</span>,
- }
- }
- DescriptorPublicKey::MultiXPub(xpub) => {
- <span class="comment">//TODO check actual derivation matches
- </span><span class="kw">match </span>extract(input, xpub.root_fingerprint(secp)) {
- <span class="prelude-val">Some</span>(pubkey) => check(input, <span class="kw-2">&</span>pubkey),
- <span class="prelude-val">None </span>=> <span class="bool-val">false</span>,
- }
- }
- })
-}
-
-<span class="kw">trait </span>SigExt: ScriptContext {
- <span class="kw">fn </span>make_signature(
- key: <span class="kw-2">&</span>DescriptorPublicKey,
- signers: <span class="kw-2">&</span>SignersContainer,
- build_sat: BuildSatisfaction,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> Policy;
-
- <span class="kw">fn </span>find_signature(psbt: <span class="kw-2">&</span>Psbt, key: <span class="kw-2">&</span>DescriptorPublicKey, secp: <span class="kw-2">&</span>SecpCtx) -> bool;
-}
-
-<span class="kw">impl</span><T: ScriptContext + <span class="lifetime">'static</span>> SigExt <span class="kw">for </span>T {
- <span class="kw">fn </span>make_signature(
- key: <span class="kw-2">&</span>DescriptorPublicKey,
- signers: <span class="kw-2">&</span>SignersContainer,
- build_sat: BuildSatisfaction,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> Policy {
- <span class="kw">if </span>T::as_enum().is_taproot() {
- make_generic_signature(
- key,
- signers,
- build_sat,
- secp,
- || SatisfiableItem::SchnorrSignature(PkOrF::from_key(key, secp)),
- |psbt| <span class="self">Self</span>::find_signature(psbt, key, secp),
- )
- } <span class="kw">else </span>{
- make_generic_signature(
- key,
- signers,
- build_sat,
- secp,
- || SatisfiableItem::EcdsaSignature(PkOrF::from_key(key, secp)),
- |psbt| <span class="self">Self</span>::find_signature(psbt, key, secp),
- )
- }
- }
-
- <span class="kw">fn </span>find_signature(psbt: <span class="kw-2">&</span>Psbt, key: <span class="kw-2">&</span>DescriptorPublicKey, secp: <span class="kw-2">&</span>SecpCtx) -> bool {
- <span class="kw">if </span>T::as_enum().is_taproot() {
- generic_sig_in_psbt(
- psbt,
- key,
- secp,
- |input, pk| {
- <span class="kw">let </span>pk = <span class="kw">match </span>pk {
- SinglePubKey::XOnly(pk) => pk,
- <span class="kw">_ </span>=> <span class="kw">return </span><span class="bool-val">false</span>,
- };
-
- <span class="kw">if </span>input.tap_internal_key == <span class="prelude-val">Some</span>(<span class="kw-2">*</span>pk) && input.tap_key_sig.is_some() {
- <span class="bool-val">true
- </span>} <span class="kw">else </span>{
- input.tap_script_sigs.keys().any(|(sk, <span class="kw">_</span>)| sk == pk)
- }
- },
- |input, fing| {
- input
- .tap_key_origins
- .iter()
- .find(|(<span class="kw">_</span>, (<span class="kw">_</span>, (f, <span class="kw">_</span>)))| f == <span class="kw-2">&</span>fing)
- .map(|(pk, <span class="kw">_</span>)| SinglePubKey::XOnly(<span class="kw-2">*</span>pk))
- },
- )
- } <span class="kw">else </span>{
- generic_sig_in_psbt(
- psbt,
- key,
- secp,
- |input, pk| <span class="kw">match </span>pk {
- SinglePubKey::FullKey(pk) => input.partial_sigs.contains_key(pk),
- <span class="kw">_ </span>=> <span class="bool-val">false</span>,
- },
- |input, fing| {
- input
- .bip32_derivation
- .iter()
- .find(|(<span class="kw">_</span>, (f, <span class="kw">_</span>))| f == <span class="kw-2">&</span>fing)
- .map(|(pk, <span class="kw">_</span>)| SinglePubKey::FullKey(PublicKey::new(<span class="kw-2">*</span>pk)))
- },
- )
- }
- }
-}
-
-<span class="kw">impl</span><Ctx: ScriptContext + <span class="lifetime">'static</span>> ExtractPolicy <span class="kw">for </span>Miniscript<DescriptorPublicKey, Ctx> {
- <span class="kw">fn </span>extract_policy(
- <span class="kw-2">&</span><span class="self">self</span>,
- signers: <span class="kw-2">&</span>SignersContainer,
- build_sat: BuildSatisfaction,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> <span class="prelude-ty">Result</span><<span class="prelude-ty">Option</span><Policy>, Error> {
- <span class="prelude-val">Ok</span>(<span class="kw">match </span><span class="kw-2">&</span><span class="self">self</span>.node {
- <span class="comment">// Leaves
- </span>Terminal::True | Terminal::False => <span class="prelude-val">None</span>,
- Terminal::PkK(pubkey) => <span class="prelude-val">Some</span>(Ctx::make_signature(pubkey, signers, build_sat, secp)),
- Terminal::PkH(pubkey_hash) => {
- <span class="prelude-val">Some</span>(Ctx::make_signature(pubkey_hash, signers, build_sat, secp))
- }
- Terminal::After(value) => {
- <span class="kw">let </span><span class="kw-2">mut </span>policy: Policy = SatisfiableItem::AbsoluteTimelock {
- value: (<span class="kw-2">*</span>value).into(),
- }
- .into();
- policy.contribution = Satisfaction::Complete {
- condition: Condition {
- timelock: <span class="prelude-val">Some</span>((<span class="kw-2">*</span>value).into()),
- csv: <span class="prelude-val">None</span>,
- },
- };
- <span class="kw">if let </span>BuildSatisfaction::PsbtTimelocks {
- current_height,
- psbt,
- ..
- } = build_sat
- {
- <span class="kw">let </span>after = After::new(<span class="prelude-val">Some</span>(current_height), <span class="bool-val">false</span>);
- <span class="kw">let </span>after_sat =
- Satisfier::<bitcoin::PublicKey>::check_after(<span class="kw-2">&</span>after, (<span class="kw-2">*</span>value).into());
- <span class="kw">let </span>inputs_sat = psbt_inputs_sat(psbt).all(|sat| {
- Satisfier::<bitcoin::PublicKey>::check_after(<span class="kw-2">&</span>sat, (<span class="kw-2">*</span>value).into())
- });
- <span class="kw">if </span>after_sat && inputs_sat {
- policy.satisfaction = policy.contribution.clone();
- }
- }
-
- <span class="prelude-val">Some</span>(policy)
- }
- Terminal::Older(value) => {
- <span class="kw">let </span><span class="kw-2">mut </span>policy: Policy = SatisfiableItem::RelativeTimelock { value: <span class="kw-2">*</span>value }.into();
- policy.contribution = Satisfaction::Complete {
- condition: Condition {
- timelock: <span class="prelude-val">None</span>,
- csv: <span class="prelude-val">Some</span>(<span class="kw-2">*</span>value),
- },
- };
- <span class="kw">if let </span>BuildSatisfaction::PsbtTimelocks {
- current_height,
- input_max_height,
- psbt,
- } = build_sat
- {
- <span class="kw">let </span>older = Older::new(<span class="prelude-val">Some</span>(current_height), <span class="prelude-val">Some</span>(input_max_height), <span class="bool-val">false</span>);
- <span class="kw">let </span>older_sat = Satisfier::<bitcoin::PublicKey>::check_older(<span class="kw-2">&</span>older, <span class="kw-2">*</span>value);
- <span class="kw">let </span>inputs_sat = psbt_inputs_sat(psbt)
- .all(|sat| Satisfier::<bitcoin::PublicKey>::check_older(<span class="kw-2">&</span>sat, <span class="kw-2">*</span>value));
- <span class="kw">if </span>older_sat && inputs_sat {
- policy.satisfaction = policy.contribution.clone();
- }
- }
-
- <span class="prelude-val">Some</span>(policy)
- }
- Terminal::Sha256(hash) => <span class="prelude-val">Some</span>(SatisfiableItem::Sha256Preimage { hash: <span class="kw-2">*</span>hash }.into()),
- Terminal::Hash256(hash) => {
- <span class="prelude-val">Some</span>(SatisfiableItem::Hash256Preimage { hash: <span class="kw-2">*</span>hash }.into())
- }
- Terminal::Ripemd160(hash) => {
- <span class="prelude-val">Some</span>(SatisfiableItem::Ripemd160Preimage { hash: <span class="kw-2">*</span>hash }.into())
- }
- Terminal::Hash160(hash) => {
- <span class="prelude-val">Some</span>(SatisfiableItem::Hash160Preimage { hash: <span class="kw-2">*</span>hash }.into())
- }
- Terminal::Multi(k, pks) | Terminal::MultiA(k, pks) => {
- Policy::make_multisig::<Ctx>(pks, signers, build_sat, <span class="kw-2">*</span>k, <span class="bool-val">false</span>, secp)<span class="question-mark">?
- </span>}
- <span class="comment">// Identities
- </span>Terminal::Alt(inner)
- | Terminal::Swap(inner)
- | Terminal::Check(inner)
- | Terminal::DupIf(inner)
- | Terminal::Verify(inner)
- | Terminal::NonZero(inner)
- | Terminal::ZeroNotEqual(inner) => inner.extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>,
- <span class="comment">// Complex policies
- </span>Terminal::AndV(a, b) | Terminal::AndB(a, b) => Policy::make_and(
- a.extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>,
- b.extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>,
- )<span class="question-mark">?</span>,
- Terminal::AndOr(x, y, z) => Policy::make_or(
- Policy::make_and(
- x.extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>,
- y.extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>,
- )<span class="question-mark">?</span>,
- z.extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>,
- )<span class="question-mark">?</span>,
- Terminal::OrB(a, b)
- | Terminal::OrD(a, b)
- | Terminal::OrC(a, b)
- | Terminal::OrI(a, b) => Policy::make_or(
- a.extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>,
- b.extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>,
- )<span class="question-mark">?</span>,
- Terminal::Thresh(k, nodes) => {
- <span class="kw">let </span><span class="kw-2">mut </span>threshold = <span class="kw-2">*</span>k;
- <span class="kw">let </span>mapped: Vec<<span class="kw">_</span>> = nodes
- .iter()
- .map(|n| n.extract_policy(signers, build_sat, secp))
- .collect::<<span class="prelude-ty">Result</span><Vec<<span class="kw">_</span>>, <span class="kw">_</span>>>()<span class="question-mark">?
- </span>.into_iter()
- .flatten()
- .collect();
-
- <span class="kw">if </span>mapped.len() < nodes.len() {
- threshold = <span class="kw">match </span>threshold.checked_sub(nodes.len() - mapped.len()) {
- <span class="prelude-val">None </span>=> <span class="kw">return </span><span class="prelude-val">Ok</span>(<span class="prelude-val">None</span>),
- <span class="prelude-val">Some</span>(x) => x,
- };
- }
-
- Policy::make_thresh(mapped, threshold)<span class="question-mark">?
- </span>}
-
- <span class="comment">// Unsupported
- </span>Terminal::RawPkH(<span class="kw">_</span>) => <span class="prelude-val">None</span>,
- })
- }
-}
-
-<span class="kw">fn </span>psbt_inputs_sat(psbt: <span class="kw-2">&</span>Psbt) -> <span class="kw">impl </span>Iterator<Item = PsbtInputSatisfier> {
- (<span class="number">0</span>..psbt.inputs.len()).map(<span class="kw">move </span>|i| PsbtInputSatisfier::new(psbt, i))
-}
-
-<span class="doccomment">/// Options to build the satisfaction field in the policy
-</span><span class="attr">#[derive(Debug, Clone, Copy)]
-</span><span class="kw">pub enum </span>BuildSatisfaction<<span class="lifetime">'a</span>> {
- <span class="doccomment">/// Don't generate `satisfaction` field
- </span><span class="prelude-val">None</span>,
- <span class="doccomment">/// Analyze the given PSBT to check for existing signatures
- </span>Psbt(<span class="kw-2">&</span><span class="lifetime">'a </span>Psbt),
- <span class="doccomment">/// Like `Psbt` variant and also check for expired timelocks
- </span>PsbtTimelocks {
- <span class="doccomment">/// Given PSBT
- </span>psbt: <span class="kw-2">&</span><span class="lifetime">'a </span>Psbt,
- <span class="doccomment">/// Current blockchain height
- </span>current_height: u32,
- <span class="doccomment">/// The highest confirmation height between the inputs
- /// CSV should consider different inputs, but we consider the worst condition for the tx as whole
- </span>input_max_height: u32,
- },
-}
-<span class="kw">impl</span><<span class="lifetime">'a</span>> BuildSatisfaction<<span class="lifetime">'a</span>> {
- <span class="kw">fn </span>psbt(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Option</span><<span class="kw-2">&</span><span class="lifetime">'a </span>Psbt> {
- <span class="kw">match </span><span class="self">self </span>{
- BuildSatisfaction::None => <span class="prelude-val">None</span>,
- BuildSatisfaction::Psbt(psbt) => <span class="prelude-val">Some</span>(psbt),
- BuildSatisfaction::PsbtTimelocks { psbt, .. } => <span class="prelude-val">Some</span>(psbt),
- }
- }
-}
-
-<span class="kw">impl </span>ExtractPolicy <span class="kw">for </span>Descriptor<DescriptorPublicKey> {
- <span class="kw">fn </span>extract_policy(
- <span class="kw-2">&</span><span class="self">self</span>,
- signers: <span class="kw-2">&</span>SignersContainer,
- build_sat: BuildSatisfaction,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> <span class="prelude-ty">Result</span><<span class="prelude-ty">Option</span><Policy>, Error> {
- <span class="kw">fn </span>make_sortedmulti<Ctx: ScriptContext + <span class="lifetime">'static</span>>(
- keys: <span class="kw-2">&</span>SortedMultiVec<DescriptorPublicKey, Ctx>,
- signers: <span class="kw-2">&</span>SignersContainer,
- build_sat: BuildSatisfaction,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> <span class="prelude-ty">Result</span><<span class="prelude-ty">Option</span><Policy>, Error> {
- <span class="prelude-val">Ok</span>(Policy::make_multisig::<Ctx>(
- keys.pks.as_ref(),
- signers,
- build_sat,
- keys.k,
- <span class="bool-val">true</span>,
- secp,
- )<span class="question-mark">?</span>)
- }
-
- <span class="kw">match </span><span class="self">self </span>{
- Descriptor::Pkh(pk) => <span class="prelude-val">Ok</span>(<span class="prelude-val">Some</span>(miniscript::Legacy::make_signature(
- pk.as_inner(),
- signers,
- build_sat,
- secp,
- ))),
- Descriptor::Wpkh(pk) => <span class="prelude-val">Ok</span>(<span class="prelude-val">Some</span>(miniscript::Segwitv0::make_signature(
- pk.as_inner(),
- signers,
- build_sat,
- secp,
- ))),
- Descriptor::Sh(sh) => <span class="kw">match </span>sh.as_inner() {
- ShInner::Wpkh(pk) => <span class="prelude-val">Ok</span>(<span class="prelude-val">Some</span>(miniscript::Segwitv0::make_signature(
- pk.as_inner(),
- signers,
- build_sat,
- secp,
- ))),
- ShInner::Ms(ms) => <span class="prelude-val">Ok</span>(ms.extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>),
- ShInner::SortedMulti(<span class="kw-2">ref </span>keys) => make_sortedmulti(keys, signers, build_sat, secp),
- ShInner::Wsh(wsh) => <span class="kw">match </span>wsh.as_inner() {
- WshInner::Ms(ms) => <span class="prelude-val">Ok</span>(ms.extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>),
- WshInner::SortedMulti(<span class="kw-2">ref </span>keys) => {
- make_sortedmulti(keys, signers, build_sat, secp)
- }
- },
- },
- Descriptor::Wsh(wsh) => <span class="kw">match </span>wsh.as_inner() {
- WshInner::Ms(ms) => <span class="prelude-val">Ok</span>(ms.extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>),
- WshInner::SortedMulti(<span class="kw-2">ref </span>keys) => make_sortedmulti(keys, signers, build_sat, secp),
- },
- Descriptor::Bare(ms) => <span class="prelude-val">Ok</span>(ms.as_inner().extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>),
- Descriptor::Tr(tr) => {
- <span class="comment">// If there's no tap tree, treat this as a single sig, otherwise build a `Thresh`
- // node with threshold = 1 and the key spend signature plus all the tree leaves
- </span><span class="kw">let </span>key_spend_sig =
- miniscript::Tap::make_signature(tr.internal_key(), signers, build_sat, secp);
-
- <span class="kw">if </span>tr.tap_tree().is_none() {
- <span class="prelude-val">Ok</span>(<span class="prelude-val">Some</span>(key_spend_sig))
- } <span class="kw">else </span>{
- <span class="kw">let </span><span class="kw-2">mut </span>items = <span class="macro">vec!</span>[key_spend_sig];
- items.append(
- <span class="kw-2">&mut </span>tr
- .iter_scripts()
- .filter_map(|(<span class="kw">_</span>, ms)| {
- ms.extract_policy(signers, build_sat, secp).transpose()
- })
- .collect::<<span class="prelude-ty">Result</span><Vec<<span class="kw">_</span>>, <span class="kw">_</span>>>()<span class="question-mark">?</span>,
- );
-
- <span class="prelude-val">Ok</span>(Policy::make_thresh(items, <span class="number">1</span>)<span class="question-mark">?</span>)
- }
- }
- }
- }
-}
-
-<span class="attr">#[cfg(test)]
-</span><span class="kw">mod </span>test {
- <span class="kw">use </span><span class="kw">crate</span>::descriptor;
- <span class="kw">use </span><span class="kw">crate</span>::descriptor::{ExtractPolicy, IntoWalletDescriptor};
-
- <span class="kw">use super</span>::<span class="kw-2">*</span>;
- <span class="kw">use </span><span class="kw">crate</span>::descriptor::policy::SatisfiableItem::{EcdsaSignature, Multisig, Thresh};
- <span class="kw">use </span><span class="kw">crate</span>::keys::{DescriptorKey, IntoDescriptorKey};
- <span class="kw">use </span><span class="kw">crate</span>::wallet::signer::SignersContainer;
- <span class="kw">use </span>alloc::{string::ToString, sync::Arc};
- <span class="kw">use </span>assert_matches::assert_matches;
- <span class="kw">use </span>bitcoin::bip32;
- <span class="kw">use </span>bitcoin::secp256k1::Secp256k1;
- <span class="kw">use </span>bitcoin::Network;
- <span class="kw">use </span>core::str::FromStr;
-
- <span class="kw">const </span>TPRV0_STR:<span class="kw-2">&</span>str = <span class="string">"tprv8ZgxMBicQKsPdZXrcHNLf5JAJWFAoJ2TrstMRdSKtEggz6PddbuSkvHKM9oKJyFgZV1B7rw8oChspxyYbtmEXYyg1AjfWbL3ho3XHDpHRZf"</span>;
- <span class="kw">const </span>TPRV1_STR:<span class="kw-2">&</span>str = <span class="string">"tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N"</span>;
-
- <span class="kw">const </span>PATH: <span class="kw-2">&</span>str = <span class="string">"m/44'/1'/0'/0"</span>;
-
- <span class="kw">fn </span>setup_keys<Ctx: ScriptContext>(
- tprv: <span class="kw-2">&</span>str,
- path: <span class="kw-2">&</span>str,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> (DescriptorKey<Ctx>, DescriptorKey<Ctx>, Fingerprint) {
- <span class="kw">let </span>path = bip32::DerivationPath::from_str(path).unwrap();
- <span class="kw">let </span>tprv = bip32::Xpriv::from_str(tprv).unwrap();
- <span class="kw">let </span>tpub = bip32::Xpub::from_priv(secp, <span class="kw-2">&</span>tprv);
- <span class="kw">let </span>fingerprint = tprv.fingerprint(secp);
- <span class="kw">let </span>prvkey = (tprv, path.clone()).into_descriptor_key().unwrap();
- <span class="kw">let </span>pubkey = (tpub, path).into_descriptor_key().unwrap();
-
- (prvkey, pubkey, fingerprint)
- }
-
- <span class="comment">// test ExtractPolicy trait for simple descriptors; wpkh(), sh(multi())
-
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_extract_policy_for_wpkh() {
- <span class="kw">let </span>secp = Secp256k1::new();
-
- <span class="kw">let </span>(prvkey, pubkey, fingerprint) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(wpkh(pubkey)).unwrap();
- <span class="kw">let </span>(wallet_desc, keymap) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
- <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
- <span class="kw">let </span>policy = wallet_desc
- .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
- .unwrap()
- .unwrap();
-
- <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.item, EcdsaSignature(PkOrF::Fingerprint(f)) <span class="kw">if </span>f == <span class="kw-2">&</span>fingerprint);
- <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.contribution, Satisfaction::None);
-
- <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(wpkh(prvkey)).unwrap();
- <span class="kw">let </span>(wallet_desc, keymap) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
- <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
- <span class="kw">let </span>policy = wallet_desc
- .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
- .unwrap()
- .unwrap();
-
- <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.item, EcdsaSignature(PkOrF::Fingerprint(f)) <span class="kw">if </span>f == <span class="kw-2">&</span>fingerprint);
- <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.contribution, Satisfaction::Complete {condition} <span class="kw">if </span>condition.csv.is_none() && condition.timelock.is_none());
- }
-
- <span class="comment">// 2 pub keys descriptor, required 2 prv keys
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_extract_policy_for_sh_multi_partial_0of2() {
- <span class="kw">let </span>secp = Secp256k1::new();
- <span class="kw">let </span>(_prvkey0, pubkey0, fingerprint0) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>(_prvkey1, pubkey1, fingerprint1) = setup_keys(TPRV1_STR, PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(sh(multi(<span class="number">2</span>, pubkey0, pubkey1))).unwrap();
- <span class="kw">let </span>(wallet_desc, keymap) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
- <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
- <span class="kw">let </span>policy = wallet_desc
- .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
- .unwrap()
- .unwrap();
-
- <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.item, Multisig { keys, threshold } <span class="kw">if </span>threshold == <span class="kw-2">&</span><span class="number">2usize
- </span>&& keys[<span class="number">0</span>] == PkOrF::Fingerprint(fingerprint0)
- && keys[<span class="number">1</span>] == PkOrF::Fingerprint(fingerprint1)
- );
- <span class="comment">// TODO should this be "Satisfaction::None" since we have no prv keys?
- // TODO should items and conditions not be empty?
- </span><span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.contribution, Satisfaction::Partial { n, m, items, conditions, ..} <span class="kw">if </span>n == <span class="kw-2">&</span><span class="number">2usize
- </span>&& m == <span class="kw-2">&</span><span class="number">2usize
- </span>&& items.is_empty()
- && conditions.is_empty()
- );
- }
-
- <span class="comment">// 1 prv and 1 pub key descriptor, required 2 prv keys
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_extract_policy_for_sh_multi_partial_1of2() {
- <span class="kw">let </span>secp = Secp256k1::new();
- <span class="kw">let </span>(prvkey0, _pubkey0, fingerprint0) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>(_prvkey1, pubkey1, fingerprint1) = setup_keys(TPRV1_STR, PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(sh(multi(<span class="number">2</span>, prvkey0, pubkey1))).unwrap();
- <span class="kw">let </span>(wallet_desc, keymap) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
- <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
- <span class="kw">let </span>policy = wallet_desc
- .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
- .unwrap()
- .unwrap();
- <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.item, Multisig { keys, threshold } <span class="kw">if </span>threshold == <span class="kw-2">&</span><span class="number">2usize
- </span>&& keys[<span class="number">0</span>] == PkOrF::Fingerprint(fingerprint0)
- && keys[<span class="number">1</span>] == PkOrF::Fingerprint(fingerprint1)
- );
-
- <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.contribution, Satisfaction::Partial { n, m, items, conditions, ..} <span class="kw">if </span>n == <span class="kw-2">&</span><span class="number">2usize
- </span>&& m == <span class="kw-2">&</span><span class="number">2usize
- </span>&& items.len() == <span class="number">1
- </span>&& conditions.contains_key(<span class="kw-2">&</span><span class="number">0</span>)
- );
- }
-
- <span class="comment">// 1 prv and 1 pub key descriptor, required 1 prv keys
- </span><span class="attr">#[test]
- #[ignore] </span><span class="comment">// see https://github.com/bitcoindevkit/bdk/issues/225
- </span><span class="kw">fn </span>test_extract_policy_for_sh_multi_complete_1of2() {
- <span class="kw">let </span>secp = Secp256k1::new();
-
- <span class="kw">let </span>(_prvkey0, pubkey0, fingerprint0) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>(prvkey1, _pubkey1, fingerprint1) = setup_keys(TPRV1_STR, PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(sh(multi(<span class="number">1</span>, pubkey0, prvkey1))).unwrap();
- <span class="kw">let </span>(wallet_desc, keymap) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
- <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
- <span class="kw">let </span>policy = wallet_desc
- .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
- .unwrap()
- .unwrap();
-
- <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.item, Multisig { keys, threshold } <span class="kw">if </span>threshold == <span class="kw-2">&</span><span class="number">1
- </span>&& keys[<span class="number">0</span>] == PkOrF::Fingerprint(fingerprint0)
- && keys[<span class="number">1</span>] == PkOrF::Fingerprint(fingerprint1)
- );
- <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.contribution, Satisfaction::PartialComplete { n, m, items, conditions, .. } <span class="kw">if </span>n == <span class="kw-2">&</span><span class="number">2
- </span>&& m == <span class="kw-2">&</span><span class="number">1
- </span>&& items.len() == <span class="number">2
- </span>&& conditions.contains_key(<span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">0</span>])
- && conditions.contains_key(<span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">1</span>])
- );
- }
-
- <span class="comment">// 2 prv keys descriptor, required 2 prv keys
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_extract_policy_for_sh_multi_complete_2of2() {
- <span class="kw">let </span>secp = Secp256k1::new();
-
- <span class="kw">let </span>(prvkey0, _pubkey0, fingerprint0) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>(prvkey1, _pubkey1, fingerprint1) = setup_keys(TPRV1_STR, PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(sh(multi(<span class="number">2</span>, prvkey0, prvkey1))).unwrap();
- <span class="kw">let </span>(wallet_desc, keymap) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
- <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
- <span class="kw">let </span>policy = wallet_desc
- .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
- .unwrap()
- .unwrap();
-
- <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.item, Multisig { keys, threshold } <span class="kw">if </span>threshold == <span class="kw-2">&</span><span class="number">2
- </span>&& keys[<span class="number">0</span>] == PkOrF::Fingerprint(fingerprint0)
- && keys[<span class="number">1</span>] == PkOrF::Fingerprint(fingerprint1)
- );
-
- <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.contribution, Satisfaction::PartialComplete { n, m, items, conditions, .. } <span class="kw">if </span>n == <span class="kw-2">&</span><span class="number">2
- </span>&& m == <span class="kw-2">&</span><span class="number">2
- </span>&& items.len() == <span class="number">2
- </span>&& conditions.contains_key(<span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">0</span>,<span class="number">1</span>])
- );
- }
-
- <span class="comment">// test ExtractPolicy trait with extended and single keys
-
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_extract_policy_for_single_wpkh() {
- <span class="kw">let </span>secp = Secp256k1::new();
-
- <span class="kw">let </span>(prvkey, pubkey, fingerprint) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(wpkh(pubkey)).unwrap();
- <span class="kw">let </span>(wallet_desc, keymap) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
- <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
- <span class="kw">let </span>policy = wallet_desc
- .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
- .unwrap()
- .unwrap();
-
- <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.item, EcdsaSignature(PkOrF::Fingerprint(f)) <span class="kw">if </span>f == <span class="kw-2">&</span>fingerprint);
- <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.contribution, Satisfaction::None);
-
- <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(wpkh(prvkey)).unwrap();
- <span class="kw">let </span>(wallet_desc, keymap) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
- <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
- <span class="kw">let </span>policy = wallet_desc
- .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
- .unwrap()
- .unwrap();
-
- <span class="macro">assert_matches!</span>(policy.item, EcdsaSignature(PkOrF::Fingerprint(f)) <span class="kw">if </span>f == fingerprint);
- <span class="macro">assert_matches!</span>(policy.contribution, Satisfaction::Complete {condition} <span class="kw">if </span>condition.csv.is_none() && condition.timelock.is_none());
- }
-
- <span class="comment">// single key, 1 prv and 1 pub key descriptor, required 1 prv keys
- </span><span class="attr">#[test]
- #[ignore] </span><span class="comment">// see https://github.com/bitcoindevkit/bdk/issues/225
- </span><span class="kw">fn </span>test_extract_policy_for_single_wsh_multi_complete_1of2() {
- <span class="kw">let </span>secp = Secp256k1::new();
-
- <span class="kw">let </span>(_prvkey0, pubkey0, fingerprint0) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>(prvkey1, _pubkey1, fingerprint1) = setup_keys(TPRV1_STR, PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(sh(multi(<span class="number">1</span>, pubkey0, prvkey1))).unwrap();
- <span class="kw">let </span>(wallet_desc, keymap) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
- <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
- <span class="kw">let </span>policy = wallet_desc
- .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
- .unwrap()
- .unwrap();
-
- <span class="macro">assert_matches!</span>(policy.item, Multisig { keys, threshold } <span class="kw">if </span>threshold == <span class="number">1
- </span>&& keys[<span class="number">0</span>] == PkOrF::Fingerprint(fingerprint0)
- && keys[<span class="number">1</span>] == PkOrF::Fingerprint(fingerprint1)
- );
- <span class="macro">assert_matches!</span>(policy.contribution, Satisfaction::PartialComplete { n, m, items, conditions, .. } <span class="kw">if </span>n == <span class="number">2
- </span>&& m == <span class="number">1
- </span>&& items.len() == <span class="number">2
- </span>&& conditions.contains_key(<span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">0</span>])
- && conditions.contains_key(<span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">1</span>])
- );
- }
-
- <span class="comment">// test ExtractPolicy trait with descriptors containing timelocks in a thresh()
-
- </span><span class="attr">#[test]
- #[ignore] </span><span class="comment">// see https://github.com/bitcoindevkit/bdk/issues/225
- </span><span class="kw">fn </span>test_extract_policy_for_wsh_multi_timelock() {
- <span class="kw">let </span>secp = Secp256k1::new();
-
- <span class="kw">let </span>(prvkey0, _pubkey0, _fingerprint0) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>(_prvkey1, pubkey1, _fingerprint1) = setup_keys(TPRV1_STR, PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>sequence = <span class="number">50</span>;
- <span class="attr">#[rustfmt::skip]
- </span><span class="kw">let </span>desc = <span class="macro">descriptor!</span>(wsh(thresh(
- <span class="number">2</span>,
- pk(prvkey0),
- s:pk(pubkey1),
- s:d:v:older(sequence)
- )))
- .unwrap();
-
- <span class="kw">let </span>(wallet_desc, keymap) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
- <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
- <span class="kw">let </span>policy = wallet_desc
- .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
- .unwrap()
- .unwrap();
-
- <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.item, Thresh { items, threshold } <span class="kw">if </span>items.len() == <span class="number">3 </span>&& threshold == <span class="kw-2">&</span><span class="number">2</span>);
-
- <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.contribution, Satisfaction::PartialComplete { n, m, items, conditions, .. } <span class="kw">if </span>n == <span class="kw-2">&</span><span class="number">3
- </span>&& m == <span class="kw-2">&</span><span class="number">2
- </span>&& items.len() == <span class="number">3
- </span>&& conditions.get(<span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">0</span>,<span class="number">1</span>]).unwrap().iter().next().unwrap().csv.is_none()
- && conditions.get(<span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">0</span>,<span class="number">2</span>]).unwrap().iter().next().unwrap().csv == <span class="prelude-val">Some</span>(Sequence(sequence))
- && conditions.get(<span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">1</span>,<span class="number">2</span>]).unwrap().iter().next().unwrap().csv == <span class="prelude-val">Some</span>(Sequence(sequence))
- );
- }
-
- <span class="comment">// - mixed timelocks should fail
-
- </span><span class="attr">#[test]
- #[ignore]
- </span><span class="kw">fn </span>test_extract_policy_for_wsh_mixed_timelocks() {
- <span class="kw">let </span>secp = Secp256k1::new();
- <span class="kw">let </span>(prvkey0, _pubkey0, _fingerprint0) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>locktime_threshold = <span class="number">500000000</span>; <span class="comment">// if less than this means block number, else block time in seconds
- </span><span class="kw">let </span>locktime_blocks = <span class="number">100</span>;
- <span class="kw">let </span>locktime_seconds = locktime_blocks + locktime_threshold;
- <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(sh(and_v(
- v: pk(prvkey0),
- and_v(v: after(locktime_seconds), after(locktime_blocks))
- )))
- .unwrap();
- <span class="kw">let </span>(wallet_desc, keymap) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
- <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
- <span class="kw">let </span>_policy = wallet_desc
- .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
- .unwrap()
- .unwrap();
- <span class="comment">// println!("desc policy = {:?}", policy); // TODO remove
- // TODO how should this fail with mixed timelocks?
- </span>}
-
- <span class="comment">// - multiple timelocks of the same type should be correctly merged together
- </span><span class="attr">#[test]
- #[ignore]
- </span><span class="kw">fn </span>test_extract_policy_for_multiple_same_timelocks() {
- <span class="kw">let </span>secp = Secp256k1::new();
- <span class="kw">let </span>(prvkey0, _pubkey0, _fingerprint0) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>locktime_blocks0 = <span class="number">100</span>;
- <span class="kw">let </span>locktime_blocks1 = <span class="number">200</span>;
- <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(sh(and_v(
- v: pk(prvkey0),
- and_v(v: after(locktime_blocks0), after(locktime_blocks1))
- )))
- .unwrap();
- <span class="kw">let </span>(wallet_desc, keymap) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
- <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
- <span class="kw">let </span>_policy = wallet_desc
- .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
- .unwrap()
- .unwrap();
- <span class="comment">// println!("desc policy = {:?}", policy); // TODO remove
- // TODO how should this merge timelocks?
- </span><span class="kw">let </span>(prvkey1, _pubkey1, _fingerprint1) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>locktime_seconds0 = <span class="number">500000100</span>;
- <span class="kw">let </span>locktime_seconds1 = <span class="number">500000200</span>;
- <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(sh(and_v(
- v: pk(prvkey1),
- and_v(v: after(locktime_seconds0), after(locktime_seconds1))
- )))
- .unwrap();
- <span class="kw">let </span>(wallet_desc, keymap) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
- <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
- <span class="kw">let </span>_policy = wallet_desc
- .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
- .unwrap()
- .unwrap();
-
- <span class="comment">// println!("desc policy = {:?}", policy); // TODO remove
-
- // TODO how should this merge timelocks?
- </span>}
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_get_condition_multisig() {
- <span class="kw">let </span>secp = Secp256k1::new();
-
- <span class="kw">let </span>(<span class="kw">_</span>, pk0, <span class="kw">_</span>) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>(<span class="kw">_</span>, pk1, <span class="kw">_</span>) = setup_keys(TPRV1_STR, PATH, <span class="kw-2">&</span>secp);
-
- <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(wsh(multi(<span class="number">1</span>, pk0, pk1))).unwrap();
- <span class="kw">let </span>(wallet_desc, keymap) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
- <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
-
- <span class="kw">let </span>policy = wallet_desc
- .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
- .unwrap()
- .unwrap();
-
- <span class="comment">// no args, choose the default
- </span><span class="kw">let </span>no_args = policy.get_condition(<span class="kw-2">&</span><span class="macro">vec!</span>[].into_iter().collect());
- <span class="macro">assert_eq!</span>(no_args, <span class="prelude-val">Ok</span>(Condition::default()));
-
- <span class="comment">// enough args
- </span><span class="kw">let </span>eq_thresh =
- policy.get_condition(<span class="kw-2">&</span><span class="macro">vec!</span>[(policy.id.clone(), <span class="macro">vec!</span>[<span class="number">0</span>])].into_iter().collect());
- <span class="macro">assert_eq!</span>(eq_thresh, <span class="prelude-val">Ok</span>(Condition::default()));
-
- <span class="comment">// more args, it doesn't really change anything
- </span><span class="kw">let </span>gt_thresh =
- policy.get_condition(<span class="kw-2">&</span><span class="macro">vec!</span>[(policy.id.clone(), <span class="macro">vec!</span>[<span class="number">0</span>, <span class="number">1</span>])].into_iter().collect());
- <span class="macro">assert_eq!</span>(gt_thresh, <span class="prelude-val">Ok</span>(Condition::default()));
-
- <span class="comment">// not enough args, error
- </span><span class="kw">let </span>lt_thresh =
- policy.get_condition(<span class="kw-2">&</span><span class="macro">vec!</span>[(policy.id.clone(), <span class="macro">vec!</span>[])].into_iter().collect());
- <span class="macro">assert_eq!</span>(
- lt_thresh,
- <span class="prelude-val">Err</span>(PolicyError::NotEnoughItemsSelected(policy.id.clone()))
- );
-
- <span class="comment">// index out of range
- </span><span class="kw">let </span>out_of_range =
- policy.get_condition(<span class="kw-2">&</span><span class="macro">vec!</span>[(policy.id.clone(), <span class="macro">vec!</span>[<span class="number">5</span>])].into_iter().collect());
- <span class="macro">assert_eq!</span>(out_of_range, <span class="prelude-val">Err</span>(PolicyError::IndexOutOfRange(<span class="number">5</span>)));
- }
-
- <span class="kw">const </span>ALICE_TPRV_STR:<span class="kw-2">&</span>str = <span class="string">"tprv8ZgxMBicQKsPf6T5X327efHnvJDr45Xnb8W4JifNWtEoqXu9MRYS4v1oYe6DFcMVETxy5w3bqpubYRqvcVTqovG1LifFcVUuJcbwJwrhYzP"</span>;
- <span class="kw">const </span>BOB_TPRV_STR:<span class="kw-2">&</span>str = <span class="string">"tprv8ZgxMBicQKsPeinZ155cJAn117KYhbaN6MV3WeG6sWhxWzcvX1eg1awd4C9GpUN1ncLEM2rzEvunAg3GizdZD4QPPCkisTz99tXXB4wZArp"</span>;
- <span class="kw">const </span>CAROL_TPRV_STR:<span class="kw-2">&</span>str = <span class="string">"tprv8ZgxMBicQKsPdC3CicFifuLCEyVVdXVUNYorxUWj3iGZ6nimnLAYAY9SYB7ib8rKzRxrCKFcEytCt6szwd2GHnGPRCBLAEAoSVDefSNk4Bt"</span>;
- <span class="kw">const </span>ALICE_BOB_PATH: <span class="kw-2">&</span>str = <span class="string">"m/0'"</span>;
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_extract_satisfaction() {
- <span class="kw">const </span>ALICE_SIGNED_PSBT: <span class="kw-2">&</span>str = <span class="string">"cHNidP8BAFMBAAAAAZb0njwT2wRS3AumaaP3yb7T4MxOePpSWih4Nq+jWChMAQAAAAD/////Af4lAAAAAAAAF6kUXv2Fn+YemPP4PUpNR1ZbU16/eRCHAAAAAAABASuJJgAAAAAAACIAIERw5kTLo9DUH9QDJSClHQwPpC7VGJ+ZMDpa8U+2fzcYIgIDeAtjYQk/Vfu4db2+68hyMKjc38+kWl5sP5QH8L42ZstHMEQCIBj0jLjUeVYXNQ6cqB+gbtvuKMjV54wSgWlm1cfcgpHVAiBa3DtC9l/1Mt4IDCvR7mmwQd3eAP/m5++81euhJNSrgQEBBUdSIQN4C2NhCT9V+7h1vb7ryHIwqNzfz6RaXmw/lAfwvjZmyyEC+GE/y+LptI8xmiR6sOe998IGzybox0Qfz4+BQl1nmYhSriIGAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIDBwu7j4AAACAAAAAACIGA3gLY2EJP1X7uHW9vuvIcjCo3N/PpFpebD+UB/C+NmbLDMkRfC4AAACAAAAAAAAA"</span>;
- <span class="kw">const </span>BOB_SIGNED_PSBT: <span class="kw-2">&</span>str = <span class="string">"cHNidP8BAFMBAAAAAZb0njwT2wRS3AumaaP3yb7T4MxOePpSWih4Nq+jWChMAQAAAAD/////Af4lAAAAAAAAF6kUXv2Fn+YemPP4PUpNR1ZbU16/eRCHAAAAAAABASuJJgAAAAAAACIAIERw5kTLo9DUH9QDJSClHQwPpC7VGJ+ZMDpa8U+2fzcYIgIC+GE/y+LptI8xmiR6sOe998IGzybox0Qfz4+BQl1nmYhIMEUCIQD5zDtM5MwklurwJ5aW76RsO36Iqyu+6uMdVlhL6ws2GQIgesAiz4dbKS7UmhDsC/c1ezu0o6hp00UUtsCMfUZ4anYBAQVHUiEDeAtjYQk/Vfu4db2+68hyMKjc38+kWl5sP5QH8L42ZsshAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIUq4iBgL4YT/L4um0jzGaJHqw5733wgbPJujHRB/Pj4FCXWeZiAwcLu4+AAAAgAAAAAAiBgN4C2NhCT9V+7h1vb7ryHIwqNzfz6RaXmw/lAfwvjZmywzJEXwuAAAAgAAAAAAAAA=="</span>;
- <span class="kw">const </span>ALICE_BOB_SIGNED_PSBT: <span class="kw-2">&</span>str = <span class="string">"cHNidP8BAFMBAAAAAZb0njwT2wRS3AumaaP3yb7T4MxOePpSWih4Nq+jWChMAQAAAAD/////Af4lAAAAAAAAF6kUXv2Fn+YemPP4PUpNR1ZbU16/eRCHAAAAAAABASuJJgAAAAAAACIAIERw5kTLo9DUH9QDJSClHQwPpC7VGJ+ZMDpa8U+2fzcYIgIC+GE/y+LptI8xmiR6sOe998IGzybox0Qfz4+BQl1nmYhIMEUCIQD5zDtM5MwklurwJ5aW76RsO36Iqyu+6uMdVlhL6ws2GQIgesAiz4dbKS7UmhDsC/c1ezu0o6hp00UUtsCMfUZ4anYBIgIDeAtjYQk/Vfu4db2+68hyMKjc38+kWl5sP5QH8L42ZstHMEQCIBj0jLjUeVYXNQ6cqB+gbtvuKMjV54wSgWlm1cfcgpHVAiBa3DtC9l/1Mt4IDCvR7mmwQd3eAP/m5++81euhJNSrgQEBBUdSIQN4C2NhCT9V+7h1vb7ryHIwqNzfz6RaXmw/lAfwvjZmyyEC+GE/y+LptI8xmiR6sOe998IGzybox0Qfz4+BQl1nmYhSriIGAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIDBwu7j4AAACAAAAAACIGA3gLY2EJP1X7uHW9vuvIcjCo3N/PpFpebD+UB/C+NmbLDMkRfC4AAACAAAAAAAEHAAEI2wQARzBEAiAY9Iy41HlWFzUOnKgfoG7b7ijI1eeMEoFpZtXH3IKR1QIgWtw7QvZf9TLeCAwr0e5psEHd3gD/5ufvvNXroSTUq4EBSDBFAiEA+cw7TOTMJJbq8CeWlu+kbDt+iKsrvurjHVZYS+sLNhkCIHrAIs+HWyku1JoQ7Av3NXs7tKOoadNFFLbAjH1GeGp2AUdSIQN4C2NhCT9V+7h1vb7ryHIwqNzfz6RaXmw/lAfwvjZmyyEC+GE/y+LptI8xmiR6sOe998IGzybox0Qfz4+BQl1nmYhSrgAA"</span>;
-
- <span class="kw">let </span>secp = Secp256k1::new();
-
- <span class="kw">let </span>(prvkey_alice, <span class="kw">_</span>, <span class="kw">_</span>) = setup_keys(ALICE_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>(prvkey_bob, <span class="kw">_</span>, <span class="kw">_</span>) = setup_keys(BOB_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
-
- <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(wsh(multi(<span class="number">2</span>, prvkey_alice, prvkey_bob))).unwrap();
-
- <span class="kw">let </span>(wallet_desc, keymap) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
-
- <span class="kw">let </span>addr = wallet_desc
- .at_derivation_index(<span class="number">0</span>)
- .unwrap()
- .address(Network::Testnet)
- .unwrap();
- <span class="macro">assert_eq!</span>(
- <span class="string">"tb1qg3cwv3xt50gdg875qvjjpfgaps86gtk4rz0ejvp6ttc5ldnlxuvqlcn0xk"</span>,
- addr.to_string()
- );
-
- <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
-
- <span class="kw">let </span>psbt = Psbt::from_str(ALICE_SIGNED_PSBT).unwrap();
-
- <span class="kw">let </span>policy_alice_psbt = wallet_desc
- .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::Psbt(<span class="kw-2">&</span>psbt), <span class="kw-2">&</span>secp)
- .unwrap()
- .unwrap();
- <span class="comment">//println!("{}", serde_json::to_string(&policy_alice_psbt).unwrap());
-
- </span><span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy_alice_psbt.satisfaction, Satisfaction::Partial { n, m, items, .. } <span class="kw">if </span>n == <span class="kw-2">&</span><span class="number">2
- </span>&& m == <span class="kw-2">&</span><span class="number">2
- </span>&& items == <span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">0</span>]
- );
-
- <span class="kw">let </span>psbt = Psbt::from_str(BOB_SIGNED_PSBT).unwrap();
- <span class="kw">let </span>policy_bob_psbt = wallet_desc
- .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::Psbt(<span class="kw-2">&</span>psbt), <span class="kw-2">&</span>secp)
- .unwrap()
- .unwrap();
- <span class="comment">//println!("{}", serde_json::to_string(&policy_bob_psbt).unwrap());
-
- </span><span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy_bob_psbt.satisfaction, Satisfaction::Partial { n, m, items, .. } <span class="kw">if </span>n == <span class="kw-2">&</span><span class="number">2
- </span>&& m == <span class="kw-2">&</span><span class="number">2
- </span>&& items == <span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">1</span>]
- );
-
- <span class="kw">let </span>psbt = Psbt::from_str(ALICE_BOB_SIGNED_PSBT).unwrap();
- <span class="kw">let </span>policy_alice_bob_psbt = wallet_desc
- .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::Psbt(<span class="kw-2">&</span>psbt), <span class="kw-2">&</span>secp)
- .unwrap()
- .unwrap();
- <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy_alice_bob_psbt.satisfaction, Satisfaction::PartialComplete { n, m, items, .. } <span class="kw">if </span>n == <span class="kw-2">&</span><span class="number">2
- </span>&& m == <span class="kw-2">&</span><span class="number">2
- </span>&& items == <span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">0</span>, <span class="number">1</span>]
- );
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_extract_satisfaction_timelock() {
- <span class="comment">//const PSBT_POLICY_CONSIDER_TIMELOCK_NOT_EXPIRED: &str = "cHNidP8BAFMBAAAAAdld52uJFGT7Yde0YZdSVh2vL020Zm2exadH5R4GSNScAAAAAAD/////ATrcAAAAAAAAF6kUXv2Fn+YemPP4PUpNR1ZbU16/eRCHAAAAAAABASvI3AAAAAAAACIAILhzvvcBzw/Zfnc9ispRK0PCahxn1F6RHXTZAmw5tqNPAQVSdmNSsmlofCEDeAtjYQk/Vfu4db2+68hyMKjc38+kWl5sP5QH8L42Zsusk3whAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIrJNShyIGAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIDBwu7j4AAACAAAAAACIGA3gLY2EJP1X7uHW9vuvIcjCo3N/PpFpebD+UB/C+NmbLDMkRfC4AAACAAAAAAAAA";
- </span><span class="kw">const </span>PSBT_POLICY_CONSIDER_TIMELOCK_EXPIRED: <span class="kw-2">&</span>str = <span class="string">"cHNidP8BAFMCAAAAAdld52uJFGT7Yde0YZdSVh2vL020Zm2exadH5R4GSNScAAAAAAACAAAAATrcAAAAAAAAF6kUXv2Fn+YemPP4PUpNR1ZbU16/eRCHAAAAAAABASvI3AAAAAAAACIAILhzvvcBzw/Zfnc9ispRK0PCahxn1F6RHXTZAmw5tqNPAQVSdmNSsmlofCEDeAtjYQk/Vfu4db2+68hyMKjc38+kWl5sP5QH8L42Zsusk3whAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIrJNShyIGAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIDBwu7j4AAACAAAAAACIGA3gLY2EJP1X7uHW9vuvIcjCo3N/PpFpebD+UB/C+NmbLDMkRfC4AAACAAAAAAAAA"</span>;
- <span class="kw">const </span>PSBT_POLICY_CONSIDER_TIMELOCK_EXPIRED_SIGNED: <span class="kw-2">&</span>str =<span class="string">"cHNidP8BAFMCAAAAAdld52uJFGT7Yde0YZdSVh2vL020Zm2exadH5R4GSNScAAAAAAACAAAAATrcAAAAAAAAF6kUXv2Fn+YemPP4PUpNR1ZbU16/eRCHAAAAAAABASvI3AAAAAAAACIAILhzvvcBzw/Zfnc9ispRK0PCahxn1F6RHXTZAmw5tqNPIgIDeAtjYQk/Vfu4db2+68hyMKjc38+kWl5sP5QH8L42ZstIMEUCIQCtZxNm6H3Ux3pnc64DSpgohMdBj+57xhFHcURYt2BpPAIgG3OnI7bcj/3GtWX1HHyYGSI7QGa/zq5YnsmK1Cw29NABAQVSdmNSsmlofCEDeAtjYQk/Vfu4db2+68hyMKjc38+kWl5sP5QH8L42Zsusk3whAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIrJNShyIGAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIDBwu7j4AAACAAAAAACIGA3gLY2EJP1X7uHW9vuvIcjCo3N/PpFpebD+UB/C+NmbLDMkRfC4AAACAAAAAAAEHAAEIoAQASDBFAiEArWcTZuh91Md6Z3OuA0qYKITHQY/ue8YRR3FEWLdgaTwCIBtzpyO23I/9xrVl9Rx8mBkiO0Bmv86uWJ7JitQsNvTQAQEBUnZjUrJpaHwhA3gLY2EJP1X7uHW9vuvIcjCo3N/PpFpebD+UB/C+NmbLrJN8IQL4YT/L4um0jzGaJHqw5733wgbPJujHRB/Pj4FCXWeZiKyTUocAAA=="</span>;
-
- <span class="kw">let </span>secp = Secp256k1::new();
-
- <span class="kw">let </span>(prvkey_alice, <span class="kw">_</span>, <span class="kw">_</span>) = setup_keys(ALICE_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>(prvkey_bob, <span class="kw">_</span>, <span class="kw">_</span>) = setup_keys(BOB_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
-
- <span class="kw">let </span>desc =
- <span class="macro">descriptor!</span>(wsh(thresh(<span class="number">2</span>,n:d:v:older(<span class="number">2</span>),s:pk(prvkey_alice),s:pk(prvkey_bob)))).unwrap();
-
- <span class="kw">let </span>(wallet_desc, keymap) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
- <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
-
- <span class="kw">let </span>addr = wallet_desc
- .at_derivation_index(<span class="number">0</span>)
- .unwrap()
- .address(Network::Testnet)
- .unwrap();
- <span class="macro">assert_eq!</span>(
- <span class="string">"tb1qsydsey4hexagwkvercqsmes6yet0ndkyt6uzcphtqnygjd8hmzmsfxrv58"</span>,
- addr.to_string()
- );
-
- <span class="kw">let </span>psbt = Psbt::from_str(PSBT_POLICY_CONSIDER_TIMELOCK_EXPIRED).unwrap();
-
- <span class="kw">let </span>build_sat = BuildSatisfaction::PsbtTimelocks {
- psbt: <span class="kw-2">&</span>psbt,
- current_height: <span class="number">10</span>,
- input_max_height: <span class="number">9</span>,
- };
-
- <span class="kw">let </span>policy = wallet_desc
- .extract_policy(<span class="kw-2">&</span>signers_container, build_sat, <span class="kw-2">&</span>secp)
- .unwrap()
- .unwrap();
- <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.satisfaction, Satisfaction::Partial { n, m, items, .. } <span class="kw">if </span>n == <span class="kw-2">&</span><span class="number">3
- </span>&& m == <span class="kw-2">&</span><span class="number">2
- </span>&& items.is_empty()
- );
- <span class="comment">//println!("{}", serde_json::to_string(&policy).unwrap());
-
- </span><span class="kw">let </span>build_sat_expired = BuildSatisfaction::PsbtTimelocks {
- psbt: <span class="kw-2">&</span>psbt,
- current_height: <span class="number">12</span>,
- input_max_height: <span class="number">9</span>,
- };
-
- <span class="kw">let </span>policy_expired = wallet_desc
- .extract_policy(<span class="kw-2">&</span>signers_container, build_sat_expired, <span class="kw-2">&</span>secp)
- .unwrap()
- .unwrap();
- <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy_expired.satisfaction, Satisfaction::Partial { n, m, items, .. } <span class="kw">if </span>n == <span class="kw-2">&</span><span class="number">3
- </span>&& m == <span class="kw-2">&</span><span class="number">2
- </span>&& items == <span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">0</span>]
- );
- <span class="comment">//println!("{}", serde_json::to_string(&policy_expired).unwrap());
-
- </span><span class="kw">let </span>psbt_signed = Psbt::from_str(PSBT_POLICY_CONSIDER_TIMELOCK_EXPIRED_SIGNED).unwrap();
-
- <span class="kw">let </span>build_sat_expired_signed = BuildSatisfaction::PsbtTimelocks {
- psbt: <span class="kw-2">&</span>psbt_signed,
- current_height: <span class="number">12</span>,
- input_max_height: <span class="number">9</span>,
- };
-
- <span class="kw">let </span>policy_expired_signed = wallet_desc
- .extract_policy(<span class="kw-2">&</span>signers_container, build_sat_expired_signed, <span class="kw-2">&</span>secp)
- .unwrap()
- .unwrap();
- <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy_expired_signed.satisfaction, Satisfaction::PartialComplete { n, m, items, .. } <span class="kw">if </span>n == <span class="kw-2">&</span><span class="number">3
- </span>&& m == <span class="kw-2">&</span><span class="number">2
- </span>&& items == <span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">0</span>, <span class="number">1</span>]
- );
- <span class="comment">//println!("{}", serde_json::to_string(&policy_expired_signed).unwrap());
- </span>}
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_extract_pkh() {
- <span class="kw">let </span>secp = Secp256k1::new();
-
- <span class="kw">let </span>(prvkey_alice, <span class="kw">_</span>, <span class="kw">_</span>) = setup_keys(ALICE_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>(prvkey_bob, <span class="kw">_</span>, <span class="kw">_</span>) = setup_keys(BOB_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>(prvkey_carol, <span class="kw">_</span>, <span class="kw">_</span>) = setup_keys(CAROL_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
-
- <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(wsh(c: andor(
- pk(prvkey_alice),
- pk_k(prvkey_bob),
- pk_h(prvkey_carol),
- )))
- .unwrap();
-
- <span class="kw">let </span>(wallet_desc, keymap) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
- <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
-
- <span class="kw">let </span>policy = wallet_desc.extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp);
- <span class="macro">assert!</span>(policy.is_ok());
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_extract_tr_key_spend() {
- <span class="kw">let </span>secp = Secp256k1::new();
-
- <span class="kw">let </span>(prvkey, <span class="kw">_</span>, fingerprint) = setup_keys(ALICE_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
-
- <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(tr(prvkey)).unwrap();
- <span class="kw">let </span>(wallet_desc, keymap) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
- <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
-
- <span class="kw">let </span>policy = wallet_desc
- .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
- .unwrap();
- <span class="macro">assert_eq!</span>(
- policy,
- <span class="prelude-val">Some</span>(Policy {
- id: <span class="string">"48u0tz0n"</span>.to_string(),
- item: SatisfiableItem::SchnorrSignature(PkOrF::Fingerprint(fingerprint)),
- satisfaction: Satisfaction::None,
- contribution: Satisfaction::Complete {
- condition: Condition::default()
- }
- })
- );
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_extract_tr_script_spend() {
- <span class="kw">let </span>secp = Secp256k1::new();
-
- <span class="kw">let </span>(alice_prv, <span class="kw">_</span>, alice_fing) = setup_keys(ALICE_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>(<span class="kw">_</span>, bob_pub, bob_fing) = setup_keys(BOB_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
-
- <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(tr(bob_pub, pk(alice_prv))).unwrap();
- <span class="kw">let </span>(wallet_desc, keymap) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
- <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
-
- <span class="kw">let </span>policy = wallet_desc
- .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
- .unwrap()
- .unwrap();
-
- <span class="macro">assert_matches!</span>(policy.item, SatisfiableItem::Thresh { <span class="kw-2">ref </span>items, threshold: <span class="number">1 </span>} <span class="kw">if </span>items.len() == <span class="number">2</span>);
- <span class="macro">assert_matches!</span>(policy.contribution, Satisfaction::PartialComplete { n: <span class="number">2</span>, m: <span class="number">1</span>, items, .. } <span class="kw">if </span>items == <span class="macro">vec!</span>[<span class="number">1</span>]);
-
- <span class="kw">let </span>alice_sig = SatisfiableItem::SchnorrSignature(PkOrF::Fingerprint(alice_fing));
- <span class="kw">let </span>bob_sig = SatisfiableItem::SchnorrSignature(PkOrF::Fingerprint(bob_fing));
-
- <span class="kw">let </span>thresh_items = <span class="kw">match </span>policy.item {
- SatisfiableItem::Thresh { items, .. } => items,
- <span class="kw">_ </span>=> <span class="macro">unreachable!</span>(),
- };
-
- <span class="macro">assert_eq!</span>(thresh_items[<span class="number">0</span>].item, bob_sig);
- <span class="macro">assert_eq!</span>(thresh_items[<span class="number">1</span>].item, alice_sig);
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_extract_tr_satisfaction_key_spend() {
- <span class="kw">const </span>UNSIGNED_PSBT: <span class="kw-2">&</span>str = <span class="string">"cHNidP8BAFMBAAAAAUKgMCqtGLSiGYhsTols2UJ/VQQgQi/SXO38uXs2SahdAQAAAAD/////ARyWmAAAAAAAF6kU4R3W8CnGzZcSsaovTYu0X8vHt3WHAAAAAAABASuAlpgAAAAAACJRIEiEBFjbZa1xdjLfFjrKzuC1F1LeRyI/gL6IuGKNmUuSIRYnkGTDxwXMHP32fkDFoGJY28trxbkkVgR2z7jZa2pOJA0AyRF8LgAAAIADAAAAARcgJ5Bkw8cFzBz99n5AxaBiWNvLa8W5JFYEds+42WtqTiQAAA=="</span>;
- <span class="kw">const </span>SIGNED_PSBT: <span class="kw-2">&</span>str = <span class="string">"cHNidP8BAFMBAAAAAUKgMCqtGLSiGYhsTols2UJ/VQQgQi/SXO38uXs2SahdAQAAAAD/////ARyWmAAAAAAAF6kU4R3W8CnGzZcSsaovTYu0X8vHt3WHAAAAAAABASuAlpgAAAAAACJRIEiEBFjbZa1xdjLfFjrKzuC1F1LeRyI/gL6IuGKNmUuSARNAIsRvARpRxuyQosVA7guRQT9vXr+S25W2tnP2xOGBsSgq7A4RL8yrbvwDmNlWw9R0Nc/6t+IsyCyy7dD/lbUGgyEWJ5Bkw8cFzBz99n5AxaBiWNvLa8W5JFYEds+42WtqTiQNAMkRfC4AAACAAwAAAAEXICeQZMPHBcwc/fZ+QMWgYljby2vFuSRWBHbPuNlrak4kAAA="</span>;
-
- <span class="kw">let </span>unsigned_psbt = Psbt::from_str(UNSIGNED_PSBT).unwrap();
- <span class="kw">let </span>signed_psbt = Psbt::from_str(SIGNED_PSBT).unwrap();
-
- <span class="kw">let </span>secp = Secp256k1::new();
-
- <span class="kw">let </span>(<span class="kw">_</span>, pubkey, <span class="kw">_</span>) = setup_keys(ALICE_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
-
- <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(tr(pubkey)).unwrap();
- <span class="kw">let </span>(wallet_desc, <span class="kw">_</span>) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
-
- <span class="kw">let </span>policy_unsigned = wallet_desc
- .extract_policy(
- <span class="kw-2">&</span>SignersContainer::default(),
- BuildSatisfaction::Psbt(<span class="kw-2">&</span>unsigned_psbt),
- <span class="kw-2">&</span>secp,
- )
- .unwrap()
- .unwrap();
- <span class="kw">let </span>policy_signed = wallet_desc
- .extract_policy(
- <span class="kw-2">&</span>SignersContainer::default(),
- BuildSatisfaction::Psbt(<span class="kw-2">&</span>signed_psbt),
- <span class="kw-2">&</span>secp,
- )
- .unwrap()
- .unwrap();
-
- <span class="macro">assert_eq!</span>(policy_unsigned.satisfaction, Satisfaction::None);
- <span class="macro">assert_eq!</span>(
- policy_signed.satisfaction,
- Satisfaction::Complete {
- condition: Default::default()
- }
- );
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_extract_tr_satisfaction_script_spend() {
- <span class="kw">const </span>UNSIGNED_PSBT: <span class="kw-2">&</span>str = <span class="string">"cHNidP8BAFMBAAAAAWZalxaErOL7P3WPIUc8DsjgE68S+ww+uqiqEI2SAwlPAAAAAAD/////AQiWmAAAAAAAF6kU4R3W8CnGzZcSsaovTYu0X8vHt3WHAAAAAAABASuAlpgAAAAAACJRINa6bLPZwp3/CYWoxyI3mLYcSC5f9LInAMUng94nspa2IhXBgiPY+kcolS1Hp0niOK/+7VHz6F+nsz8JVxnzWzkgToYjIHhGyuexxtRVKevRx4YwWR/W0r7LPHt6oS6DLlzyuYQarMAhFnhGyuexxtRVKevRx4YwWR/W0r7LPHt6oS6DLlzyuYQaLQH2onWFc3UR6I9ZhuHVeJCi5LNAf4APVd7mHn4BhdViHRwu7j4AAACAAgAAACEWgiPY+kcolS1Hp0niOK/+7VHz6F+nsz8JVxnzWzkgToYNAMkRfC4AAACAAgAAAAEXIIIj2PpHKJUtR6dJ4jiv/u1R8+hfp7M/CVcZ81s5IE6GARgg9qJ1hXN1EeiPWYbh1XiQouSzQH+AD1Xe5h5+AYXVYh0AAA=="</span>;
- <span class="kw">const </span>SIGNED_PSBT: <span class="kw-2">&</span>str = <span class="string">"cHNidP8BAFMBAAAAAWZalxaErOL7P3WPIUc8DsjgE68S+ww+uqiqEI2SAwlPAAAAAAD/////AQiWmAAAAAAAF6kU4R3W8CnGzZcSsaovTYu0X8vHt3WHAAAAAAABASuAlpgAAAAAACJRINa6bLPZwp3/CYWoxyI3mLYcSC5f9LInAMUng94nspa2AQcAAQhCAUALcP9w/+Ddly9DWdhHTnQ9uCDWLPZjR6vKbKePswW2Ee6W5KNfrklus/8z98n7BQ1U4vADHk0FbadeeL8rrbHlARNAC3D/cP/g3ZcvQ1nYR050Pbgg1iz2Y0erymynj7MFthHuluSjX65JbrP/M/fJ+wUNVOLwAx5NBW2nXni/K62x5UEUeEbK57HG1FUp69HHhjBZH9bSvss8e3qhLoMuXPK5hBr2onWFc3UR6I9ZhuHVeJCi5LNAf4APVd7mHn4BhdViHUAXNmWieJ80Fs+PMa2C186YOBPZbYG/ieEUkagMwzJ788SoCucNdp5wnxfpuJVygFhglDrXGzujFtC82PrMohwuIhXBgiPY+kcolS1Hp0niOK/+7VHz6F+nsz8JVxnzWzkgToYjIHhGyuexxtRVKevRx4YwWR/W0r7LPHt6oS6DLlzyuYQarMAhFnhGyuexxtRVKevRx4YwWR/W0r7LPHt6oS6DLlzyuYQaLQH2onWFc3UR6I9ZhuHVeJCi5LNAf4APVd7mHn4BhdViHRwu7j4AAACAAgAAACEWgiPY+kcolS1Hp0niOK/+7VHz6F+nsz8JVxnzWzkgToYNAMkRfC4AAACAAgAAAAEXIIIj2PpHKJUtR6dJ4jiv/u1R8+hfp7M/CVcZ81s5IE6GARgg9qJ1hXN1EeiPWYbh1XiQouSzQH+AD1Xe5h5+AYXVYh0AAA=="</span>;
-
- <span class="kw">let </span>unsigned_psbt = Psbt::from_str(UNSIGNED_PSBT).unwrap();
- <span class="kw">let </span>signed_psbt = Psbt::from_str(SIGNED_PSBT).unwrap();
-
- <span class="kw">let </span>secp = Secp256k1::new();
-
- <span class="kw">let </span>(<span class="kw">_</span>, alice_pub, <span class="kw">_</span>) = setup_keys(ALICE_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
- <span class="kw">let </span>(<span class="kw">_</span>, bob_pub, <span class="kw">_</span>) = setup_keys(BOB_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
-
- <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(tr(bob_pub, pk(alice_pub))).unwrap();
- <span class="kw">let </span>(wallet_desc, <span class="kw">_</span>) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
-
- <span class="kw">let </span>policy_unsigned = wallet_desc
- .extract_policy(
- <span class="kw-2">&</span>SignersContainer::default(),
- BuildSatisfaction::Psbt(<span class="kw-2">&</span>unsigned_psbt),
- <span class="kw-2">&</span>secp,
- )
- .unwrap()
- .unwrap();
- <span class="kw">let </span>policy_signed = wallet_desc
- .extract_policy(
- <span class="kw-2">&</span>SignersContainer::default(),
- BuildSatisfaction::Psbt(<span class="kw-2">&</span>signed_psbt),
- <span class="kw-2">&</span>secp,
- )
- .unwrap()
- .unwrap();
-
- <span class="macro">assert_matches!</span>(policy_unsigned.item, SatisfiableItem::Thresh { <span class="kw-2">ref </span>items, threshold: <span class="number">1 </span>} <span class="kw">if </span>items.len() == <span class="number">2</span>);
- <span class="macro">assert_matches!</span>(policy_unsigned.satisfaction, Satisfaction::Partial { n: <span class="number">2</span>, m: <span class="number">1</span>, items, .. } <span class="kw">if </span>items.is_empty());
-
- <span class="macro">assert_matches!</span>(policy_signed.item, SatisfiableItem::Thresh { <span class="kw-2">ref </span>items, threshold: <span class="number">1 </span>} <span class="kw">if </span>items.len() == <span class="number">2</span>);
- <span class="macro">assert_matches!</span>(policy_signed.satisfaction, Satisfaction::PartialComplete { n: <span class="number">2</span>, m: <span class="number">1</span>, items, .. } <span class="kw">if </span>items == <span class="macro">vec!</span>[<span class="number">0</span>, <span class="number">1</span>]);
-
- <span class="kw">let </span>satisfied_items = <span class="kw">match </span>policy_signed.item {
- SatisfiableItem::Thresh { items, .. } => items,
- <span class="kw">_ </span>=> <span class="macro">unreachable!</span>(),
- };
-
- <span class="macro">assert_eq!</span>(
- satisfied_items[<span class="number">0</span>].satisfaction,
- Satisfaction::Complete {
- condition: Default::default()
- }
- );
- <span class="macro">assert_eq!</span>(
- satisfied_items[<span class="number">1</span>].satisfaction,
- Satisfaction::Complete {
- condition: Default::default()
- }
- );
- }
-}
-</code></pre></div>
-</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Source of the Rust file `crates/bdk/src/descriptor/template.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>template.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk/index.html">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
-<a href="#2" id="2">2</a>
-<a href="#3" id="3">3</a>
-<a href="#4" id="4">4</a>
-<a href="#5" id="5">5</a>
-<a href="#6" id="6">6</a>
-<a href="#7" id="7">7</a>
-<a href="#8" id="8">8</a>
-<a href="#9" id="9">9</a>
-<a href="#10" id="10">10</a>
-<a href="#11" id="11">11</a>
-<a href="#12" id="12">12</a>
-<a href="#13" id="13">13</a>
-<a href="#14" id="14">14</a>
-<a href="#15" id="15">15</a>
-<a href="#16" id="16">16</a>
-<a href="#17" id="17">17</a>
-<a href="#18" id="18">18</a>
-<a href="#19" id="19">19</a>
-<a href="#20" id="20">20</a>
-<a href="#21" id="21">21</a>
-<a href="#22" id="22">22</a>
-<a href="#23" id="23">23</a>
-<a href="#24" id="24">24</a>
-<a href="#25" id="25">25</a>
-<a href="#26" id="26">26</a>
-<a href="#27" id="27">27</a>
-<a href="#28" id="28">28</a>
-<a href="#29" id="29">29</a>
-<a href="#30" id="30">30</a>
-<a href="#31" id="31">31</a>
-<a href="#32" id="32">32</a>
-<a href="#33" id="33">33</a>
-<a href="#34" id="34">34</a>
-<a href="#35" id="35">35</a>
-<a href="#36" id="36">36</a>
-<a href="#37" id="37">37</a>
-<a href="#38" id="38">38</a>
-<a href="#39" id="39">39</a>
-<a href="#40" id="40">40</a>
-<a href="#41" id="41">41</a>
-<a href="#42" id="42">42</a>
-<a href="#43" id="43">43</a>
-<a href="#44" id="44">44</a>
-<a href="#45" id="45">45</a>
-<a href="#46" id="46">46</a>
-<a href="#47" id="47">47</a>
-<a href="#48" id="48">48</a>
-<a href="#49" id="49">49</a>
-<a href="#50" id="50">50</a>
-<a href="#51" id="51">51</a>
-<a href="#52" id="52">52</a>
-<a href="#53" id="53">53</a>
-<a href="#54" id="54">54</a>
-<a href="#55" id="55">55</a>
-<a href="#56" id="56">56</a>
-<a href="#57" id="57">57</a>
-<a href="#58" id="58">58</a>
-<a href="#59" id="59">59</a>
-<a href="#60" id="60">60</a>
-<a href="#61" id="61">61</a>
-<a href="#62" id="62">62</a>
-<a href="#63" id="63">63</a>
-<a href="#64" id="64">64</a>
-<a href="#65" id="65">65</a>
-<a href="#66" id="66">66</a>
-<a href="#67" id="67">67</a>
-<a href="#68" id="68">68</a>
-<a href="#69" id="69">69</a>
-<a href="#70" id="70">70</a>
-<a href="#71" id="71">71</a>
-<a href="#72" id="72">72</a>
-<a href="#73" id="73">73</a>
-<a href="#74" id="74">74</a>
-<a href="#75" id="75">75</a>
-<a href="#76" id="76">76</a>
-<a href="#77" id="77">77</a>
-<a href="#78" id="78">78</a>
-<a href="#79" id="79">79</a>
-<a href="#80" id="80">80</a>
-<a href="#81" id="81">81</a>
-<a href="#82" id="82">82</a>
-<a href="#83" id="83">83</a>
-<a href="#84" id="84">84</a>
-<a href="#85" id="85">85</a>
-<a href="#86" id="86">86</a>
-<a href="#87" id="87">87</a>
-<a href="#88" id="88">88</a>
-<a href="#89" id="89">89</a>
-<a href="#90" id="90">90</a>
-<a href="#91" id="91">91</a>
-<a href="#92" id="92">92</a>
-<a href="#93" id="93">93</a>
-<a href="#94" id="94">94</a>
-<a href="#95" id="95">95</a>
-<a href="#96" id="96">96</a>
-<a href="#97" id="97">97</a>
-<a href="#98" id="98">98</a>
-<a href="#99" id="99">99</a>
-<a href="#100" id="100">100</a>
-<a href="#101" id="101">101</a>
-<a href="#102" id="102">102</a>
-<a href="#103" id="103">103</a>
-<a href="#104" id="104">104</a>
-<a href="#105" id="105">105</a>
-<a href="#106" id="106">106</a>
-<a href="#107" id="107">107</a>
-<a href="#108" id="108">108</a>
-<a href="#109" id="109">109</a>
-<a href="#110" id="110">110</a>
-<a href="#111" id="111">111</a>
-<a href="#112" id="112">112</a>
-<a href="#113" id="113">113</a>
-<a href="#114" id="114">114</a>
-<a href="#115" id="115">115</a>
-<a href="#116" id="116">116</a>
-<a href="#117" id="117">117</a>
-<a href="#118" id="118">118</a>
-<a href="#119" id="119">119</a>
-<a href="#120" id="120">120</a>
-<a href="#121" id="121">121</a>
-<a href="#122" id="122">122</a>
-<a href="#123" id="123">123</a>
-<a href="#124" id="124">124</a>
-<a href="#125" id="125">125</a>
-<a href="#126" id="126">126</a>
-<a href="#127" id="127">127</a>
-<a href="#128" id="128">128</a>
-<a href="#129" id="129">129</a>
-<a href="#130" id="130">130</a>
-<a href="#131" id="131">131</a>
-<a href="#132" id="132">132</a>
-<a href="#133" id="133">133</a>
-<a href="#134" id="134">134</a>
-<a href="#135" id="135">135</a>
-<a href="#136" id="136">136</a>
-<a href="#137" id="137">137</a>
-<a href="#138" id="138">138</a>
-<a href="#139" id="139">139</a>
-<a href="#140" id="140">140</a>
-<a href="#141" id="141">141</a>
-<a href="#142" id="142">142</a>
-<a href="#143" id="143">143</a>
-<a href="#144" id="144">144</a>
-<a href="#145" id="145">145</a>
-<a href="#146" id="146">146</a>
-<a href="#147" id="147">147</a>
-<a href="#148" id="148">148</a>
-<a href="#149" id="149">149</a>
-<a href="#150" id="150">150</a>
-<a href="#151" id="151">151</a>
-<a href="#152" id="152">152</a>
-<a href="#153" id="153">153</a>
-<a href="#154" id="154">154</a>
-<a href="#155" id="155">155</a>
-<a href="#156" id="156">156</a>
-<a href="#157" id="157">157</a>
-<a href="#158" id="158">158</a>
-<a href="#159" id="159">159</a>
-<a href="#160" id="160">160</a>
-<a href="#161" id="161">161</a>
-<a href="#162" id="162">162</a>
-<a href="#163" id="163">163</a>
-<a href="#164" id="164">164</a>
-<a href="#165" id="165">165</a>
-<a href="#166" id="166">166</a>
-<a href="#167" id="167">167</a>
-<a href="#168" id="168">168</a>
-<a href="#169" id="169">169</a>
-<a href="#170" id="170">170</a>
-<a href="#171" id="171">171</a>
-<a href="#172" id="172">172</a>
-<a href="#173" id="173">173</a>
-<a href="#174" id="174">174</a>
-<a href="#175" id="175">175</a>
-<a href="#176" id="176">176</a>
-<a href="#177" id="177">177</a>
-<a href="#178" id="178">178</a>
-<a href="#179" id="179">179</a>
-<a href="#180" id="180">180</a>
-<a href="#181" id="181">181</a>
-<a href="#182" id="182">182</a>
-<a href="#183" id="183">183</a>
-<a href="#184" id="184">184</a>
-<a href="#185" id="185">185</a>
-<a href="#186" id="186">186</a>
-<a href="#187" id="187">187</a>
-<a href="#188" id="188">188</a>
-<a href="#189" id="189">189</a>
-<a href="#190" id="190">190</a>
-<a href="#191" id="191">191</a>
-<a href="#192" id="192">192</a>
-<a href="#193" id="193">193</a>
-<a href="#194" id="194">194</a>
-<a href="#195" id="195">195</a>
-<a href="#196" id="196">196</a>
-<a href="#197" id="197">197</a>
-<a href="#198" id="198">198</a>
-<a href="#199" id="199">199</a>
-<a href="#200" id="200">200</a>
-<a href="#201" id="201">201</a>
-<a href="#202" id="202">202</a>
-<a href="#203" id="203">203</a>
-<a href="#204" id="204">204</a>
-<a href="#205" id="205">205</a>
-<a href="#206" id="206">206</a>
-<a href="#207" id="207">207</a>
-<a href="#208" id="208">208</a>
-<a href="#209" id="209">209</a>
-<a href="#210" id="210">210</a>
-<a href="#211" id="211">211</a>
-<a href="#212" id="212">212</a>
-<a href="#213" id="213">213</a>
-<a href="#214" id="214">214</a>
-<a href="#215" id="215">215</a>
-<a href="#216" id="216">216</a>
-<a href="#217" id="217">217</a>
-<a href="#218" id="218">218</a>
-<a href="#219" id="219">219</a>
-<a href="#220" id="220">220</a>
-<a href="#221" id="221">221</a>
-<a href="#222" id="222">222</a>
-<a href="#223" id="223">223</a>
-<a href="#224" id="224">224</a>
-<a href="#225" id="225">225</a>
-<a href="#226" id="226">226</a>
-<a href="#227" id="227">227</a>
-<a href="#228" id="228">228</a>
-<a href="#229" id="229">229</a>
-<a href="#230" id="230">230</a>
-<a href="#231" id="231">231</a>
-<a href="#232" id="232">232</a>
-<a href="#233" id="233">233</a>
-<a href="#234" id="234">234</a>
-<a href="#235" id="235">235</a>
-<a href="#236" id="236">236</a>
-<a href="#237" id="237">237</a>
-<a href="#238" id="238">238</a>
-<a href="#239" id="239">239</a>
-<a href="#240" id="240">240</a>
-<a href="#241" id="241">241</a>
-<a href="#242" id="242">242</a>
-<a href="#243" id="243">243</a>
-<a href="#244" id="244">244</a>
-<a href="#245" id="245">245</a>
-<a href="#246" id="246">246</a>
-<a href="#247" id="247">247</a>
-<a href="#248" id="248">248</a>
-<a href="#249" id="249">249</a>
-<a href="#250" id="250">250</a>
-<a href="#251" id="251">251</a>
-<a href="#252" id="252">252</a>
-<a href="#253" id="253">253</a>
-<a href="#254" id="254">254</a>
-<a href="#255" id="255">255</a>
-<a href="#256" id="256">256</a>
-<a href="#257" id="257">257</a>
-<a href="#258" id="258">258</a>
-<a href="#259" id="259">259</a>
-<a href="#260" id="260">260</a>
-<a href="#261" id="261">261</a>
-<a href="#262" id="262">262</a>
-<a href="#263" id="263">263</a>
-<a href="#264" id="264">264</a>
-<a href="#265" id="265">265</a>
-<a href="#266" id="266">266</a>
-<a href="#267" id="267">267</a>
-<a href="#268" id="268">268</a>
-<a href="#269" id="269">269</a>
-<a href="#270" id="270">270</a>
-<a href="#271" id="271">271</a>
-<a href="#272" id="272">272</a>
-<a href="#273" id="273">273</a>
-<a href="#274" id="274">274</a>
-<a href="#275" id="275">275</a>
-<a href="#276" id="276">276</a>
-<a href="#277" id="277">277</a>
-<a href="#278" id="278">278</a>
-<a href="#279" id="279">279</a>
-<a href="#280" id="280">280</a>
-<a href="#281" id="281">281</a>
-<a href="#282" id="282">282</a>
-<a href="#283" id="283">283</a>
-<a href="#284" id="284">284</a>
-<a href="#285" id="285">285</a>
-<a href="#286" id="286">286</a>
-<a href="#287" id="287">287</a>
-<a href="#288" id="288">288</a>
-<a href="#289" id="289">289</a>
-<a href="#290" id="290">290</a>
-<a href="#291" id="291">291</a>
-<a href="#292" id="292">292</a>
-<a href="#293" id="293">293</a>
-<a href="#294" id="294">294</a>
-<a href="#295" id="295">295</a>
-<a href="#296" id="296">296</a>
-<a href="#297" id="297">297</a>
-<a href="#298" id="298">298</a>
-<a href="#299" id="299">299</a>
-<a href="#300" id="300">300</a>
-<a href="#301" id="301">301</a>
-<a href="#302" id="302">302</a>
-<a href="#303" id="303">303</a>
-<a href="#304" id="304">304</a>
-<a href="#305" id="305">305</a>
-<a href="#306" id="306">306</a>
-<a href="#307" id="307">307</a>
-<a href="#308" id="308">308</a>
-<a href="#309" id="309">309</a>
-<a href="#310" id="310">310</a>
-<a href="#311" id="311">311</a>
-<a href="#312" id="312">312</a>
-<a href="#313" id="313">313</a>
-<a href="#314" id="314">314</a>
-<a href="#315" id="315">315</a>
-<a href="#316" id="316">316</a>
-<a href="#317" id="317">317</a>
-<a href="#318" id="318">318</a>
-<a href="#319" id="319">319</a>
-<a href="#320" id="320">320</a>
-<a href="#321" id="321">321</a>
-<a href="#322" id="322">322</a>
-<a href="#323" id="323">323</a>
-<a href="#324" id="324">324</a>
-<a href="#325" id="325">325</a>
-<a href="#326" id="326">326</a>
-<a href="#327" id="327">327</a>
-<a href="#328" id="328">328</a>
-<a href="#329" id="329">329</a>
-<a href="#330" id="330">330</a>
-<a href="#331" id="331">331</a>
-<a href="#332" id="332">332</a>
-<a href="#333" id="333">333</a>
-<a href="#334" id="334">334</a>
-<a href="#335" id="335">335</a>
-<a href="#336" id="336">336</a>
-<a href="#337" id="337">337</a>
-<a href="#338" id="338">338</a>
-<a href="#339" id="339">339</a>
-<a href="#340" id="340">340</a>
-<a href="#341" id="341">341</a>
-<a href="#342" id="342">342</a>
-<a href="#343" id="343">343</a>
-<a href="#344" id="344">344</a>
-<a href="#345" id="345">345</a>
-<a href="#346" id="346">346</a>
-<a href="#347" id="347">347</a>
-<a href="#348" id="348">348</a>
-<a href="#349" id="349">349</a>
-<a href="#350" id="350">350</a>
-<a href="#351" id="351">351</a>
-<a href="#352" id="352">352</a>
-<a href="#353" id="353">353</a>
-<a href="#354" id="354">354</a>
-<a href="#355" id="355">355</a>
-<a href="#356" id="356">356</a>
-<a href="#357" id="357">357</a>
-<a href="#358" id="358">358</a>
-<a href="#359" id="359">359</a>
-<a href="#360" id="360">360</a>
-<a href="#361" id="361">361</a>
-<a href="#362" id="362">362</a>
-<a href="#363" id="363">363</a>
-<a href="#364" id="364">364</a>
-<a href="#365" id="365">365</a>
-<a href="#366" id="366">366</a>
-<a href="#367" id="367">367</a>
-<a href="#368" id="368">368</a>
-<a href="#369" id="369">369</a>
-<a href="#370" id="370">370</a>
-<a href="#371" id="371">371</a>
-<a href="#372" id="372">372</a>
-<a href="#373" id="373">373</a>
-<a href="#374" id="374">374</a>
-<a href="#375" id="375">375</a>
-<a href="#376" id="376">376</a>
-<a href="#377" id="377">377</a>
-<a href="#378" id="378">378</a>
-<a href="#379" id="379">379</a>
-<a href="#380" id="380">380</a>
-<a href="#381" id="381">381</a>
-<a href="#382" id="382">382</a>
-<a href="#383" id="383">383</a>
-<a href="#384" id="384">384</a>
-<a href="#385" id="385">385</a>
-<a href="#386" id="386">386</a>
-<a href="#387" id="387">387</a>
-<a href="#388" id="388">388</a>
-<a href="#389" id="389">389</a>
-<a href="#390" id="390">390</a>
-<a href="#391" id="391">391</a>
-<a href="#392" id="392">392</a>
-<a href="#393" id="393">393</a>
-<a href="#394" id="394">394</a>
-<a href="#395" id="395">395</a>
-<a href="#396" id="396">396</a>
-<a href="#397" id="397">397</a>
-<a href="#398" id="398">398</a>
-<a href="#399" id="399">399</a>
-<a href="#400" id="400">400</a>
-<a href="#401" id="401">401</a>
-<a href="#402" id="402">402</a>
-<a href="#403" id="403">403</a>
-<a href="#404" id="404">404</a>
-<a href="#405" id="405">405</a>
-<a href="#406" id="406">406</a>
-<a href="#407" id="407">407</a>
-<a href="#408" id="408">408</a>
-<a href="#409" id="409">409</a>
-<a href="#410" id="410">410</a>
-<a href="#411" id="411">411</a>
-<a href="#412" id="412">412</a>
-<a href="#413" id="413">413</a>
-<a href="#414" id="414">414</a>
-<a href="#415" id="415">415</a>
-<a href="#416" id="416">416</a>
-<a href="#417" id="417">417</a>
-<a href="#418" id="418">418</a>
-<a href="#419" id="419">419</a>
-<a href="#420" id="420">420</a>
-<a href="#421" id="421">421</a>
-<a href="#422" id="422">422</a>
-<a href="#423" id="423">423</a>
-<a href="#424" id="424">424</a>
-<a href="#425" id="425">425</a>
-<a href="#426" id="426">426</a>
-<a href="#427" id="427">427</a>
-<a href="#428" id="428">428</a>
-<a href="#429" id="429">429</a>
-<a href="#430" id="430">430</a>
-<a href="#431" id="431">431</a>
-<a href="#432" id="432">432</a>
-<a href="#433" id="433">433</a>
-<a href="#434" id="434">434</a>
-<a href="#435" id="435">435</a>
-<a href="#436" id="436">436</a>
-<a href="#437" id="437">437</a>
-<a href="#438" id="438">438</a>
-<a href="#439" id="439">439</a>
-<a href="#440" id="440">440</a>
-<a href="#441" id="441">441</a>
-<a href="#442" id="442">442</a>
-<a href="#443" id="443">443</a>
-<a href="#444" id="444">444</a>
-<a href="#445" id="445">445</a>
-<a href="#446" id="446">446</a>
-<a href="#447" id="447">447</a>
-<a href="#448" id="448">448</a>
-<a href="#449" id="449">449</a>
-<a href="#450" id="450">450</a>
-<a href="#451" id="451">451</a>
-<a href="#452" id="452">452</a>
-<a href="#453" id="453">453</a>
-<a href="#454" id="454">454</a>
-<a href="#455" id="455">455</a>
-<a href="#456" id="456">456</a>
-<a href="#457" id="457">457</a>
-<a href="#458" id="458">458</a>
-<a href="#459" id="459">459</a>
-<a href="#460" id="460">460</a>
-<a href="#461" id="461">461</a>
-<a href="#462" id="462">462</a>
-<a href="#463" id="463">463</a>
-<a href="#464" id="464">464</a>
-<a href="#465" id="465">465</a>
-<a href="#466" id="466">466</a>
-<a href="#467" id="467">467</a>
-<a href="#468" id="468">468</a>
-<a href="#469" id="469">469</a>
-<a href="#470" id="470">470</a>
-<a href="#471" id="471">471</a>
-<a href="#472" id="472">472</a>
-<a href="#473" id="473">473</a>
-<a href="#474" id="474">474</a>
-<a href="#475" id="475">475</a>
-<a href="#476" id="476">476</a>
-<a href="#477" id="477">477</a>
-<a href="#478" id="478">478</a>
-<a href="#479" id="479">479</a>
-<a href="#480" id="480">480</a>
-<a href="#481" id="481">481</a>
-<a href="#482" id="482">482</a>
-<a href="#483" id="483">483</a>
-<a href="#484" id="484">484</a>
-<a href="#485" id="485">485</a>
-<a href="#486" id="486">486</a>
-<a href="#487" id="487">487</a>
-<a href="#488" id="488">488</a>
-<a href="#489" id="489">489</a>
-<a href="#490" id="490">490</a>
-<a href="#491" id="491">491</a>
-<a href="#492" id="492">492</a>
-<a href="#493" id="493">493</a>
-<a href="#494" id="494">494</a>
-<a href="#495" id="495">495</a>
-<a href="#496" id="496">496</a>
-<a href="#497" id="497">497</a>
-<a href="#498" id="498">498</a>
-<a href="#499" id="499">499</a>
-<a href="#500" id="500">500</a>
-<a href="#501" id="501">501</a>
-<a href="#502" id="502">502</a>
-<a href="#503" id="503">503</a>
-<a href="#504" id="504">504</a>
-<a href="#505" id="505">505</a>
-<a href="#506" id="506">506</a>
-<a href="#507" id="507">507</a>
-<a href="#508" id="508">508</a>
-<a href="#509" id="509">509</a>
-<a href="#510" id="510">510</a>
-<a href="#511" id="511">511</a>
-<a href="#512" id="512">512</a>
-<a href="#513" id="513">513</a>
-<a href="#514" id="514">514</a>
-<a href="#515" id="515">515</a>
-<a href="#516" id="516">516</a>
-<a href="#517" id="517">517</a>
-<a href="#518" id="518">518</a>
-<a href="#519" id="519">519</a>
-<a href="#520" id="520">520</a>
-<a href="#521" id="521">521</a>
-<a href="#522" id="522">522</a>
-<a href="#523" id="523">523</a>
-<a href="#524" id="524">524</a>
-<a href="#525" id="525">525</a>
-<a href="#526" id="526">526</a>
-<a href="#527" id="527">527</a>
-<a href="#528" id="528">528</a>
-<a href="#529" id="529">529</a>
-<a href="#530" id="530">530</a>
-<a href="#531" id="531">531</a>
-<a href="#532" id="532">532</a>
-<a href="#533" id="533">533</a>
-<a href="#534" id="534">534</a>
-<a href="#535" id="535">535</a>
-<a href="#536" id="536">536</a>
-<a href="#537" id="537">537</a>
-<a href="#538" id="538">538</a>
-<a href="#539" id="539">539</a>
-<a href="#540" id="540">540</a>
-<a href="#541" id="541">541</a>
-<a href="#542" id="542">542</a>
-<a href="#543" id="543">543</a>
-<a href="#544" id="544">544</a>
-<a href="#545" id="545">545</a>
-<a href="#546" id="546">546</a>
-<a href="#547" id="547">547</a>
-<a href="#548" id="548">548</a>
-<a href="#549" id="549">549</a>
-<a href="#550" id="550">550</a>
-<a href="#551" id="551">551</a>
-<a href="#552" id="552">552</a>
-<a href="#553" id="553">553</a>
-<a href="#554" id="554">554</a>
-<a href="#555" id="555">555</a>
-<a href="#556" id="556">556</a>
-<a href="#557" id="557">557</a>
-<a href="#558" id="558">558</a>
-<a href="#559" id="559">559</a>
-<a href="#560" id="560">560</a>
-<a href="#561" id="561">561</a>
-<a href="#562" id="562">562</a>
-<a href="#563" id="563">563</a>
-<a href="#564" id="564">564</a>
-<a href="#565" id="565">565</a>
-<a href="#566" id="566">566</a>
-<a href="#567" id="567">567</a>
-<a href="#568" id="568">568</a>
-<a href="#569" id="569">569</a>
-<a href="#570" id="570">570</a>
-<a href="#571" id="571">571</a>
-<a href="#572" id="572">572</a>
-<a href="#573" id="573">573</a>
-<a href="#574" id="574">574</a>
-<a href="#575" id="575">575</a>
-<a href="#576" id="576">576</a>
-<a href="#577" id="577">577</a>
-<a href="#578" id="578">578</a>
-<a href="#579" id="579">579</a>
-<a href="#580" id="580">580</a>
-<a href="#581" id="581">581</a>
-<a href="#582" id="582">582</a>
-<a href="#583" id="583">583</a>
-<a href="#584" id="584">584</a>
-<a href="#585" id="585">585</a>
-<a href="#586" id="586">586</a>
-<a href="#587" id="587">587</a>
-<a href="#588" id="588">588</a>
-<a href="#589" id="589">589</a>
-<a href="#590" id="590">590</a>
-<a href="#591" id="591">591</a>
-<a href="#592" id="592">592</a>
-<a href="#593" id="593">593</a>
-<a href="#594" id="594">594</a>
-<a href="#595" id="595">595</a>
-<a href="#596" id="596">596</a>
-<a href="#597" id="597">597</a>
-<a href="#598" id="598">598</a>
-<a href="#599" id="599">599</a>
-<a href="#600" id="600">600</a>
-<a href="#601" id="601">601</a>
-<a href="#602" id="602">602</a>
-<a href="#603" id="603">603</a>
-<a href="#604" id="604">604</a>
-<a href="#605" id="605">605</a>
-<a href="#606" id="606">606</a>
-<a href="#607" id="607">607</a>
-<a href="#608" id="608">608</a>
-<a href="#609" id="609">609</a>
-<a href="#610" id="610">610</a>
-<a href="#611" id="611">611</a>
-<a href="#612" id="612">612</a>
-<a href="#613" id="613">613</a>
-<a href="#614" id="614">614</a>
-<a href="#615" id="615">615</a>
-<a href="#616" id="616">616</a>
-<a href="#617" id="617">617</a>
-<a href="#618" id="618">618</a>
-<a href="#619" id="619">619</a>
-<a href="#620" id="620">620</a>
-<a href="#621" id="621">621</a>
-<a href="#622" id="622">622</a>
-<a href="#623" id="623">623</a>
-<a href="#624" id="624">624</a>
-<a href="#625" id="625">625</a>
-<a href="#626" id="626">626</a>
-<a href="#627" id="627">627</a>
-<a href="#628" id="628">628</a>
-<a href="#629" id="629">629</a>
-<a href="#630" id="630">630</a>
-<a href="#631" id="631">631</a>
-<a href="#632" id="632">632</a>
-<a href="#633" id="633">633</a>
-<a href="#634" id="634">634</a>
-<a href="#635" id="635">635</a>
-<a href="#636" id="636">636</a>
-<a href="#637" id="637">637</a>
-<a href="#638" id="638">638</a>
-<a href="#639" id="639">639</a>
-<a href="#640" id="640">640</a>
-<a href="#641" id="641">641</a>
-<a href="#642" id="642">642</a>
-<a href="#643" id="643">643</a>
-<a href="#644" id="644">644</a>
-<a href="#645" id="645">645</a>
-<a href="#646" id="646">646</a>
-<a href="#647" id="647">647</a>
-<a href="#648" id="648">648</a>
-<a href="#649" id="649">649</a>
-<a href="#650" id="650">650</a>
-<a href="#651" id="651">651</a>
-<a href="#652" id="652">652</a>
-<a href="#653" id="653">653</a>
-<a href="#654" id="654">654</a>
-<a href="#655" id="655">655</a>
-<a href="#656" id="656">656</a>
-<a href="#657" id="657">657</a>
-<a href="#658" id="658">658</a>
-<a href="#659" id="659">659</a>
-<a href="#660" id="660">660</a>
-<a href="#661" id="661">661</a>
-<a href="#662" id="662">662</a>
-<a href="#663" id="663">663</a>
-<a href="#664" id="664">664</a>
-<a href="#665" id="665">665</a>
-<a href="#666" id="666">666</a>
-<a href="#667" id="667">667</a>
-<a href="#668" id="668">668</a>
-<a href="#669" id="669">669</a>
-<a href="#670" id="670">670</a>
-<a href="#671" id="671">671</a>
-<a href="#672" id="672">672</a>
-<a href="#673" id="673">673</a>
-<a href="#674" id="674">674</a>
-<a href="#675" id="675">675</a>
-<a href="#676" id="676">676</a>
-<a href="#677" id="677">677</a>
-<a href="#678" id="678">678</a>
-<a href="#679" id="679">679</a>
-<a href="#680" id="680">680</a>
-<a href="#681" id="681">681</a>
-<a href="#682" id="682">682</a>
-<a href="#683" id="683">683</a>
-<a href="#684" id="684">684</a>
-<a href="#685" id="685">685</a>
-<a href="#686" id="686">686</a>
-<a href="#687" id="687">687</a>
-<a href="#688" id="688">688</a>
-<a href="#689" id="689">689</a>
-<a href="#690" id="690">690</a>
-<a href="#691" id="691">691</a>
-<a href="#692" id="692">692</a>
-<a href="#693" id="693">693</a>
-<a href="#694" id="694">694</a>
-<a href="#695" id="695">695</a>
-<a href="#696" id="696">696</a>
-<a href="#697" id="697">697</a>
-<a href="#698" id="698">698</a>
-<a href="#699" id="699">699</a>
-<a href="#700" id="700">700</a>
-<a href="#701" id="701">701</a>
-<a href="#702" id="702">702</a>
-<a href="#703" id="703">703</a>
-<a href="#704" id="704">704</a>
-<a href="#705" id="705">705</a>
-<a href="#706" id="706">706</a>
-<a href="#707" id="707">707</a>
-<a href="#708" id="708">708</a>
-<a href="#709" id="709">709</a>
-<a href="#710" id="710">710</a>
-<a href="#711" id="711">711</a>
-<a href="#712" id="712">712</a>
-<a href="#713" id="713">713</a>
-<a href="#714" id="714">714</a>
-<a href="#715" id="715">715</a>
-<a href="#716" id="716">716</a>
-<a href="#717" id="717">717</a>
-<a href="#718" id="718">718</a>
-<a href="#719" id="719">719</a>
-<a href="#720" id="720">720</a>
-<a href="#721" id="721">721</a>
-<a href="#722" id="722">722</a>
-<a href="#723" id="723">723</a>
-<a href="#724" id="724">724</a>
-<a href="#725" id="725">725</a>
-<a href="#726" id="726">726</a>
-<a href="#727" id="727">727</a>
-<a href="#728" id="728">728</a>
-<a href="#729" id="729">729</a>
-<a href="#730" id="730">730</a>
-<a href="#731" id="731">731</a>
-<a href="#732" id="732">732</a>
-<a href="#733" id="733">733</a>
-<a href="#734" id="734">734</a>
-<a href="#735" id="735">735</a>
-<a href="#736" id="736">736</a>
-<a href="#737" id="737">737</a>
-<a href="#738" id="738">738</a>
-<a href="#739" id="739">739</a>
-<a href="#740" id="740">740</a>
-<a href="#741" id="741">741</a>
-<a href="#742" id="742">742</a>
-<a href="#743" id="743">743</a>
-<a href="#744" id="744">744</a>
-<a href="#745" id="745">745</a>
-<a href="#746" id="746">746</a>
-<a href="#747" id="747">747</a>
-<a href="#748" id="748">748</a>
-<a href="#749" id="749">749</a>
-<a href="#750" id="750">750</a>
-<a href="#751" id="751">751</a>
-<a href="#752" id="752">752</a>
-<a href="#753" id="753">753</a>
-<a href="#754" id="754">754</a>
-<a href="#755" id="755">755</a>
-<a href="#756" id="756">756</a>
-<a href="#757" id="757">757</a>
-<a href="#758" id="758">758</a>
-<a href="#759" id="759">759</a>
-<a href="#760" id="760">760</a>
-<a href="#761" id="761">761</a>
-<a href="#762" id="762">762</a>
-<a href="#763" id="763">763</a>
-<a href="#764" id="764">764</a>
-<a href="#765" id="765">765</a>
-<a href="#766" id="766">766</a>
-<a href="#767" id="767">767</a>
-<a href="#768" id="768">768</a>
-<a href="#769" id="769">769</a>
-<a href="#770" id="770">770</a>
-<a href="#771" id="771">771</a>
-<a href="#772" id="772">772</a>
-<a href="#773" id="773">773</a>
-<a href="#774" id="774">774</a>
-<a href="#775" id="775">775</a>
-<a href="#776" id="776">776</a>
-<a href="#777" id="777">777</a>
-<a href="#778" id="778">778</a>
-<a href="#779" id="779">779</a>
-<a href="#780" id="780">780</a>
-<a href="#781" id="781">781</a>
-<a href="#782" id="782">782</a>
-<a href="#783" id="783">783</a>
-<a href="#784" id="784">784</a>
-<a href="#785" id="785">785</a>
-<a href="#786" id="786">786</a>
-<a href="#787" id="787">787</a>
-<a href="#788" id="788">788</a>
-<a href="#789" id="789">789</a>
-<a href="#790" id="790">790</a>
-<a href="#791" id="791">791</a>
-<a href="#792" id="792">792</a>
-<a href="#793" id="793">793</a>
-<a href="#794" id="794">794</a>
-<a href="#795" id="795">795</a>
-<a href="#796" id="796">796</a>
-<a href="#797" id="797">797</a>
-<a href="#798" id="798">798</a>
-<a href="#799" id="799">799</a>
-<a href="#800" id="800">800</a>
-<a href="#801" id="801">801</a>
-<a href="#802" id="802">802</a>
-<a href="#803" id="803">803</a>
-<a href="#804" id="804">804</a>
-<a href="#805" id="805">805</a>
-<a href="#806" id="806">806</a>
-<a href="#807" id="807">807</a>
-<a href="#808" id="808">808</a>
-<a href="#809" id="809">809</a>
-<a href="#810" id="810">810</a>
-<a href="#811" id="811">811</a>
-<a href="#812" id="812">812</a>
-<a href="#813" id="813">813</a>
-<a href="#814" id="814">814</a>
-<a href="#815" id="815">815</a>
-<a href="#816" id="816">816</a>
-<a href="#817" id="817">817</a>
-<a href="#818" id="818">818</a>
-<a href="#819" id="819">819</a>
-<a href="#820" id="820">820</a>
-<a href="#821" id="821">821</a>
-<a href="#822" id="822">822</a>
-<a href="#823" id="823">823</a>
-<a href="#824" id="824">824</a>
-<a href="#825" id="825">825</a>
-<a href="#826" id="826">826</a>
-<a href="#827" id="827">827</a>
-<a href="#828" id="828">828</a>
-<a href="#829" id="829">829</a>
-<a href="#830" id="830">830</a>
-<a href="#831" id="831">831</a>
-<a href="#832" id="832">832</a>
-<a href="#833" id="833">833</a>
-<a href="#834" id="834">834</a>
-<a href="#835" id="835">835</a>
-<a href="#836" id="836">836</a>
-<a href="#837" id="837">837</a>
-<a href="#838" id="838">838</a>
-<a href="#839" id="839">839</a>
-<a href="#840" id="840">840</a>
-<a href="#841" id="841">841</a>
-<a href="#842" id="842">842</a>
-<a href="#843" id="843">843</a>
-<a href="#844" id="844">844</a>
-<a href="#845" id="845">845</a>
-<a href="#846" id="846">846</a>
-<a href="#847" id="847">847</a>
-<a href="#848" id="848">848</a>
-<a href="#849" id="849">849</a>
-<a href="#850" id="850">850</a>
-<a href="#851" id="851">851</a>
-<a href="#852" id="852">852</a>
-<a href="#853" id="853">853</a>
-<a href="#854" id="854">854</a>
-<a href="#855" id="855">855</a>
-<a href="#856" id="856">856</a>
-<a href="#857" id="857">857</a>
-<a href="#858" id="858">858</a>
-<a href="#859" id="859">859</a>
-<a href="#860" id="860">860</a>
-<a href="#861" id="861">861</a>
-<a href="#862" id="862">862</a>
-<a href="#863" id="863">863</a>
-<a href="#864" id="864">864</a>
-<a href="#865" id="865">865</a>
-<a href="#866" id="866">866</a>
-<a href="#867" id="867">867</a>
-<a href="#868" id="868">868</a>
-<a href="#869" id="869">869</a>
-<a href="#870" id="870">870</a>
-<a href="#871" id="871">871</a>
-<a href="#872" id="872">872</a>
-<a href="#873" id="873">873</a>
-<a href="#874" id="874">874</a>
-<a href="#875" id="875">875</a>
-<a href="#876" id="876">876</a>
-<a href="#877" id="877">877</a>
-<a href="#878" id="878">878</a>
-<a href="#879" id="879">879</a>
-<a href="#880" id="880">880</a>
-<a href="#881" id="881">881</a>
-<a href="#882" id="882">882</a>
-<a href="#883" id="883">883</a>
-<a href="#884" id="884">884</a>
-<a href="#885" id="885">885</a>
-<a href="#886" id="886">886</a>
-<a href="#887" id="887">887</a>
-<a href="#888" id="888">888</a>
-<a href="#889" id="889">889</a>
-<a href="#890" id="890">890</a>
-<a href="#891" id="891">891</a>
-<a href="#892" id="892">892</a>
-<a href="#893" id="893">893</a>
-<a href="#894" id="894">894</a>
-<a href="#895" id="895">895</a>
-<a href="#896" id="896">896</a>
-<a href="#897" id="897">897</a>
-<a href="#898" id="898">898</a>
-<a href="#899" id="899">899</a>
-<a href="#900" id="900">900</a>
-<a href="#901" id="901">901</a>
-<a href="#902" id="902">902</a>
-<a href="#903" id="903">903</a>
-<a href="#904" id="904">904</a>
-<a href="#905" id="905">905</a>
-<a href="#906" id="906">906</a>
-<a href="#907" id="907">907</a>
-<a href="#908" id="908">908</a>
-<a href="#909" id="909">909</a>
-<a href="#910" id="910">910</a>
-<a href="#911" id="911">911</a>
-<a href="#912" id="912">912</a>
-<a href="#913" id="913">913</a>
-<a href="#914" id="914">914</a>
-<a href="#915" id="915">915</a>
-<a href="#916" id="916">916</a>
-<a href="#917" id="917">917</a>
-<a href="#918" id="918">918</a>
-<a href="#919" id="919">919</a>
-<a href="#920" id="920">920</a>
-<a href="#921" id="921">921</a>
-<a href="#922" id="922">922</a>
-<a href="#923" id="923">923</a>
-<a href="#924" id="924">924</a>
-<a href="#925" id="925">925</a>
-<a href="#926" id="926">926</a>
-<a href="#927" id="927">927</a>
-<a href="#928" id="928">928</a>
-<a href="#929" id="929">929</a>
-<a href="#930" id="930">930</a>
-<a href="#931" id="931">931</a>
-<a href="#932" id="932">932</a>
-<a href="#933" id="933">933</a>
-<a href="#934" id="934">934</a>
-<a href="#935" id="935">935</a>
-<a href="#936" id="936">936</a>
-<a href="#937" id="937">937</a>
-<a href="#938" id="938">938</a>
-<a href="#939" id="939">939</a>
-<a href="#940" id="940">940</a>
-<a href="#941" id="941">941</a>
-<a href="#942" id="942">942</a>
-<a href="#943" id="943">943</a>
-<a href="#944" id="944">944</a>
-<a href="#945" id="945">945</a>
-<a href="#946" id="946">946</a>
-<a href="#947" id="947">947</a>
-<a href="#948" id="948">948</a>
-<a href="#949" id="949">949</a>
-<a href="#950" id="950">950</a>
-<a href="#951" id="951">951</a>
-<a href="#952" id="952">952</a>
-<a href="#953" id="953">953</a>
-<a href="#954" id="954">954</a>
-<a href="#955" id="955">955</a>
-<a href="#956" id="956">956</a>
-<a href="#957" id="957">957</a>
-<a href="#958" id="958">958</a>
-<a href="#959" id="959">959</a>
-<a href="#960" id="960">960</a>
-<a href="#961" id="961">961</a>
-<a href="#962" id="962">962</a>
-<a href="#963" id="963">963</a>
-<a href="#964" id="964">964</a>
-<a href="#965" id="965">965</a>
-<a href="#966" id="966">966</a>
-<a href="#967" id="967">967</a>
-<a href="#968" id="968">968</a>
-<a href="#969" id="969">969</a>
-<a href="#970" id="970">970</a>
-<a href="#971" id="971">971</a>
-<a href="#972" id="972">972</a>
-<a href="#973" id="973">973</a>
-<a href="#974" id="974">974</a>
-<a href="#975" id="975">975</a>
-<a href="#976" id="976">976</a>
-<a href="#977" id="977">977</a>
-<a href="#978" id="978">978</a>
-<a href="#979" id="979">979</a>
-<a href="#980" id="980">980</a>
-<a href="#981" id="981">981</a>
-<a href="#982" id="982">982</a>
-<a href="#983" id="983">983</a>
-<a href="#984" id="984">984</a>
-<a href="#985" id="985">985</a>
-</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-</span><span class="doccomment">//! Descriptor templates
-//!
-//! This module contains the definition of various common script templates that are ready to be
-//! used. See the documentation of each template for an example.
-
-</span><span class="kw">use </span>bitcoin::bip32;
-<span class="kw">use </span>bitcoin::Network;
-
-<span class="kw">use </span>miniscript::{Legacy, Segwitv0, Tap};
-
-<span class="kw">use super</span>::{ExtendedDescriptor, IntoWalletDescriptor, KeyMap};
-<span class="kw">use </span><span class="kw">crate</span>::descriptor::DescriptorError;
-<span class="kw">use </span><span class="kw">crate</span>::keys::{DerivableKey, IntoDescriptorKey, ValidNetworks};
-<span class="kw">use </span><span class="kw">crate</span>::wallet::utils::SecpCtx;
-<span class="kw">use crate</span>::{descriptor, KeychainKind};
-
-<span class="doccomment">/// Type alias for the return type of [`DescriptorTemplate`], [`descriptor!`](crate::descriptor!) and others
-</span><span class="kw">pub type </span>DescriptorTemplateOut = (ExtendedDescriptor, KeyMap, ValidNetworks);
-
-<span class="doccomment">/// Trait for descriptor templates that can be built into a full descriptor
-///
-/// Since [`IntoWalletDescriptor`] is implemented for any [`DescriptorTemplate`], they can also be
-/// passed directly to the [`Wallet`](crate::Wallet) constructor.
-///
-/// ## Example
-///
-/// ```
-/// use bdk::descriptor::error::Error as DescriptorError;
-/// use bdk::keys::{IntoDescriptorKey, KeyError};
-/// use bdk::miniscript::Legacy;
-/// use bdk::template::{DescriptorTemplate, DescriptorTemplateOut};
-/// use bitcoin::Network;
-///
-/// struct MyP2PKH<K: IntoDescriptorKey<Legacy>>(K);
-///
-/// impl<K: IntoDescriptorKey<Legacy>> DescriptorTemplate for MyP2PKH<K> {
-/// fn build(self, network: Network) -> Result<DescriptorTemplateOut, DescriptorError> {
-/// Ok(bdk::descriptor!(pkh(self.0))?)
-/// }
-/// }
-/// ```
-</span><span class="kw">pub trait </span>DescriptorTemplate {
- <span class="doccomment">/// Build the complete descriptor
- </span><span class="kw">fn </span>build(<span class="self">self</span>, network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError>;
-}
-
-<span class="doccomment">/// Turns a [`DescriptorTemplate`] into a valid wallet descriptor by calling its
-/// [`build`](DescriptorTemplate::build) method
-</span><span class="kw">impl</span><T: DescriptorTemplate> IntoWalletDescriptor <span class="kw">for </span>T {
- <span class="kw">fn </span>into_wallet_descriptor(
- <span class="self">self</span>,
- secp: <span class="kw-2">&</span>SecpCtx,
- network: Network,
- ) -> <span class="prelude-ty">Result</span><(ExtendedDescriptor, KeyMap), DescriptorError> {
- <span class="self">self</span>.build(network)<span class="question-mark">?</span>.into_wallet_descriptor(secp, network)
- }
-}
-
-<span class="doccomment">/// P2PKH template. Expands to a descriptor `pkh(key)`
-///
-/// ## Example
-///
-/// ```
-/// # use bdk::bitcoin::{PrivateKey, Network};
-/// # use bdk::Wallet;
-/// # use bdk::KeychainKind;
-/// use bdk::template::P2Pkh;
-///
-/// let key =
-/// bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
-/// let mut wallet = Wallet::new_no_persist(P2Pkh(key), None, Network::Testnet)?;
-///
-/// assert_eq!(
-/// wallet
-/// .next_unused_address(KeychainKind::External)?
-/// .to_string(),
-/// "mwJ8hxFYW19JLuc65RCTaP4v1rzVU8cVMT"
-/// );
-/// # Ok::<_, Box<dyn std::error::Error>>(())
-/// ```
-</span><span class="kw">pub struct </span>P2Pkh<K: IntoDescriptorKey<Legacy>>(<span class="kw">pub </span>K);
-
-<span class="kw">impl</span><K: IntoDescriptorKey<Legacy>> DescriptorTemplate <span class="kw">for </span>P2Pkh<K> {
- <span class="kw">fn </span>build(<span class="self">self</span>, _network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
- <span class="macro">descriptor!</span>(pkh(<span class="self">self</span>.<span class="number">0</span>))
- }
-}
-
-<span class="doccomment">/// P2WPKH-P2SH template. Expands to a descriptor `sh(wpkh(key))`
-///
-/// ## Example
-///
-/// ```
-/// # use bdk::bitcoin::{PrivateKey, Network};
-/// # use bdk::Wallet;
-/// # use bdk::KeychainKind;
-/// use bdk::template::P2Wpkh_P2Sh;
-///
-/// let key =
-/// bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
-/// let mut wallet = Wallet::new_no_persist(P2Wpkh_P2Sh(key), None, Network::Testnet)?;
-///
-/// assert_eq!(
-/// wallet
-/// .next_unused_address(KeychainKind::External)?
-/// .to_string(),
-/// "2NB4ox5VDRw1ecUv6SnT3VQHPXveYztRqk5"
-/// );
-/// # Ok::<_, Box<dyn std::error::Error>>(())
-/// ```
-</span><span class="attr">#[allow(non_camel_case_types)]
-</span><span class="kw">pub struct </span>P2Wpkh_P2Sh<K: IntoDescriptorKey<Segwitv0>>(<span class="kw">pub </span>K);
-
-<span class="kw">impl</span><K: IntoDescriptorKey<Segwitv0>> DescriptorTemplate <span class="kw">for </span>P2Wpkh_P2Sh<K> {
- <span class="kw">fn </span>build(<span class="self">self</span>, _network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
- <span class="macro">descriptor!</span>(sh(wpkh(<span class="self">self</span>.<span class="number">0</span>)))
- }
-}
-
-<span class="doccomment">/// P2WPKH template. Expands to a descriptor `wpkh(key)`
-///
-/// ## Example
-///
-/// ```
-/// # use bdk::bitcoin::{PrivateKey, Network};
-/// # use bdk::{Wallet};
-/// # use bdk::KeychainKind;
-/// use bdk::template::P2Wpkh;
-///
-/// let key =
-/// bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
-/// let mut wallet = Wallet::new_no_persist(P2Wpkh(key), None, Network::Testnet)?;
-///
-/// assert_eq!(
-/// wallet
-/// .next_unused_address(KeychainKind::External)?
-/// .to_string(),
-/// "tb1q4525hmgw265tl3drrl8jjta7ayffu6jf68ltjd"
-/// );
-/// # Ok::<_, Box<dyn std::error::Error>>(())
-/// ```
-</span><span class="kw">pub struct </span>P2Wpkh<K: IntoDescriptorKey<Segwitv0>>(<span class="kw">pub </span>K);
-
-<span class="kw">impl</span><K: IntoDescriptorKey<Segwitv0>> DescriptorTemplate <span class="kw">for </span>P2Wpkh<K> {
- <span class="kw">fn </span>build(<span class="self">self</span>, _network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
- <span class="macro">descriptor!</span>(wpkh(<span class="self">self</span>.<span class="number">0</span>))
- }
-}
-
-<span class="doccomment">/// P2TR template. Expands to a descriptor `tr(key)`
-///
-/// ## Example
-///
-/// ```
-/// # use bdk::bitcoin::{PrivateKey, Network};
-/// # use bdk::Wallet;
-/// # use bdk::KeychainKind;
-/// use bdk::template::P2TR;
-///
-/// let key =
-/// bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
-/// let mut wallet = Wallet::new_no_persist(P2TR(key), None, Network::Testnet)?;
-///
-/// assert_eq!(
-/// wallet
-/// .next_unused_address(KeychainKind::External)?
-/// .to_string(),
-/// "tb1pvjf9t34fznr53u5tqhejz4nr69luzkhlvsdsdfq9pglutrpve2xq7hps46"
-/// );
-/// # Ok::<_, Box<dyn std::error::Error>>(())
-/// ```
-</span><span class="kw">pub struct </span>P2TR<K: IntoDescriptorKey<Tap>>(<span class="kw">pub </span>K);
-
-<span class="kw">impl</span><K: IntoDescriptorKey<Tap>> DescriptorTemplate <span class="kw">for </span>P2TR<K> {
- <span class="kw">fn </span>build(<span class="self">self</span>, _network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
- <span class="macro">descriptor!</span>(tr(<span class="self">self</span>.<span class="number">0</span>))
- }
-}
-
-<span class="doccomment">/// BIP44 template. Expands to `pkh(key/44'/{0,1}'/0'/{0,1}/*)`
-///
-/// Since there are hardened derivation steps, this template requires a private derivable key (generally a `xprv`/`tprv`).
-///
-/// See [`Bip44Public`] for a template that can work with a `xpub`/`tpub`.
-///
-/// ## Example
-///
-/// ```
-/// # use std::str::FromStr;
-/// # use bdk::bitcoin::{PrivateKey, Network};
-/// # use bdk::{Wallet, KeychainKind};
-/// use bdk::template::Bip44;
-///
-/// let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
-/// let mut wallet = Wallet::new_no_persist(
-/// Bip44(key.clone(), KeychainKind::External),
-/// Some(Bip44(key, KeychainKind::Internal)),
-/// Network::Testnet,
-/// )?;
-///
-/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "mmogjc7HJEZkrLqyQYqJmxUqFaC7i4uf89");
-/// assert_eq!(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), "pkh([c55b303f/44'/1'/0']tpubDCuorCpzvYS2LCD75BR46KHE8GdDeg1wsAgNZeNr6DaB5gQK1o14uErKwKLuFmeemkQ6N2m3rNgvctdJLyr7nwu2yia7413Hhg8WWE44cgT/0/*)#5wrnv0xt");
-/// # Ok::<_, Box<dyn std::error::Error>>(())
-/// ```
-</span><span class="kw">pub struct </span>Bip44<K: DerivableKey<Legacy>>(<span class="kw">pub </span>K, <span class="kw">pub </span>KeychainKind);
-
-<span class="kw">impl</span><K: DerivableKey<Legacy>> DescriptorTemplate <span class="kw">for </span>Bip44<K> {
- <span class="kw">fn </span>build(<span class="self">self</span>, network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
- P2Pkh(legacy::make_bipxx_private(<span class="number">44</span>, <span class="self">self</span>.<span class="number">0</span>, <span class="self">self</span>.<span class="number">1</span>, network)<span class="question-mark">?</span>).build(network)
- }
-}
-
-<span class="doccomment">/// BIP44 public template. Expands to `pkh(key/{0,1}/*)`
-///
-/// This assumes that the key used has already been derived with `m/44'/0'/0'` for Mainnet or `m/44'/1'/0'` for Testnet.
-///
-/// This template requires the parent fingerprint to populate correctly the metadata of PSBTs.
-///
-/// See [`Bip44`] for a template that does the full derivation, but requires private data
-/// for the key.
-///
-/// ## Example
-///
-/// ```
-/// # use std::str::FromStr;
-/// # use bdk::bitcoin::{PrivateKey, Network};
-/// # use bdk::{Wallet, KeychainKind};
-/// use bdk::template::Bip44Public;
-///
-/// let key = bitcoin::bip32::Xpub::from_str("tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU")?;
-/// let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
-/// let mut wallet = Wallet::new_no_persist(
-/// Bip44Public(key.clone(), fingerprint, KeychainKind::External),
-/// Some(Bip44Public(key, fingerprint, KeychainKind::Internal)),
-/// Network::Testnet,
-/// )?;
-///
-/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "miNG7dJTzJqNbFS19svRdTCisC65dsubtR");
-/// assert_eq!(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), "pkh([c55b303f/44'/1'/0']tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU/0/*)#cfhumdqz");
-/// # Ok::<_, Box<dyn std::error::Error>>(())
-/// ```
-</span><span class="kw">pub struct </span>Bip44Public<K: DerivableKey<Legacy>>(<span class="kw">pub </span>K, <span class="kw">pub </span>bip32::Fingerprint, <span class="kw">pub </span>KeychainKind);
-
-<span class="kw">impl</span><K: DerivableKey<Legacy>> DescriptorTemplate <span class="kw">for </span>Bip44Public<K> {
- <span class="kw">fn </span>build(<span class="self">self</span>, network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
- P2Pkh(legacy::make_bipxx_public(
- <span class="number">44</span>, <span class="self">self</span>.<span class="number">0</span>, <span class="self">self</span>.<span class="number">1</span>, <span class="self">self</span>.<span class="number">2</span>, network,
- )<span class="question-mark">?</span>)
- .build(network)
- }
-}
-
-<span class="doccomment">/// BIP49 template. Expands to `sh(wpkh(key/49'/{0,1}'/0'/{0,1}/*))`
-///
-/// Since there are hardened derivation steps, this template requires a private derivable key (generally a `xprv`/`tprv`).
-///
-/// See [`Bip49Public`] for a template that can work with a `xpub`/`tpub`.
-///
-/// ## Example
-///
-/// ```
-/// # use std::str::FromStr;
-/// # use bdk::bitcoin::{PrivateKey, Network};
-/// # use bdk::{Wallet, KeychainKind};
-/// use bdk::template::Bip49;
-///
-/// let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
-/// let mut wallet = Wallet::new_no_persist(
-/// Bip49(key.clone(), KeychainKind::External),
-/// Some(Bip49(key, KeychainKind::Internal)),
-/// Network::Testnet,
-/// )?;
-///
-/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "2N4zkWAoGdUv4NXhSsU8DvS5MB36T8nKHEB");
-/// assert_eq!(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), "sh(wpkh([c55b303f/49'/1'/0']tpubDDYr4kdnZgjjShzYNjZUZXUUtpXaofdkMaipyS8ThEh45qFmhT4hKYways7UXmg6V7het1QiFo9kf4kYUXyDvV4rHEyvSpys9pjCB3pukxi/0/*))#s9vxlc8e");
-/// # Ok::<_, Box<dyn std::error::Error>>(())
-/// ```
-</span><span class="kw">pub struct </span>Bip49<K: DerivableKey<Segwitv0>>(<span class="kw">pub </span>K, <span class="kw">pub </span>KeychainKind);
-
-<span class="kw">impl</span><K: DerivableKey<Segwitv0>> DescriptorTemplate <span class="kw">for </span>Bip49<K> {
- <span class="kw">fn </span>build(<span class="self">self</span>, network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
- P2Wpkh_P2Sh(segwit_v0::make_bipxx_private(<span class="number">49</span>, <span class="self">self</span>.<span class="number">0</span>, <span class="self">self</span>.<span class="number">1</span>, network)<span class="question-mark">?</span>).build(network)
- }
-}
-
-<span class="doccomment">/// BIP49 public template. Expands to `sh(wpkh(key/{0,1}/*))`
-///
-/// This assumes that the key used has already been derived with `m/49'/0'/0'` for Mainnet or `m/49'/1'/0'` for Testnet.
-///
-/// This template requires the parent fingerprint to populate correctly the metadata of PSBTs.
-///
-/// See [`Bip49`] for a template that does the full derivation, but requires private data
-/// for the key.
-///
-/// ## Example
-///
-/// ```
-/// # use std::str::FromStr;
-/// # use bdk::bitcoin::{PrivateKey, Network};
-/// # use bdk::{Wallet, KeychainKind};
-/// use bdk::template::Bip49Public;
-///
-/// let key = bitcoin::bip32::Xpub::from_str("tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L")?;
-/// let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
-/// let mut wallet = Wallet::new_no_persist(
-/// Bip49Public(key.clone(), fingerprint, KeychainKind::External),
-/// Some(Bip49Public(key, fingerprint, KeychainKind::Internal)),
-/// Network::Testnet,
-/// )?;
-///
-/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "2N3K4xbVAHoiTQSwxkZjWDfKoNC27pLkYnt");
-/// assert_eq!(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), "sh(wpkh([c55b303f/49'/1'/0']tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L/0/*))#3tka9g0q");
-/// # Ok::<_, Box<dyn std::error::Error>>(())
-/// ```
-</span><span class="kw">pub struct </span>Bip49Public<K: DerivableKey<Segwitv0>>(<span class="kw">pub </span>K, <span class="kw">pub </span>bip32::Fingerprint, <span class="kw">pub </span>KeychainKind);
-
-<span class="kw">impl</span><K: DerivableKey<Segwitv0>> DescriptorTemplate <span class="kw">for </span>Bip49Public<K> {
- <span class="kw">fn </span>build(<span class="self">self</span>, network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
- P2Wpkh_P2Sh(segwit_v0::make_bipxx_public(
- <span class="number">49</span>, <span class="self">self</span>.<span class="number">0</span>, <span class="self">self</span>.<span class="number">1</span>, <span class="self">self</span>.<span class="number">2</span>, network,
- )<span class="question-mark">?</span>)
- .build(network)
- }
-}
-
-<span class="doccomment">/// BIP84 template. Expands to `wpkh(key/84'/{0,1}'/0'/{0,1}/*)`
-///
-/// Since there are hardened derivation steps, this template requires a private derivable key (generally a `xprv`/`tprv`).
-///
-/// See [`Bip84Public`] for a template that can work with a `xpub`/`tpub`.
-///
-/// ## Example
-///
-/// ```
-/// # use std::str::FromStr;
-/// # use bdk::bitcoin::{PrivateKey, Network};
-/// # use bdk::{Wallet, KeychainKind};
-/// use bdk::template::Bip84;
-///
-/// let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
-/// let mut wallet = Wallet::new_no_persist(
-/// Bip84(key.clone(), KeychainKind::External),
-/// Some(Bip84(key, KeychainKind::Internal)),
-/// Network::Testnet,
-/// )?;
-///
-/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "tb1qhl85z42h7r4su5u37rvvw0gk8j2t3n9y7zsg4n");
-/// assert_eq!(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), "wpkh([c55b303f/84'/1'/0']tpubDDc5mum24DekpNw92t6fHGp8Gr2JjF9J7i4TZBtN6Vp8xpAULG5CFaKsfugWa5imhrQQUZKXe261asP5koDHo5bs3qNTmf3U3o4v9SaB8gg/0/*)#6kfecsmr");
-/// # Ok::<_, Box<dyn std::error::Error>>(())
-/// ```
-</span><span class="kw">pub struct </span>Bip84<K: DerivableKey<Segwitv0>>(<span class="kw">pub </span>K, <span class="kw">pub </span>KeychainKind);
-
-<span class="kw">impl</span><K: DerivableKey<Segwitv0>> DescriptorTemplate <span class="kw">for </span>Bip84<K> {
- <span class="kw">fn </span>build(<span class="self">self</span>, network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
- P2Wpkh(segwit_v0::make_bipxx_private(<span class="number">84</span>, <span class="self">self</span>.<span class="number">0</span>, <span class="self">self</span>.<span class="number">1</span>, network)<span class="question-mark">?</span>).build(network)
- }
-}
-
-<span class="doccomment">/// BIP84 public template. Expands to `wpkh(key/{0,1}/*)`
-///
-/// This assumes that the key used has already been derived with `m/84'/0'/0'` for Mainnet or `m/84'/1'/0'` for Testnet.
-///
-/// This template requires the parent fingerprint to populate correctly the metadata of PSBTs.
-///
-/// See [`Bip84`] for a template that does the full derivation, but requires private data
-/// for the key.
-///
-/// ## Example
-///
-/// ```
-/// # use std::str::FromStr;
-/// # use bdk::bitcoin::{PrivateKey, Network};
-/// # use bdk::{Wallet, KeychainKind};
-/// use bdk::template::Bip84Public;
-///
-/// let key = bitcoin::bip32::Xpub::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
-/// let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
-/// let mut wallet = Wallet::new_no_persist(
-/// Bip84Public(key.clone(), fingerprint, KeychainKind::External),
-/// Some(Bip84Public(key, fingerprint, KeychainKind::Internal)),
-/// Network::Testnet,
-/// )?;
-///
-/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "tb1qedg9fdlf8cnnqfd5mks6uz5w4kgpk2pr6y4qc7");
-/// assert_eq!(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), "wpkh([c55b303f/84'/1'/0']tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q/0/*)#dhu402yv");
-/// # Ok::<_, Box<dyn std::error::Error>>(())
-/// ```
-</span><span class="kw">pub struct </span>Bip84Public<K: DerivableKey<Segwitv0>>(<span class="kw">pub </span>K, <span class="kw">pub </span>bip32::Fingerprint, <span class="kw">pub </span>KeychainKind);
-
-<span class="kw">impl</span><K: DerivableKey<Segwitv0>> DescriptorTemplate <span class="kw">for </span>Bip84Public<K> {
- <span class="kw">fn </span>build(<span class="self">self</span>, network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
- P2Wpkh(segwit_v0::make_bipxx_public(
- <span class="number">84</span>, <span class="self">self</span>.<span class="number">0</span>, <span class="self">self</span>.<span class="number">1</span>, <span class="self">self</span>.<span class="number">2</span>, network,
- )<span class="question-mark">?</span>)
- .build(network)
- }
-}
-
-<span class="doccomment">/// BIP86 template. Expands to `tr(key/86'/{0,1}'/0'/{0,1}/*)`
-///
-/// Since there are hardened derivation steps, this template requires a private derivable key (generally a `xprv`/`tprv`).
-///
-/// See [`Bip86Public`] for a template that can work with a `xpub`/`tpub`.
-///
-/// ## Example
-///
-/// ```
-/// # use std::str::FromStr;
-/// # use bdk::bitcoin::{PrivateKey, Network};
-/// # use bdk::{Wallet, KeychainKind};
-/// use bdk::template::Bip86;
-///
-/// let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
-/// let mut wallet = Wallet::new_no_persist(
-/// Bip86(key.clone(), KeychainKind::External),
-/// Some(Bip86(key, KeychainKind::Internal)),
-/// Network::Testnet,
-/// )?;
-///
-/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "tb1p5unlj09djx8xsjwe97269kqtxqpwpu2epeskgqjfk4lnf69v4tnqpp35qu");
-/// assert_eq!(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), "tr([c55b303f/86'/1'/0']tpubDCiHofpEs47kx358bPdJmTZHmCDqQ8qw32upCSxHrSEdeeBs2T5Mq6QMB2ukeMqhNBiyhosBvJErteVhfURPGXPv3qLJPw5MVpHUewsbP2m/0/*)#dkgvr5hm");
-/// # Ok::<_, Box<dyn std::error::Error>>(())
-/// ```
-</span><span class="kw">pub struct </span>Bip86<K: DerivableKey<Tap>>(<span class="kw">pub </span>K, <span class="kw">pub </span>KeychainKind);
-
-<span class="kw">impl</span><K: DerivableKey<Tap>> DescriptorTemplate <span class="kw">for </span>Bip86<K> {
- <span class="kw">fn </span>build(<span class="self">self</span>, network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
- P2TR(segwit_v1::make_bipxx_private(<span class="number">86</span>, <span class="self">self</span>.<span class="number">0</span>, <span class="self">self</span>.<span class="number">1</span>, network)<span class="question-mark">?</span>).build(network)
- }
-}
-
-<span class="doccomment">/// BIP86 public template. Expands to `tr(key/{0,1}/*)`
-///
-/// This assumes that the key used has already been derived with `m/86'/0'/0'` for Mainnet or `m/86'/1'/0'` for Testnet.
-///
-/// This template requires the parent fingerprint to populate correctly the metadata of PSBTs.
-///
-/// See [`Bip86`] for a template that does the full derivation, but requires private data
-/// for the key.
-///
-/// ## Example
-///
-/// ```
-/// # use std::str::FromStr;
-/// # use bdk::bitcoin::{PrivateKey, Network};
-/// # use bdk::{Wallet, KeychainKind};
-/// use bdk::template::Bip86Public;
-///
-/// let key = bitcoin::bip32::Xpub::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
-/// let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
-/// let mut wallet = Wallet::new_no_persist(
-/// Bip86Public(key.clone(), fingerprint, KeychainKind::External),
-/// Some(Bip86Public(key, fingerprint, KeychainKind::Internal)),
-/// Network::Testnet,
-/// )?;
-///
-/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "tb1pwjp9f2k5n0xq73ecuu0c5njvgqr3vkh7yaylmpqvsuuaafymh0msvcmh37");
-/// assert_eq!(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), "tr([c55b303f/86'/1'/0']tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q/0/*)#2p65srku");
-/// # Ok::<_, Box<dyn std::error::Error>>(())
-/// ```
-</span><span class="kw">pub struct </span>Bip86Public<K: DerivableKey<Tap>>(<span class="kw">pub </span>K, <span class="kw">pub </span>bip32::Fingerprint, <span class="kw">pub </span>KeychainKind);
-
-<span class="kw">impl</span><K: DerivableKey<Tap>> DescriptorTemplate <span class="kw">for </span>Bip86Public<K> {
- <span class="kw">fn </span>build(<span class="self">self</span>, network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
- P2TR(segwit_v1::make_bipxx_public(
- <span class="number">86</span>, <span class="self">self</span>.<span class="number">0</span>, <span class="self">self</span>.<span class="number">1</span>, <span class="self">self</span>.<span class="number">2</span>, network,
- )<span class="question-mark">?</span>)
- .build(network)
- }
-}
-
-<span class="macro">macro_rules! </span>expand_make_bipxx {
- ( <span class="macro-nonterminal">$mod_name</span>:ident, <span class="macro-nonterminal">$ctx</span>:ty ) => {
- <span class="kw">mod </span><span class="macro-nonterminal">$mod_name </span>{
- <span class="kw">use super</span>::<span class="kw-2">*</span>;
-
- <span class="kw">pub</span>(<span class="kw">super</span>) <span class="kw">fn </span>make_bipxx_private<K: DerivableKey<<span class="macro-nonterminal">$ctx</span>>>(
- bip: u32,
- key: K,
- keychain: KeychainKind,
- network: Network,
- ) -> <span class="prelude-ty">Result</span><<span class="kw">impl </span>IntoDescriptorKey<<span class="macro-nonterminal">$ctx</span>>, DescriptorError> {
- <span class="kw">let </span><span class="kw-2">mut </span>derivation_path = alloc::vec::Vec::with_capacity(<span class="number">4</span>);
- derivation_path.push(bip32::ChildNumber::from_hardened_idx(bip)<span class="question-mark">?</span>);
-
- <span class="kw">match </span>network {
- Network::Bitcoin => {
- derivation_path.push(bip32::ChildNumber::from_hardened_idx(<span class="number">0</span>)<span class="question-mark">?</span>);
- }
- <span class="kw">_ </span>=> {
- derivation_path.push(bip32::ChildNumber::from_hardened_idx(<span class="number">1</span>)<span class="question-mark">?</span>);
- }
- }
- derivation_path.push(bip32::ChildNumber::from_hardened_idx(<span class="number">0</span>)<span class="question-mark">?</span>);
-
- <span class="kw">match </span>keychain {
- KeychainKind::External => {
- derivation_path.push(bip32::ChildNumber::from_normal_idx(<span class="number">0</span>)<span class="question-mark">?</span>)
- }
- KeychainKind::Internal => {
- derivation_path.push(bip32::ChildNumber::from_normal_idx(<span class="number">1</span>)<span class="question-mark">?</span>)
- }
- };
-
- <span class="kw">let </span>derivation_path: bip32::DerivationPath = derivation_path.into();
-
- <span class="prelude-val">Ok</span>((key, derivation_path))
- }
- <span class="kw">pub</span>(<span class="kw">super</span>) <span class="kw">fn </span>make_bipxx_public<K: DerivableKey<<span class="macro-nonterminal">$ctx</span>>>(
- bip: u32,
- key: K,
- parent_fingerprint: bip32::Fingerprint,
- keychain: KeychainKind,
- network: Network,
- ) -> <span class="prelude-ty">Result</span><<span class="kw">impl </span>IntoDescriptorKey<<span class="macro-nonterminal">$ctx</span>>, DescriptorError> {
- <span class="kw">let </span>derivation_path: bip32::DerivationPath = <span class="kw">match </span>keychain {
- KeychainKind::External => <span class="macro">vec!</span>[bip32::ChildNumber::from_normal_idx(<span class="number">0</span>)<span class="question-mark">?</span>].into(),
- KeychainKind::Internal => <span class="macro">vec!</span>[bip32::ChildNumber::from_normal_idx(<span class="number">1</span>)<span class="question-mark">?</span>].into(),
- };
-
- <span class="kw">let </span>source_path = bip32::DerivationPath::from(<span class="macro">vec!</span>[
- bip32::ChildNumber::from_hardened_idx(bip)<span class="question-mark">?</span>,
- <span class="kw">match </span>network {
- Network::Bitcoin => bip32::ChildNumber::from_hardened_idx(<span class="number">0</span>)<span class="question-mark">?</span>,
- <span class="kw">_ </span>=> bip32::ChildNumber::from_hardened_idx(<span class="number">1</span>)<span class="question-mark">?</span>,
- },
- bip32::ChildNumber::from_hardened_idx(<span class="number">0</span>)<span class="question-mark">?</span>,
- ]);
-
- <span class="prelude-val">Ok</span>((key, (parent_fingerprint, source_path), derivation_path))
- }
- }
- };
-}
-
-<span class="macro">expand_make_bipxx!</span>(legacy, Legacy);
-<span class="macro">expand_make_bipxx!</span>(segwit_v0, Segwitv0);
-<span class="macro">expand_make_bipxx!</span>(segwit_v1, Tap);
-
-<span class="attr">#[cfg(test)]
-</span><span class="kw">mod </span>test {
- <span class="comment">// test existing descriptor templates, make sure they are expanded to the right descriptors
-
- </span><span class="kw">use </span>alloc::{string::ToString, vec::Vec};
- <span class="kw">use </span>core::str::FromStr;
-
- <span class="kw">use super</span>::<span class="kw-2">*</span>;
- <span class="kw">use </span><span class="kw">crate</span>::descriptor::{DescriptorError, DescriptorMeta};
- <span class="kw">use </span><span class="kw">crate</span>::keys::ValidNetworks;
- <span class="kw">use </span>assert_matches::assert_matches;
- <span class="kw">use </span>miniscript::descriptor::{DescriptorPublicKey, KeyMap};
- <span class="kw">use </span>miniscript::Descriptor;
-
- <span class="comment">// BIP44 `pkh(key/44'/{0,1}'/0'/{0,1}/*)`
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_bip44_template_cointype() {
- <span class="kw">use </span>bitcoin::bip32::ChildNumber::{<span class="self">self</span>, Hardened};
-
- <span class="kw">let </span>xprvkey = bitcoin::bip32::Xpriv::from_str(<span class="string">"xprv9s21ZrQH143K2fpbqApQL69a4oKdGVnVN52R82Ft7d1pSqgKmajF62acJo3aMszZb6qQ22QsVECSFxvf9uyxFUvFYQMq3QbtwtRSMjLAhMf"</span>).unwrap();
- <span class="macro">assert_eq!</span>(Network::Bitcoin, xprvkey.network);
- <span class="kw">let </span>xdesc = Bip44(xprvkey, KeychainKind::Internal)
- .build(Network::Bitcoin)
- .unwrap();
-
- <span class="kw">if let </span>ExtendedDescriptor::Pkh(pkh) = xdesc.<span class="number">0 </span>{
- <span class="kw">let </span>path: Vec<ChildNumber> = pkh.into_inner().full_derivation_path().unwrap().into();
- <span class="kw">let </span>purpose = path.first().unwrap();
- <span class="macro">assert_matches!</span>(purpose, Hardened { index: <span class="number">44 </span>});
- <span class="kw">let </span>coin_type = path.get(<span class="number">1</span>).unwrap();
- <span class="macro">assert_matches!</span>(coin_type, Hardened { index: <span class="number">0 </span>});
- }
-
- <span class="kw">let </span>tprvkey = bitcoin::bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy"</span>).unwrap();
- <span class="macro">assert_eq!</span>(Network::Testnet, tprvkey.network);
- <span class="kw">let </span>tdesc = Bip44(tprvkey, KeychainKind::Internal)
- .build(Network::Testnet)
- .unwrap();
-
- <span class="kw">if let </span>ExtendedDescriptor::Pkh(pkh) = tdesc.<span class="number">0 </span>{
- <span class="kw">let </span>path: Vec<ChildNumber> = pkh.into_inner().full_derivation_path().unwrap().into();
- <span class="kw">let </span>purpose = path.first().unwrap();
- <span class="macro">assert_matches!</span>(purpose, Hardened { index: <span class="number">44 </span>});
- <span class="kw">let </span>coin_type = path.get(<span class="number">1</span>).unwrap();
- <span class="macro">assert_matches!</span>(coin_type, Hardened { index: <span class="number">1 </span>});
- }
- }
-
- <span class="comment">// verify template descriptor generates expected address(es)
- </span><span class="kw">fn </span>check(
- desc: <span class="prelude-ty">Result</span><(Descriptor<DescriptorPublicKey>, KeyMap, ValidNetworks), DescriptorError>,
- is_witness: bool,
- is_taproot: bool,
- is_fixed: bool,
- network: Network,
- expected: <span class="kw-2">&</span>[<span class="kw-2">&</span>str],
- ) {
- <span class="kw">let </span>(desc, _key_map, _networks) = desc.unwrap();
- <span class="macro">assert_eq!</span>(desc.is_witness(), is_witness);
- <span class="macro">assert_eq!</span>(desc.is_taproot(), is_taproot);
- <span class="macro">assert_eq!</span>(!desc.has_wildcard(), is_fixed);
- <span class="kw">for </span>i <span class="kw">in </span><span class="number">0</span>..expected.len() {
- <span class="kw">let </span>index = i <span class="kw">as </span>u32;
- <span class="kw">let </span>child_desc = <span class="kw">if </span>!desc.has_wildcard() {
- desc.at_derivation_index(<span class="number">0</span>).unwrap()
- } <span class="kw">else </span>{
- desc.at_derivation_index(index).unwrap()
- };
- <span class="kw">let </span>address = child_desc.address(network).unwrap();
- <span class="macro">assert_eq!</span>(address.to_string(), <span class="kw-2">*</span>expected.get(i).unwrap());
- }
- }
-
- <span class="comment">// P2PKH
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_p2ph_template() {
- <span class="kw">let </span>prvkey =
- bitcoin::PrivateKey::from_wif(<span class="string">"cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um"</span>)
- .unwrap();
- check(
- P2Pkh(prvkey).build(Network::Bitcoin),
- <span class="bool-val">false</span>,
- <span class="bool-val">false</span>,
- <span class="bool-val">true</span>,
- Network::Regtest,
- <span class="kw-2">&</span>[<span class="string">"mwJ8hxFYW19JLuc65RCTaP4v1rzVU8cVMT"</span>],
- );
-
- <span class="kw">let </span>pubkey = bitcoin::PublicKey::from_str(
- <span class="string">"03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd"</span>,
- )
- .unwrap();
- check(
- P2Pkh(pubkey).build(Network::Bitcoin),
- <span class="bool-val">false</span>,
- <span class="bool-val">false</span>,
- <span class="bool-val">true</span>,
- Network::Regtest,
- <span class="kw-2">&</span>[<span class="string">"muZpTpBYhxmRFuCjLc7C6BBDF32C8XVJUi"</span>],
- );
- }
-
- <span class="comment">// P2WPKH-P2SH `sh(wpkh(key))`
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_p2wphp2sh_template() {
- <span class="kw">let </span>prvkey =
- bitcoin::PrivateKey::from_wif(<span class="string">"cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um"</span>)
- .unwrap();
- check(
- P2Wpkh_P2Sh(prvkey).build(Network::Bitcoin),
- <span class="bool-val">true</span>,
- <span class="bool-val">false</span>,
- <span class="bool-val">true</span>,
- Network::Regtest,
- <span class="kw-2">&</span>[<span class="string">"2NB4ox5VDRw1ecUv6SnT3VQHPXveYztRqk5"</span>],
- );
-
- <span class="kw">let </span>pubkey = bitcoin::PublicKey::from_str(
- <span class="string">"03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd"</span>,
- )
- .unwrap();
- check(
- P2Wpkh_P2Sh(pubkey).build(Network::Bitcoin),
- <span class="bool-val">true</span>,
- <span class="bool-val">false</span>,
- <span class="bool-val">true</span>,
- Network::Regtest,
- <span class="kw-2">&</span>[<span class="string">"2N5LiC3CqzxDamRTPG1kiNv1FpNJQ7x28sb"</span>],
- );
- }
-
- <span class="comment">// P2WPKH `wpkh(key)`
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_p2wph_template() {
- <span class="kw">let </span>prvkey =
- bitcoin::PrivateKey::from_wif(<span class="string">"cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um"</span>)
- .unwrap();
- check(
- P2Wpkh(prvkey).build(Network::Bitcoin),
- <span class="bool-val">true</span>,
- <span class="bool-val">false</span>,
- <span class="bool-val">true</span>,
- Network::Regtest,
- <span class="kw-2">&</span>[<span class="string">"bcrt1q4525hmgw265tl3drrl8jjta7ayffu6jfcwxx9y"</span>],
- );
-
- <span class="kw">let </span>pubkey = bitcoin::PublicKey::from_str(
- <span class="string">"03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd"</span>,
- )
- .unwrap();
- check(
- P2Wpkh(pubkey).build(Network::Bitcoin),
- <span class="bool-val">true</span>,
- <span class="bool-val">false</span>,
- <span class="bool-val">true</span>,
- Network::Regtest,
- <span class="kw-2">&</span>[<span class="string">"bcrt1qngw83fg8dz0k749cg7k3emc7v98wy0c7azaa6h"</span>],
- );
- }
-
- <span class="comment">// P2TR `tr(key)`
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_p2tr_template() {
- <span class="kw">let </span>prvkey =
- bitcoin::PrivateKey::from_wif(<span class="string">"cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um"</span>)
- .unwrap();
- check(
- P2TR(prvkey).build(Network::Bitcoin),
- <span class="bool-val">false</span>,
- <span class="bool-val">true</span>,
- <span class="bool-val">true</span>,
- Network::Regtest,
- <span class="kw-2">&</span>[<span class="string">"bcrt1pvjf9t34fznr53u5tqhejz4nr69luzkhlvsdsdfq9pglutrpve2xqnwtkqq"</span>],
- );
-
- <span class="kw">let </span>pubkey = bitcoin::PublicKey::from_str(
- <span class="string">"03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd"</span>,
- )
- .unwrap();
- check(
- P2TR(pubkey).build(Network::Bitcoin),
- <span class="bool-val">false</span>,
- <span class="bool-val">true</span>,
- <span class="bool-val">true</span>,
- Network::Regtest,
- <span class="kw-2">&</span>[<span class="string">"bcrt1pw74tdcrxlzn5r8z6ku2vztr86fgq0m245s72mjktf4afwzsf8ugs4evwdf"</span>],
- );
- }
-
- <span class="comment">// BIP44 `pkh(key/44'/0'/0'/{0,1}/*)`
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_bip44_template() {
- <span class="kw">let </span>prvkey = bitcoin::bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy"</span>).unwrap();
- check(
- Bip44(prvkey, KeychainKind::External).build(Network::Bitcoin),
- <span class="bool-val">false</span>,
- <span class="bool-val">false</span>,
- <span class="bool-val">false</span>,
- Network::Regtest,
- <span class="kw-2">&</span>[
- <span class="string">"n453VtnjDHPyDt2fDstKSu7A3YCJoHZ5g5"</span>,
- <span class="string">"mvfrrumXgTtwFPWDNUecBBgzuMXhYM7KRP"</span>,
- <span class="string">"mzYvhRAuQqbdSKMVVzXNYyqihgNdRadAUQ"</span>,
- ],
- );
- check(
- Bip44(prvkey, KeychainKind::Internal).build(Network::Bitcoin),
- <span class="bool-val">false</span>,
- <span class="bool-val">false</span>,
- <span class="bool-val">false</span>,
- Network::Regtest,
- <span class="kw-2">&</span>[
- <span class="string">"muHF98X9KxEzdKrnFAX85KeHv96eXopaip"</span>,
- <span class="string">"n4hpyLJE5ub6B5Bymv4eqFxS5KjrewSmYR"</span>,
- <span class="string">"mgvkdv1ffmsXd2B1sRKQ5dByK3SzpG42rA"</span>,
- ],
- );
- }
-
- <span class="comment">// BIP44 public `pkh(key/{0,1}/*)`
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_bip44_public_template() {
- <span class="kw">let </span>pubkey = bitcoin::bip32::Xpub::from_str(<span class="string">"tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU"</span>).unwrap();
- <span class="kw">let </span>fingerprint = bitcoin::bip32::Fingerprint::from_str(<span class="string">"c55b303f"</span>).unwrap();
- check(
- Bip44Public(pubkey, fingerprint, KeychainKind::External).build(Network::Bitcoin),
- <span class="bool-val">false</span>,
- <span class="bool-val">false</span>,
- <span class="bool-val">false</span>,
- Network::Regtest,
- <span class="kw-2">&</span>[
- <span class="string">"miNG7dJTzJqNbFS19svRdTCisC65dsubtR"</span>,
- <span class="string">"n2UqaDbCjWSFJvpC84m3FjUk5UaeibCzYg"</span>,
- <span class="string">"muCPpS6Ue7nkzeJMWDViw7Lkwr92Yc4K8g"</span>,
- ],
- );
- check(
- Bip44Public(pubkey, fingerprint, KeychainKind::Internal).build(Network::Bitcoin),
- <span class="bool-val">false</span>,
- <span class="bool-val">false</span>,
- <span class="bool-val">false</span>,
- Network::Regtest,
- <span class="kw-2">&</span>[
- <span class="string">"moDr3vJ8wpt5nNxSK55MPq797nXJb2Ru9H"</span>,
- <span class="string">"ms7A1Yt4uTezT2XkefW12AvLoko8WfNJMG"</span>,
- <span class="string">"mhYiyat2rtEnV77cFfQsW32y1m2ceCGHPo"</span>,
- ],
- );
- }
-
- <span class="comment">// BIP49 `sh(wpkh(key/49'/0'/0'/{0,1}/*))`
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_bip49_template() {
- <span class="kw">let </span>prvkey = bitcoin::bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy"</span>).unwrap();
- check(
- Bip49(prvkey, KeychainKind::External).build(Network::Bitcoin),
- <span class="bool-val">true</span>,
- <span class="bool-val">false</span>,
- <span class="bool-val">false</span>,
- Network::Regtest,
- <span class="kw-2">&</span>[
- <span class="string">"2N9bCAJXGm168MjVwpkBdNt6ucka3PKVoUV"</span>,
- <span class="string">"2NDckYkqrYyDMtttEav5hB3Bfw9EGAW5HtS"</span>,
- <span class="string">"2NAFTVtksF9T4a97M7nyCjwUBD24QevZ5Z4"</span>,
- ],
- );
- check(
- Bip49(prvkey, KeychainKind::Internal).build(Network::Bitcoin),
- <span class="bool-val">true</span>,
- <span class="bool-val">false</span>,
- <span class="bool-val">false</span>,
- Network::Regtest,
- <span class="kw-2">&</span>[
- <span class="string">"2NB3pA8PnzJLGV8YEKNDFpbViZv3Bm1K6CG"</span>,
- <span class="string">"2NBiX2Wzxngb5rPiWpUiJQ2uLVB4HBjFD4p"</span>,
- <span class="string">"2NA8ek4CdQ6aMkveYF6AYuEYNrftB47QGTn"</span>,
- ],
- );
- }
-
- <span class="comment">// BIP49 public `sh(wpkh(key/{0,1}/*))`
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_bip49_public_template() {
- <span class="kw">let </span>pubkey = bitcoin::bip32::Xpub::from_str(<span class="string">"tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L"</span>).unwrap();
- <span class="kw">let </span>fingerprint = bitcoin::bip32::Fingerprint::from_str(<span class="string">"c55b303f"</span>).unwrap();
- check(
- Bip49Public(pubkey, fingerprint, KeychainKind::External).build(Network::Bitcoin),
- <span class="bool-val">true</span>,
- <span class="bool-val">false</span>,
- <span class="bool-val">false</span>,
- Network::Regtest,
- <span class="kw-2">&</span>[
- <span class="string">"2N3K4xbVAHoiTQSwxkZjWDfKoNC27pLkYnt"</span>,
- <span class="string">"2NCTQfJ1sZa3wQ3pPseYRHbaNEpC3AquEfX"</span>,
- <span class="string">"2MveFxAuC8BYPzTybx7FxSzW8HSd8ATT4z7"</span>,
- ],
- );
- check(
- Bip49Public(pubkey, fingerprint, KeychainKind::Internal).build(Network::Bitcoin),
- <span class="bool-val">true</span>,
- <span class="bool-val">false</span>,
- <span class="bool-val">false</span>,
- Network::Regtest,
- <span class="kw-2">&</span>[
- <span class="string">"2NF2vttKibwyxigxtx95Zw8K7JhDbo5zPVJ"</span>,
- <span class="string">"2Mtmyd8taksxNVWCJ4wVvaiss7QPZGcAJuH"</span>,
- <span class="string">"2NBs3CTVYPr1HCzjB4YFsnWCPCtNg8uMEfp"</span>,
- ],
- );
- }
-
- <span class="comment">// BIP84 `wpkh(key/84'/0'/0'/{0,1}/*)`
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_bip84_template() {
- <span class="kw">let </span>prvkey = bitcoin::bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy"</span>).unwrap();
- check(
- Bip84(prvkey, KeychainKind::External).build(Network::Bitcoin),
- <span class="bool-val">true</span>,
- <span class="bool-val">false</span>,
- <span class="bool-val">false</span>,
- Network::Regtest,
- <span class="kw-2">&</span>[
- <span class="string">"bcrt1qkmvk2nadgplmd57ztld8nf8v2yxkzmdvwtjf8s"</span>,
- <span class="string">"bcrt1qx0v6zgfwe50m4kqc58cqzcyem7ay2sfl3gvqhp"</span>,
- <span class="string">"bcrt1q4h7fq9zhxst6e69p3n882nfj649l7w9g3zccfp"</span>,
- ],
- );
- check(
- Bip84(prvkey, KeychainKind::Internal).build(Network::Bitcoin),
- <span class="bool-val">true</span>,
- <span class="bool-val">false</span>,
- <span class="bool-val">false</span>,
- Network::Regtest,
- <span class="kw-2">&</span>[
- <span class="string">"bcrt1qtrwtz00wxl69e5xex7amy4xzlxkaefg3gfdkxa"</span>,
- <span class="string">"bcrt1qqqasfhxpkkf7zrxqnkr2sfhn74dgsrc3e3ky45"</span>,
- <span class="string">"bcrt1qpks7n0gq74hsgsz3phn5vuazjjq0f5eqhsgyce"</span>,
- ],
- );
- }
-
- <span class="comment">// BIP84 public `wpkh(key/{0,1}/*)`
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_bip84_public_template() {
- <span class="kw">let </span>pubkey = bitcoin::bip32::Xpub::from_str(<span class="string">"tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q"</span>).unwrap();
- <span class="kw">let </span>fingerprint = bitcoin::bip32::Fingerprint::from_str(<span class="string">"c55b303f"</span>).unwrap();
- check(
- Bip84Public(pubkey, fingerprint, KeychainKind::External).build(Network::Bitcoin),
- <span class="bool-val">true</span>,
- <span class="bool-val">false</span>,
- <span class="bool-val">false</span>,
- Network::Regtest,
- <span class="kw-2">&</span>[
- <span class="string">"bcrt1qedg9fdlf8cnnqfd5mks6uz5w4kgpk2prcdvd0h"</span>,
- <span class="string">"bcrt1q3lncdlwq3lgcaaeyruynjnlccr0ve0kakh6ana"</span>,
- <span class="string">"bcrt1qt9800y6xl3922jy3uyl0z33jh5wfpycyhcylr9"</span>,
- ],
- );
- check(
- Bip84Public(pubkey, fingerprint, KeychainKind::Internal).build(Network::Bitcoin),
- <span class="bool-val">true</span>,
- <span class="bool-val">false</span>,
- <span class="bool-val">false</span>,
- Network::Regtest,
- <span class="kw-2">&</span>[
- <span class="string">"bcrt1qm6wqukenh7guu792lj2njgw9n78cmwsy8xy3z2"</span>,
- <span class="string">"bcrt1q694twxtjn4nnrvnyvra769j0a23rllj5c6cgwp"</span>,
- <span class="string">"bcrt1qhlac3c5ranv5w5emlnqs7wxhkxt8maelylcarp"</span>,
- ],
- );
- }
-
- <span class="comment">// BIP86 `tr(key/86'/0'/0'/{0,1}/*)`
- // Used addresses in test vector in https://github.com/bitcoin/bips/blob/master/bip-0086.mediawiki
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_bip86_template() {
- <span class="kw">let </span>prvkey = bitcoin::bip32::Xpriv::from_str(<span class="string">"xprv9s21ZrQH143K3GJpoapnV8SFfukcVBSfeCficPSGfubmSFDxo1kuHnLisriDvSnRRuL2Qrg5ggqHKNVpxR86QEC8w35uxmGoggxtQTPvfUu"</span>).unwrap();
- check(
- Bip86(prvkey, KeychainKind::External).build(Network::Bitcoin),
- <span class="bool-val">false</span>,
- <span class="bool-val">true</span>,
- <span class="bool-val">false</span>,
- Network::Bitcoin,
- <span class="kw-2">&</span>[
- <span class="string">"bc1p5cyxnuxmeuwuvkwfem96lqzszd02n6xdcjrs20cac6yqjjwudpxqkedrcr"</span>,
- <span class="string">"bc1p4qhjn9zdvkux4e44uhx8tc55attvtyu358kutcqkudyccelu0was9fqzwh"</span>,
- <span class="string">"bc1p0d0rhyynq0awa9m8cqrcr8f5nxqx3aw29w4ru5u9my3h0sfygnzs9khxz8"</span>,
- ],
- );
- check(
- Bip86(prvkey, KeychainKind::Internal).build(Network::Bitcoin),
- <span class="bool-val">false</span>,
- <span class="bool-val">true</span>,
- <span class="bool-val">false</span>,
- Network::Bitcoin,
- <span class="kw-2">&</span>[
- <span class="string">"bc1p3qkhfews2uk44qtvauqyr2ttdsw7svhkl9nkm9s9c3x4ax5h60wqwruhk7"</span>,
- <span class="string">"bc1ptdg60grjk9t3qqcqczp4tlyy3z47yrx9nhlrjsmw36q5a72lhdrs9f00nj"</span>,
- <span class="string">"bc1pgcwgsu8naxp7xlp5p7ufzs7emtfza2las7r2e7krzjhe5qj5xz2q88kmk5"</span>,
- ],
- );
- }
-
- <span class="comment">// BIP86 public `tr(key/{0,1}/*)`
- // Used addresses in test vector in https://github.com/bitcoin/bips/blob/master/bip-0086.mediawiki
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_bip86_public_template() {
- <span class="kw">let </span>pubkey = bitcoin::bip32::Xpub::from_str(<span class="string">"xpub6BgBgsespWvERF3LHQu6CnqdvfEvtMcQjYrcRzx53QJjSxarj2afYWcLteoGVky7D3UKDP9QyrLprQ3VCECoY49yfdDEHGCtMMj92pReUsQ"</span>).unwrap();
- <span class="kw">let </span>fingerprint = bitcoin::bip32::Fingerprint::from_str(<span class="string">"73c5da0a"</span>).unwrap();
- check(
- Bip86Public(pubkey, fingerprint, KeychainKind::External).build(Network::Bitcoin),
- <span class="bool-val">false</span>,
- <span class="bool-val">true</span>,
- <span class="bool-val">false</span>,
- Network::Bitcoin,
- <span class="kw-2">&</span>[
- <span class="string">"bc1p5cyxnuxmeuwuvkwfem96lqzszd02n6xdcjrs20cac6yqjjwudpxqkedrcr"</span>,
- <span class="string">"bc1p4qhjn9zdvkux4e44uhx8tc55attvtyu358kutcqkudyccelu0was9fqzwh"</span>,
- <span class="string">"bc1p0d0rhyynq0awa9m8cqrcr8f5nxqx3aw29w4ru5u9my3h0sfygnzs9khxz8"</span>,
- ],
- );
- check(
- Bip86Public(pubkey, fingerprint, KeychainKind::Internal).build(Network::Bitcoin),
- <span class="bool-val">false</span>,
- <span class="bool-val">true</span>,
- <span class="bool-val">false</span>,
- Network::Bitcoin,
- <span class="kw-2">&</span>[
- <span class="string">"bc1p3qkhfews2uk44qtvauqyr2ttdsw7svhkl9nkm9s9c3x4ax5h60wqwruhk7"</span>,
- <span class="string">"bc1ptdg60grjk9t3qqcqczp4tlyy3z47yrx9nhlrjsmw36q5a72lhdrs9f00nj"</span>,
- <span class="string">"bc1pgcwgsu8naxp7xlp5p7ufzs7emtfza2las7r2e7krzjhe5qj5xz2q88kmk5"</span>,
- ],
- );
- }
-}
-</code></pre></div>
-</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Source of the Rust file `crates/bdk/src/keys/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk/index.html">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
-<a href="#2" id="2">2</a>
-<a href="#3" id="3">3</a>
-<a href="#4" id="4">4</a>
-<a href="#5" id="5">5</a>
-<a href="#6" id="6">6</a>
-<a href="#7" id="7">7</a>
-<a href="#8" id="8">8</a>
-<a href="#9" id="9">9</a>
-<a href="#10" id="10">10</a>
-<a href="#11" id="11">11</a>
-<a href="#12" id="12">12</a>
-<a href="#13" id="13">13</a>
-<a href="#14" id="14">14</a>
-<a href="#15" id="15">15</a>
-<a href="#16" id="16">16</a>
-<a href="#17" id="17">17</a>
-<a href="#18" id="18">18</a>
-<a href="#19" id="19">19</a>
-<a href="#20" id="20">20</a>
-<a href="#21" id="21">21</a>
-<a href="#22" id="22">22</a>
-<a href="#23" id="23">23</a>
-<a href="#24" id="24">24</a>
-<a href="#25" id="25">25</a>
-<a href="#26" id="26">26</a>
-<a href="#27" id="27">27</a>
-<a href="#28" id="28">28</a>
-<a href="#29" id="29">29</a>
-<a href="#30" id="30">30</a>
-<a href="#31" id="31">31</a>
-<a href="#32" id="32">32</a>
-<a href="#33" id="33">33</a>
-<a href="#34" id="34">34</a>
-<a href="#35" id="35">35</a>
-<a href="#36" id="36">36</a>
-<a href="#37" id="37">37</a>
-<a href="#38" id="38">38</a>
-<a href="#39" id="39">39</a>
-<a href="#40" id="40">40</a>
-<a href="#41" id="41">41</a>
-<a href="#42" id="42">42</a>
-<a href="#43" id="43">43</a>
-<a href="#44" id="44">44</a>
-<a href="#45" id="45">45</a>
-<a href="#46" id="46">46</a>
-<a href="#47" id="47">47</a>
-<a href="#48" id="48">48</a>
-<a href="#49" id="49">49</a>
-<a href="#50" id="50">50</a>
-<a href="#51" id="51">51</a>
-<a href="#52" id="52">52</a>
-<a href="#53" id="53">53</a>
-<a href="#54" id="54">54</a>
-<a href="#55" id="55">55</a>
-<a href="#56" id="56">56</a>
-<a href="#57" id="57">57</a>
-<a href="#58" id="58">58</a>
-<a href="#59" id="59">59</a>
-<a href="#60" id="60">60</a>
-<a href="#61" id="61">61</a>
-<a href="#62" id="62">62</a>
-<a href="#63" id="63">63</a>
-<a href="#64" id="64">64</a>
-<a href="#65" id="65">65</a>
-<a href="#66" id="66">66</a>
-<a href="#67" id="67">67</a>
-<a href="#68" id="68">68</a>
-<a href="#69" id="69">69</a>
-<a href="#70" id="70">70</a>
-<a href="#71" id="71">71</a>
-<a href="#72" id="72">72</a>
-<a href="#73" id="73">73</a>
-<a href="#74" id="74">74</a>
-<a href="#75" id="75">75</a>
-<a href="#76" id="76">76</a>
-<a href="#77" id="77">77</a>
-<a href="#78" id="78">78</a>
-<a href="#79" id="79">79</a>
-<a href="#80" id="80">80</a>
-<a href="#81" id="81">81</a>
-<a href="#82" id="82">82</a>
-<a href="#83" id="83">83</a>
-<a href="#84" id="84">84</a>
-<a href="#85" id="85">85</a>
-<a href="#86" id="86">86</a>
-<a href="#87" id="87">87</a>
-<a href="#88" id="88">88</a>
-<a href="#89" id="89">89</a>
-<a href="#90" id="90">90</a>
-<a href="#91" id="91">91</a>
-<a href="#92" id="92">92</a>
-<a href="#93" id="93">93</a>
-<a href="#94" id="94">94</a>
-<a href="#95" id="95">95</a>
-<a href="#96" id="96">96</a>
-<a href="#97" id="97">97</a>
-<a href="#98" id="98">98</a>
-<a href="#99" id="99">99</a>
-<a href="#100" id="100">100</a>
-<a href="#101" id="101">101</a>
-<a href="#102" id="102">102</a>
-<a href="#103" id="103">103</a>
-<a href="#104" id="104">104</a>
-<a href="#105" id="105">105</a>
-<a href="#106" id="106">106</a>
-<a href="#107" id="107">107</a>
-<a href="#108" id="108">108</a>
-<a href="#109" id="109">109</a>
-<a href="#110" id="110">110</a>
-<a href="#111" id="111">111</a>
-<a href="#112" id="112">112</a>
-<a href="#113" id="113">113</a>
-<a href="#114" id="114">114</a>
-<a href="#115" id="115">115</a>
-<a href="#116" id="116">116</a>
-<a href="#117" id="117">117</a>
-<a href="#118" id="118">118</a>
-<a href="#119" id="119">119</a>
-<a href="#120" id="120">120</a>
-<a href="#121" id="121">121</a>
-<a href="#122" id="122">122</a>
-<a href="#123" id="123">123</a>
-<a href="#124" id="124">124</a>
-<a href="#125" id="125">125</a>
-<a href="#126" id="126">126</a>
-<a href="#127" id="127">127</a>
-<a href="#128" id="128">128</a>
-<a href="#129" id="129">129</a>
-<a href="#130" id="130">130</a>
-<a href="#131" id="131">131</a>
-<a href="#132" id="132">132</a>
-<a href="#133" id="133">133</a>
-<a href="#134" id="134">134</a>
-<a href="#135" id="135">135</a>
-<a href="#136" id="136">136</a>
-<a href="#137" id="137">137</a>
-<a href="#138" id="138">138</a>
-<a href="#139" id="139">139</a>
-<a href="#140" id="140">140</a>
-<a href="#141" id="141">141</a>
-<a href="#142" id="142">142</a>
-<a href="#143" id="143">143</a>
-<a href="#144" id="144">144</a>
-<a href="#145" id="145">145</a>
-<a href="#146" id="146">146</a>
-<a href="#147" id="147">147</a>
-<a href="#148" id="148">148</a>
-<a href="#149" id="149">149</a>
-<a href="#150" id="150">150</a>
-<a href="#151" id="151">151</a>
-<a href="#152" id="152">152</a>
-<a href="#153" id="153">153</a>
-<a href="#154" id="154">154</a>
-<a href="#155" id="155">155</a>
-<a href="#156" id="156">156</a>
-<a href="#157" id="157">157</a>
-<a href="#158" id="158">158</a>
-<a href="#159" id="159">159</a>
-<a href="#160" id="160">160</a>
-<a href="#161" id="161">161</a>
-<a href="#162" id="162">162</a>
-<a href="#163" id="163">163</a>
-<a href="#164" id="164">164</a>
-<a href="#165" id="165">165</a>
-<a href="#166" id="166">166</a>
-<a href="#167" id="167">167</a>
-<a href="#168" id="168">168</a>
-<a href="#169" id="169">169</a>
-<a href="#170" id="170">170</a>
-<a href="#171" id="171">171</a>
-<a href="#172" id="172">172</a>
-<a href="#173" id="173">173</a>
-<a href="#174" id="174">174</a>
-<a href="#175" id="175">175</a>
-<a href="#176" id="176">176</a>
-<a href="#177" id="177">177</a>
-<a href="#178" id="178">178</a>
-<a href="#179" id="179">179</a>
-<a href="#180" id="180">180</a>
-<a href="#181" id="181">181</a>
-<a href="#182" id="182">182</a>
-<a href="#183" id="183">183</a>
-<a href="#184" id="184">184</a>
-<a href="#185" id="185">185</a>
-<a href="#186" id="186">186</a>
-<a href="#187" id="187">187</a>
-<a href="#188" id="188">188</a>
-<a href="#189" id="189">189</a>
-<a href="#190" id="190">190</a>
-<a href="#191" id="191">191</a>
-<a href="#192" id="192">192</a>
-<a href="#193" id="193">193</a>
-<a href="#194" id="194">194</a>
-<a href="#195" id="195">195</a>
-<a href="#196" id="196">196</a>
-<a href="#197" id="197">197</a>
-<a href="#198" id="198">198</a>
-<a href="#199" id="199">199</a>
-<a href="#200" id="200">200</a>
-<a href="#201" id="201">201</a>
-<a href="#202" id="202">202</a>
-<a href="#203" id="203">203</a>
-<a href="#204" id="204">204</a>
-<a href="#205" id="205">205</a>
-<a href="#206" id="206">206</a>
-<a href="#207" id="207">207</a>
-<a href="#208" id="208">208</a>
-<a href="#209" id="209">209</a>
-<a href="#210" id="210">210</a>
-<a href="#211" id="211">211</a>
-<a href="#212" id="212">212</a>
-<a href="#213" id="213">213</a>
-<a href="#214" id="214">214</a>
-<a href="#215" id="215">215</a>
-<a href="#216" id="216">216</a>
-<a href="#217" id="217">217</a>
-<a href="#218" id="218">218</a>
-<a href="#219" id="219">219</a>
-<a href="#220" id="220">220</a>
-<a href="#221" id="221">221</a>
-<a href="#222" id="222">222</a>
-<a href="#223" id="223">223</a>
-<a href="#224" id="224">224</a>
-<a href="#225" id="225">225</a>
-<a href="#226" id="226">226</a>
-<a href="#227" id="227">227</a>
-<a href="#228" id="228">228</a>
-<a href="#229" id="229">229</a>
-<a href="#230" id="230">230</a>
-<a href="#231" id="231">231</a>
-<a href="#232" id="232">232</a>
-<a href="#233" id="233">233</a>
-<a href="#234" id="234">234</a>
-<a href="#235" id="235">235</a>
-<a href="#236" id="236">236</a>
-<a href="#237" id="237">237</a>
-<a href="#238" id="238">238</a>
-<a href="#239" id="239">239</a>
-<a href="#240" id="240">240</a>
-<a href="#241" id="241">241</a>
-<a href="#242" id="242">242</a>
-<a href="#243" id="243">243</a>
-<a href="#244" id="244">244</a>
-<a href="#245" id="245">245</a>
-<a href="#246" id="246">246</a>
-<a href="#247" id="247">247</a>
-<a href="#248" id="248">248</a>
-<a href="#249" id="249">249</a>
-<a href="#250" id="250">250</a>
-<a href="#251" id="251">251</a>
-<a href="#252" id="252">252</a>
-<a href="#253" id="253">253</a>
-<a href="#254" id="254">254</a>
-<a href="#255" id="255">255</a>
-<a href="#256" id="256">256</a>
-<a href="#257" id="257">257</a>
-<a href="#258" id="258">258</a>
-<a href="#259" id="259">259</a>
-<a href="#260" id="260">260</a>
-<a href="#261" id="261">261</a>
-<a href="#262" id="262">262</a>
-<a href="#263" id="263">263</a>
-<a href="#264" id="264">264</a>
-<a href="#265" id="265">265</a>
-<a href="#266" id="266">266</a>
-<a href="#267" id="267">267</a>
-<a href="#268" id="268">268</a>
-<a href="#269" id="269">269</a>
-<a href="#270" id="270">270</a>
-<a href="#271" id="271">271</a>
-<a href="#272" id="272">272</a>
-<a href="#273" id="273">273</a>
-<a href="#274" id="274">274</a>
-<a href="#275" id="275">275</a>
-<a href="#276" id="276">276</a>
-<a href="#277" id="277">277</a>
-<a href="#278" id="278">278</a>
-<a href="#279" id="279">279</a>
-<a href="#280" id="280">280</a>
-<a href="#281" id="281">281</a>
-<a href="#282" id="282">282</a>
-<a href="#283" id="283">283</a>
-<a href="#284" id="284">284</a>
-<a href="#285" id="285">285</a>
-<a href="#286" id="286">286</a>
-<a href="#287" id="287">287</a>
-<a href="#288" id="288">288</a>
-<a href="#289" id="289">289</a>
-<a href="#290" id="290">290</a>
-<a href="#291" id="291">291</a>
-<a href="#292" id="292">292</a>
-<a href="#293" id="293">293</a>
-<a href="#294" id="294">294</a>
-<a href="#295" id="295">295</a>
-<a href="#296" id="296">296</a>
-<a href="#297" id="297">297</a>
-<a href="#298" id="298">298</a>
-<a href="#299" id="299">299</a>
-<a href="#300" id="300">300</a>
-<a href="#301" id="301">301</a>
-<a href="#302" id="302">302</a>
-<a href="#303" id="303">303</a>
-<a href="#304" id="304">304</a>
-<a href="#305" id="305">305</a>
-<a href="#306" id="306">306</a>
-<a href="#307" id="307">307</a>
-<a href="#308" id="308">308</a>
-<a href="#309" id="309">309</a>
-<a href="#310" id="310">310</a>
-<a href="#311" id="311">311</a>
-<a href="#312" id="312">312</a>
-<a href="#313" id="313">313</a>
-<a href="#314" id="314">314</a>
-<a href="#315" id="315">315</a>
-<a href="#316" id="316">316</a>
-<a href="#317" id="317">317</a>
-<a href="#318" id="318">318</a>
-<a href="#319" id="319">319</a>
-<a href="#320" id="320">320</a>
-<a href="#321" id="321">321</a>
-<a href="#322" id="322">322</a>
-<a href="#323" id="323">323</a>
-<a href="#324" id="324">324</a>
-<a href="#325" id="325">325</a>
-<a href="#326" id="326">326</a>
-<a href="#327" id="327">327</a>
-<a href="#328" id="328">328</a>
-<a href="#329" id="329">329</a>
-<a href="#330" id="330">330</a>
-<a href="#331" id="331">331</a>
-<a href="#332" id="332">332</a>
-<a href="#333" id="333">333</a>
-<a href="#334" id="334">334</a>
-<a href="#335" id="335">335</a>
-<a href="#336" id="336">336</a>
-<a href="#337" id="337">337</a>
-<a href="#338" id="338">338</a>
-<a href="#339" id="339">339</a>
-<a href="#340" id="340">340</a>
-<a href="#341" id="341">341</a>
-<a href="#342" id="342">342</a>
-<a href="#343" id="343">343</a>
-<a href="#344" id="344">344</a>
-<a href="#345" id="345">345</a>
-<a href="#346" id="346">346</a>
-<a href="#347" id="347">347</a>
-<a href="#348" id="348">348</a>
-<a href="#349" id="349">349</a>
-<a href="#350" id="350">350</a>
-<a href="#351" id="351">351</a>
-<a href="#352" id="352">352</a>
-<a href="#353" id="353">353</a>
-<a href="#354" id="354">354</a>
-<a href="#355" id="355">355</a>
-<a href="#356" id="356">356</a>
-<a href="#357" id="357">357</a>
-<a href="#358" id="358">358</a>
-<a href="#359" id="359">359</a>
-<a href="#360" id="360">360</a>
-<a href="#361" id="361">361</a>
-<a href="#362" id="362">362</a>
-<a href="#363" id="363">363</a>
-<a href="#364" id="364">364</a>
-<a href="#365" id="365">365</a>
-<a href="#366" id="366">366</a>
-<a href="#367" id="367">367</a>
-<a href="#368" id="368">368</a>
-<a href="#369" id="369">369</a>
-<a href="#370" id="370">370</a>
-<a href="#371" id="371">371</a>
-<a href="#372" id="372">372</a>
-<a href="#373" id="373">373</a>
-<a href="#374" id="374">374</a>
-<a href="#375" id="375">375</a>
-<a href="#376" id="376">376</a>
-<a href="#377" id="377">377</a>
-<a href="#378" id="378">378</a>
-<a href="#379" id="379">379</a>
-<a href="#380" id="380">380</a>
-<a href="#381" id="381">381</a>
-<a href="#382" id="382">382</a>
-<a href="#383" id="383">383</a>
-<a href="#384" id="384">384</a>
-<a href="#385" id="385">385</a>
-<a href="#386" id="386">386</a>
-<a href="#387" id="387">387</a>
-<a href="#388" id="388">388</a>
-<a href="#389" id="389">389</a>
-<a href="#390" id="390">390</a>
-<a href="#391" id="391">391</a>
-<a href="#392" id="392">392</a>
-<a href="#393" id="393">393</a>
-<a href="#394" id="394">394</a>
-<a href="#395" id="395">395</a>
-<a href="#396" id="396">396</a>
-<a href="#397" id="397">397</a>
-<a href="#398" id="398">398</a>
-<a href="#399" id="399">399</a>
-<a href="#400" id="400">400</a>
-<a href="#401" id="401">401</a>
-<a href="#402" id="402">402</a>
-<a href="#403" id="403">403</a>
-<a href="#404" id="404">404</a>
-<a href="#405" id="405">405</a>
-<a href="#406" id="406">406</a>
-<a href="#407" id="407">407</a>
-<a href="#408" id="408">408</a>
-<a href="#409" id="409">409</a>
-<a href="#410" id="410">410</a>
-<a href="#411" id="411">411</a>
-<a href="#412" id="412">412</a>
-<a href="#413" id="413">413</a>
-<a href="#414" id="414">414</a>
-<a href="#415" id="415">415</a>
-<a href="#416" id="416">416</a>
-<a href="#417" id="417">417</a>
-<a href="#418" id="418">418</a>
-<a href="#419" id="419">419</a>
-<a href="#420" id="420">420</a>
-<a href="#421" id="421">421</a>
-<a href="#422" id="422">422</a>
-<a href="#423" id="423">423</a>
-<a href="#424" id="424">424</a>
-<a href="#425" id="425">425</a>
-<a href="#426" id="426">426</a>
-<a href="#427" id="427">427</a>
-<a href="#428" id="428">428</a>
-<a href="#429" id="429">429</a>
-<a href="#430" id="430">430</a>
-<a href="#431" id="431">431</a>
-<a href="#432" id="432">432</a>
-<a href="#433" id="433">433</a>
-<a href="#434" id="434">434</a>
-<a href="#435" id="435">435</a>
-<a href="#436" id="436">436</a>
-<a href="#437" id="437">437</a>
-<a href="#438" id="438">438</a>
-<a href="#439" id="439">439</a>
-<a href="#440" id="440">440</a>
-<a href="#441" id="441">441</a>
-<a href="#442" id="442">442</a>
-<a href="#443" id="443">443</a>
-<a href="#444" id="444">444</a>
-<a href="#445" id="445">445</a>
-<a href="#446" id="446">446</a>
-<a href="#447" id="447">447</a>
-<a href="#448" id="448">448</a>
-<a href="#449" id="449">449</a>
-<a href="#450" id="450">450</a>
-<a href="#451" id="451">451</a>
-<a href="#452" id="452">452</a>
-<a href="#453" id="453">453</a>
-<a href="#454" id="454">454</a>
-<a href="#455" id="455">455</a>
-<a href="#456" id="456">456</a>
-<a href="#457" id="457">457</a>
-<a href="#458" id="458">458</a>
-<a href="#459" id="459">459</a>
-<a href="#460" id="460">460</a>
-<a href="#461" id="461">461</a>
-<a href="#462" id="462">462</a>
-<a href="#463" id="463">463</a>
-<a href="#464" id="464">464</a>
-<a href="#465" id="465">465</a>
-<a href="#466" id="466">466</a>
-<a href="#467" id="467">467</a>
-<a href="#468" id="468">468</a>
-<a href="#469" id="469">469</a>
-<a href="#470" id="470">470</a>
-<a href="#471" id="471">471</a>
-<a href="#472" id="472">472</a>
-<a href="#473" id="473">473</a>
-<a href="#474" id="474">474</a>
-<a href="#475" id="475">475</a>
-<a href="#476" id="476">476</a>
-<a href="#477" id="477">477</a>
-<a href="#478" id="478">478</a>
-<a href="#479" id="479">479</a>
-<a href="#480" id="480">480</a>
-<a href="#481" id="481">481</a>
-<a href="#482" id="482">482</a>
-<a href="#483" id="483">483</a>
-<a href="#484" id="484">484</a>
-<a href="#485" id="485">485</a>
-<a href="#486" id="486">486</a>
-<a href="#487" id="487">487</a>
-<a href="#488" id="488">488</a>
-<a href="#489" id="489">489</a>
-<a href="#490" id="490">490</a>
-<a href="#491" id="491">491</a>
-<a href="#492" id="492">492</a>
-<a href="#493" id="493">493</a>
-<a href="#494" id="494">494</a>
-<a href="#495" id="495">495</a>
-<a href="#496" id="496">496</a>
-<a href="#497" id="497">497</a>
-<a href="#498" id="498">498</a>
-<a href="#499" id="499">499</a>
-<a href="#500" id="500">500</a>
-<a href="#501" id="501">501</a>
-<a href="#502" id="502">502</a>
-<a href="#503" id="503">503</a>
-<a href="#504" id="504">504</a>
-<a href="#505" id="505">505</a>
-<a href="#506" id="506">506</a>
-<a href="#507" id="507">507</a>
-<a href="#508" id="508">508</a>
-<a href="#509" id="509">509</a>
-<a href="#510" id="510">510</a>
-<a href="#511" id="511">511</a>
-<a href="#512" id="512">512</a>
-<a href="#513" id="513">513</a>
-<a href="#514" id="514">514</a>
-<a href="#515" id="515">515</a>
-<a href="#516" id="516">516</a>
-<a href="#517" id="517">517</a>
-<a href="#518" id="518">518</a>
-<a href="#519" id="519">519</a>
-<a href="#520" id="520">520</a>
-<a href="#521" id="521">521</a>
-<a href="#522" id="522">522</a>
-<a href="#523" id="523">523</a>
-<a href="#524" id="524">524</a>
-<a href="#525" id="525">525</a>
-<a href="#526" id="526">526</a>
-<a href="#527" id="527">527</a>
-<a href="#528" id="528">528</a>
-<a href="#529" id="529">529</a>
-<a href="#530" id="530">530</a>
-<a href="#531" id="531">531</a>
-<a href="#532" id="532">532</a>
-<a href="#533" id="533">533</a>
-<a href="#534" id="534">534</a>
-<a href="#535" id="535">535</a>
-<a href="#536" id="536">536</a>
-<a href="#537" id="537">537</a>
-<a href="#538" id="538">538</a>
-<a href="#539" id="539">539</a>
-<a href="#540" id="540">540</a>
-<a href="#541" id="541">541</a>
-<a href="#542" id="542">542</a>
-<a href="#543" id="543">543</a>
-<a href="#544" id="544">544</a>
-<a href="#545" id="545">545</a>
-<a href="#546" id="546">546</a>
-<a href="#547" id="547">547</a>
-<a href="#548" id="548">548</a>
-<a href="#549" id="549">549</a>
-<a href="#550" id="550">550</a>
-<a href="#551" id="551">551</a>
-<a href="#552" id="552">552</a>
-<a href="#553" id="553">553</a>
-<a href="#554" id="554">554</a>
-<a href="#555" id="555">555</a>
-<a href="#556" id="556">556</a>
-<a href="#557" id="557">557</a>
-<a href="#558" id="558">558</a>
-<a href="#559" id="559">559</a>
-<a href="#560" id="560">560</a>
-<a href="#561" id="561">561</a>
-<a href="#562" id="562">562</a>
-<a href="#563" id="563">563</a>
-<a href="#564" id="564">564</a>
-<a href="#565" id="565">565</a>
-<a href="#566" id="566">566</a>
-<a href="#567" id="567">567</a>
-<a href="#568" id="568">568</a>
-<a href="#569" id="569">569</a>
-<a href="#570" id="570">570</a>
-<a href="#571" id="571">571</a>
-<a href="#572" id="572">572</a>
-<a href="#573" id="573">573</a>
-<a href="#574" id="574">574</a>
-<a href="#575" id="575">575</a>
-<a href="#576" id="576">576</a>
-<a href="#577" id="577">577</a>
-<a href="#578" id="578">578</a>
-<a href="#579" id="579">579</a>
-<a href="#580" id="580">580</a>
-<a href="#581" id="581">581</a>
-<a href="#582" id="582">582</a>
-<a href="#583" id="583">583</a>
-<a href="#584" id="584">584</a>
-<a href="#585" id="585">585</a>
-<a href="#586" id="586">586</a>
-<a href="#587" id="587">587</a>
-<a href="#588" id="588">588</a>
-<a href="#589" id="589">589</a>
-<a href="#590" id="590">590</a>
-<a href="#591" id="591">591</a>
-<a href="#592" id="592">592</a>
-<a href="#593" id="593">593</a>
-<a href="#594" id="594">594</a>
-<a href="#595" id="595">595</a>
-<a href="#596" id="596">596</a>
-<a href="#597" id="597">597</a>
-<a href="#598" id="598">598</a>
-<a href="#599" id="599">599</a>
-<a href="#600" id="600">600</a>
-<a href="#601" id="601">601</a>
-<a href="#602" id="602">602</a>
-<a href="#603" id="603">603</a>
-<a href="#604" id="604">604</a>
-<a href="#605" id="605">605</a>
-<a href="#606" id="606">606</a>
-<a href="#607" id="607">607</a>
-<a href="#608" id="608">608</a>
-<a href="#609" id="609">609</a>
-<a href="#610" id="610">610</a>
-<a href="#611" id="611">611</a>
-<a href="#612" id="612">612</a>
-<a href="#613" id="613">613</a>
-<a href="#614" id="614">614</a>
-<a href="#615" id="615">615</a>
-<a href="#616" id="616">616</a>
-<a href="#617" id="617">617</a>
-<a href="#618" id="618">618</a>
-<a href="#619" id="619">619</a>
-<a href="#620" id="620">620</a>
-<a href="#621" id="621">621</a>
-<a href="#622" id="622">622</a>
-<a href="#623" id="623">623</a>
-<a href="#624" id="624">624</a>
-<a href="#625" id="625">625</a>
-<a href="#626" id="626">626</a>
-<a href="#627" id="627">627</a>
-<a href="#628" id="628">628</a>
-<a href="#629" id="629">629</a>
-<a href="#630" id="630">630</a>
-<a href="#631" id="631">631</a>
-<a href="#632" id="632">632</a>
-<a href="#633" id="633">633</a>
-<a href="#634" id="634">634</a>
-<a href="#635" id="635">635</a>
-<a href="#636" id="636">636</a>
-<a href="#637" id="637">637</a>
-<a href="#638" id="638">638</a>
-<a href="#639" id="639">639</a>
-<a href="#640" id="640">640</a>
-<a href="#641" id="641">641</a>
-<a href="#642" id="642">642</a>
-<a href="#643" id="643">643</a>
-<a href="#644" id="644">644</a>
-<a href="#645" id="645">645</a>
-<a href="#646" id="646">646</a>
-<a href="#647" id="647">647</a>
-<a href="#648" id="648">648</a>
-<a href="#649" id="649">649</a>
-<a href="#650" id="650">650</a>
-<a href="#651" id="651">651</a>
-<a href="#652" id="652">652</a>
-<a href="#653" id="653">653</a>
-<a href="#654" id="654">654</a>
-<a href="#655" id="655">655</a>
-<a href="#656" id="656">656</a>
-<a href="#657" id="657">657</a>
-<a href="#658" id="658">658</a>
-<a href="#659" id="659">659</a>
-<a href="#660" id="660">660</a>
-<a href="#661" id="661">661</a>
-<a href="#662" id="662">662</a>
-<a href="#663" id="663">663</a>
-<a href="#664" id="664">664</a>
-<a href="#665" id="665">665</a>
-<a href="#666" id="666">666</a>
-<a href="#667" id="667">667</a>
-<a href="#668" id="668">668</a>
-<a href="#669" id="669">669</a>
-<a href="#670" id="670">670</a>
-<a href="#671" id="671">671</a>
-<a href="#672" id="672">672</a>
-<a href="#673" id="673">673</a>
-<a href="#674" id="674">674</a>
-<a href="#675" id="675">675</a>
-<a href="#676" id="676">676</a>
-<a href="#677" id="677">677</a>
-<a href="#678" id="678">678</a>
-<a href="#679" id="679">679</a>
-<a href="#680" id="680">680</a>
-<a href="#681" id="681">681</a>
-<a href="#682" id="682">682</a>
-<a href="#683" id="683">683</a>
-<a href="#684" id="684">684</a>
-<a href="#685" id="685">685</a>
-<a href="#686" id="686">686</a>
-<a href="#687" id="687">687</a>
-<a href="#688" id="688">688</a>
-<a href="#689" id="689">689</a>
-<a href="#690" id="690">690</a>
-<a href="#691" id="691">691</a>
-<a href="#692" id="692">692</a>
-<a href="#693" id="693">693</a>
-<a href="#694" id="694">694</a>
-<a href="#695" id="695">695</a>
-<a href="#696" id="696">696</a>
-<a href="#697" id="697">697</a>
-<a href="#698" id="698">698</a>
-<a href="#699" id="699">699</a>
-<a href="#700" id="700">700</a>
-<a href="#701" id="701">701</a>
-<a href="#702" id="702">702</a>
-<a href="#703" id="703">703</a>
-<a href="#704" id="704">704</a>
-<a href="#705" id="705">705</a>
-<a href="#706" id="706">706</a>
-<a href="#707" id="707">707</a>
-<a href="#708" id="708">708</a>
-<a href="#709" id="709">709</a>
-<a href="#710" id="710">710</a>
-<a href="#711" id="711">711</a>
-<a href="#712" id="712">712</a>
-<a href="#713" id="713">713</a>
-<a href="#714" id="714">714</a>
-<a href="#715" id="715">715</a>
-<a href="#716" id="716">716</a>
-<a href="#717" id="717">717</a>
-<a href="#718" id="718">718</a>
-<a href="#719" id="719">719</a>
-<a href="#720" id="720">720</a>
-<a href="#721" id="721">721</a>
-<a href="#722" id="722">722</a>
-<a href="#723" id="723">723</a>
-<a href="#724" id="724">724</a>
-<a href="#725" id="725">725</a>
-<a href="#726" id="726">726</a>
-<a href="#727" id="727">727</a>
-<a href="#728" id="728">728</a>
-<a href="#729" id="729">729</a>
-<a href="#730" id="730">730</a>
-<a href="#731" id="731">731</a>
-<a href="#732" id="732">732</a>
-<a href="#733" id="733">733</a>
-<a href="#734" id="734">734</a>
-<a href="#735" id="735">735</a>
-<a href="#736" id="736">736</a>
-<a href="#737" id="737">737</a>
-<a href="#738" id="738">738</a>
-<a href="#739" id="739">739</a>
-<a href="#740" id="740">740</a>
-<a href="#741" id="741">741</a>
-<a href="#742" id="742">742</a>
-<a href="#743" id="743">743</a>
-<a href="#744" id="744">744</a>
-<a href="#745" id="745">745</a>
-<a href="#746" id="746">746</a>
-<a href="#747" id="747">747</a>
-<a href="#748" id="748">748</a>
-<a href="#749" id="749">749</a>
-<a href="#750" id="750">750</a>
-<a href="#751" id="751">751</a>
-<a href="#752" id="752">752</a>
-<a href="#753" id="753">753</a>
-<a href="#754" id="754">754</a>
-<a href="#755" id="755">755</a>
-<a href="#756" id="756">756</a>
-<a href="#757" id="757">757</a>
-<a href="#758" id="758">758</a>
-<a href="#759" id="759">759</a>
-<a href="#760" id="760">760</a>
-<a href="#761" id="761">761</a>
-<a href="#762" id="762">762</a>
-<a href="#763" id="763">763</a>
-<a href="#764" id="764">764</a>
-<a href="#765" id="765">765</a>
-<a href="#766" id="766">766</a>
-<a href="#767" id="767">767</a>
-<a href="#768" id="768">768</a>
-<a href="#769" id="769">769</a>
-<a href="#770" id="770">770</a>
-<a href="#771" id="771">771</a>
-<a href="#772" id="772">772</a>
-<a href="#773" id="773">773</a>
-<a href="#774" id="774">774</a>
-<a href="#775" id="775">775</a>
-<a href="#776" id="776">776</a>
-<a href="#777" id="777">777</a>
-<a href="#778" id="778">778</a>
-<a href="#779" id="779">779</a>
-<a href="#780" id="780">780</a>
-<a href="#781" id="781">781</a>
-<a href="#782" id="782">782</a>
-<a href="#783" id="783">783</a>
-<a href="#784" id="784">784</a>
-<a href="#785" id="785">785</a>
-<a href="#786" id="786">786</a>
-<a href="#787" id="787">787</a>
-<a href="#788" id="788">788</a>
-<a href="#789" id="789">789</a>
-<a href="#790" id="790">790</a>
-<a href="#791" id="791">791</a>
-<a href="#792" id="792">792</a>
-<a href="#793" id="793">793</a>
-<a href="#794" id="794">794</a>
-<a href="#795" id="795">795</a>
-<a href="#796" id="796">796</a>
-<a href="#797" id="797">797</a>
-<a href="#798" id="798">798</a>
-<a href="#799" id="799">799</a>
-<a href="#800" id="800">800</a>
-<a href="#801" id="801">801</a>
-<a href="#802" id="802">802</a>
-<a href="#803" id="803">803</a>
-<a href="#804" id="804">804</a>
-<a href="#805" id="805">805</a>
-<a href="#806" id="806">806</a>
-<a href="#807" id="807">807</a>
-<a href="#808" id="808">808</a>
-<a href="#809" id="809">809</a>
-<a href="#810" id="810">810</a>
-<a href="#811" id="811">811</a>
-<a href="#812" id="812">812</a>
-<a href="#813" id="813">813</a>
-<a href="#814" id="814">814</a>
-<a href="#815" id="815">815</a>
-<a href="#816" id="816">816</a>
-<a href="#817" id="817">817</a>
-<a href="#818" id="818">818</a>
-<a href="#819" id="819">819</a>
-<a href="#820" id="820">820</a>
-<a href="#821" id="821">821</a>
-<a href="#822" id="822">822</a>
-<a href="#823" id="823">823</a>
-<a href="#824" id="824">824</a>
-<a href="#825" id="825">825</a>
-<a href="#826" id="826">826</a>
-<a href="#827" id="827">827</a>
-<a href="#828" id="828">828</a>
-<a href="#829" id="829">829</a>
-<a href="#830" id="830">830</a>
-<a href="#831" id="831">831</a>
-<a href="#832" id="832">832</a>
-<a href="#833" id="833">833</a>
-<a href="#834" id="834">834</a>
-<a href="#835" id="835">835</a>
-<a href="#836" id="836">836</a>
-<a href="#837" id="837">837</a>
-<a href="#838" id="838">838</a>
-<a href="#839" id="839">839</a>
-<a href="#840" id="840">840</a>
-<a href="#841" id="841">841</a>
-<a href="#842" id="842">842</a>
-<a href="#843" id="843">843</a>
-<a href="#844" id="844">844</a>
-<a href="#845" id="845">845</a>
-<a href="#846" id="846">846</a>
-<a href="#847" id="847">847</a>
-<a href="#848" id="848">848</a>
-<a href="#849" id="849">849</a>
-<a href="#850" id="850">850</a>
-<a href="#851" id="851">851</a>
-<a href="#852" id="852">852</a>
-<a href="#853" id="853">853</a>
-<a href="#854" id="854">854</a>
-<a href="#855" id="855">855</a>
-<a href="#856" id="856">856</a>
-<a href="#857" id="857">857</a>
-<a href="#858" id="858">858</a>
-<a href="#859" id="859">859</a>
-<a href="#860" id="860">860</a>
-<a href="#861" id="861">861</a>
-<a href="#862" id="862">862</a>
-<a href="#863" id="863">863</a>
-<a href="#864" id="864">864</a>
-<a href="#865" id="865">865</a>
-<a href="#866" id="866">866</a>
-<a href="#867" id="867">867</a>
-<a href="#868" id="868">868</a>
-<a href="#869" id="869">869</a>
-<a href="#870" id="870">870</a>
-<a href="#871" id="871">871</a>
-<a href="#872" id="872">872</a>
-<a href="#873" id="873">873</a>
-<a href="#874" id="874">874</a>
-<a href="#875" id="875">875</a>
-<a href="#876" id="876">876</a>
-<a href="#877" id="877">877</a>
-<a href="#878" id="878">878</a>
-<a href="#879" id="879">879</a>
-<a href="#880" id="880">880</a>
-<a href="#881" id="881">881</a>
-<a href="#882" id="882">882</a>
-<a href="#883" id="883">883</a>
-<a href="#884" id="884">884</a>
-<a href="#885" id="885">885</a>
-<a href="#886" id="886">886</a>
-<a href="#887" id="887">887</a>
-<a href="#888" id="888">888</a>
-<a href="#889" id="889">889</a>
-<a href="#890" id="890">890</a>
-<a href="#891" id="891">891</a>
-<a href="#892" id="892">892</a>
-<a href="#893" id="893">893</a>
-<a href="#894" id="894">894</a>
-<a href="#895" id="895">895</a>
-<a href="#896" id="896">896</a>
-<a href="#897" id="897">897</a>
-<a href="#898" id="898">898</a>
-<a href="#899" id="899">899</a>
-<a href="#900" id="900">900</a>
-<a href="#901" id="901">901</a>
-<a href="#902" id="902">902</a>
-<a href="#903" id="903">903</a>
-<a href="#904" id="904">904</a>
-<a href="#905" id="905">905</a>
-<a href="#906" id="906">906</a>
-<a href="#907" id="907">907</a>
-<a href="#908" id="908">908</a>
-<a href="#909" id="909">909</a>
-<a href="#910" id="910">910</a>
-<a href="#911" id="911">911</a>
-<a href="#912" id="912">912</a>
-<a href="#913" id="913">913</a>
-<a href="#914" id="914">914</a>
-<a href="#915" id="915">915</a>
-<a href="#916" id="916">916</a>
-<a href="#917" id="917">917</a>
-<a href="#918" id="918">918</a>
-<a href="#919" id="919">919</a>
-<a href="#920" id="920">920</a>
-<a href="#921" id="921">921</a>
-<a href="#922" id="922">922</a>
-<a href="#923" id="923">923</a>
-<a href="#924" id="924">924</a>
-<a href="#925" id="925">925</a>
-<a href="#926" id="926">926</a>
-<a href="#927" id="927">927</a>
-<a href="#928" id="928">928</a>
-<a href="#929" id="929">929</a>
-<a href="#930" id="930">930</a>
-<a href="#931" id="931">931</a>
-<a href="#932" id="932">932</a>
-<a href="#933" id="933">933</a>
-<a href="#934" id="934">934</a>
-<a href="#935" id="935">935</a>
-<a href="#936" id="936">936</a>
-<a href="#937" id="937">937</a>
-<a href="#938" id="938">938</a>
-<a href="#939" id="939">939</a>
-<a href="#940" id="940">940</a>
-<a href="#941" id="941">941</a>
-<a href="#942" id="942">942</a>
-<a href="#943" id="943">943</a>
-<a href="#944" id="944">944</a>
-<a href="#945" id="945">945</a>
-<a href="#946" id="946">946</a>
-<a href="#947" id="947">947</a>
-<a href="#948" id="948">948</a>
-<a href="#949" id="949">949</a>
-<a href="#950" id="950">950</a>
-<a href="#951" id="951">951</a>
-<a href="#952" id="952">952</a>
-<a href="#953" id="953">953</a>
-<a href="#954" id="954">954</a>
-<a href="#955" id="955">955</a>
-<a href="#956" id="956">956</a>
-<a href="#957" id="957">957</a>
-<a href="#958" id="958">958</a>
-<a href="#959" id="959">959</a>
-<a href="#960" id="960">960</a>
-<a href="#961" id="961">961</a>
-<a href="#962" id="962">962</a>
-<a href="#963" id="963">963</a>
-<a href="#964" id="964">964</a>
-<a href="#965" id="965">965</a>
-<a href="#966" id="966">966</a>
-<a href="#967" id="967">967</a>
-<a href="#968" id="968">968</a>
-<a href="#969" id="969">969</a>
-<a href="#970" id="970">970</a>
-<a href="#971" id="971">971</a>
-<a href="#972" id="972">972</a>
-<a href="#973" id="973">973</a>
-<a href="#974" id="974">974</a>
-<a href="#975" id="975">975</a>
-<a href="#976" id="976">976</a>
-<a href="#977" id="977">977</a>
-<a href="#978" id="978">978</a>
-<a href="#979" id="979">979</a>
-<a href="#980" id="980">980</a>
-<a href="#981" id="981">981</a>
-<a href="#982" id="982">982</a>
-<a href="#983" id="983">983</a>
-<a href="#984" id="984">984</a>
-<a href="#985" id="985">985</a>
-<a href="#986" id="986">986</a>
-<a href="#987" id="987">987</a>
-<a href="#988" id="988">988</a>
-<a href="#989" id="989">989</a>
-<a href="#990" id="990">990</a>
-<a href="#991" id="991">991</a>
-<a href="#992" id="992">992</a>
-<a href="#993" id="993">993</a>
-<a href="#994" id="994">994</a>
-<a href="#995" id="995">995</a>
-<a href="#996" id="996">996</a>
-<a href="#997" id="997">997</a>
-<a href="#998" id="998">998</a>
-<a href="#999" id="999">999</a>
-<a href="#1000" id="1000">1000</a>
-<a href="#1001" id="1001">1001</a>
-<a href="#1002" id="1002">1002</a>
-<a href="#1003" id="1003">1003</a>
-<a href="#1004" id="1004">1004</a>
-<a href="#1005" id="1005">1005</a>
-<a href="#1006" id="1006">1006</a>
-</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-</span><span class="doccomment">//! Key formats
-
-</span><span class="kw">use </span><span class="kw">crate</span>::collections::HashSet;
-<span class="kw">use </span>alloc::string::{String, ToString};
-<span class="kw">use </span>alloc::vec::Vec;
-<span class="kw">use </span>core::any::TypeId;
-<span class="kw">use </span>core::fmt;
-<span class="kw">use </span>core::marker::PhantomData;
-<span class="kw">use </span>core::ops::Deref;
-<span class="kw">use </span>core::str::FromStr;
-
-<span class="kw">use </span>bitcoin::secp256k1::{<span class="self">self</span>, Secp256k1, Signing};
-
-<span class="kw">use </span>bitcoin::bip32;
-<span class="kw">use </span>bitcoin::{key::XOnlyPublicKey, Network, PrivateKey, PublicKey};
-
-<span class="kw">use </span>miniscript::descriptor::{Descriptor, DescriptorXKey, Wildcard};
-<span class="kw">pub use </span>miniscript::descriptor::{
- DescriptorPublicKey, DescriptorSecretKey, KeyMap, SinglePriv, SinglePub, SinglePubKey,
- SortedMultiVec,
-};
-<span class="kw">pub use </span>miniscript::ScriptContext;
-<span class="kw">use </span>miniscript::{Miniscript, Terminal};
-
-<span class="kw">use </span><span class="kw">crate</span>::descriptor::{CheckMiniscript, DescriptorError};
-<span class="kw">use </span><span class="kw">crate</span>::wallet::utils::SecpCtx;
-
-<span class="attr">#[cfg(feature = <span class="string">"keys-bip39"</span>)]
-#[cfg_attr(docsrs, doc(cfg(feature = <span class="string">"keys-bip39"</span>)))]
-</span><span class="kw">pub mod </span>bip39;
-
-<span class="doccomment">/// Set of valid networks for a key
-</span><span class="kw">pub type </span>ValidNetworks = HashSet<Network>;
-
-<span class="doccomment">/// Create a set containing mainnet, testnet, signet, and regtest
-</span><span class="kw">pub fn </span>any_network() -> ValidNetworks {
- <span class="macro">vec!</span>[
- Network::Bitcoin,
- Network::Testnet,
- Network::Regtest,
- Network::Signet,
- ]
- .into_iter()
- .collect()
-}
-<span class="doccomment">/// Create a set only containing mainnet
-</span><span class="kw">pub fn </span>mainnet_network() -> ValidNetworks {
- <span class="macro">vec!</span>[Network::Bitcoin].into_iter().collect()
-}
-<span class="doccomment">/// Create a set containing testnet and regtest
-</span><span class="kw">pub fn </span>test_networks() -> ValidNetworks {
- <span class="macro">vec!</span>[Network::Testnet, Network::Regtest, Network::Signet]
- .into_iter()
- .collect()
-}
-<span class="doccomment">/// Compute the intersection of two sets
-</span><span class="kw">pub fn </span>merge_networks(a: <span class="kw-2">&</span>ValidNetworks, b: <span class="kw-2">&</span>ValidNetworks) -> ValidNetworks {
- a.intersection(b).cloned().collect()
-}
-
-<span class="doccomment">/// Container for public or secret keys
-</span><span class="attr">#[derive(Debug)]
-</span><span class="kw">pub enum </span>DescriptorKey<Ctx: ScriptContext> {
- <span class="attr">#[doc(hidden)]
- </span>Public(DescriptorPublicKey, ValidNetworks, PhantomData<Ctx>),
- <span class="attr">#[doc(hidden)]
- </span>Secret(DescriptorSecretKey, ValidNetworks, PhantomData<Ctx>),
-}
-
-<span class="kw">impl</span><Ctx: ScriptContext> DescriptorKey<Ctx> {
- <span class="doccomment">/// Create an instance given a public key and a set of valid networks
- </span><span class="kw">pub fn </span>from_public(public: DescriptorPublicKey, networks: ValidNetworks) -> <span class="self">Self </span>{
- DescriptorKey::Public(public, networks, PhantomData)
- }
-
- <span class="doccomment">/// Create an instance given a secret key and a set of valid networks
- </span><span class="kw">pub fn </span>from_secret(secret: DescriptorSecretKey, networks: ValidNetworks) -> <span class="self">Self </span>{
- DescriptorKey::Secret(secret, networks, PhantomData)
- }
-
- <span class="doccomment">/// Override the computed set of valid networks
- </span><span class="kw">pub fn </span>override_valid_networks(<span class="self">self</span>, networks: ValidNetworks) -> <span class="self">Self </span>{
- <span class="kw">match </span><span class="self">self </span>{
- DescriptorKey::Public(key, <span class="kw">_</span>, <span class="kw">_</span>) => DescriptorKey::Public(key, networks, PhantomData),
- DescriptorKey::Secret(key, <span class="kw">_</span>, <span class="kw">_</span>) => DescriptorKey::Secret(key, networks, PhantomData),
- }
- }
-
- <span class="comment">// This method is used internally by `bdk::fragment!` and `bdk::descriptor!`. It has to be
- // public because it is effectively called by external crates once the macros are expanded,
- // but since it is not meant to be part of the public api we hide it from the docs.
- </span><span class="attr">#[doc(hidden)]
- </span><span class="kw">pub fn </span>extract(
- <span class="self">self</span>,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> <span class="prelude-ty">Result</span><(DescriptorPublicKey, KeyMap, ValidNetworks), KeyError> {
- <span class="kw">match </span><span class="self">self </span>{
- DescriptorKey::Public(public, valid_networks, <span class="kw">_</span>) => {
- <span class="prelude-val">Ok</span>((public, KeyMap::default(), valid_networks))
- }
- DescriptorKey::Secret(secret, valid_networks, <span class="kw">_</span>) => {
- <span class="kw">let </span><span class="kw-2">mut </span>key_map = KeyMap::new();
-
- <span class="kw">let </span>public = secret
- .to_public(secp)
- .map_err(|e| miniscript::Error::Unexpected(e.to_string()))<span class="question-mark">?</span>;
- key_map.insert(public.clone(), secret);
-
- <span class="prelude-val">Ok</span>((public, key_map, valid_networks))
- }
- }
- }
-}
-
-<span class="doccomment">/// Enum representation of the known valid [`ScriptContext`]s
-</span><span class="attr">#[derive(Debug, Eq, PartialEq, Copy, Clone)]
-</span><span class="kw">pub enum </span>ScriptContextEnum {
- <span class="doccomment">/// Legacy scripts
- </span>Legacy,
- <span class="doccomment">/// Segwitv0 scripts
- </span>Segwitv0,
- <span class="doccomment">/// Taproot scripts
- </span>Tap,
-}
-
-<span class="kw">impl </span>ScriptContextEnum {
- <span class="doccomment">/// Returns whether the script context is [`ScriptContextEnum::Legacy`]
- </span><span class="kw">pub fn </span>is_legacy(<span class="kw-2">&</span><span class="self">self</span>) -> bool {
- <span class="self">self </span>== <span class="kw-2">&</span>ScriptContextEnum::Legacy
- }
-
- <span class="doccomment">/// Returns whether the script context is [`ScriptContextEnum::Segwitv0`]
- </span><span class="kw">pub fn </span>is_segwit_v0(<span class="kw-2">&</span><span class="self">self</span>) -> bool {
- <span class="self">self </span>== <span class="kw-2">&</span>ScriptContextEnum::Segwitv0
- }
-
- <span class="doccomment">/// Returns whether the script context is [`ScriptContextEnum::Tap`]
- </span><span class="kw">pub fn </span>is_taproot(<span class="kw-2">&</span><span class="self">self</span>) -> bool {
- <span class="self">self </span>== <span class="kw-2">&</span>ScriptContextEnum::Tap
- }
-}
-
-<span class="doccomment">/// Trait that adds extra useful methods to [`ScriptContext`]s
-</span><span class="kw">pub trait </span>ExtScriptContext: ScriptContext {
- <span class="doccomment">/// Returns the [`ScriptContext`] as a [`ScriptContextEnum`]
- </span><span class="kw">fn </span>as_enum() -> ScriptContextEnum;
-
- <span class="doccomment">/// Returns whether the script context is [`Legacy`](miniscript::Legacy)
- </span><span class="kw">fn </span>is_legacy() -> bool {
- <span class="self">Self</span>::as_enum().is_legacy()
- }
-
- <span class="doccomment">/// Returns whether the script context is [`Segwitv0`](miniscript::Segwitv0)
- </span><span class="kw">fn </span>is_segwit_v0() -> bool {
- <span class="self">Self</span>::as_enum().is_segwit_v0()
- }
-
- <span class="doccomment">/// Returns whether the script context is [`Tap`](miniscript::Tap), aka Taproot or Segwit V1
- </span><span class="kw">fn </span>is_taproot() -> bool {
- <span class="self">Self</span>::as_enum().is_taproot()
- }
-}
-
-<span class="kw">impl</span><Ctx: ScriptContext + <span class="lifetime">'static</span>> ExtScriptContext <span class="kw">for </span>Ctx {
- <span class="kw">fn </span>as_enum() -> ScriptContextEnum {
- <span class="kw">match </span>TypeId::of::<Ctx>() {
- t <span class="kw">if </span>t == TypeId::of::<miniscript::Legacy>() => ScriptContextEnum::Legacy,
- t <span class="kw">if </span>t == TypeId::of::<miniscript::Segwitv0>() => ScriptContextEnum::Segwitv0,
- t <span class="kw">if </span>t == TypeId::of::<miniscript::Tap>() => ScriptContextEnum::Tap,
- <span class="kw">_ </span>=> <span class="macro">unimplemented!</span>(<span class="string">"Unknown ScriptContext type"</span>),
- }
- }
-}
-
-<span class="doccomment">/// Trait for objects that can be turned into a public or secret [`DescriptorKey`]
-///
-/// The generic type `Ctx` is used to define the context in which the key is valid: some key
-/// formats, like the mnemonics used by Electrum wallets, encode internally whether the wallet is
-/// legacy or segwit. Thus, trying to turn a valid legacy mnemonic into a `DescriptorKey`
-/// that would become part of a segwit descriptor should fail.
-///
-/// For key types that do care about this, the [`ExtScriptContext`] trait provides some useful
-/// methods that can be used to check at runtime which `Ctx` is being used.
-///
-/// For key types that can do this check statically (because they can only work within a
-/// single `Ctx`), the "specialized" trait can be implemented to make the compiler handle the type
-/// checking.
-///
-/// Keys also have control over the networks they support: constructing the return object with
-/// [`DescriptorKey::from_public`] or [`DescriptorKey::from_secret`] allows to specify a set of
-/// [`ValidNetworks`].
-///
-/// ## Examples
-///
-/// Key type valid in any context:
-///
-/// ```
-/// use bdk::bitcoin::PublicKey;
-///
-/// use bdk::keys::{DescriptorKey, IntoDescriptorKey, KeyError, ScriptContext};
-///
-/// pub struct MyKeyType {
-/// pubkey: PublicKey,
-/// }
-///
-/// impl<Ctx: ScriptContext> IntoDescriptorKey<Ctx> for MyKeyType {
-/// fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError> {
-/// self.pubkey.into_descriptor_key()
-/// }
-/// }
-/// ```
-///
-/// Key type that is only valid on mainnet:
-///
-/// ```
-/// use bdk::bitcoin::PublicKey;
-///
-/// use bdk::keys::{
-/// mainnet_network, DescriptorKey, DescriptorPublicKey, IntoDescriptorKey, KeyError,
-/// ScriptContext, SinglePub, SinglePubKey,
-/// };
-///
-/// pub struct MyKeyType {
-/// pubkey: PublicKey,
-/// }
-///
-/// impl<Ctx: ScriptContext> IntoDescriptorKey<Ctx> for MyKeyType {
-/// fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError> {
-/// Ok(DescriptorKey::from_public(
-/// DescriptorPublicKey::Single(SinglePub {
-/// origin: None,
-/// key: SinglePubKey::FullKey(self.pubkey),
-/// }),
-/// mainnet_network(),
-/// ))
-/// }
-/// }
-/// ```
-///
-/// Key type that internally encodes in which context it's valid. The context is checked at runtime:
-///
-/// ```
-/// use bdk::bitcoin::PublicKey;
-///
-/// use bdk::keys::{DescriptorKey, ExtScriptContext, IntoDescriptorKey, KeyError, ScriptContext};
-///
-/// pub struct MyKeyType {
-/// is_legacy: bool,
-/// pubkey: PublicKey,
-/// }
-///
-/// impl<Ctx: ScriptContext + 'static> IntoDescriptorKey<Ctx> for MyKeyType {
-/// fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError> {
-/// if Ctx::is_legacy() == self.is_legacy {
-/// self.pubkey.into_descriptor_key()
-/// } else {
-/// Err(KeyError::InvalidScriptContext)
-/// }
-/// }
-/// }
-/// ```
-///
-/// Key type that can only work within [`miniscript::Segwitv0`] context. Only the specialized version
-/// of the trait is implemented.
-///
-/// This example deliberately fails to compile, to demonstrate how the compiler can catch when keys
-/// are misused. In this case, the "segwit-only" key is used to build a `pkh()` descriptor, which
-/// makes the compiler (correctly) fail.
-///
-/// ```compile_fail
-/// use bdk::bitcoin::PublicKey;
-/// use core::str::FromStr;
-///
-/// use bdk::keys::{DescriptorKey, IntoDescriptorKey, KeyError};
-///
-/// pub struct MySegwitOnlyKeyType {
-/// pubkey: PublicKey,
-/// }
-///
-/// impl IntoDescriptorKey<bdk::miniscript::Segwitv0> for MySegwitOnlyKeyType {
-/// fn into_descriptor_key(self) -> Result<DescriptorKey<bdk::miniscript::Segwitv0>, KeyError> {
-/// self.pubkey.into_descriptor_key()
-/// }
-/// }
-///
-/// let key = MySegwitOnlyKeyType {
-/// pubkey: PublicKey::from_str("...")?,
-/// };
-/// let (descriptor, _, _) = bdk::descriptor!(pkh(key))?;
-/// // ^^^^^ changing this to `wpkh` would make it compile
-///
-/// # Ok::<_, Box<dyn std::error::Error>>(())
-/// ```
-</span><span class="kw">pub trait </span>IntoDescriptorKey<Ctx: ScriptContext>: Sized {
- <span class="doccomment">/// Turn the key into a [`DescriptorKey`] within the requested [`ScriptContext`]
- </span><span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError>;
-}
-
-<span class="doccomment">/// Enum for extended keys that can be either `xprv` or `xpub`
-///
-/// An instance of [`ExtendedKey`] can be constructed from an [`Xpriv`](bip32::Xpriv)
-/// or an [`Xpub`](bip32::Xpub) by using the `From` trait.
-///
-/// Defaults to the [`Legacy`](miniscript::Legacy) context.
-</span><span class="kw">pub enum </span>ExtendedKey<Ctx: ScriptContext = miniscript::Legacy> {
- <span class="doccomment">/// A private extended key, aka an `xprv`
- </span>Private((bip32::Xpriv, PhantomData<Ctx>)),
- <span class="doccomment">/// A public extended key, aka an `xpub`
- </span>Public((bip32::Xpub, PhantomData<Ctx>)),
-}
-
-<span class="kw">impl</span><Ctx: ScriptContext> ExtendedKey<Ctx> {
- <span class="doccomment">/// Return whether or not the key contains the private data
- </span><span class="kw">pub fn </span>has_secret(<span class="kw-2">&</span><span class="self">self</span>) -> bool {
- <span class="kw">match </span><span class="self">self </span>{
- ExtendedKey::Private(<span class="kw">_</span>) => <span class="bool-val">true</span>,
- ExtendedKey::Public(<span class="kw">_</span>) => <span class="bool-val">false</span>,
- }
- }
-
- <span class="doccomment">/// Transform the [`ExtendedKey`] into an [`Xpriv`](bip32::Xpriv) for the
- /// given [`Network`], if the key contains the private data
- </span><span class="kw">pub fn </span>into_xprv(<span class="self">self</span>, network: Network) -> <span class="prelude-ty">Option</span><bip32::Xpriv> {
- <span class="kw">match </span><span class="self">self </span>{
- ExtendedKey::Private((<span class="kw-2">mut </span>xprv, <span class="kw">_</span>)) => {
- xprv.network = network;
- <span class="prelude-val">Some</span>(xprv)
- }
- ExtendedKey::Public(<span class="kw">_</span>) => <span class="prelude-val">None</span>,
- }
- }
-
- <span class="doccomment">/// Transform the [`ExtendedKey`] into an [`Xpub`](bip32::Xpub) for the
- /// given [`Network`]
- </span><span class="kw">pub fn </span>into_xpub<C: Signing>(
- <span class="self">self</span>,
- network: bitcoin::Network,
- secp: <span class="kw-2">&</span>Secp256k1<C>,
- ) -> bip32::Xpub {
- <span class="kw">let </span><span class="kw-2">mut </span>xpub = <span class="kw">match </span><span class="self">self </span>{
- ExtendedKey::Private((xprv, <span class="kw">_</span>)) => bip32::Xpub::from_priv(secp, <span class="kw-2">&</span>xprv),
- ExtendedKey::Public((xpub, <span class="kw">_</span>)) => xpub,
- };
-
- xpub.network = network;
- xpub
- }
-}
-
-<span class="kw">impl</span><Ctx: ScriptContext> From<bip32::Xpub> <span class="kw">for </span>ExtendedKey<Ctx> {
- <span class="kw">fn </span>from(xpub: bip32::Xpub) -> <span class="self">Self </span>{
- ExtendedKey::Public((xpub, PhantomData))
- }
-}
-
-<span class="kw">impl</span><Ctx: ScriptContext> From<bip32::Xpriv> <span class="kw">for </span>ExtendedKey<Ctx> {
- <span class="kw">fn </span>from(xprv: bip32::Xpriv) -> <span class="self">Self </span>{
- ExtendedKey::Private((xprv, PhantomData))
- }
-}
-
-<span class="doccomment">/// Trait for keys that can be derived.
-///
-/// When extra metadata are provided, a [`DerivableKey`] can be transformed into a
-/// [`DescriptorKey`]: the trait [`IntoDescriptorKey`] is automatically implemented
-/// for `(DerivableKey, DerivationPath)` and
-/// `(DerivableKey, KeySource, DerivationPath)` tuples.
-///
-/// For key types that don't encode any indication about the path to use (like bip39), it's
-/// generally recommended to implement this trait instead of [`IntoDescriptorKey`]. The same
-/// rules regarding script context and valid networks apply.
-///
-/// ## Examples
-///
-/// Key types that can be directly converted into an [`Xpriv`] or
-/// an [`Xpub`] can implement only the required `into_extended_key()` method.
-///
-/// ```
-/// use bdk::bitcoin;
-/// use bdk::bitcoin::bip32;
-/// use bdk::keys::{DerivableKey, ExtendedKey, KeyError, ScriptContext};
-///
-/// struct MyCustomKeyType {
-/// key_data: bitcoin::PrivateKey,
-/// chain_code: [u8; 32],
-/// network: bitcoin::Network,
-/// }
-///
-/// impl<Ctx: ScriptContext> DerivableKey<Ctx> for MyCustomKeyType {
-/// fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError> {
-/// let xprv = bip32::Xpriv {
-/// network: self.network,
-/// depth: 0,
-/// parent_fingerprint: bip32::Fingerprint::default(),
-/// private_key: self.key_data.inner,
-/// chain_code: bip32::ChainCode::from(&self.chain_code),
-/// child_number: bip32::ChildNumber::Normal { index: 0 },
-/// };
-///
-/// xprv.into_extended_key()
-/// }
-/// }
-/// ```
-///
-/// Types that don't internally encode the [`Network`] in which they are valid need some extra
-/// steps to override the set of valid networks, otherwise only the network specified in the
-/// [`Xpriv`] or [`Xpub`] will be considered valid.
-///
-/// ```
-/// use bdk::bitcoin;
-/// use bdk::bitcoin::bip32;
-/// use bdk::keys::{
-/// any_network, DerivableKey, DescriptorKey, ExtendedKey, KeyError, ScriptContext,
-/// };
-///
-/// struct MyCustomKeyType {
-/// key_data: bitcoin::PrivateKey,
-/// chain_code: [u8; 32],
-/// }
-///
-/// impl<Ctx: ScriptContext> DerivableKey<Ctx> for MyCustomKeyType {
-/// fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError> {
-/// let xprv = bip32::Xpriv {
-/// network: bitcoin::Network::Bitcoin, // pick an arbitrary network here
-/// depth: 0,
-/// parent_fingerprint: bip32::Fingerprint::default(),
-/// private_key: self.key_data.inner,
-/// chain_code: bip32::ChainCode::from(&self.chain_code),
-/// child_number: bip32::ChildNumber::Normal { index: 0 },
-/// };
-///
-/// xprv.into_extended_key()
-/// }
-///
-/// fn into_descriptor_key(
-/// self,
-/// source: Option<bip32::KeySource>,
-/// derivation_path: bip32::DerivationPath,
-/// ) -> Result<DescriptorKey<Ctx>, KeyError> {
-/// let descriptor_key = self
-/// .into_extended_key()?
-/// .into_descriptor_key(source, derivation_path)?;
-///
-/// // Override the set of valid networks here
-/// Ok(descriptor_key.override_valid_networks(any_network()))
-/// }
-/// }
-/// ```
-///
-/// [`DerivationPath`]: (bip32::DerivationPath)
-/// [`Xpriv`]: (bip32::Xpriv)
-/// [`Xpub`]: (bip32::Xpub)
-</span><span class="kw">pub trait </span>DerivableKey<Ctx: ScriptContext = miniscript::Legacy>: Sized {
- <span class="doccomment">/// Consume `self` and turn it into an [`ExtendedKey`]
- </span><span class="attr">#[cfg_attr(
- feature = <span class="string">"keys-bip39"</span>,
- doc = <span class="string">r##"
-This can be used to get direct access to `xprv`s and `xpub`s for types that implement this trait,
-like [`Mnemonic`](bip39::Mnemonic) when the `keys-bip39` feature is enabled.
-```rust
-use bdk::bitcoin::Network;
-use bdk::keys::{DerivableKey, ExtendedKey};
-use bdk::keys::bip39::{Mnemonic, Language};
-
-# fn main() -> Result<(), Box<dyn std::error::Error>> {
-let xkey: ExtendedKey =
- Mnemonic::parse_in(
- Language::English,
- "jelly crash boy whisper mouse ecology tuna soccer memory million news short",
- )?
- .into_extended_key()?;
-let xprv = xkey.into_xprv(Network::Bitcoin).unwrap();
-# Ok(()) }
-```
-"##
- </span>)]
- </span><span class="kw">fn </span>into_extended_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><ExtendedKey<Ctx>, KeyError>;
-
- <span class="doccomment">/// Consume `self` and turn it into a [`DescriptorKey`] by adding the extra metadata, such as
- /// key origin and derivation path
- </span><span class="kw">fn </span>into_descriptor_key(
- <span class="self">self</span>,
- origin: <span class="prelude-ty">Option</span><bip32::KeySource>,
- derivation_path: bip32::DerivationPath,
- ) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
- <span class="kw">match </span><span class="self">self</span>.into_extended_key()<span class="question-mark">? </span>{
- ExtendedKey::Private((xprv, <span class="kw">_</span>)) => DescriptorSecretKey::XPrv(DescriptorXKey {
- origin,
- xkey: xprv,
- derivation_path,
- wildcard: Wildcard::Unhardened,
- })
- .into_descriptor_key(),
- ExtendedKey::Public((xpub, <span class="kw">_</span>)) => DescriptorPublicKey::XPub(DescriptorXKey {
- origin,
- xkey: xpub,
- derivation_path,
- wildcard: Wildcard::Unhardened,
- })
- .into_descriptor_key(),
- }
- }
-}
-
-<span class="doccomment">/// Identity conversion
-</span><span class="kw">impl</span><Ctx: ScriptContext> DerivableKey<Ctx> <span class="kw">for </span>ExtendedKey<Ctx> {
- <span class="kw">fn </span>into_extended_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><ExtendedKey<Ctx>, KeyError> {
- <span class="prelude-val">Ok</span>(<span class="self">self</span>)
- }
-}
-
-<span class="kw">impl</span><Ctx: ScriptContext> DerivableKey<Ctx> <span class="kw">for </span>bip32::Xpub {
- <span class="kw">fn </span>into_extended_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><ExtendedKey<Ctx>, KeyError> {
- <span class="prelude-val">Ok</span>(<span class="self">self</span>.into())
- }
-}
-
-<span class="kw">impl</span><Ctx: ScriptContext> DerivableKey<Ctx> <span class="kw">for </span>bip32::Xpriv {
- <span class="kw">fn </span>into_extended_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><ExtendedKey<Ctx>, KeyError> {
- <span class="prelude-val">Ok</span>(<span class="self">self</span>.into())
- }
-}
-
-<span class="doccomment">/// Output of a [`GeneratableKey`] key generation
-</span><span class="kw">pub struct </span>GeneratedKey<K, Ctx: ScriptContext> {
- key: K,
- valid_networks: ValidNetworks,
- phantom: PhantomData<Ctx>,
-}
-
-<span class="kw">impl</span><K, Ctx: ScriptContext> GeneratedKey<K, Ctx> {
- <span class="kw">fn </span>new(key: K, valid_networks: ValidNetworks) -> <span class="self">Self </span>{
- GeneratedKey {
- key,
- valid_networks,
- phantom: PhantomData,
- }
- }
-
- <span class="doccomment">/// Consumes `self` and returns the key
- </span><span class="kw">pub fn </span>into_key(<span class="self">self</span>) -> K {
- <span class="self">self</span>.key
- }
-}
-
-<span class="kw">impl</span><K, Ctx: ScriptContext> Deref <span class="kw">for </span>GeneratedKey<K, Ctx> {
- <span class="kw">type </span>Target = K;
-
- <span class="kw">fn </span>deref(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span><span class="self">Self</span>::Target {
- <span class="kw-2">&</span><span class="self">self</span>.key
- }
-}
-
-<span class="kw">impl</span><K: Clone, Ctx: ScriptContext> Clone <span class="kw">for </span>GeneratedKey<K, Ctx> {
- <span class="kw">fn </span>clone(<span class="kw-2">&</span><span class="self">self</span>) -> GeneratedKey<K, Ctx> {
- GeneratedKey {
- key: <span class="self">self</span>.key.clone(),
- valid_networks: <span class="self">self</span>.valid_networks.clone(),
- phantom: <span class="self">self</span>.phantom,
- }
- }
-}
-
-<span class="comment">// Make generated "derivable" keys themselves "derivable". Also make sure they are assigned the
-// right `valid_networks`.
-</span><span class="kw">impl</span><Ctx, K> DerivableKey<Ctx> <span class="kw">for </span>GeneratedKey<K, Ctx>
-<span class="kw">where
- </span>Ctx: ScriptContext,
- K: DerivableKey<Ctx>,
-{
- <span class="kw">fn </span>into_extended_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><ExtendedKey<Ctx>, KeyError> {
- <span class="self">self</span>.key.into_extended_key()
- }
-
- <span class="kw">fn </span>into_descriptor_key(
- <span class="self">self</span>,
- origin: <span class="prelude-ty">Option</span><bip32::KeySource>,
- derivation_path: bip32::DerivationPath,
- ) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
- <span class="kw">let </span>descriptor_key = <span class="self">self</span>.key.into_descriptor_key(origin, derivation_path)<span class="question-mark">?</span>;
- <span class="prelude-val">Ok</span>(descriptor_key.override_valid_networks(<span class="self">self</span>.valid_networks))
- }
-}
-
-<span class="comment">// Make generated keys directly usable in descriptors, and make sure they get assigned the right
-// `valid_networks`.
-</span><span class="kw">impl</span><Ctx, K> IntoDescriptorKey<Ctx> <span class="kw">for </span>GeneratedKey<K, Ctx>
-<span class="kw">where
- </span>Ctx: ScriptContext,
- K: IntoDescriptorKey<Ctx>,
-{
- <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
- <span class="kw">let </span>desc_key = <span class="self">self</span>.key.into_descriptor_key()<span class="question-mark">?</span>;
- <span class="prelude-val">Ok</span>(desc_key.override_valid_networks(<span class="self">self</span>.valid_networks))
- }
-}
-
-<span class="doccomment">/// Trait for keys that can be generated
-///
-/// The same rules about [`ScriptContext`] and [`ValidNetworks`] from [`IntoDescriptorKey`] apply.
-///
-/// This trait is particularly useful when combined with [`DerivableKey`]: if `Self`
-/// implements it, the returned [`GeneratedKey`] will also implement it. The same is true for
-/// [`IntoDescriptorKey`]: the generated keys can be directly used in descriptors if `Self` is also
-/// [`IntoDescriptorKey`].
-</span><span class="kw">pub trait </span>GeneratableKey<Ctx: ScriptContext>: Sized {
- <span class="doccomment">/// Type specifying the amount of entropy required e.g. `[u8;32]`
- </span><span class="kw">type </span>Entropy: AsMut<[u8]> + Default;
-
- <span class="doccomment">/// Extra options required by the `generate_with_entropy`
- </span><span class="kw">type </span>Options;
- <span class="doccomment">/// Returned error in case of failure
- </span><span class="kw">type </span>Error: core::fmt::Debug;
-
- <span class="doccomment">/// Generate a key given the extra options and the entropy
- </span><span class="kw">fn </span>generate_with_entropy(
- options: <span class="self">Self</span>::Options,
- entropy: <span class="self">Self</span>::Entropy,
- ) -> <span class="prelude-ty">Result</span><GeneratedKey<<span class="self">Self</span>, Ctx>, <span class="self">Self</span>::Error>;
-
- <span class="doccomment">/// Generate a key given the options with a random entropy
- </span><span class="kw">fn </span>generate(options: <span class="self">Self</span>::Options) -> <span class="prelude-ty">Result</span><GeneratedKey<<span class="self">Self</span>, Ctx>, <span class="self">Self</span>::Error> {
- <span class="kw">use </span>rand::{thread_rng, Rng};
-
- <span class="kw">let </span><span class="kw-2">mut </span>entropy = <span class="self">Self</span>::Entropy::default();
- thread_rng().fill(entropy.as_mut());
- <span class="self">Self</span>::generate_with_entropy(options, entropy)
- }
-}
-
-<span class="doccomment">/// Trait that allows generating a key with the default options
-///
-/// This trait is automatically implemented if the [`GeneratableKey::Options`] implements [`Default`].
-</span><span class="kw">pub trait </span>GeneratableDefaultOptions<Ctx>: GeneratableKey<Ctx>
-<span class="kw">where
- </span>Ctx: ScriptContext,
- <<span class="self">Self </span><span class="kw">as </span>GeneratableKey<Ctx>>::Options: Default,
-{
- <span class="doccomment">/// Generate a key with the default options and a given entropy
- </span><span class="kw">fn </span>generate_with_entropy_default(
- entropy: <span class="self">Self</span>::Entropy,
- ) -> <span class="prelude-ty">Result</span><GeneratedKey<<span class="self">Self</span>, Ctx>, <span class="self">Self</span>::Error> {
- <span class="self">Self</span>::generate_with_entropy(Default::default(), entropy)
- }
-
- <span class="doccomment">/// Generate a key with the default options and a random entropy
- </span><span class="kw">fn </span>generate_default() -> <span class="prelude-ty">Result</span><GeneratedKey<<span class="self">Self</span>, Ctx>, <span class="self">Self</span>::Error> {
- <span class="self">Self</span>::generate(Default::default())
- }
-}
-
-<span class="doccomment">/// Automatic implementation of [`GeneratableDefaultOptions`] for [`GeneratableKey`]s where
-/// `Options` implements `Default`
-</span><span class="kw">impl</span><Ctx, K> GeneratableDefaultOptions<Ctx> <span class="kw">for </span>K
-<span class="kw">where
- </span>Ctx: ScriptContext,
- K: GeneratableKey<Ctx>,
- <K <span class="kw">as </span>GeneratableKey<Ctx>>::Options: Default,
-{
-}
-
-<span class="kw">impl</span><Ctx: ScriptContext> GeneratableKey<Ctx> <span class="kw">for </span>bip32::Xpriv {
- <span class="kw">type </span>Entropy = [u8; <span class="number">32</span>];
-
- <span class="kw">type </span>Options = ();
- <span class="kw">type </span>Error = bip32::Error;
-
- <span class="kw">fn </span>generate_with_entropy(
- <span class="kw">_</span>: <span class="self">Self</span>::Options,
- entropy: <span class="self">Self</span>::Entropy,
- ) -> <span class="prelude-ty">Result</span><GeneratedKey<<span class="self">Self</span>, Ctx>, <span class="self">Self</span>::Error> {
- <span class="comment">// pick a arbitrary network here, but say that we support all of them
- </span><span class="kw">let </span>xprv = bip32::Xpriv::new_master(Network::Bitcoin, entropy.as_ref())<span class="question-mark">?</span>;
- <span class="prelude-val">Ok</span>(GeneratedKey::new(xprv, any_network()))
- }
-}
-
-<span class="doccomment">/// Options for generating a [`PrivateKey`]
-///
-/// Defaults to creating compressed keys, which save on-chain bytes and fees
-</span><span class="attr">#[derive(Debug, Copy, Clone)]
-</span><span class="kw">pub struct </span>PrivateKeyGenerateOptions {
- <span class="doccomment">/// Whether the generated key should be "compressed" or not
- </span><span class="kw">pub </span>compressed: bool,
-}
-
-<span class="kw">impl </span>Default <span class="kw">for </span>PrivateKeyGenerateOptions {
- <span class="kw">fn </span>default() -> <span class="self">Self </span>{
- PrivateKeyGenerateOptions { compressed: <span class="bool-val">true </span>}
- }
-}
-
-<span class="kw">impl</span><Ctx: ScriptContext> GeneratableKey<Ctx> <span class="kw">for </span>PrivateKey {
- <span class="kw">type </span>Entropy = [u8; secp256k1::constants::SECRET_KEY_SIZE];
-
- <span class="kw">type </span>Options = PrivateKeyGenerateOptions;
- <span class="kw">type </span>Error = bip32::Error;
-
- <span class="kw">fn </span>generate_with_entropy(
- options: <span class="self">Self</span>::Options,
- entropy: <span class="self">Self</span>::Entropy,
- ) -> <span class="prelude-ty">Result</span><GeneratedKey<<span class="self">Self</span>, Ctx>, <span class="self">Self</span>::Error> {
- <span class="comment">// pick a arbitrary network here, but say that we support all of them
- </span><span class="kw">let </span>inner = secp256k1::SecretKey::from_slice(<span class="kw-2">&</span>entropy)<span class="question-mark">?</span>;
- <span class="kw">let </span>private_key = PrivateKey {
- compressed: options.compressed,
- network: Network::Bitcoin,
- inner,
- };
-
- <span class="prelude-val">Ok</span>(GeneratedKey::new(private_key, any_network()))
- }
-}
-
-<span class="kw">impl</span><Ctx: ScriptContext, T: DerivableKey<Ctx>> IntoDescriptorKey<Ctx>
- <span class="kw">for </span>(T, bip32::DerivationPath)
-{
- <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
- <span class="self">self</span>.<span class="number">0</span>.into_descriptor_key(<span class="prelude-val">None</span>, <span class="self">self</span>.<span class="number">1</span>)
- }
-}
-
-<span class="kw">impl</span><Ctx: ScriptContext, T: DerivableKey<Ctx>> IntoDescriptorKey<Ctx>
- <span class="kw">for </span>(T, bip32::KeySource, bip32::DerivationPath)
-{
- <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
- <span class="self">self</span>.<span class="number">0</span>.into_descriptor_key(<span class="prelude-val">Some</span>(<span class="self">self</span>.<span class="number">1</span>), <span class="self">self</span>.<span class="number">2</span>)
- }
-}
-
-<span class="kw">fn </span>expand_multi_keys<Pk: IntoDescriptorKey<Ctx>, Ctx: ScriptContext>(
- pks: Vec<Pk>,
- secp: <span class="kw-2">&</span>SecpCtx,
-) -> <span class="prelude-ty">Result</span><(Vec<DescriptorPublicKey>, KeyMap, ValidNetworks), KeyError> {
- <span class="kw">let </span>(pks, key_maps_networks): (Vec<<span class="kw">_</span>>, Vec<<span class="kw">_</span>>) = pks
- .into_iter()
- .map(|key| key.into_descriptor_key()<span class="question-mark">?</span>.extract(secp))
- .collect::<<span class="prelude-ty">Result</span><Vec<<span class="kw">_</span>>, <span class="kw">_</span>>>()<span class="question-mark">?
- </span>.into_iter()
- .map(|(a, b, c)| (a, (b, c)))
- .unzip();
-
- <span class="kw">let </span>(key_map, valid_networks) = key_maps_networks.into_iter().fold(
- (KeyMap::default(), any_network()),
- |(<span class="kw-2">mut </span>keys_acc, net_acc), (key, net)| {
- keys_acc.extend(key);
- <span class="kw">let </span>net_acc = merge_networks(<span class="kw-2">&</span>net_acc, <span class="kw-2">&</span>net);
-
- (keys_acc, net_acc)
- },
- );
-
- <span class="prelude-val">Ok</span>((pks, key_map, valid_networks))
-}
-
-<span class="comment">// Used internally by `bdk::fragment!` to build `pk_k()` fragments
-</span><span class="attr">#[doc(hidden)]
-</span><span class="kw">pub fn </span>make_pk<Pk: IntoDescriptorKey<Ctx>, Ctx: ScriptContext>(
- descriptor_key: Pk,
- secp: <span class="kw-2">&</span>SecpCtx,
-) -> <span class="prelude-ty">Result</span><(Miniscript<DescriptorPublicKey, Ctx>, KeyMap, ValidNetworks), DescriptorError> {
- <span class="kw">let </span>(key, key_map, valid_networks) = descriptor_key.into_descriptor_key()<span class="question-mark">?</span>.extract(secp)<span class="question-mark">?</span>;
- <span class="kw">let </span>minisc = Miniscript::from_ast(Terminal::PkK(key))<span class="question-mark">?</span>;
-
- minisc.check_miniscript()<span class="question-mark">?</span>;
-
- <span class="prelude-val">Ok</span>((minisc, key_map, valid_networks))
-}
-
-<span class="comment">// Used internally by `bdk::fragment!` to build `pk_h()` fragments
-</span><span class="attr">#[doc(hidden)]
-</span><span class="kw">pub fn </span>make_pkh<Pk: IntoDescriptorKey<Ctx>, Ctx: ScriptContext>(
- descriptor_key: Pk,
- secp: <span class="kw-2">&</span>SecpCtx,
-) -> <span class="prelude-ty">Result</span><(Miniscript<DescriptorPublicKey, Ctx>, KeyMap, ValidNetworks), DescriptorError> {
- <span class="kw">let </span>(key, key_map, valid_networks) = descriptor_key.into_descriptor_key()<span class="question-mark">?</span>.extract(secp)<span class="question-mark">?</span>;
- <span class="kw">let </span>minisc = Miniscript::from_ast(Terminal::PkH(key))<span class="question-mark">?</span>;
-
- minisc.check_miniscript()<span class="question-mark">?</span>;
-
- <span class="prelude-val">Ok</span>((minisc, key_map, valid_networks))
-}
-
-<span class="comment">// Used internally by `bdk::fragment!` to build `multi()` fragments
-</span><span class="attr">#[doc(hidden)]
-</span><span class="kw">pub fn </span>make_multi<
- Pk: IntoDescriptorKey<Ctx>,
- Ctx: ScriptContext,
- V: Fn(usize, Vec<DescriptorPublicKey>) -> Terminal<DescriptorPublicKey, Ctx>,
->(
- thresh: usize,
- variant: V,
- pks: Vec<Pk>,
- secp: <span class="kw-2">&</span>SecpCtx,
-) -> <span class="prelude-ty">Result</span><(Miniscript<DescriptorPublicKey, Ctx>, KeyMap, ValidNetworks), DescriptorError> {
- <span class="kw">let </span>(pks, key_map, valid_networks) = expand_multi_keys(pks, secp)<span class="question-mark">?</span>;
- <span class="kw">let </span>minisc = Miniscript::from_ast(variant(thresh, pks))<span class="question-mark">?</span>;
-
- minisc.check_miniscript()<span class="question-mark">?</span>;
-
- <span class="prelude-val">Ok</span>((minisc, key_map, valid_networks))
-}
-
-<span class="comment">// Used internally by `bdk::descriptor!` to build `sortedmulti()` fragments
-</span><span class="attr">#[doc(hidden)]
-</span><span class="kw">pub fn </span>make_sortedmulti<Pk, Ctx, F>(
- thresh: usize,
- pks: Vec<Pk>,
- build_desc: F,
- secp: <span class="kw-2">&</span>SecpCtx,
-) -> <span class="prelude-ty">Result</span><(Descriptor<DescriptorPublicKey>, KeyMap, ValidNetworks), DescriptorError>
-<span class="kw">where
- </span>Pk: IntoDescriptorKey<Ctx>,
- Ctx: ScriptContext,
- F: Fn(
- usize,
- Vec<DescriptorPublicKey>,
- ) -> <span class="prelude-ty">Result</span><(Descriptor<DescriptorPublicKey>, PhantomData<Ctx>), DescriptorError>,
-{
- <span class="kw">let </span>(pks, key_map, valid_networks) = expand_multi_keys(pks, secp)<span class="question-mark">?</span>;
- <span class="kw">let </span>descriptor = build_desc(thresh, pks)<span class="question-mark">?</span>.<span class="number">0</span>;
-
- <span class="prelude-val">Ok</span>((descriptor, key_map, valid_networks))
-}
-
-<span class="doccomment">/// The "identity" conversion is used internally by some `bdk::fragment`s
-</span><span class="kw">impl</span><Ctx: ScriptContext> IntoDescriptorKey<Ctx> <span class="kw">for </span>DescriptorKey<Ctx> {
- <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
- <span class="prelude-val">Ok</span>(<span class="self">self</span>)
- }
-}
-
-<span class="kw">impl</span><Ctx: ScriptContext> IntoDescriptorKey<Ctx> <span class="kw">for </span>DescriptorPublicKey {
- <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
- <span class="kw">let </span>networks = <span class="kw">match </span><span class="self">self </span>{
- DescriptorPublicKey::Single(<span class="kw">_</span>) => any_network(),
- DescriptorPublicKey::XPub(DescriptorXKey { xkey, .. })
- <span class="kw">if </span>xkey.network == Network::Bitcoin =>
- {
- mainnet_network()
- }
- <span class="kw">_ </span>=> test_networks(),
- };
-
- <span class="prelude-val">Ok</span>(DescriptorKey::from_public(<span class="self">self</span>, networks))
- }
-}
-
-<span class="kw">impl</span><Ctx: ScriptContext> IntoDescriptorKey<Ctx> <span class="kw">for </span>PublicKey {
- <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
- DescriptorPublicKey::Single(SinglePub {
- key: SinglePubKey::FullKey(<span class="self">self</span>),
- origin: <span class="prelude-val">None</span>,
- })
- .into_descriptor_key()
- }
-}
-
-<span class="kw">impl</span><Ctx: ScriptContext> IntoDescriptorKey<Ctx> <span class="kw">for </span>XOnlyPublicKey {
- <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
- DescriptorPublicKey::Single(SinglePub {
- key: SinglePubKey::XOnly(<span class="self">self</span>),
- origin: <span class="prelude-val">None</span>,
- })
- .into_descriptor_key()
- }
-}
-
-<span class="kw">impl</span><Ctx: ScriptContext> IntoDescriptorKey<Ctx> <span class="kw">for </span>DescriptorSecretKey {
- <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
- <span class="kw">let </span>networks = <span class="kw">match </span><span class="kw-2">&</span><span class="self">self </span>{
- DescriptorSecretKey::Single(sk) <span class="kw">if </span>sk.key.network == Network::Bitcoin => {
- mainnet_network()
- }
- DescriptorSecretKey::XPrv(DescriptorXKey { xkey, .. })
- <span class="kw">if </span>xkey.network == Network::Bitcoin =>
- {
- mainnet_network()
- }
- <span class="kw">_ </span>=> test_networks(),
- };
-
- <span class="prelude-val">Ok</span>(DescriptorKey::from_secret(<span class="self">self</span>, networks))
- }
-}
-
-<span class="kw">impl</span><Ctx: ScriptContext> IntoDescriptorKey<Ctx> <span class="kw">for </span><span class="kw-2">&</span><span class="lifetime">'_ </span>str {
- <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
- DescriptorSecretKey::from_str(<span class="self">self</span>)
- .map_err(|e| KeyError::Message(e.to_string()))<span class="question-mark">?
- </span>.into_descriptor_key()
- }
-}
-
-<span class="kw">impl</span><Ctx: ScriptContext> IntoDescriptorKey<Ctx> <span class="kw">for </span>PrivateKey {
- <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
- DescriptorSecretKey::Single(SinglePriv {
- key: <span class="self">self</span>,
- origin: <span class="prelude-val">None</span>,
- })
- .into_descriptor_key()
- }
-}
-
-<span class="doccomment">/// Errors thrown while working with [`keys`](crate::keys)
-</span><span class="attr">#[derive(Debug)]
-</span><span class="kw">pub enum </span>KeyError {
- <span class="doccomment">/// The key cannot exist in the given script context
- </span>InvalidScriptContext,
- <span class="doccomment">/// The key is not valid for the given network
- </span>InvalidNetwork,
- <span class="doccomment">/// The key has an invalid checksum
- </span>InvalidChecksum,
-
- <span class="doccomment">/// Custom error message
- </span>Message(String),
-
- <span class="doccomment">/// BIP32 error
- </span>Bip32(bitcoin::bip32::Error),
- <span class="doccomment">/// Miniscript error
- </span>Miniscript(miniscript::Error),
-}
-
-<span class="kw">impl </span>From<miniscript::Error> <span class="kw">for </span>KeyError {
- <span class="kw">fn </span>from(err: miniscript::Error) -> <span class="self">Self </span>{
- KeyError::Miniscript(err)
- }
-}
-
-<span class="kw">impl </span>From<bip32::Error> <span class="kw">for </span>KeyError {
- <span class="kw">fn </span>from(err: bip32::Error) -> <span class="self">Self </span>{
- KeyError::Bip32(err)
- }
-}
-
-<span class="kw">impl </span>fmt::Display <span class="kw">for </span>KeyError {
- <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
- <span class="kw">match </span><span class="self">self </span>{
- <span class="self">Self</span>::InvalidScriptContext => <span class="macro">write!</span>(f, <span class="string">"Invalid script context"</span>),
- <span class="self">Self</span>::InvalidNetwork => <span class="macro">write!</span>(f, <span class="string">"Invalid network"</span>),
- <span class="self">Self</span>::InvalidChecksum => <span class="macro">write!</span>(f, <span class="string">"Invalid checksum"</span>),
- <span class="self">Self</span>::Message(err) => <span class="macro">write!</span>(f, <span class="string">"{}"</span>, err),
- <span class="self">Self</span>::Bip32(err) => <span class="macro">write!</span>(f, <span class="string">"BIP32 error: {}"</span>, err),
- <span class="self">Self</span>::Miniscript(err) => <span class="macro">write!</span>(f, <span class="string">"Miniscript error: {}"</span>, err),
- }
- }
-}
-
-<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
-</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>KeyError {}
-
-<span class="attr">#[cfg(test)]
-</span><span class="kw">pub mod </span>test {
- <span class="kw">use </span>bitcoin::bip32;
-
- <span class="kw">use super</span>::<span class="kw-2">*</span>;
-
- <span class="kw">pub const </span>TEST_ENTROPY: [u8; <span class="number">32</span>] = [<span class="number">0xAA</span>; <span class="number">32</span>];
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_keys_generate_xprv() {
- <span class="kw">let </span>generated_xprv: GeneratedKey<<span class="kw">_</span>, miniscript::Segwitv0> =
- bip32::Xpriv::generate_with_entropy_default(TEST_ENTROPY).unwrap();
-
- <span class="macro">assert_eq!</span>(generated_xprv.valid_networks, any_network());
- <span class="macro">assert_eq!</span>(generated_xprv.to_string(), <span class="string">"xprv9s21ZrQH143K4Xr1cJyqTvuL2FWR8eicgY9boWqMBv8MDVUZ65AXHnzBrK1nyomu6wdcabRgmGTaAKawvhAno1V5FowGpTLVx3jxzE5uk3Q"</span>);
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_keys_generate_wif() {
- <span class="kw">let </span>generated_wif: GeneratedKey<<span class="kw">_</span>, miniscript::Segwitv0> =
- bitcoin::PrivateKey::generate_with_entropy_default(TEST_ENTROPY).unwrap();
-
- <span class="macro">assert_eq!</span>(generated_wif.valid_networks, any_network());
- <span class="macro">assert_eq!</span>(
- generated_wif.to_string(),
- <span class="string">"L2wTu6hQrnDMiFNWA5na6jB12ErGQqtXwqpSL7aWquJaZG8Ai3ch"
- </span>);
- }
-
- <span class="attr">#[cfg(feature = <span class="string">"keys-bip39"</span>)]
- #[test]
- </span><span class="kw">fn </span>test_keys_wif_network_bip39() {
- <span class="kw">let </span>xkey: ExtendedKey = bip39::Mnemonic::parse_in(
- bip39::Language::English,
- <span class="string">"jelly crash boy whisper mouse ecology tuna soccer memory million news short"</span>,
- )
- .unwrap()
- .into_extended_key()
- .unwrap();
- <span class="kw">let </span>xprv = xkey.into_xprv(Network::Testnet).unwrap();
-
- <span class="macro">assert_eq!</span>(xprv.network, Network::Testnet);
- }
-}
-</code></pre></div>
-</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Source of the Rust file `crates/bdk/src/lib.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>lib.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../source-files.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../bdk/index.html">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
-<a href="#2" id="2">2</a>
-<a href="#3" id="3">3</a>
-<a href="#4" id="4">4</a>
-<a href="#5" id="5">5</a>
-<a href="#6" id="6">6</a>
-<a href="#7" id="7">7</a>
-<a href="#8" id="8">8</a>
-<a href="#9" id="9">9</a>
-<a href="#10" id="10">10</a>
-<a href="#11" id="11">11</a>
-<a href="#12" id="12">12</a>
-<a href="#13" id="13">13</a>
-<a href="#14" id="14">14</a>
-<a href="#15" id="15">15</a>
-<a href="#16" id="16">16</a>
-<a href="#17" id="17">17</a>
-<a href="#18" id="18">18</a>
-<a href="#19" id="19">19</a>
-<a href="#20" id="20">20</a>
-<a href="#21" id="21">21</a>
-<a href="#22" id="22">22</a>
-<a href="#23" id="23">23</a>
-<a href="#24" id="24">24</a>
-<a href="#25" id="25">25</a>
-<a href="#26" id="26">26</a>
-<a href="#27" id="27">27</a>
-<a href="#28" id="28">28</a>
-<a href="#29" id="29">29</a>
-<a href="#30" id="30">30</a>
-<a href="#31" id="31">31</a>
-<a href="#32" id="32">32</a>
-<a href="#33" id="33">33</a>
-<a href="#34" id="34">34</a>
-<a href="#35" id="35">35</a>
-<a href="#36" id="36">36</a>
-<a href="#37" id="37">37</a>
-<a href="#38" id="38">38</a>
-<a href="#39" id="39">39</a>
-<a href="#40" id="40">40</a>
-<a href="#41" id="41">41</a>
-<a href="#42" id="42">42</a>
-<a href="#43" id="43">43</a>
-<a href="#44" id="44">44</a>
-<a href="#45" id="45">45</a>
-<a href="#46" id="46">46</a>
-<a href="#47" id="47">47</a>
-</pre><pre class="rust"><code><span class="attr">#![doc = <span class="macro">include_str!</span>(<span class="string">"../README.md"</span>)]
-</span><span class="comment">// only enables the `doc_cfg` feature when the `docsrs` configuration attribute is defined
-</span><span class="attr">#![cfg_attr(docsrs, feature(doc_cfg))]
-#![cfg_attr(
- docsrs,
- doc(html_logo_url = <span class="string">"https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png"</span>)
-)]
-#![no_std]
-#![warn(missing_docs)]
-
-#[cfg(feature = <span class="string">"std"</span>)]
-#[macro_use]
-</span><span class="kw">extern crate </span>std;
-
-<span class="attr">#[doc(hidden)]
-#[macro_use]
-</span><span class="kw">pub extern crate </span>alloc;
-
-<span class="kw">pub extern crate </span>bitcoin;
-<span class="kw">pub extern crate </span>miniscript;
-<span class="kw">extern crate </span>serde;
-<span class="kw">extern crate </span>serde_json;
-
-<span class="attr">#[cfg(feature = <span class="string">"keys-bip39"</span>)]
-</span><span class="kw">extern crate </span>bip39;
-
-<span class="kw">pub mod </span>descriptor;
-<span class="kw">pub mod </span>keys;
-<span class="kw">pub mod </span>psbt;
-<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">mod </span>types;
-<span class="kw">pub mod </span>wallet;
-
-<span class="kw">pub use </span>descriptor::template;
-<span class="kw">pub use </span>descriptor::HdKeyPaths;
-<span class="kw">pub use </span>types::<span class="kw-2">*</span>;
-<span class="kw">pub use </span>wallet::signer;
-<span class="kw">pub use </span>wallet::signer::SignOptions;
-<span class="kw">pub use </span>wallet::tx_builder::TxBuilder;
-<span class="kw">pub use </span>wallet::Wallet;
-
-<span class="doccomment">/// Get the version of BDK at runtime
-</span><span class="kw">pub fn </span>version() -> <span class="kw-2">&</span><span class="lifetime">'static </span>str {
- <span class="macro">env!</span>(<span class="string">"CARGO_PKG_VERSION"</span>, <span class="string">"unknown"</span>)
-}
-
-<span class="kw">pub use </span>bdk_chain <span class="kw">as </span>chain;
-<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">use </span>bdk_chain::collections;
-</code></pre></div>
-</section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Source of the Rust file `crates/bdk/src/psbt/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk/index.html">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
-<a href="#2" id="2">2</a>
-<a href="#3" id="3">3</a>
-<a href="#4" id="4">4</a>
-<a href="#5" id="5">5</a>
-<a href="#6" id="6">6</a>
-<a href="#7" id="7">7</a>
-<a href="#8" id="8">8</a>
-<a href="#9" id="9">9</a>
-<a href="#10" id="10">10</a>
-<a href="#11" id="11">11</a>
-<a href="#12" id="12">12</a>
-<a href="#13" id="13">13</a>
-<a href="#14" id="14">14</a>
-<a href="#15" id="15">15</a>
-<a href="#16" id="16">16</a>
-<a href="#17" id="17">17</a>
-<a href="#18" id="18">18</a>
-<a href="#19" id="19">19</a>
-<a href="#20" id="20">20</a>
-<a href="#21" id="21">21</a>
-<a href="#22" id="22">22</a>
-<a href="#23" id="23">23</a>
-<a href="#24" id="24">24</a>
-<a href="#25" id="25">25</a>
-<a href="#26" id="26">26</a>
-<a href="#27" id="27">27</a>
-<a href="#28" id="28">28</a>
-<a href="#29" id="29">29</a>
-<a href="#30" id="30">30</a>
-<a href="#31" id="31">31</a>
-<a href="#32" id="32">32</a>
-<a href="#33" id="33">33</a>
-<a href="#34" id="34">34</a>
-<a href="#35" id="35">35</a>
-<a href="#36" id="36">36</a>
-<a href="#37" id="37">37</a>
-<a href="#38" id="38">38</a>
-<a href="#39" id="39">39</a>
-<a href="#40" id="40">40</a>
-<a href="#41" id="41">41</a>
-<a href="#42" id="42">42</a>
-<a href="#43" id="43">43</a>
-<a href="#44" id="44">44</a>
-<a href="#45" id="45">45</a>
-<a href="#46" id="46">46</a>
-<a href="#47" id="47">47</a>
-<a href="#48" id="48">48</a>
-<a href="#49" id="49">49</a>
-<a href="#50" id="50">50</a>
-<a href="#51" id="51">51</a>
-<a href="#52" id="52">52</a>
-<a href="#53" id="53">53</a>
-<a href="#54" id="54">54</a>
-<a href="#55" id="55">55</a>
-<a href="#56" id="56">56</a>
-<a href="#57" id="57">57</a>
-<a href="#58" id="58">58</a>
-<a href="#59" id="59">59</a>
-<a href="#60" id="60">60</a>
-<a href="#61" id="61">61</a>
-<a href="#62" id="62">62</a>
-<a href="#63" id="63">63</a>
-<a href="#64" id="64">64</a>
-<a href="#65" id="65">65</a>
-<a href="#66" id="66">66</a>
-<a href="#67" id="67">67</a>
-<a href="#68" id="68">68</a>
-<a href="#69" id="69">69</a>
-<a href="#70" id="70">70</a>
-<a href="#71" id="71">71</a>
-<a href="#72" id="72">72</a>
-<a href="#73" id="73">73</a>
-<a href="#74" id="74">74</a>
-<a href="#75" id="75">75</a>
-</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-</span><span class="doccomment">//! Additional functions on the `rust-bitcoin` `Psbt` structure.
-
-</span><span class="kw">use </span>alloc::vec::Vec;
-<span class="kw">use </span>bitcoin::Amount;
-<span class="kw">use </span>bitcoin::FeeRate;
-<span class="kw">use </span>bitcoin::Psbt;
-<span class="kw">use </span>bitcoin::TxOut;
-
-<span class="comment">// TODO upstream the functions here to `rust-bitcoin`?
-
-</span><span class="doccomment">/// Trait to add functions to extract utxos and calculate fees.
-</span><span class="kw">pub trait </span>PsbtUtils {
- <span class="doccomment">/// Get the `TxOut` for the specified input index, if it doesn't exist in the PSBT `None` is returned.
- </span><span class="kw">fn </span>get_utxo_for(<span class="kw-2">&</span><span class="self">self</span>, input_index: usize) -> <span class="prelude-ty">Option</span><TxOut>;
-
- <span class="doccomment">/// The total transaction fee amount, sum of input amounts minus sum of output amounts, in sats.
- /// If the PSBT is missing a TxOut for an input returns None.
- </span><span class="kw">fn </span>fee_amount(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Option</span><u64>;
-
- <span class="doccomment">/// The transaction's fee rate. This value will only be accurate if calculated AFTER the
- /// `Psbt` is finalized and all witness/signature data is added to the
- /// transaction.
- /// If the PSBT is missing a TxOut for an input returns None.
- </span><span class="kw">fn </span>fee_rate(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Option</span><FeeRate>;
-}
-
-<span class="kw">impl </span>PsbtUtils <span class="kw">for </span>Psbt {
- <span class="kw">fn </span>get_utxo_for(<span class="kw-2">&</span><span class="self">self</span>, input_index: usize) -> <span class="prelude-ty">Option</span><TxOut> {
- <span class="kw">let </span>tx = <span class="kw-2">&</span><span class="self">self</span>.unsigned_tx;
- <span class="kw">let </span>input = <span class="self">self</span>.inputs.get(input_index)<span class="question-mark">?</span>;
-
- <span class="kw">match </span>(<span class="kw-2">&</span>input.witness_utxo, <span class="kw-2">&</span>input.non_witness_utxo) {
- (<span class="prelude-val">Some</span>(<span class="kw">_</span>), <span class="kw">_</span>) => input.witness_utxo.clone(),
- (<span class="kw">_</span>, <span class="prelude-val">Some</span>(<span class="kw">_</span>)) => input.non_witness_utxo.as_ref().map(|in_tx| {
- in_tx.output[tx.input[input_index].previous_output.vout <span class="kw">as </span>usize].clone()
- }),
- <span class="kw">_ </span>=> <span class="prelude-val">None</span>,
- }
- }
-
- <span class="kw">fn </span>fee_amount(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Option</span><u64> {
- <span class="kw">let </span>tx = <span class="kw-2">&</span><span class="self">self</span>.unsigned_tx;
- <span class="kw">let </span>utxos: <span class="prelude-ty">Option</span><Vec<TxOut>> = (<span class="number">0</span>..tx.input.len()).map(|i| <span class="self">self</span>.get_utxo_for(i)).collect();
-
- utxos.map(|inputs| {
- <span class="kw">let </span>input_amount: u64 = inputs.iter().map(|i| i.value.to_sat()).sum();
- <span class="kw">let </span>output_amount: u64 = <span class="self">self
- </span>.unsigned_tx
- .output
- .iter()
- .map(|o| o.value.to_sat())
- .sum();
- input_amount
- .checked_sub(output_amount)
- .expect(<span class="string">"input amount must be greater than output amount"</span>)
- })
- }
-
- <span class="kw">fn </span>fee_rate(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Option</span><FeeRate> {
- <span class="kw">let </span>fee_amount = <span class="self">self</span>.fee_amount();
- <span class="kw">let </span>weight = <span class="self">self</span>.clone().extract_tx().ok()<span class="question-mark">?</span>.weight();
- fee_amount.map(|fee| Amount::from_sat(fee) / weight)
- }
-}
-</code></pre></div>
-</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Source of the Rust file `crates/bdk/src/types.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>types.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../source-files.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../bdk/index.html">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
-<a href="#2" id="2">2</a>
-<a href="#3" id="3">3</a>
-<a href="#4" id="4">4</a>
-<a href="#5" id="5">5</a>
-<a href="#6" id="6">6</a>
-<a href="#7" id="7">7</a>
-<a href="#8" id="8">8</a>
-<a href="#9" id="9">9</a>
-<a href="#10" id="10">10</a>
-<a href="#11" id="11">11</a>
-<a href="#12" id="12">12</a>
-<a href="#13" id="13">13</a>
-<a href="#14" id="14">14</a>
-<a href="#15" id="15">15</a>
-<a href="#16" id="16">16</a>
-<a href="#17" id="17">17</a>
-<a href="#18" id="18">18</a>
-<a href="#19" id="19">19</a>
-<a href="#20" id="20">20</a>
-<a href="#21" id="21">21</a>
-<a href="#22" id="22">22</a>
-<a href="#23" id="23">23</a>
-<a href="#24" id="24">24</a>
-<a href="#25" id="25">25</a>
-<a href="#26" id="26">26</a>
-<a href="#27" id="27">27</a>
-<a href="#28" id="28">28</a>
-<a href="#29" id="29">29</a>
-<a href="#30" id="30">30</a>
-<a href="#31" id="31">31</a>
-<a href="#32" id="32">32</a>
-<a href="#33" id="33">33</a>
-<a href="#34" id="34">34</a>
-<a href="#35" id="35">35</a>
-<a href="#36" id="36">36</a>
-<a href="#37" id="37">37</a>
-<a href="#38" id="38">38</a>
-<a href="#39" id="39">39</a>
-<a href="#40" id="40">40</a>
-<a href="#41" id="41">41</a>
-<a href="#42" id="42">42</a>
-<a href="#43" id="43">43</a>
-<a href="#44" id="44">44</a>
-<a href="#45" id="45">45</a>
-<a href="#46" id="46">46</a>
-<a href="#47" id="47">47</a>
-<a href="#48" id="48">48</a>
-<a href="#49" id="49">49</a>
-<a href="#50" id="50">50</a>
-<a href="#51" id="51">51</a>
-<a href="#52" id="52">52</a>
-<a href="#53" id="53">53</a>
-<a href="#54" id="54">54</a>
-<a href="#55" id="55">55</a>
-<a href="#56" id="56">56</a>
-<a href="#57" id="57">57</a>
-<a href="#58" id="58">58</a>
-<a href="#59" id="59">59</a>
-<a href="#60" id="60">60</a>
-<a href="#61" id="61">61</a>
-<a href="#62" id="62">62</a>
-<a href="#63" id="63">63</a>
-<a href="#64" id="64">64</a>
-<a href="#65" id="65">65</a>
-<a href="#66" id="66">66</a>
-<a href="#67" id="67">67</a>
-<a href="#68" id="68">68</a>
-<a href="#69" id="69">69</a>
-<a href="#70" id="70">70</a>
-<a href="#71" id="71">71</a>
-<a href="#72" id="72">72</a>
-<a href="#73" id="73">73</a>
-<a href="#74" id="74">74</a>
-<a href="#75" id="75">75</a>
-<a href="#76" id="76">76</a>
-<a href="#77" id="77">77</a>
-<a href="#78" id="78">78</a>
-<a href="#79" id="79">79</a>
-<a href="#80" id="80">80</a>
-<a href="#81" id="81">81</a>
-<a href="#82" id="82">82</a>
-<a href="#83" id="83">83</a>
-<a href="#84" id="84">84</a>
-<a href="#85" id="85">85</a>
-<a href="#86" id="86">86</a>
-<a href="#87" id="87">87</a>
-<a href="#88" id="88">88</a>
-<a href="#89" id="89">89</a>
-<a href="#90" id="90">90</a>
-<a href="#91" id="91">91</a>
-<a href="#92" id="92">92</a>
-<a href="#93" id="93">93</a>
-<a href="#94" id="94">94</a>
-<a href="#95" id="95">95</a>
-<a href="#96" id="96">96</a>
-<a href="#97" id="97">97</a>
-<a href="#98" id="98">98</a>
-<a href="#99" id="99">99</a>
-<a href="#100" id="100">100</a>
-<a href="#101" id="101">101</a>
-<a href="#102" id="102">102</a>
-<a href="#103" id="103">103</a>
-<a href="#104" id="104">104</a>
-<a href="#105" id="105">105</a>
-<a href="#106" id="106">106</a>
-<a href="#107" id="107">107</a>
-<a href="#108" id="108">108</a>
-<a href="#109" id="109">109</a>
-<a href="#110" id="110">110</a>
-<a href="#111" id="111">111</a>
-<a href="#112" id="112">112</a>
-<a href="#113" id="113">113</a>
-<a href="#114" id="114">114</a>
-<a href="#115" id="115">115</a>
-<a href="#116" id="116">116</a>
-<a href="#117" id="117">117</a>
-<a href="#118" id="118">118</a>
-<a href="#119" id="119">119</a>
-<a href="#120" id="120">120</a>
-<a href="#121" id="121">121</a>
-<a href="#122" id="122">122</a>
-<a href="#123" id="123">123</a>
-<a href="#124" id="124">124</a>
-<a href="#125" id="125">125</a>
-<a href="#126" id="126">126</a>
-<a href="#127" id="127">127</a>
-<a href="#128" id="128">128</a>
-<a href="#129" id="129">129</a>
-<a href="#130" id="130">130</a>
-<a href="#131" id="131">131</a>
-<a href="#132" id="132">132</a>
-<a href="#133" id="133">133</a>
-<a href="#134" id="134">134</a>
-<a href="#135" id="135">135</a>
-</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-</span><span class="kw">use </span>alloc::boxed::Box;
-<span class="kw">use </span>core::convert::AsRef;
-
-<span class="kw">use </span>bdk_chain::ConfirmationTime;
-<span class="kw">use </span>bitcoin::blockdata::transaction::{OutPoint, Sequence, TxOut};
-<span class="kw">use </span>bitcoin::psbt;
-
-<span class="kw">use </span>serde::{Deserialize, Serialize};
-
-<span class="doccomment">/// Types of keychains
-</span><span class="attr">#[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq, Hash, Ord, PartialOrd)]
-</span><span class="kw">pub enum </span>KeychainKind {
- <span class="doccomment">/// External keychain, used for deriving recipient addresses.
- </span>External = <span class="number">0</span>,
- <span class="doccomment">/// Internal keychain, used for deriving change addresses.
- </span>Internal = <span class="number">1</span>,
-}
-
-<span class="kw">impl </span>KeychainKind {
- <span class="doccomment">/// Return [`KeychainKind`] as a byte
- </span><span class="kw">pub fn </span>as_byte(<span class="kw-2">&</span><span class="self">self</span>) -> u8 {
- <span class="kw">match </span><span class="self">self </span>{
- KeychainKind::External => <span class="string">b'e'</span>,
- KeychainKind::Internal => <span class="string">b'i'</span>,
- }
- }
-}
-
-<span class="kw">impl </span>AsRef<[u8]> <span class="kw">for </span>KeychainKind {
- <span class="kw">fn </span>as_ref(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span>[u8] {
- <span class="kw">match </span><span class="self">self </span>{
- KeychainKind::External => <span class="string">b"e"</span>,
- KeychainKind::Internal => <span class="string">b"i"</span>,
- }
- }
-}
-
-<span class="doccomment">/// An unspent output owned by a [`Wallet`].
-///
-/// [`Wallet`]: crate::Wallet
-</span><span class="attr">#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, Hash)]
-</span><span class="kw">pub struct </span>LocalOutput {
- <span class="doccomment">/// Reference to a transaction output
- </span><span class="kw">pub </span>outpoint: OutPoint,
- <span class="doccomment">/// Transaction output
- </span><span class="kw">pub </span>txout: TxOut,
- <span class="doccomment">/// Type of keychain
- </span><span class="kw">pub </span>keychain: KeychainKind,
- <span class="doccomment">/// Whether this UTXO is spent or not
- </span><span class="kw">pub </span>is_spent: bool,
- <span class="doccomment">/// The derivation index for the script pubkey in the wallet
- </span><span class="kw">pub </span>derivation_index: u32,
- <span class="doccomment">/// The confirmation time for transaction containing this utxo
- </span><span class="kw">pub </span>confirmation_time: ConfirmationTime,
-}
-
-<span class="doccomment">/// A [`Utxo`] with its `satisfaction_weight`.
-</span><span class="attr">#[derive(Debug, Clone, PartialEq, Eq)]
-</span><span class="kw">pub struct </span>WeightedUtxo {
- <span class="doccomment">/// The weight of the witness data and `scriptSig` expressed in [weight units]. This is used to
- /// properly maintain the feerate when adding this input to a transaction during coin selection.
- ///
- /// [weight units]: https://en.bitcoin.it/wiki/Weight_units
- </span><span class="kw">pub </span>satisfaction_weight: usize,
- <span class="doccomment">/// The UTXO
- </span><span class="kw">pub </span>utxo: Utxo,
-}
-
-<span class="attr">#[derive(Debug, Clone, PartialEq, Eq)]
-</span><span class="doccomment">/// An unspent transaction output (UTXO).
-</span><span class="kw">pub enum </span>Utxo {
- <span class="doccomment">/// A UTXO owned by the local wallet.
- </span>Local(LocalOutput),
- <span class="doccomment">/// A UTXO owned by another wallet.
- </span>Foreign {
- <span class="doccomment">/// The location of the output.
- </span>outpoint: OutPoint,
- <span class="doccomment">/// The nSequence value to set for this input.
- </span>sequence: <span class="prelude-ty">Option</span><Sequence>,
- <span class="doccomment">/// The information about the input we require to add it to a PSBT.
- </span><span class="comment">// Box it to stop the type being too big.
- </span>psbt_input: Box<psbt::Input>,
- },
-}
-
-<span class="kw">impl </span>Utxo {
- <span class="doccomment">/// Get the location of the UTXO
- </span><span class="kw">pub fn </span>outpoint(<span class="kw-2">&</span><span class="self">self</span>) -> OutPoint {
- <span class="kw">match </span><span class="kw-2">&</span><span class="self">self </span>{
- Utxo::Local(local) => local.outpoint,
- Utxo::Foreign { outpoint, .. } => <span class="kw-2">*</span>outpoint,
- }
- }
-
- <span class="doccomment">/// Get the `TxOut` of the UTXO
- </span><span class="kw">pub fn </span>txout(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span>TxOut {
- <span class="kw">match </span><span class="kw-2">&</span><span class="self">self </span>{
- Utxo::Local(local) => <span class="kw-2">&</span>local.txout,
- Utxo::Foreign {
- outpoint,
- psbt_input,
- ..
- } => {
- <span class="kw">if let </span><span class="prelude-val">Some</span>(prev_tx) = <span class="kw-2">&</span>psbt_input.non_witness_utxo {
- <span class="kw">return </span><span class="kw-2">&</span>prev_tx.output[outpoint.vout <span class="kw">as </span>usize];
- }
-
- <span class="kw">if let </span><span class="prelude-val">Some</span>(txout) = <span class="kw-2">&</span>psbt_input.witness_utxo {
- <span class="kw">return </span>txout;
- }
-
- <span class="macro">unreachable!</span>(<span class="string">"Foreign UTXOs will always have one of these set"</span>)
- }
- }
- }
-
- <span class="doccomment">/// Get the sequence number if an explicit sequence number has to be set for this input.
- </span><span class="kw">pub fn </span>sequence(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Option</span><Sequence> {
- <span class="kw">match </span><span class="self">self </span>{
- Utxo::Local(<span class="kw">_</span>) => <span class="prelude-val">None</span>,
- Utxo::Foreign { sequence, .. } => <span class="kw-2">*</span>sequence,
- }
- }
-}
-</code></pre></div>
-</section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Source of the Rust file `crates/bdk/src/wallet/coin_selection.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>coin_selection.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk/index.html">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
-<a href="#2" id="2">2</a>
-<a href="#3" id="3">3</a>
-<a href="#4" id="4">4</a>
-<a href="#5" id="5">5</a>
-<a href="#6" id="6">6</a>
-<a href="#7" id="7">7</a>
-<a href="#8" id="8">8</a>
-<a href="#9" id="9">9</a>
-<a href="#10" id="10">10</a>
-<a href="#11" id="11">11</a>
-<a href="#12" id="12">12</a>
-<a href="#13" id="13">13</a>
-<a href="#14" id="14">14</a>
-<a href="#15" id="15">15</a>
-<a href="#16" id="16">16</a>
-<a href="#17" id="17">17</a>
-<a href="#18" id="18">18</a>
-<a href="#19" id="19">19</a>
-<a href="#20" id="20">20</a>
-<a href="#21" id="21">21</a>
-<a href="#22" id="22">22</a>
-<a href="#23" id="23">23</a>
-<a href="#24" id="24">24</a>
-<a href="#25" id="25">25</a>
-<a href="#26" id="26">26</a>
-<a href="#27" id="27">27</a>
-<a href="#28" id="28">28</a>
-<a href="#29" id="29">29</a>
-<a href="#30" id="30">30</a>
-<a href="#31" id="31">31</a>
-<a href="#32" id="32">32</a>
-<a href="#33" id="33">33</a>
-<a href="#34" id="34">34</a>
-<a href="#35" id="35">35</a>
-<a href="#36" id="36">36</a>
-<a href="#37" id="37">37</a>
-<a href="#38" id="38">38</a>
-<a href="#39" id="39">39</a>
-<a href="#40" id="40">40</a>
-<a href="#41" id="41">41</a>
-<a href="#42" id="42">42</a>
-<a href="#43" id="43">43</a>
-<a href="#44" id="44">44</a>
-<a href="#45" id="45">45</a>
-<a href="#46" id="46">46</a>
-<a href="#47" id="47">47</a>
-<a href="#48" id="48">48</a>
-<a href="#49" id="49">49</a>
-<a href="#50" id="50">50</a>
-<a href="#51" id="51">51</a>
-<a href="#52" id="52">52</a>
-<a href="#53" id="53">53</a>
-<a href="#54" id="54">54</a>
-<a href="#55" id="55">55</a>
-<a href="#56" id="56">56</a>
-<a href="#57" id="57">57</a>
-<a href="#58" id="58">58</a>
-<a href="#59" id="59">59</a>
-<a href="#60" id="60">60</a>
-<a href="#61" id="61">61</a>
-<a href="#62" id="62">62</a>
-<a href="#63" id="63">63</a>
-<a href="#64" id="64">64</a>
-<a href="#65" id="65">65</a>
-<a href="#66" id="66">66</a>
-<a href="#67" id="67">67</a>
-<a href="#68" id="68">68</a>
-<a href="#69" id="69">69</a>
-<a href="#70" id="70">70</a>
-<a href="#71" id="71">71</a>
-<a href="#72" id="72">72</a>
-<a href="#73" id="73">73</a>
-<a href="#74" id="74">74</a>
-<a href="#75" id="75">75</a>
-<a href="#76" id="76">76</a>
-<a href="#77" id="77">77</a>
-<a href="#78" id="78">78</a>
-<a href="#79" id="79">79</a>
-<a href="#80" id="80">80</a>
-<a href="#81" id="81">81</a>
-<a href="#82" id="82">82</a>
-<a href="#83" id="83">83</a>
-<a href="#84" id="84">84</a>
-<a href="#85" id="85">85</a>
-<a href="#86" id="86">86</a>
-<a href="#87" id="87">87</a>
-<a href="#88" id="88">88</a>
-<a href="#89" id="89">89</a>
-<a href="#90" id="90">90</a>
-<a href="#91" id="91">91</a>
-<a href="#92" id="92">92</a>
-<a href="#93" id="93">93</a>
-<a href="#94" id="94">94</a>
-<a href="#95" id="95">95</a>
-<a href="#96" id="96">96</a>
-<a href="#97" id="97">97</a>
-<a href="#98" id="98">98</a>
-<a href="#99" id="99">99</a>
-<a href="#100" id="100">100</a>
-<a href="#101" id="101">101</a>
-<a href="#102" id="102">102</a>
-<a href="#103" id="103">103</a>
-<a href="#104" id="104">104</a>
-<a href="#105" id="105">105</a>
-<a href="#106" id="106">106</a>
-<a href="#107" id="107">107</a>
-<a href="#108" id="108">108</a>
-<a href="#109" id="109">109</a>
-<a href="#110" id="110">110</a>
-<a href="#111" id="111">111</a>
-<a href="#112" id="112">112</a>
-<a href="#113" id="113">113</a>
-<a href="#114" id="114">114</a>
-<a href="#115" id="115">115</a>
-<a href="#116" id="116">116</a>
-<a href="#117" id="117">117</a>
-<a href="#118" id="118">118</a>
-<a href="#119" id="119">119</a>
-<a href="#120" id="120">120</a>
-<a href="#121" id="121">121</a>
-<a href="#122" id="122">122</a>
-<a href="#123" id="123">123</a>
-<a href="#124" id="124">124</a>
-<a href="#125" id="125">125</a>
-<a href="#126" id="126">126</a>
-<a href="#127" id="127">127</a>
-<a href="#128" id="128">128</a>
-<a href="#129" id="129">129</a>
-<a href="#130" id="130">130</a>
-<a href="#131" id="131">131</a>
-<a href="#132" id="132">132</a>
-<a href="#133" id="133">133</a>
-<a href="#134" id="134">134</a>
-<a href="#135" id="135">135</a>
-<a href="#136" id="136">136</a>
-<a href="#137" id="137">137</a>
-<a href="#138" id="138">138</a>
-<a href="#139" id="139">139</a>
-<a href="#140" id="140">140</a>
-<a href="#141" id="141">141</a>
-<a href="#142" id="142">142</a>
-<a href="#143" id="143">143</a>
-<a href="#144" id="144">144</a>
-<a href="#145" id="145">145</a>
-<a href="#146" id="146">146</a>
-<a href="#147" id="147">147</a>
-<a href="#148" id="148">148</a>
-<a href="#149" id="149">149</a>
-<a href="#150" id="150">150</a>
-<a href="#151" id="151">151</a>
-<a href="#152" id="152">152</a>
-<a href="#153" id="153">153</a>
-<a href="#154" id="154">154</a>
-<a href="#155" id="155">155</a>
-<a href="#156" id="156">156</a>
-<a href="#157" id="157">157</a>
-<a href="#158" id="158">158</a>
-<a href="#159" id="159">159</a>
-<a href="#160" id="160">160</a>
-<a href="#161" id="161">161</a>
-<a href="#162" id="162">162</a>
-<a href="#163" id="163">163</a>
-<a href="#164" id="164">164</a>
-<a href="#165" id="165">165</a>
-<a href="#166" id="166">166</a>
-<a href="#167" id="167">167</a>
-<a href="#168" id="168">168</a>
-<a href="#169" id="169">169</a>
-<a href="#170" id="170">170</a>
-<a href="#171" id="171">171</a>
-<a href="#172" id="172">172</a>
-<a href="#173" id="173">173</a>
-<a href="#174" id="174">174</a>
-<a href="#175" id="175">175</a>
-<a href="#176" id="176">176</a>
-<a href="#177" id="177">177</a>
-<a href="#178" id="178">178</a>
-<a href="#179" id="179">179</a>
-<a href="#180" id="180">180</a>
-<a href="#181" id="181">181</a>
-<a href="#182" id="182">182</a>
-<a href="#183" id="183">183</a>
-<a href="#184" id="184">184</a>
-<a href="#185" id="185">185</a>
-<a href="#186" id="186">186</a>
-<a href="#187" id="187">187</a>
-<a href="#188" id="188">188</a>
-<a href="#189" id="189">189</a>
-<a href="#190" id="190">190</a>
-<a href="#191" id="191">191</a>
-<a href="#192" id="192">192</a>
-<a href="#193" id="193">193</a>
-<a href="#194" id="194">194</a>
-<a href="#195" id="195">195</a>
-<a href="#196" id="196">196</a>
-<a href="#197" id="197">197</a>
-<a href="#198" id="198">198</a>
-<a href="#199" id="199">199</a>
-<a href="#200" id="200">200</a>
-<a href="#201" id="201">201</a>
-<a href="#202" id="202">202</a>
-<a href="#203" id="203">203</a>
-<a href="#204" id="204">204</a>
-<a href="#205" id="205">205</a>
-<a href="#206" id="206">206</a>
-<a href="#207" id="207">207</a>
-<a href="#208" id="208">208</a>
-<a href="#209" id="209">209</a>
-<a href="#210" id="210">210</a>
-<a href="#211" id="211">211</a>
-<a href="#212" id="212">212</a>
-<a href="#213" id="213">213</a>
-<a href="#214" id="214">214</a>
-<a href="#215" id="215">215</a>
-<a href="#216" id="216">216</a>
-<a href="#217" id="217">217</a>
-<a href="#218" id="218">218</a>
-<a href="#219" id="219">219</a>
-<a href="#220" id="220">220</a>
-<a href="#221" id="221">221</a>
-<a href="#222" id="222">222</a>
-<a href="#223" id="223">223</a>
-<a href="#224" id="224">224</a>
-<a href="#225" id="225">225</a>
-<a href="#226" id="226">226</a>
-<a href="#227" id="227">227</a>
-<a href="#228" id="228">228</a>
-<a href="#229" id="229">229</a>
-<a href="#230" id="230">230</a>
-<a href="#231" id="231">231</a>
-<a href="#232" id="232">232</a>
-<a href="#233" id="233">233</a>
-<a href="#234" id="234">234</a>
-<a href="#235" id="235">235</a>
-<a href="#236" id="236">236</a>
-<a href="#237" id="237">237</a>
-<a href="#238" id="238">238</a>
-<a href="#239" id="239">239</a>
-<a href="#240" id="240">240</a>
-<a href="#241" id="241">241</a>
-<a href="#242" id="242">242</a>
-<a href="#243" id="243">243</a>
-<a href="#244" id="244">244</a>
-<a href="#245" id="245">245</a>
-<a href="#246" id="246">246</a>
-<a href="#247" id="247">247</a>
-<a href="#248" id="248">248</a>
-<a href="#249" id="249">249</a>
-<a href="#250" id="250">250</a>
-<a href="#251" id="251">251</a>
-<a href="#252" id="252">252</a>
-<a href="#253" id="253">253</a>
-<a href="#254" id="254">254</a>
-<a href="#255" id="255">255</a>
-<a href="#256" id="256">256</a>
-<a href="#257" id="257">257</a>
-<a href="#258" id="258">258</a>
-<a href="#259" id="259">259</a>
-<a href="#260" id="260">260</a>
-<a href="#261" id="261">261</a>
-<a href="#262" id="262">262</a>
-<a href="#263" id="263">263</a>
-<a href="#264" id="264">264</a>
-<a href="#265" id="265">265</a>
-<a href="#266" id="266">266</a>
-<a href="#267" id="267">267</a>
-<a href="#268" id="268">268</a>
-<a href="#269" id="269">269</a>
-<a href="#270" id="270">270</a>
-<a href="#271" id="271">271</a>
-<a href="#272" id="272">272</a>
-<a href="#273" id="273">273</a>
-<a href="#274" id="274">274</a>
-<a href="#275" id="275">275</a>
-<a href="#276" id="276">276</a>
-<a href="#277" id="277">277</a>
-<a href="#278" id="278">278</a>
-<a href="#279" id="279">279</a>
-<a href="#280" id="280">280</a>
-<a href="#281" id="281">281</a>
-<a href="#282" id="282">282</a>
-<a href="#283" id="283">283</a>
-<a href="#284" id="284">284</a>
-<a href="#285" id="285">285</a>
-<a href="#286" id="286">286</a>
-<a href="#287" id="287">287</a>
-<a href="#288" id="288">288</a>
-<a href="#289" id="289">289</a>
-<a href="#290" id="290">290</a>
-<a href="#291" id="291">291</a>
-<a href="#292" id="292">292</a>
-<a href="#293" id="293">293</a>
-<a href="#294" id="294">294</a>
-<a href="#295" id="295">295</a>
-<a href="#296" id="296">296</a>
-<a href="#297" id="297">297</a>
-<a href="#298" id="298">298</a>
-<a href="#299" id="299">299</a>
-<a href="#300" id="300">300</a>
-<a href="#301" id="301">301</a>
-<a href="#302" id="302">302</a>
-<a href="#303" id="303">303</a>
-<a href="#304" id="304">304</a>
-<a href="#305" id="305">305</a>
-<a href="#306" id="306">306</a>
-<a href="#307" id="307">307</a>
-<a href="#308" id="308">308</a>
-<a href="#309" id="309">309</a>
-<a href="#310" id="310">310</a>
-<a href="#311" id="311">311</a>
-<a href="#312" id="312">312</a>
-<a href="#313" id="313">313</a>
-<a href="#314" id="314">314</a>
-<a href="#315" id="315">315</a>
-<a href="#316" id="316">316</a>
-<a href="#317" id="317">317</a>
-<a href="#318" id="318">318</a>
-<a href="#319" id="319">319</a>
-<a href="#320" id="320">320</a>
-<a href="#321" id="321">321</a>
-<a href="#322" id="322">322</a>
-<a href="#323" id="323">323</a>
-<a href="#324" id="324">324</a>
-<a href="#325" id="325">325</a>
-<a href="#326" id="326">326</a>
-<a href="#327" id="327">327</a>
-<a href="#328" id="328">328</a>
-<a href="#329" id="329">329</a>
-<a href="#330" id="330">330</a>
-<a href="#331" id="331">331</a>
-<a href="#332" id="332">332</a>
-<a href="#333" id="333">333</a>
-<a href="#334" id="334">334</a>
-<a href="#335" id="335">335</a>
-<a href="#336" id="336">336</a>
-<a href="#337" id="337">337</a>
-<a href="#338" id="338">338</a>
-<a href="#339" id="339">339</a>
-<a href="#340" id="340">340</a>
-<a href="#341" id="341">341</a>
-<a href="#342" id="342">342</a>
-<a href="#343" id="343">343</a>
-<a href="#344" id="344">344</a>
-<a href="#345" id="345">345</a>
-<a href="#346" id="346">346</a>
-<a href="#347" id="347">347</a>
-<a href="#348" id="348">348</a>
-<a href="#349" id="349">349</a>
-<a href="#350" id="350">350</a>
-<a href="#351" id="351">351</a>
-<a href="#352" id="352">352</a>
-<a href="#353" id="353">353</a>
-<a href="#354" id="354">354</a>
-<a href="#355" id="355">355</a>
-<a href="#356" id="356">356</a>
-<a href="#357" id="357">357</a>
-<a href="#358" id="358">358</a>
-<a href="#359" id="359">359</a>
-<a href="#360" id="360">360</a>
-<a href="#361" id="361">361</a>
-<a href="#362" id="362">362</a>
-<a href="#363" id="363">363</a>
-<a href="#364" id="364">364</a>
-<a href="#365" id="365">365</a>
-<a href="#366" id="366">366</a>
-<a href="#367" id="367">367</a>
-<a href="#368" id="368">368</a>
-<a href="#369" id="369">369</a>
-<a href="#370" id="370">370</a>
-<a href="#371" id="371">371</a>
-<a href="#372" id="372">372</a>
-<a href="#373" id="373">373</a>
-<a href="#374" id="374">374</a>
-<a href="#375" id="375">375</a>
-<a href="#376" id="376">376</a>
-<a href="#377" id="377">377</a>
-<a href="#378" id="378">378</a>
-<a href="#379" id="379">379</a>
-<a href="#380" id="380">380</a>
-<a href="#381" id="381">381</a>
-<a href="#382" id="382">382</a>
-<a href="#383" id="383">383</a>
-<a href="#384" id="384">384</a>
-<a href="#385" id="385">385</a>
-<a href="#386" id="386">386</a>
-<a href="#387" id="387">387</a>
-<a href="#388" id="388">388</a>
-<a href="#389" id="389">389</a>
-<a href="#390" id="390">390</a>
-<a href="#391" id="391">391</a>
-<a href="#392" id="392">392</a>
-<a href="#393" id="393">393</a>
-<a href="#394" id="394">394</a>
-<a href="#395" id="395">395</a>
-<a href="#396" id="396">396</a>
-<a href="#397" id="397">397</a>
-<a href="#398" id="398">398</a>
-<a href="#399" id="399">399</a>
-<a href="#400" id="400">400</a>
-<a href="#401" id="401">401</a>
-<a href="#402" id="402">402</a>
-<a href="#403" id="403">403</a>
-<a href="#404" id="404">404</a>
-<a href="#405" id="405">405</a>
-<a href="#406" id="406">406</a>
-<a href="#407" id="407">407</a>
-<a href="#408" id="408">408</a>
-<a href="#409" id="409">409</a>
-<a href="#410" id="410">410</a>
-<a href="#411" id="411">411</a>
-<a href="#412" id="412">412</a>
-<a href="#413" id="413">413</a>
-<a href="#414" id="414">414</a>
-<a href="#415" id="415">415</a>
-<a href="#416" id="416">416</a>
-<a href="#417" id="417">417</a>
-<a href="#418" id="418">418</a>
-<a href="#419" id="419">419</a>
-<a href="#420" id="420">420</a>
-<a href="#421" id="421">421</a>
-<a href="#422" id="422">422</a>
-<a href="#423" id="423">423</a>
-<a href="#424" id="424">424</a>
-<a href="#425" id="425">425</a>
-<a href="#426" id="426">426</a>
-<a href="#427" id="427">427</a>
-<a href="#428" id="428">428</a>
-<a href="#429" id="429">429</a>
-<a href="#430" id="430">430</a>
-<a href="#431" id="431">431</a>
-<a href="#432" id="432">432</a>
-<a href="#433" id="433">433</a>
-<a href="#434" id="434">434</a>
-<a href="#435" id="435">435</a>
-<a href="#436" id="436">436</a>
-<a href="#437" id="437">437</a>
-<a href="#438" id="438">438</a>
-<a href="#439" id="439">439</a>
-<a href="#440" id="440">440</a>
-<a href="#441" id="441">441</a>
-<a href="#442" id="442">442</a>
-<a href="#443" id="443">443</a>
-<a href="#444" id="444">444</a>
-<a href="#445" id="445">445</a>
-<a href="#446" id="446">446</a>
-<a href="#447" id="447">447</a>
-<a href="#448" id="448">448</a>
-<a href="#449" id="449">449</a>
-<a href="#450" id="450">450</a>
-<a href="#451" id="451">451</a>
-<a href="#452" id="452">452</a>
-<a href="#453" id="453">453</a>
-<a href="#454" id="454">454</a>
-<a href="#455" id="455">455</a>
-<a href="#456" id="456">456</a>
-<a href="#457" id="457">457</a>
-<a href="#458" id="458">458</a>
-<a href="#459" id="459">459</a>
-<a href="#460" id="460">460</a>
-<a href="#461" id="461">461</a>
-<a href="#462" id="462">462</a>
-<a href="#463" id="463">463</a>
-<a href="#464" id="464">464</a>
-<a href="#465" id="465">465</a>
-<a href="#466" id="466">466</a>
-<a href="#467" id="467">467</a>
-<a href="#468" id="468">468</a>
-<a href="#469" id="469">469</a>
-<a href="#470" id="470">470</a>
-<a href="#471" id="471">471</a>
-<a href="#472" id="472">472</a>
-<a href="#473" id="473">473</a>
-<a href="#474" id="474">474</a>
-<a href="#475" id="475">475</a>
-<a href="#476" id="476">476</a>
-<a href="#477" id="477">477</a>
-<a href="#478" id="478">478</a>
-<a href="#479" id="479">479</a>
-<a href="#480" id="480">480</a>
-<a href="#481" id="481">481</a>
-<a href="#482" id="482">482</a>
-<a href="#483" id="483">483</a>
-<a href="#484" id="484">484</a>
-<a href="#485" id="485">485</a>
-<a href="#486" id="486">486</a>
-<a href="#487" id="487">487</a>
-<a href="#488" id="488">488</a>
-<a href="#489" id="489">489</a>
-<a href="#490" id="490">490</a>
-<a href="#491" id="491">491</a>
-<a href="#492" id="492">492</a>
-<a href="#493" id="493">493</a>
-<a href="#494" id="494">494</a>
-<a href="#495" id="495">495</a>
-<a href="#496" id="496">496</a>
-<a href="#497" id="497">497</a>
-<a href="#498" id="498">498</a>
-<a href="#499" id="499">499</a>
-<a href="#500" id="500">500</a>
-<a href="#501" id="501">501</a>
-<a href="#502" id="502">502</a>
-<a href="#503" id="503">503</a>
-<a href="#504" id="504">504</a>
-<a href="#505" id="505">505</a>
-<a href="#506" id="506">506</a>
-<a href="#507" id="507">507</a>
-<a href="#508" id="508">508</a>
-<a href="#509" id="509">509</a>
-<a href="#510" id="510">510</a>
-<a href="#511" id="511">511</a>
-<a href="#512" id="512">512</a>
-<a href="#513" id="513">513</a>
-<a href="#514" id="514">514</a>
-<a href="#515" id="515">515</a>
-<a href="#516" id="516">516</a>
-<a href="#517" id="517">517</a>
-<a href="#518" id="518">518</a>
-<a href="#519" id="519">519</a>
-<a href="#520" id="520">520</a>
-<a href="#521" id="521">521</a>
-<a href="#522" id="522">522</a>
-<a href="#523" id="523">523</a>
-<a href="#524" id="524">524</a>
-<a href="#525" id="525">525</a>
-<a href="#526" id="526">526</a>
-<a href="#527" id="527">527</a>
-<a href="#528" id="528">528</a>
-<a href="#529" id="529">529</a>
-<a href="#530" id="530">530</a>
-<a href="#531" id="531">531</a>
-<a href="#532" id="532">532</a>
-<a href="#533" id="533">533</a>
-<a href="#534" id="534">534</a>
-<a href="#535" id="535">535</a>
-<a href="#536" id="536">536</a>
-<a href="#537" id="537">537</a>
-<a href="#538" id="538">538</a>
-<a href="#539" id="539">539</a>
-<a href="#540" id="540">540</a>
-<a href="#541" id="541">541</a>
-<a href="#542" id="542">542</a>
-<a href="#543" id="543">543</a>
-<a href="#544" id="544">544</a>
-<a href="#545" id="545">545</a>
-<a href="#546" id="546">546</a>
-<a href="#547" id="547">547</a>
-<a href="#548" id="548">548</a>
-<a href="#549" id="549">549</a>
-<a href="#550" id="550">550</a>
-<a href="#551" id="551">551</a>
-<a href="#552" id="552">552</a>
-<a href="#553" id="553">553</a>
-<a href="#554" id="554">554</a>
-<a href="#555" id="555">555</a>
-<a href="#556" id="556">556</a>
-<a href="#557" id="557">557</a>
-<a href="#558" id="558">558</a>
-<a href="#559" id="559">559</a>
-<a href="#560" id="560">560</a>
-<a href="#561" id="561">561</a>
-<a href="#562" id="562">562</a>
-<a href="#563" id="563">563</a>
-<a href="#564" id="564">564</a>
-<a href="#565" id="565">565</a>
-<a href="#566" id="566">566</a>
-<a href="#567" id="567">567</a>
-<a href="#568" id="568">568</a>
-<a href="#569" id="569">569</a>
-<a href="#570" id="570">570</a>
-<a href="#571" id="571">571</a>
-<a href="#572" id="572">572</a>
-<a href="#573" id="573">573</a>
-<a href="#574" id="574">574</a>
-<a href="#575" id="575">575</a>
-<a href="#576" id="576">576</a>
-<a href="#577" id="577">577</a>
-<a href="#578" id="578">578</a>
-<a href="#579" id="579">579</a>
-<a href="#580" id="580">580</a>
-<a href="#581" id="581">581</a>
-<a href="#582" id="582">582</a>
-<a href="#583" id="583">583</a>
-<a href="#584" id="584">584</a>
-<a href="#585" id="585">585</a>
-<a href="#586" id="586">586</a>
-<a href="#587" id="587">587</a>
-<a href="#588" id="588">588</a>
-<a href="#589" id="589">589</a>
-<a href="#590" id="590">590</a>
-<a href="#591" id="591">591</a>
-<a href="#592" id="592">592</a>
-<a href="#593" id="593">593</a>
-<a href="#594" id="594">594</a>
-<a href="#595" id="595">595</a>
-<a href="#596" id="596">596</a>
-<a href="#597" id="597">597</a>
-<a href="#598" id="598">598</a>
-<a href="#599" id="599">599</a>
-<a href="#600" id="600">600</a>
-<a href="#601" id="601">601</a>
-<a href="#602" id="602">602</a>
-<a href="#603" id="603">603</a>
-<a href="#604" id="604">604</a>
-<a href="#605" id="605">605</a>
-<a href="#606" id="606">606</a>
-<a href="#607" id="607">607</a>
-<a href="#608" id="608">608</a>
-<a href="#609" id="609">609</a>
-<a href="#610" id="610">610</a>
-<a href="#611" id="611">611</a>
-<a href="#612" id="612">612</a>
-<a href="#613" id="613">613</a>
-<a href="#614" id="614">614</a>
-<a href="#615" id="615">615</a>
-<a href="#616" id="616">616</a>
-<a href="#617" id="617">617</a>
-<a href="#618" id="618">618</a>
-<a href="#619" id="619">619</a>
-<a href="#620" id="620">620</a>
-<a href="#621" id="621">621</a>
-<a href="#622" id="622">622</a>
-<a href="#623" id="623">623</a>
-<a href="#624" id="624">624</a>
-<a href="#625" id="625">625</a>
-<a href="#626" id="626">626</a>
-<a href="#627" id="627">627</a>
-<a href="#628" id="628">628</a>
-<a href="#629" id="629">629</a>
-<a href="#630" id="630">630</a>
-<a href="#631" id="631">631</a>
-<a href="#632" id="632">632</a>
-<a href="#633" id="633">633</a>
-<a href="#634" id="634">634</a>
-<a href="#635" id="635">635</a>
-<a href="#636" id="636">636</a>
-<a href="#637" id="637">637</a>
-<a href="#638" id="638">638</a>
-<a href="#639" id="639">639</a>
-<a href="#640" id="640">640</a>
-<a href="#641" id="641">641</a>
-<a href="#642" id="642">642</a>
-<a href="#643" id="643">643</a>
-<a href="#644" id="644">644</a>
-<a href="#645" id="645">645</a>
-<a href="#646" id="646">646</a>
-<a href="#647" id="647">647</a>
-<a href="#648" id="648">648</a>
-<a href="#649" id="649">649</a>
-<a href="#650" id="650">650</a>
-<a href="#651" id="651">651</a>
-<a href="#652" id="652">652</a>
-<a href="#653" id="653">653</a>
-<a href="#654" id="654">654</a>
-<a href="#655" id="655">655</a>
-<a href="#656" id="656">656</a>
-<a href="#657" id="657">657</a>
-<a href="#658" id="658">658</a>
-<a href="#659" id="659">659</a>
-<a href="#660" id="660">660</a>
-<a href="#661" id="661">661</a>
-<a href="#662" id="662">662</a>
-<a href="#663" id="663">663</a>
-<a href="#664" id="664">664</a>
-<a href="#665" id="665">665</a>
-<a href="#666" id="666">666</a>
-<a href="#667" id="667">667</a>
-<a href="#668" id="668">668</a>
-<a href="#669" id="669">669</a>
-<a href="#670" id="670">670</a>
-<a href="#671" id="671">671</a>
-<a href="#672" id="672">672</a>
-<a href="#673" id="673">673</a>
-<a href="#674" id="674">674</a>
-<a href="#675" id="675">675</a>
-<a href="#676" id="676">676</a>
-<a href="#677" id="677">677</a>
-<a href="#678" id="678">678</a>
-<a href="#679" id="679">679</a>
-<a href="#680" id="680">680</a>
-<a href="#681" id="681">681</a>
-<a href="#682" id="682">682</a>
-<a href="#683" id="683">683</a>
-<a href="#684" id="684">684</a>
-<a href="#685" id="685">685</a>
-<a href="#686" id="686">686</a>
-<a href="#687" id="687">687</a>
-<a href="#688" id="688">688</a>
-<a href="#689" id="689">689</a>
-<a href="#690" id="690">690</a>
-<a href="#691" id="691">691</a>
-<a href="#692" id="692">692</a>
-<a href="#693" id="693">693</a>
-<a href="#694" id="694">694</a>
-<a href="#695" id="695">695</a>
-<a href="#696" id="696">696</a>
-<a href="#697" id="697">697</a>
-<a href="#698" id="698">698</a>
-<a href="#699" id="699">699</a>
-<a href="#700" id="700">700</a>
-<a href="#701" id="701">701</a>
-<a href="#702" id="702">702</a>
-<a href="#703" id="703">703</a>
-<a href="#704" id="704">704</a>
-<a href="#705" id="705">705</a>
-<a href="#706" id="706">706</a>
-<a href="#707" id="707">707</a>
-<a href="#708" id="708">708</a>
-<a href="#709" id="709">709</a>
-<a href="#710" id="710">710</a>
-<a href="#711" id="711">711</a>
-<a href="#712" id="712">712</a>
-<a href="#713" id="713">713</a>
-<a href="#714" id="714">714</a>
-<a href="#715" id="715">715</a>
-<a href="#716" id="716">716</a>
-<a href="#717" id="717">717</a>
-<a href="#718" id="718">718</a>
-<a href="#719" id="719">719</a>
-<a href="#720" id="720">720</a>
-<a href="#721" id="721">721</a>
-<a href="#722" id="722">722</a>
-<a href="#723" id="723">723</a>
-<a href="#724" id="724">724</a>
-<a href="#725" id="725">725</a>
-<a href="#726" id="726">726</a>
-<a href="#727" id="727">727</a>
-<a href="#728" id="728">728</a>
-<a href="#729" id="729">729</a>
-<a href="#730" id="730">730</a>
-<a href="#731" id="731">731</a>
-<a href="#732" id="732">732</a>
-<a href="#733" id="733">733</a>
-<a href="#734" id="734">734</a>
-<a href="#735" id="735">735</a>
-<a href="#736" id="736">736</a>
-<a href="#737" id="737">737</a>
-<a href="#738" id="738">738</a>
-<a href="#739" id="739">739</a>
-<a href="#740" id="740">740</a>
-<a href="#741" id="741">741</a>
-<a href="#742" id="742">742</a>
-<a href="#743" id="743">743</a>
-<a href="#744" id="744">744</a>
-<a href="#745" id="745">745</a>
-<a href="#746" id="746">746</a>
-<a href="#747" id="747">747</a>
-<a href="#748" id="748">748</a>
-<a href="#749" id="749">749</a>
-<a href="#750" id="750">750</a>
-<a href="#751" id="751">751</a>
-<a href="#752" id="752">752</a>
-<a href="#753" id="753">753</a>
-<a href="#754" id="754">754</a>
-<a href="#755" id="755">755</a>
-<a href="#756" id="756">756</a>
-<a href="#757" id="757">757</a>
-<a href="#758" id="758">758</a>
-<a href="#759" id="759">759</a>
-<a href="#760" id="760">760</a>
-<a href="#761" id="761">761</a>
-<a href="#762" id="762">762</a>
-<a href="#763" id="763">763</a>
-<a href="#764" id="764">764</a>
-<a href="#765" id="765">765</a>
-<a href="#766" id="766">766</a>
-<a href="#767" id="767">767</a>
-<a href="#768" id="768">768</a>
-<a href="#769" id="769">769</a>
-<a href="#770" id="770">770</a>
-<a href="#771" id="771">771</a>
-<a href="#772" id="772">772</a>
-<a href="#773" id="773">773</a>
-<a href="#774" id="774">774</a>
-<a href="#775" id="775">775</a>
-<a href="#776" id="776">776</a>
-<a href="#777" id="777">777</a>
-<a href="#778" id="778">778</a>
-<a href="#779" id="779">779</a>
-<a href="#780" id="780">780</a>
-<a href="#781" id="781">781</a>
-<a href="#782" id="782">782</a>
-<a href="#783" id="783">783</a>
-<a href="#784" id="784">784</a>
-<a href="#785" id="785">785</a>
-<a href="#786" id="786">786</a>
-<a href="#787" id="787">787</a>
-<a href="#788" id="788">788</a>
-<a href="#789" id="789">789</a>
-<a href="#790" id="790">790</a>
-<a href="#791" id="791">791</a>
-<a href="#792" id="792">792</a>
-<a href="#793" id="793">793</a>
-<a href="#794" id="794">794</a>
-<a href="#795" id="795">795</a>
-<a href="#796" id="796">796</a>
-<a href="#797" id="797">797</a>
-<a href="#798" id="798">798</a>
-<a href="#799" id="799">799</a>
-<a href="#800" id="800">800</a>
-<a href="#801" id="801">801</a>
-<a href="#802" id="802">802</a>
-<a href="#803" id="803">803</a>
-<a href="#804" id="804">804</a>
-<a href="#805" id="805">805</a>
-<a href="#806" id="806">806</a>
-<a href="#807" id="807">807</a>
-<a href="#808" id="808">808</a>
-<a href="#809" id="809">809</a>
-<a href="#810" id="810">810</a>
-<a href="#811" id="811">811</a>
-<a href="#812" id="812">812</a>
-<a href="#813" id="813">813</a>
-<a href="#814" id="814">814</a>
-<a href="#815" id="815">815</a>
-<a href="#816" id="816">816</a>
-<a href="#817" id="817">817</a>
-<a href="#818" id="818">818</a>
-<a href="#819" id="819">819</a>
-<a href="#820" id="820">820</a>
-<a href="#821" id="821">821</a>
-<a href="#822" id="822">822</a>
-<a href="#823" id="823">823</a>
-<a href="#824" id="824">824</a>
-<a href="#825" id="825">825</a>
-<a href="#826" id="826">826</a>
-<a href="#827" id="827">827</a>
-<a href="#828" id="828">828</a>
-<a href="#829" id="829">829</a>
-<a href="#830" id="830">830</a>
-<a href="#831" id="831">831</a>
-<a href="#832" id="832">832</a>
-<a href="#833" id="833">833</a>
-<a href="#834" id="834">834</a>
-<a href="#835" id="835">835</a>
-<a href="#836" id="836">836</a>
-<a href="#837" id="837">837</a>
-<a href="#838" id="838">838</a>
-<a href="#839" id="839">839</a>
-<a href="#840" id="840">840</a>
-<a href="#841" id="841">841</a>
-<a href="#842" id="842">842</a>
-<a href="#843" id="843">843</a>
-<a href="#844" id="844">844</a>
-<a href="#845" id="845">845</a>
-<a href="#846" id="846">846</a>
-<a href="#847" id="847">847</a>
-<a href="#848" id="848">848</a>
-<a href="#849" id="849">849</a>
-<a href="#850" id="850">850</a>
-<a href="#851" id="851">851</a>
-<a href="#852" id="852">852</a>
-<a href="#853" id="853">853</a>
-<a href="#854" id="854">854</a>
-<a href="#855" id="855">855</a>
-<a href="#856" id="856">856</a>
-<a href="#857" id="857">857</a>
-<a href="#858" id="858">858</a>
-<a href="#859" id="859">859</a>
-<a href="#860" id="860">860</a>
-<a href="#861" id="861">861</a>
-<a href="#862" id="862">862</a>
-<a href="#863" id="863">863</a>
-<a href="#864" id="864">864</a>
-<a href="#865" id="865">865</a>
-<a href="#866" id="866">866</a>
-<a href="#867" id="867">867</a>
-<a href="#868" id="868">868</a>
-<a href="#869" id="869">869</a>
-<a href="#870" id="870">870</a>
-<a href="#871" id="871">871</a>
-<a href="#872" id="872">872</a>
-<a href="#873" id="873">873</a>
-<a href="#874" id="874">874</a>
-<a href="#875" id="875">875</a>
-<a href="#876" id="876">876</a>
-<a href="#877" id="877">877</a>
-<a href="#878" id="878">878</a>
-<a href="#879" id="879">879</a>
-<a href="#880" id="880">880</a>
-<a href="#881" id="881">881</a>
-<a href="#882" id="882">882</a>
-<a href="#883" id="883">883</a>
-<a href="#884" id="884">884</a>
-<a href="#885" id="885">885</a>
-<a href="#886" id="886">886</a>
-<a href="#887" id="887">887</a>
-<a href="#888" id="888">888</a>
-<a href="#889" id="889">889</a>
-<a href="#890" id="890">890</a>
-<a href="#891" id="891">891</a>
-<a href="#892" id="892">892</a>
-<a href="#893" id="893">893</a>
-<a href="#894" id="894">894</a>
-<a href="#895" id="895">895</a>
-<a href="#896" id="896">896</a>
-<a href="#897" id="897">897</a>
-<a href="#898" id="898">898</a>
-<a href="#899" id="899">899</a>
-<a href="#900" id="900">900</a>
-<a href="#901" id="901">901</a>
-<a href="#902" id="902">902</a>
-<a href="#903" id="903">903</a>
-<a href="#904" id="904">904</a>
-<a href="#905" id="905">905</a>
-<a href="#906" id="906">906</a>
-<a href="#907" id="907">907</a>
-<a href="#908" id="908">908</a>
-<a href="#909" id="909">909</a>
-<a href="#910" id="910">910</a>
-<a href="#911" id="911">911</a>
-<a href="#912" id="912">912</a>
-<a href="#913" id="913">913</a>
-<a href="#914" id="914">914</a>
-<a href="#915" id="915">915</a>
-<a href="#916" id="916">916</a>
-<a href="#917" id="917">917</a>
-<a href="#918" id="918">918</a>
-<a href="#919" id="919">919</a>
-<a href="#920" id="920">920</a>
-<a href="#921" id="921">921</a>
-<a href="#922" id="922">922</a>
-<a href="#923" id="923">923</a>
-<a href="#924" id="924">924</a>
-<a href="#925" id="925">925</a>
-<a href="#926" id="926">926</a>
-<a href="#927" id="927">927</a>
-<a href="#928" id="928">928</a>
-<a href="#929" id="929">929</a>
-<a href="#930" id="930">930</a>
-<a href="#931" id="931">931</a>
-<a href="#932" id="932">932</a>
-<a href="#933" id="933">933</a>
-<a href="#934" id="934">934</a>
-<a href="#935" id="935">935</a>
-<a href="#936" id="936">936</a>
-<a href="#937" id="937">937</a>
-<a href="#938" id="938">938</a>
-<a href="#939" id="939">939</a>
-<a href="#940" id="940">940</a>
-<a href="#941" id="941">941</a>
-<a href="#942" id="942">942</a>
-<a href="#943" id="943">943</a>
-<a href="#944" id="944">944</a>
-<a href="#945" id="945">945</a>
-<a href="#946" id="946">946</a>
-<a href="#947" id="947">947</a>
-<a href="#948" id="948">948</a>
-<a href="#949" id="949">949</a>
-<a href="#950" id="950">950</a>
-<a href="#951" id="951">951</a>
-<a href="#952" id="952">952</a>
-<a href="#953" id="953">953</a>
-<a href="#954" id="954">954</a>
-<a href="#955" id="955">955</a>
-<a href="#956" id="956">956</a>
-<a href="#957" id="957">957</a>
-<a href="#958" id="958">958</a>
-<a href="#959" id="959">959</a>
-<a href="#960" id="960">960</a>
-<a href="#961" id="961">961</a>
-<a href="#962" id="962">962</a>
-<a href="#963" id="963">963</a>
-<a href="#964" id="964">964</a>
-<a href="#965" id="965">965</a>
-<a href="#966" id="966">966</a>
-<a href="#967" id="967">967</a>
-<a href="#968" id="968">968</a>
-<a href="#969" id="969">969</a>
-<a href="#970" id="970">970</a>
-<a href="#971" id="971">971</a>
-<a href="#972" id="972">972</a>
-<a href="#973" id="973">973</a>
-<a href="#974" id="974">974</a>
-<a href="#975" id="975">975</a>
-<a href="#976" id="976">976</a>
-<a href="#977" id="977">977</a>
-<a href="#978" id="978">978</a>
-<a href="#979" id="979">979</a>
-<a href="#980" id="980">980</a>
-<a href="#981" id="981">981</a>
-<a href="#982" id="982">982</a>
-<a href="#983" id="983">983</a>
-<a href="#984" id="984">984</a>
-<a href="#985" id="985">985</a>
-<a href="#986" id="986">986</a>
-<a href="#987" id="987">987</a>
-<a href="#988" id="988">988</a>
-<a href="#989" id="989">989</a>
-<a href="#990" id="990">990</a>
-<a href="#991" id="991">991</a>
-<a href="#992" id="992">992</a>
-<a href="#993" id="993">993</a>
-<a href="#994" id="994">994</a>
-<a href="#995" id="995">995</a>
-<a href="#996" id="996">996</a>
-<a href="#997" id="997">997</a>
-<a href="#998" id="998">998</a>
-<a href="#999" id="999">999</a>
-<a href="#1000" id="1000">1000</a>
-<a href="#1001" id="1001">1001</a>
-<a href="#1002" id="1002">1002</a>
-<a href="#1003" id="1003">1003</a>
-<a href="#1004" id="1004">1004</a>
-<a href="#1005" id="1005">1005</a>
-<a href="#1006" id="1006">1006</a>
-<a href="#1007" id="1007">1007</a>
-<a href="#1008" id="1008">1008</a>
-<a href="#1009" id="1009">1009</a>
-<a href="#1010" id="1010">1010</a>
-<a href="#1011" id="1011">1011</a>
-<a href="#1012" id="1012">1012</a>
-<a href="#1013" id="1013">1013</a>
-<a href="#1014" id="1014">1014</a>
-<a href="#1015" id="1015">1015</a>
-<a href="#1016" id="1016">1016</a>
-<a href="#1017" id="1017">1017</a>
-<a href="#1018" id="1018">1018</a>
-<a href="#1019" id="1019">1019</a>
-<a href="#1020" id="1020">1020</a>
-<a href="#1021" id="1021">1021</a>
-<a href="#1022" id="1022">1022</a>
-<a href="#1023" id="1023">1023</a>
-<a href="#1024" id="1024">1024</a>
-<a href="#1025" id="1025">1025</a>
-<a href="#1026" id="1026">1026</a>
-<a href="#1027" id="1027">1027</a>
-<a href="#1028" id="1028">1028</a>
-<a href="#1029" id="1029">1029</a>
-<a href="#1030" id="1030">1030</a>
-<a href="#1031" id="1031">1031</a>
-<a href="#1032" id="1032">1032</a>
-<a href="#1033" id="1033">1033</a>
-<a href="#1034" id="1034">1034</a>
-<a href="#1035" id="1035">1035</a>
-<a href="#1036" id="1036">1036</a>
-<a href="#1037" id="1037">1037</a>
-<a href="#1038" id="1038">1038</a>
-<a href="#1039" id="1039">1039</a>
-<a href="#1040" id="1040">1040</a>
-<a href="#1041" id="1041">1041</a>
-<a href="#1042" id="1042">1042</a>
-<a href="#1043" id="1043">1043</a>
-<a href="#1044" id="1044">1044</a>
-<a href="#1045" id="1045">1045</a>
-<a href="#1046" id="1046">1046</a>
-<a href="#1047" id="1047">1047</a>
-<a href="#1048" id="1048">1048</a>
-<a href="#1049" id="1049">1049</a>
-<a href="#1050" id="1050">1050</a>
-<a href="#1051" id="1051">1051</a>
-<a href="#1052" id="1052">1052</a>
-<a href="#1053" id="1053">1053</a>
-<a href="#1054" id="1054">1054</a>
-<a href="#1055" id="1055">1055</a>
-<a href="#1056" id="1056">1056</a>
-<a href="#1057" id="1057">1057</a>
-<a href="#1058" id="1058">1058</a>
-<a href="#1059" id="1059">1059</a>
-<a href="#1060" id="1060">1060</a>
-<a href="#1061" id="1061">1061</a>
-<a href="#1062" id="1062">1062</a>
-<a href="#1063" id="1063">1063</a>
-<a href="#1064" id="1064">1064</a>
-<a href="#1065" id="1065">1065</a>
-<a href="#1066" id="1066">1066</a>
-<a href="#1067" id="1067">1067</a>
-<a href="#1068" id="1068">1068</a>
-<a href="#1069" id="1069">1069</a>
-<a href="#1070" id="1070">1070</a>
-<a href="#1071" id="1071">1071</a>
-<a href="#1072" id="1072">1072</a>
-<a href="#1073" id="1073">1073</a>
-<a href="#1074" id="1074">1074</a>
-<a href="#1075" id="1075">1075</a>
-<a href="#1076" id="1076">1076</a>
-<a href="#1077" id="1077">1077</a>
-<a href="#1078" id="1078">1078</a>
-<a href="#1079" id="1079">1079</a>
-<a href="#1080" id="1080">1080</a>
-<a href="#1081" id="1081">1081</a>
-<a href="#1082" id="1082">1082</a>
-<a href="#1083" id="1083">1083</a>
-<a href="#1084" id="1084">1084</a>
-<a href="#1085" id="1085">1085</a>
-<a href="#1086" id="1086">1086</a>
-<a href="#1087" id="1087">1087</a>
-<a href="#1088" id="1088">1088</a>
-<a href="#1089" id="1089">1089</a>
-<a href="#1090" id="1090">1090</a>
-<a href="#1091" id="1091">1091</a>
-<a href="#1092" id="1092">1092</a>
-<a href="#1093" id="1093">1093</a>
-<a href="#1094" id="1094">1094</a>
-<a href="#1095" id="1095">1095</a>
-<a href="#1096" id="1096">1096</a>
-<a href="#1097" id="1097">1097</a>
-<a href="#1098" id="1098">1098</a>
-<a href="#1099" id="1099">1099</a>
-<a href="#1100" id="1100">1100</a>
-<a href="#1101" id="1101">1101</a>
-<a href="#1102" id="1102">1102</a>
-<a href="#1103" id="1103">1103</a>
-<a href="#1104" id="1104">1104</a>
-<a href="#1105" id="1105">1105</a>
-<a href="#1106" id="1106">1106</a>
-<a href="#1107" id="1107">1107</a>
-<a href="#1108" id="1108">1108</a>
-<a href="#1109" id="1109">1109</a>
-<a href="#1110" id="1110">1110</a>
-<a href="#1111" id="1111">1111</a>
-<a href="#1112" id="1112">1112</a>
-<a href="#1113" id="1113">1113</a>
-<a href="#1114" id="1114">1114</a>
-<a href="#1115" id="1115">1115</a>
-<a href="#1116" id="1116">1116</a>
-<a href="#1117" id="1117">1117</a>
-<a href="#1118" id="1118">1118</a>
-<a href="#1119" id="1119">1119</a>
-<a href="#1120" id="1120">1120</a>
-<a href="#1121" id="1121">1121</a>
-<a href="#1122" id="1122">1122</a>
-<a href="#1123" id="1123">1123</a>
-<a href="#1124" id="1124">1124</a>
-<a href="#1125" id="1125">1125</a>
-<a href="#1126" id="1126">1126</a>
-<a href="#1127" id="1127">1127</a>
-<a href="#1128" id="1128">1128</a>
-<a href="#1129" id="1129">1129</a>
-<a href="#1130" id="1130">1130</a>
-<a href="#1131" id="1131">1131</a>
-<a href="#1132" id="1132">1132</a>
-<a href="#1133" id="1133">1133</a>
-<a href="#1134" id="1134">1134</a>
-<a href="#1135" id="1135">1135</a>
-<a href="#1136" id="1136">1136</a>
-<a href="#1137" id="1137">1137</a>
-<a href="#1138" id="1138">1138</a>
-<a href="#1139" id="1139">1139</a>
-<a href="#1140" id="1140">1140</a>
-<a href="#1141" id="1141">1141</a>
-<a href="#1142" id="1142">1142</a>
-<a href="#1143" id="1143">1143</a>
-<a href="#1144" id="1144">1144</a>
-<a href="#1145" id="1145">1145</a>
-<a href="#1146" id="1146">1146</a>
-<a href="#1147" id="1147">1147</a>
-<a href="#1148" id="1148">1148</a>
-<a href="#1149" id="1149">1149</a>
-<a href="#1150" id="1150">1150</a>
-<a href="#1151" id="1151">1151</a>
-<a href="#1152" id="1152">1152</a>
-<a href="#1153" id="1153">1153</a>
-<a href="#1154" id="1154">1154</a>
-<a href="#1155" id="1155">1155</a>
-<a href="#1156" id="1156">1156</a>
-<a href="#1157" id="1157">1157</a>
-<a href="#1158" id="1158">1158</a>
-<a href="#1159" id="1159">1159</a>
-<a href="#1160" id="1160">1160</a>
-<a href="#1161" id="1161">1161</a>
-<a href="#1162" id="1162">1162</a>
-<a href="#1163" id="1163">1163</a>
-<a href="#1164" id="1164">1164</a>
-<a href="#1165" id="1165">1165</a>
-<a href="#1166" id="1166">1166</a>
-<a href="#1167" id="1167">1167</a>
-<a href="#1168" id="1168">1168</a>
-<a href="#1169" id="1169">1169</a>
-<a href="#1170" id="1170">1170</a>
-<a href="#1171" id="1171">1171</a>
-<a href="#1172" id="1172">1172</a>
-<a href="#1173" id="1173">1173</a>
-<a href="#1174" id="1174">1174</a>
-<a href="#1175" id="1175">1175</a>
-<a href="#1176" id="1176">1176</a>
-<a href="#1177" id="1177">1177</a>
-<a href="#1178" id="1178">1178</a>
-<a href="#1179" id="1179">1179</a>
-<a href="#1180" id="1180">1180</a>
-<a href="#1181" id="1181">1181</a>
-<a href="#1182" id="1182">1182</a>
-<a href="#1183" id="1183">1183</a>
-<a href="#1184" id="1184">1184</a>
-<a href="#1185" id="1185">1185</a>
-<a href="#1186" id="1186">1186</a>
-<a href="#1187" id="1187">1187</a>
-<a href="#1188" id="1188">1188</a>
-<a href="#1189" id="1189">1189</a>
-<a href="#1190" id="1190">1190</a>
-<a href="#1191" id="1191">1191</a>
-<a href="#1192" id="1192">1192</a>
-<a href="#1193" id="1193">1193</a>
-<a href="#1194" id="1194">1194</a>
-<a href="#1195" id="1195">1195</a>
-<a href="#1196" id="1196">1196</a>
-<a href="#1197" id="1197">1197</a>
-<a href="#1198" id="1198">1198</a>
-<a href="#1199" id="1199">1199</a>
-<a href="#1200" id="1200">1200</a>
-<a href="#1201" id="1201">1201</a>
-<a href="#1202" id="1202">1202</a>
-<a href="#1203" id="1203">1203</a>
-<a href="#1204" id="1204">1204</a>
-<a href="#1205" id="1205">1205</a>
-<a href="#1206" id="1206">1206</a>
-<a href="#1207" id="1207">1207</a>
-<a href="#1208" id="1208">1208</a>
-<a href="#1209" id="1209">1209</a>
-<a href="#1210" id="1210">1210</a>
-<a href="#1211" id="1211">1211</a>
-<a href="#1212" id="1212">1212</a>
-<a href="#1213" id="1213">1213</a>
-<a href="#1214" id="1214">1214</a>
-<a href="#1215" id="1215">1215</a>
-<a href="#1216" id="1216">1216</a>
-<a href="#1217" id="1217">1217</a>
-<a href="#1218" id="1218">1218</a>
-<a href="#1219" id="1219">1219</a>
-<a href="#1220" id="1220">1220</a>
-<a href="#1221" id="1221">1221</a>
-<a href="#1222" id="1222">1222</a>
-<a href="#1223" id="1223">1223</a>
-<a href="#1224" id="1224">1224</a>
-<a href="#1225" id="1225">1225</a>
-<a href="#1226" id="1226">1226</a>
-<a href="#1227" id="1227">1227</a>
-<a href="#1228" id="1228">1228</a>
-<a href="#1229" id="1229">1229</a>
-<a href="#1230" id="1230">1230</a>
-<a href="#1231" id="1231">1231</a>
-<a href="#1232" id="1232">1232</a>
-<a href="#1233" id="1233">1233</a>
-<a href="#1234" id="1234">1234</a>
-<a href="#1235" id="1235">1235</a>
-<a href="#1236" id="1236">1236</a>
-<a href="#1237" id="1237">1237</a>
-<a href="#1238" id="1238">1238</a>
-<a href="#1239" id="1239">1239</a>
-<a href="#1240" id="1240">1240</a>
-<a href="#1241" id="1241">1241</a>
-<a href="#1242" id="1242">1242</a>
-<a href="#1243" id="1243">1243</a>
-<a href="#1244" id="1244">1244</a>
-<a href="#1245" id="1245">1245</a>
-<a href="#1246" id="1246">1246</a>
-<a href="#1247" id="1247">1247</a>
-<a href="#1248" id="1248">1248</a>
-<a href="#1249" id="1249">1249</a>
-<a href="#1250" id="1250">1250</a>
-<a href="#1251" id="1251">1251</a>
-<a href="#1252" id="1252">1252</a>
-<a href="#1253" id="1253">1253</a>
-<a href="#1254" id="1254">1254</a>
-<a href="#1255" id="1255">1255</a>
-<a href="#1256" id="1256">1256</a>
-<a href="#1257" id="1257">1257</a>
-<a href="#1258" id="1258">1258</a>
-<a href="#1259" id="1259">1259</a>
-<a href="#1260" id="1260">1260</a>
-<a href="#1261" id="1261">1261</a>
-<a href="#1262" id="1262">1262</a>
-<a href="#1263" id="1263">1263</a>
-<a href="#1264" id="1264">1264</a>
-<a href="#1265" id="1265">1265</a>
-<a href="#1266" id="1266">1266</a>
-<a href="#1267" id="1267">1267</a>
-<a href="#1268" id="1268">1268</a>
-<a href="#1269" id="1269">1269</a>
-<a href="#1270" id="1270">1270</a>
-<a href="#1271" id="1271">1271</a>
-<a href="#1272" id="1272">1272</a>
-<a href="#1273" id="1273">1273</a>
-<a href="#1274" id="1274">1274</a>
-<a href="#1275" id="1275">1275</a>
-<a href="#1276" id="1276">1276</a>
-<a href="#1277" id="1277">1277</a>
-<a href="#1278" id="1278">1278</a>
-<a href="#1279" id="1279">1279</a>
-<a href="#1280" id="1280">1280</a>
-<a href="#1281" id="1281">1281</a>
-<a href="#1282" id="1282">1282</a>
-<a href="#1283" id="1283">1283</a>
-<a href="#1284" id="1284">1284</a>
-<a href="#1285" id="1285">1285</a>
-<a href="#1286" id="1286">1286</a>
-<a href="#1287" id="1287">1287</a>
-<a href="#1288" id="1288">1288</a>
-<a href="#1289" id="1289">1289</a>
-<a href="#1290" id="1290">1290</a>
-<a href="#1291" id="1291">1291</a>
-<a href="#1292" id="1292">1292</a>
-<a href="#1293" id="1293">1293</a>
-<a href="#1294" id="1294">1294</a>
-<a href="#1295" id="1295">1295</a>
-<a href="#1296" id="1296">1296</a>
-<a href="#1297" id="1297">1297</a>
-<a href="#1298" id="1298">1298</a>
-<a href="#1299" id="1299">1299</a>
-<a href="#1300" id="1300">1300</a>
-<a href="#1301" id="1301">1301</a>
-<a href="#1302" id="1302">1302</a>
-<a href="#1303" id="1303">1303</a>
-<a href="#1304" id="1304">1304</a>
-<a href="#1305" id="1305">1305</a>
-<a href="#1306" id="1306">1306</a>
-<a href="#1307" id="1307">1307</a>
-<a href="#1308" id="1308">1308</a>
-<a href="#1309" id="1309">1309</a>
-<a href="#1310" id="1310">1310</a>
-<a href="#1311" id="1311">1311</a>
-<a href="#1312" id="1312">1312</a>
-<a href="#1313" id="1313">1313</a>
-<a href="#1314" id="1314">1314</a>
-<a href="#1315" id="1315">1315</a>
-<a href="#1316" id="1316">1316</a>
-<a href="#1317" id="1317">1317</a>
-<a href="#1318" id="1318">1318</a>
-<a href="#1319" id="1319">1319</a>
-<a href="#1320" id="1320">1320</a>
-<a href="#1321" id="1321">1321</a>
-<a href="#1322" id="1322">1322</a>
-<a href="#1323" id="1323">1323</a>
-<a href="#1324" id="1324">1324</a>
-<a href="#1325" id="1325">1325</a>
-<a href="#1326" id="1326">1326</a>
-<a href="#1327" id="1327">1327</a>
-<a href="#1328" id="1328">1328</a>
-<a href="#1329" id="1329">1329</a>
-<a href="#1330" id="1330">1330</a>
-<a href="#1331" id="1331">1331</a>
-<a href="#1332" id="1332">1332</a>
-<a href="#1333" id="1333">1333</a>
-<a href="#1334" id="1334">1334</a>
-<a href="#1335" id="1335">1335</a>
-<a href="#1336" id="1336">1336</a>
-<a href="#1337" id="1337">1337</a>
-<a href="#1338" id="1338">1338</a>
-<a href="#1339" id="1339">1339</a>
-<a href="#1340" id="1340">1340</a>
-<a href="#1341" id="1341">1341</a>
-<a href="#1342" id="1342">1342</a>
-<a href="#1343" id="1343">1343</a>
-<a href="#1344" id="1344">1344</a>
-<a href="#1345" id="1345">1345</a>
-<a href="#1346" id="1346">1346</a>
-<a href="#1347" id="1347">1347</a>
-<a href="#1348" id="1348">1348</a>
-<a href="#1349" id="1349">1349</a>
-<a href="#1350" id="1350">1350</a>
-<a href="#1351" id="1351">1351</a>
-<a href="#1352" id="1352">1352</a>
-<a href="#1353" id="1353">1353</a>
-<a href="#1354" id="1354">1354</a>
-<a href="#1355" id="1355">1355</a>
-<a href="#1356" id="1356">1356</a>
-<a href="#1357" id="1357">1357</a>
-<a href="#1358" id="1358">1358</a>
-<a href="#1359" id="1359">1359</a>
-<a href="#1360" id="1360">1360</a>
-<a href="#1361" id="1361">1361</a>
-<a href="#1362" id="1362">1362</a>
-<a href="#1363" id="1363">1363</a>
-<a href="#1364" id="1364">1364</a>
-<a href="#1365" id="1365">1365</a>
-<a href="#1366" id="1366">1366</a>
-<a href="#1367" id="1367">1367</a>
-<a href="#1368" id="1368">1368</a>
-<a href="#1369" id="1369">1369</a>
-<a href="#1370" id="1370">1370</a>
-<a href="#1371" id="1371">1371</a>
-<a href="#1372" id="1372">1372</a>
-<a href="#1373" id="1373">1373</a>
-<a href="#1374" id="1374">1374</a>
-<a href="#1375" id="1375">1375</a>
-<a href="#1376" id="1376">1376</a>
-<a href="#1377" id="1377">1377</a>
-<a href="#1378" id="1378">1378</a>
-<a href="#1379" id="1379">1379</a>
-<a href="#1380" id="1380">1380</a>
-<a href="#1381" id="1381">1381</a>
-<a href="#1382" id="1382">1382</a>
-<a href="#1383" id="1383">1383</a>
-<a href="#1384" id="1384">1384</a>
-<a href="#1385" id="1385">1385</a>
-<a href="#1386" id="1386">1386</a>
-<a href="#1387" id="1387">1387</a>
-<a href="#1388" id="1388">1388</a>
-<a href="#1389" id="1389">1389</a>
-<a href="#1390" id="1390">1390</a>
-<a href="#1391" id="1391">1391</a>
-<a href="#1392" id="1392">1392</a>
-<a href="#1393" id="1393">1393</a>
-<a href="#1394" id="1394">1394</a>
-<a href="#1395" id="1395">1395</a>
-<a href="#1396" id="1396">1396</a>
-<a href="#1397" id="1397">1397</a>
-<a href="#1398" id="1398">1398</a>
-<a href="#1399" id="1399">1399</a>
-<a href="#1400" id="1400">1400</a>
-<a href="#1401" id="1401">1401</a>
-<a href="#1402" id="1402">1402</a>
-<a href="#1403" id="1403">1403</a>
-<a href="#1404" id="1404">1404</a>
-<a href="#1405" id="1405">1405</a>
-<a href="#1406" id="1406">1406</a>
-<a href="#1407" id="1407">1407</a>
-<a href="#1408" id="1408">1408</a>
-<a href="#1409" id="1409">1409</a>
-<a href="#1410" id="1410">1410</a>
-<a href="#1411" id="1411">1411</a>
-<a href="#1412" id="1412">1412</a>
-<a href="#1413" id="1413">1413</a>
-<a href="#1414" id="1414">1414</a>
-<a href="#1415" id="1415">1415</a>
-<a href="#1416" id="1416">1416</a>
-<a href="#1417" id="1417">1417</a>
-<a href="#1418" id="1418">1418</a>
-<a href="#1419" id="1419">1419</a>
-<a href="#1420" id="1420">1420</a>
-<a href="#1421" id="1421">1421</a>
-<a href="#1422" id="1422">1422</a>
-<a href="#1423" id="1423">1423</a>
-<a href="#1424" id="1424">1424</a>
-<a href="#1425" id="1425">1425</a>
-<a href="#1426" id="1426">1426</a>
-<a href="#1427" id="1427">1427</a>
-<a href="#1428" id="1428">1428</a>
-<a href="#1429" id="1429">1429</a>
-<a href="#1430" id="1430">1430</a>
-<a href="#1431" id="1431">1431</a>
-<a href="#1432" id="1432">1432</a>
-<a href="#1433" id="1433">1433</a>
-<a href="#1434" id="1434">1434</a>
-<a href="#1435" id="1435">1435</a>
-<a href="#1436" id="1436">1436</a>
-<a href="#1437" id="1437">1437</a>
-<a href="#1438" id="1438">1438</a>
-<a href="#1439" id="1439">1439</a>
-<a href="#1440" id="1440">1440</a>
-<a href="#1441" id="1441">1441</a>
-<a href="#1442" id="1442">1442</a>
-<a href="#1443" id="1443">1443</a>
-<a href="#1444" id="1444">1444</a>
-<a href="#1445" id="1445">1445</a>
-<a href="#1446" id="1446">1446</a>
-<a href="#1447" id="1447">1447</a>
-<a href="#1448" id="1448">1448</a>
-<a href="#1449" id="1449">1449</a>
-<a href="#1450" id="1450">1450</a>
-<a href="#1451" id="1451">1451</a>
-<a href="#1452" id="1452">1452</a>
-<a href="#1453" id="1453">1453</a>
-<a href="#1454" id="1454">1454</a>
-<a href="#1455" id="1455">1455</a>
-<a href="#1456" id="1456">1456</a>
-<a href="#1457" id="1457">1457</a>
-<a href="#1458" id="1458">1458</a>
-<a href="#1459" id="1459">1459</a>
-<a href="#1460" id="1460">1460</a>
-<a href="#1461" id="1461">1461</a>
-<a href="#1462" id="1462">1462</a>
-<a href="#1463" id="1463">1463</a>
-<a href="#1464" id="1464">1464</a>
-<a href="#1465" id="1465">1465</a>
-<a href="#1466" id="1466">1466</a>
-<a href="#1467" id="1467">1467</a>
-<a href="#1468" id="1468">1468</a>
-<a href="#1469" id="1469">1469</a>
-<a href="#1470" id="1470">1470</a>
-<a href="#1471" id="1471">1471</a>
-<a href="#1472" id="1472">1472</a>
-<a href="#1473" id="1473">1473</a>
-<a href="#1474" id="1474">1474</a>
-<a href="#1475" id="1475">1475</a>
-<a href="#1476" id="1476">1476</a>
-<a href="#1477" id="1477">1477</a>
-<a href="#1478" id="1478">1478</a>
-<a href="#1479" id="1479">1479</a>
-<a href="#1480" id="1480">1480</a>
-<a href="#1481" id="1481">1481</a>
-<a href="#1482" id="1482">1482</a>
-<a href="#1483" id="1483">1483</a>
-<a href="#1484" id="1484">1484</a>
-<a href="#1485" id="1485">1485</a>
-<a href="#1486" id="1486">1486</a>
-<a href="#1487" id="1487">1487</a>
-<a href="#1488" id="1488">1488</a>
-<a href="#1489" id="1489">1489</a>
-<a href="#1490" id="1490">1490</a>
-<a href="#1491" id="1491">1491</a>
-<a href="#1492" id="1492">1492</a>
-<a href="#1493" id="1493">1493</a>
-<a href="#1494" id="1494">1494</a>
-<a href="#1495" id="1495">1495</a>
-<a href="#1496" id="1496">1496</a>
-<a href="#1497" id="1497">1497</a>
-<a href="#1498" id="1498">1498</a>
-<a href="#1499" id="1499">1499</a>
-<a href="#1500" id="1500">1500</a>
-<a href="#1501" id="1501">1501</a>
-<a href="#1502" id="1502">1502</a>
-<a href="#1503" id="1503">1503</a>
-<a href="#1504" id="1504">1504</a>
-<a href="#1505" id="1505">1505</a>
-<a href="#1506" id="1506">1506</a>
-<a href="#1507" id="1507">1507</a>
-<a href="#1508" id="1508">1508</a>
-<a href="#1509" id="1509">1509</a>
-<a href="#1510" id="1510">1510</a>
-<a href="#1511" id="1511">1511</a>
-<a href="#1512" id="1512">1512</a>
-<a href="#1513" id="1513">1513</a>
-<a href="#1514" id="1514">1514</a>
-<a href="#1515" id="1515">1515</a>
-<a href="#1516" id="1516">1516</a>
-<a href="#1517" id="1517">1517</a>
-<a href="#1518" id="1518">1518</a>
-<a href="#1519" id="1519">1519</a>
-<a href="#1520" id="1520">1520</a>
-<a href="#1521" id="1521">1521</a>
-<a href="#1522" id="1522">1522</a>
-<a href="#1523" id="1523">1523</a>
-<a href="#1524" id="1524">1524</a>
-<a href="#1525" id="1525">1525</a>
-<a href="#1526" id="1526">1526</a>
-<a href="#1527" id="1527">1527</a>
-<a href="#1528" id="1528">1528</a>
-<a href="#1529" id="1529">1529</a>
-<a href="#1530" id="1530">1530</a>
-<a href="#1531" id="1531">1531</a>
-<a href="#1532" id="1532">1532</a>
-<a href="#1533" id="1533">1533</a>
-<a href="#1534" id="1534">1534</a>
-<a href="#1535" id="1535">1535</a>
-<a href="#1536" id="1536">1536</a>
-<a href="#1537" id="1537">1537</a>
-<a href="#1538" id="1538">1538</a>
-<a href="#1539" id="1539">1539</a>
-<a href="#1540" id="1540">1540</a>
-<a href="#1541" id="1541">1541</a>
-<a href="#1542" id="1542">1542</a>
-<a href="#1543" id="1543">1543</a>
-<a href="#1544" id="1544">1544</a>
-<a href="#1545" id="1545">1545</a>
-<a href="#1546" id="1546">1546</a>
-<a href="#1547" id="1547">1547</a>
-<a href="#1548" id="1548">1548</a>
-<a href="#1549" id="1549">1549</a>
-<a href="#1550" id="1550">1550</a>
-<a href="#1551" id="1551">1551</a>
-<a href="#1552" id="1552">1552</a>
-<a href="#1553" id="1553">1553</a>
-<a href="#1554" id="1554">1554</a>
-<a href="#1555" id="1555">1555</a>
-<a href="#1556" id="1556">1556</a>
-<a href="#1557" id="1557">1557</a>
-<a href="#1558" id="1558">1558</a>
-<a href="#1559" id="1559">1559</a>
-<a href="#1560" id="1560">1560</a>
-<a href="#1561" id="1561">1561</a>
-<a href="#1562" id="1562">1562</a>
-<a href="#1563" id="1563">1563</a>
-<a href="#1564" id="1564">1564</a>
-<a href="#1565" id="1565">1565</a>
-<a href="#1566" id="1566">1566</a>
-<a href="#1567" id="1567">1567</a>
-<a href="#1568" id="1568">1568</a>
-<a href="#1569" id="1569">1569</a>
-<a href="#1570" id="1570">1570</a>
-<a href="#1571" id="1571">1571</a>
-<a href="#1572" id="1572">1572</a>
-<a href="#1573" id="1573">1573</a>
-<a href="#1574" id="1574">1574</a>
-<a href="#1575" id="1575">1575</a>
-<a href="#1576" id="1576">1576</a>
-<a href="#1577" id="1577">1577</a>
-<a href="#1578" id="1578">1578</a>
-<a href="#1579" id="1579">1579</a>
-<a href="#1580" id="1580">1580</a>
-<a href="#1581" id="1581">1581</a>
-<a href="#1582" id="1582">1582</a>
-<a href="#1583" id="1583">1583</a>
-<a href="#1584" id="1584">1584</a>
-<a href="#1585" id="1585">1585</a>
-<a href="#1586" id="1586">1586</a>
-<a href="#1587" id="1587">1587</a>
-<a href="#1588" id="1588">1588</a>
-<a href="#1589" id="1589">1589</a>
-<a href="#1590" id="1590">1590</a>
-<a href="#1591" id="1591">1591</a>
-<a href="#1592" id="1592">1592</a>
-<a href="#1593" id="1593">1593</a>
-<a href="#1594" id="1594">1594</a>
-<a href="#1595" id="1595">1595</a>
-<a href="#1596" id="1596">1596</a>
-<a href="#1597" id="1597">1597</a>
-<a href="#1598" id="1598">1598</a>
-<a href="#1599" id="1599">1599</a>
-<a href="#1600" id="1600">1600</a>
-<a href="#1601" id="1601">1601</a>
-<a href="#1602" id="1602">1602</a>
-</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-</span><span class="doccomment">//! Coin selection
-//!
-//! This module provides the trait [`CoinSelectionAlgorithm`] that can be implemented to
-//! define custom coin selection algorithms.
-//!
-//! You can specify a custom coin selection algorithm through the [`coin_selection`] method on
-//! [`TxBuilder`]. [`DefaultCoinSelectionAlgorithm`] aliases the coin selection algorithm that will
-//! be used if it is not explicitly set.
-//!
-//! [`TxBuilder`]: super::tx_builder::TxBuilder
-//! [`coin_selection`]: super::tx_builder::TxBuilder::coin_selection
-//!
-//! ## Example
-//!
-//! ```
-//! # use std::str::FromStr;
-//! # use bitcoin::*;
-//! # use bdk::wallet::{self, ChangeSet, coin_selection::*, coin_selection};
-//! # use bdk::wallet::error::CreateTxError;
-//! # use bdk_persist::PersistBackend;
-//! # use bdk::*;
-//! # use bdk::wallet::coin_selection::decide_change;
-//! # use anyhow::Error;
-//! #[derive(Debug)]
-//! struct AlwaysSpendEverything;
-//!
-//! impl CoinSelectionAlgorithm for AlwaysSpendEverything {
-//! fn coin_select(
-//! &self,
-//! required_utxos: Vec<WeightedUtxo>,
-//! optional_utxos: Vec<WeightedUtxo>,
-//! fee_rate: FeeRate,
-//! target_amount: u64,
-//! drain_script: &Script,
-//! ) -> Result<CoinSelectionResult, coin_selection::Error> {
-//! let mut selected_amount = 0;
-//! let mut additional_weight = Weight::ZERO;
-//! let all_utxos_selected = required_utxos
-//! .into_iter()
-//! .chain(optional_utxos)
-//! .scan(
-//! (&mut selected_amount, &mut additional_weight),
-//! |(selected_amount, additional_weight), weighted_utxo| {
-//! **selected_amount += weighted_utxo.utxo.txout().value.to_sat();
-//! **additional_weight += Weight::from_wu(
-//! (TxIn::default().segwit_weight().to_wu()
-//! + weighted_utxo.satisfaction_weight as u64)
-//! as u64,
-//! );
-//! Some(weighted_utxo.utxo)
-//! },
-//! )
-//! .collect::<Vec<_>>();
-//! let additional_fees = (fee_rate * additional_weight).to_sat();
-//! let amount_needed_with_fees = additional_fees + target_amount;
-//! if selected_amount < amount_needed_with_fees {
-//! return Err(coin_selection::Error::InsufficientFunds {
-//! needed: amount_needed_with_fees,
-//! available: selected_amount,
-//! });
-//! }
-//!
-//! let remaining_amount = selected_amount - amount_needed_with_fees;
-//!
-//! let excess = decide_change(remaining_amount, fee_rate, drain_script);
-//!
-//! Ok(CoinSelectionResult {
-//! selected: all_utxos_selected,
-//! fee_amount: additional_fees,
-//! excess,
-//! })
-//! }
-//! }
-//!
-//! # let mut wallet = doctest_wallet!();
-//! // create wallet, sync, ...
-//!
-//! let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt")
-//! .unwrap()
-//! .require_network(Network::Testnet)
-//! .unwrap();
-//! let psbt = {
-//! let mut builder = wallet.build_tx().coin_selection(AlwaysSpendEverything);
-//! builder.add_recipient(to_address.script_pubkey(), Amount::from_sat(50_000));
-//! builder.finish()?
-//! };
-//!
-//! // inspect, sign, broadcast, ...
-//!
-//! # Ok::<(), anyhow::Error>(())
-//! ```
-
-</span><span class="kw">use </span><span class="kw">crate</span>::chain::collections::HashSet;
-<span class="kw">use </span><span class="kw">crate</span>::wallet::utils::IsDust;
-<span class="kw">use </span><span class="kw">crate</span>::Utxo;
-<span class="kw">use </span><span class="kw">crate</span>::WeightedUtxo;
-<span class="kw">use </span>bitcoin::FeeRate;
-
-<span class="kw">use </span>alloc::vec::Vec;
-<span class="kw">use </span>bitcoin::consensus::encode::serialize;
-<span class="kw">use </span>bitcoin::OutPoint;
-<span class="kw">use </span>bitcoin::TxIn;
-<span class="kw">use </span>bitcoin::{Script, Weight};
-
-<span class="kw">use </span>core::convert::TryInto;
-<span class="kw">use </span>core::fmt::{<span class="self">self</span>, Formatter};
-<span class="kw">use </span>rand::seq::SliceRandom;
-
-<span class="doccomment">/// Default coin selection algorithm used by [`TxBuilder`](super::tx_builder::TxBuilder) if not
-/// overridden
-</span><span class="kw">pub type </span>DefaultCoinSelectionAlgorithm = BranchAndBoundCoinSelection;
-
-<span class="doccomment">/// Errors that can be thrown by the [`coin_selection`](crate::wallet::coin_selection) module
-</span><span class="attr">#[derive(Debug)]
-</span><span class="kw">pub enum </span>Error {
- <span class="doccomment">/// Wallet's UTXO set is not enough to cover recipient's requested plus fee
- </span>InsufficientFunds {
- <span class="doccomment">/// Sats needed for some transaction
- </span>needed: u64,
- <span class="doccomment">/// Sats available for spending
- </span>available: u64,
- },
- <span class="doccomment">/// Branch and bound coin selection tries to avoid needing a change by finding the right inputs for
- /// the desired outputs plus fee, if there is not such combination this error is thrown
- </span>BnBNoExactMatch,
- <span class="doccomment">/// Branch and bound coin selection possible attempts with sufficiently big UTXO set could grow
- /// exponentially, thus a limit is set, and when hit, this error is thrown
- </span>BnBTotalTriesExceeded,
-}
-
-<span class="kw">impl </span>fmt::Display <span class="kw">for </span>Error {
- <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
- <span class="kw">match </span><span class="self">self </span>{
- <span class="self">Self</span>::InsufficientFunds { needed, available } => <span class="macro">write!</span>(
- f,
- <span class="string">"Insufficient funds: {} sat available of {} sat needed"</span>,
- available, needed
- ),
- <span class="self">Self</span>::BnBTotalTriesExceeded => {
- <span class="macro">write!</span>(f, <span class="string">"Branch and bound coin selection: total tries exceeded"</span>)
- }
- <span class="self">Self</span>::BnBNoExactMatch => <span class="macro">write!</span>(f, <span class="string">"Branch and bound coin selection: not exact match"</span>),
- }
- }
-}
-
-<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
-</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>Error {}
-
-<span class="attr">#[derive(Debug)]
-</span><span class="doccomment">/// Remaining amount after performing coin selection
-</span><span class="kw">pub enum </span>Excess {
- <span class="doccomment">/// It's not possible to create spendable output from excess using the current drain output
- </span>NoChange {
- <span class="doccomment">/// Threshold to consider amount as dust for this particular change script_pubkey
- </span>dust_threshold: u64,
- <span class="doccomment">/// Exceeding amount of current selection over outgoing value and fee costs
- </span>remaining_amount: u64,
- <span class="doccomment">/// The calculated fee for the drain TxOut with the selected script_pubkey
- </span>change_fee: u64,
- },
- <span class="doccomment">/// It's possible to create spendable output from excess using the current drain output
- </span>Change {
- <span class="doccomment">/// Effective amount available to create change after deducting the change output fee
- </span>amount: u64,
- <span class="doccomment">/// The deducted change output fee
- </span>fee: u64,
- },
-}
-
-<span class="doccomment">/// Result of a successful coin selection
-</span><span class="attr">#[derive(Debug)]
-</span><span class="kw">pub struct </span>CoinSelectionResult {
- <span class="doccomment">/// List of outputs selected for use as inputs
- </span><span class="kw">pub </span>selected: Vec<Utxo>,
- <span class="doccomment">/// Total fee amount for the selected utxos in satoshis
- </span><span class="kw">pub </span>fee_amount: u64,
- <span class="doccomment">/// Remaining amount after deducing fees and outgoing outputs
- </span><span class="kw">pub </span>excess: Excess,
-}
-
-<span class="kw">impl </span>CoinSelectionResult {
- <span class="doccomment">/// The total value of the inputs selected.
- </span><span class="kw">pub fn </span>selected_amount(<span class="kw-2">&</span><span class="self">self</span>) -> u64 {
- <span class="self">self</span>.selected.iter().map(|u| u.txout().value.to_sat()).sum()
- }
-
- <span class="doccomment">/// The total value of the inputs selected from the local wallet.
- </span><span class="kw">pub fn </span>local_selected_amount(<span class="kw-2">&</span><span class="self">self</span>) -> u64 {
- <span class="self">self</span>.selected
- .iter()
- .filter_map(|u| <span class="kw">match </span>u {
- Utxo::Local(<span class="kw">_</span>) => <span class="prelude-val">Some</span>(u.txout().value.to_sat()),
- <span class="kw">_ </span>=> <span class="prelude-val">None</span>,
- })
- .sum()
- }
-}
-
-<span class="doccomment">/// Trait for generalized coin selection algorithms
-///
-/// This trait can be implemented to make the [`Wallet`](super::Wallet) use a customized coin
-/// selection algorithm when it creates transactions.
-///
-/// For an example see [this module](crate::wallet::coin_selection)'s documentation.
-</span><span class="kw">pub trait </span>CoinSelectionAlgorithm: core::fmt::Debug {
- <span class="doccomment">/// Perform the coin selection
- ///
- /// - `database`: a reference to the wallet's database that can be used to lookup additional
- /// details for a specific UTXO
- /// - `required_utxos`: the utxos that must be spent regardless of `target_amount` with their
- /// weight cost
- /// - `optional_utxos`: the remaining available utxos to satisfy `target_amount` with their
- /// weight cost
- /// - `fee_rate`: fee rate to use
- /// - `target_amount`: the outgoing amount in satoshis and the fees already
- /// accumulated from added outputs and transaction’s header.
- /// - `drain_script`: the script to use in case of change
- </span><span class="attr">#[allow(clippy::too_many_arguments)]
- </span><span class="kw">fn </span>coin_select(
- <span class="kw-2">&</span><span class="self">self</span>,
- required_utxos: Vec<WeightedUtxo>,
- optional_utxos: Vec<WeightedUtxo>,
- fee_rate: FeeRate,
- target_amount: u64,
- drain_script: <span class="kw-2">&</span>Script,
- ) -> <span class="prelude-ty">Result</span><CoinSelectionResult, Error>;
-}
-
-<span class="doccomment">/// Simple and dumb coin selection
-///
-/// This coin selection algorithm sorts the available UTXOs by value and then picks them starting
-/// from the largest ones until the required amount is reached.
-</span><span class="attr">#[derive(Debug, Default, Clone, Copy)]
-</span><span class="kw">pub struct </span>LargestFirstCoinSelection;
-
-<span class="kw">impl </span>CoinSelectionAlgorithm <span class="kw">for </span>LargestFirstCoinSelection {
- <span class="kw">fn </span>coin_select(
- <span class="kw-2">&</span><span class="self">self</span>,
- required_utxos: Vec<WeightedUtxo>,
- <span class="kw-2">mut </span>optional_utxos: Vec<WeightedUtxo>,
- fee_rate: FeeRate,
- target_amount: u64,
- drain_script: <span class="kw-2">&</span>Script,
- ) -> <span class="prelude-ty">Result</span><CoinSelectionResult, Error> {
- <span class="comment">// We put the "required UTXOs" first and make sure the optional UTXOs are sorted,
- // initially smallest to largest, before being reversed with `.rev()`.
- </span><span class="kw">let </span>utxos = {
- optional_utxos.sort_unstable_by_key(|wu| wu.utxo.txout().value);
- required_utxos
- .into_iter()
- .map(|utxo| (<span class="bool-val">true</span>, utxo))
- .chain(optional_utxos.into_iter().rev().map(|utxo| (<span class="bool-val">false</span>, utxo)))
- };
-
- select_sorted_utxos(utxos, fee_rate, target_amount, drain_script)
- }
-}
-
-<span class="doccomment">/// OldestFirstCoinSelection always picks the utxo with the smallest blockheight to add to the selected coins next
-///
-/// This coin selection algorithm sorts the available UTXOs by blockheight and then picks them starting
-/// from the oldest ones until the required amount is reached.
-</span><span class="attr">#[derive(Debug, Default, Clone, Copy)]
-</span><span class="kw">pub struct </span>OldestFirstCoinSelection;
-
-<span class="kw">impl </span>CoinSelectionAlgorithm <span class="kw">for </span>OldestFirstCoinSelection {
- <span class="kw">fn </span>coin_select(
- <span class="kw-2">&</span><span class="self">self</span>,
- required_utxos: Vec<WeightedUtxo>,
- <span class="kw-2">mut </span>optional_utxos: Vec<WeightedUtxo>,
- fee_rate: FeeRate,
- target_amount: u64,
- drain_script: <span class="kw-2">&</span>Script,
- ) -> <span class="prelude-ty">Result</span><CoinSelectionResult, Error> {
- <span class="comment">// We put the "required UTXOs" first and make sure the optional UTXOs are sorted from
- // oldest to newest according to blocktime
- // For utxo that doesn't exist in DB, they will have lowest priority to be selected
- </span><span class="kw">let </span>utxos = {
- optional_utxos.sort_unstable_by_key(|wu| <span class="kw">match </span><span class="kw-2">&</span>wu.utxo {
- Utxo::Local(local) => <span class="prelude-val">Some</span>(local.confirmation_time),
- Utxo::Foreign { .. } => <span class="prelude-val">None</span>,
- });
-
- required_utxos
- .into_iter()
- .map(|utxo| (<span class="bool-val">true</span>, utxo))
- .chain(optional_utxos.into_iter().map(|utxo| (<span class="bool-val">false</span>, utxo)))
- };
-
- select_sorted_utxos(utxos, fee_rate, target_amount, drain_script)
- }
-}
-
-<span class="doccomment">/// Decide if change can be created
-///
-/// - `remaining_amount`: the amount in which the selected coins exceed the target amount
-/// - `fee_rate`: required fee rate for the current selection
-/// - `drain_script`: script to consider change creation
-</span><span class="kw">pub fn </span>decide_change(remaining_amount: u64, fee_rate: FeeRate, drain_script: <span class="kw-2">&</span>Script) -> Excess {
- <span class="comment">// drain_output_len = size(len(script_pubkey)) + len(script_pubkey) + size(output_value)
- </span><span class="kw">let </span>drain_output_len = serialize(drain_script).len() + <span class="number">8usize</span>;
- <span class="kw">let </span>change_fee =
- (fee_rate * Weight::from_vb(drain_output_len <span class="kw">as </span>u64).expect(<span class="string">"overflow occurred"</span>)).to_sat();
- <span class="kw">let </span>drain_val = remaining_amount.saturating_sub(change_fee);
-
- <span class="kw">if </span>drain_val.is_dust(drain_script) {
- <span class="kw">let </span>dust_threshold = drain_script.dust_value().to_sat();
- Excess::NoChange {
- dust_threshold,
- change_fee,
- remaining_amount,
- }
- } <span class="kw">else </span>{
- Excess::Change {
- amount: drain_val,
- fee: change_fee,
- }
- }
-}
-
-<span class="kw">fn </span>select_sorted_utxos(
- utxos: <span class="kw">impl </span>Iterator<Item = (bool, WeightedUtxo)>,
- fee_rate: FeeRate,
- target_amount: u64,
- drain_script: <span class="kw-2">&</span>Script,
-) -> <span class="prelude-ty">Result</span><CoinSelectionResult, Error> {
- <span class="kw">let </span><span class="kw-2">mut </span>selected_amount = <span class="number">0</span>;
- <span class="kw">let </span><span class="kw-2">mut </span>fee_amount = <span class="number">0</span>;
- <span class="kw">let </span>selected = utxos
- .scan(
- (<span class="kw-2">&mut </span>selected_amount, <span class="kw-2">&mut </span>fee_amount),
- |(selected_amount, fee_amount), (must_use, weighted_utxo)| {
- <span class="kw">if </span>must_use || <span class="kw-2">**</span>selected_amount < target_amount + <span class="kw-2">**</span>fee_amount {
- <span class="kw-2">**</span>fee_amount += (fee_rate
- * Weight::from_wu(
- TxIn::default().segwit_weight().to_wu()
- + weighted_utxo.satisfaction_weight <span class="kw">as </span>u64,
- ))
- .to_sat();
- <span class="kw-2">**</span>selected_amount += weighted_utxo.utxo.txout().value.to_sat();
- <span class="prelude-val">Some</span>(weighted_utxo.utxo)
- } <span class="kw">else </span>{
- <span class="prelude-val">None
- </span>}
- },
- )
- .collect::<Vec<<span class="kw">_</span>>>();
-
- <span class="kw">let </span>amount_needed_with_fees = target_amount + fee_amount;
- <span class="kw">if </span>selected_amount < amount_needed_with_fees {
- <span class="kw">return </span><span class="prelude-val">Err</span>(Error::InsufficientFunds {
- needed: amount_needed_with_fees,
- available: selected_amount,
- });
- }
-
- <span class="kw">let </span>remaining_amount = selected_amount - amount_needed_with_fees;
-
- <span class="kw">let </span>excess = decide_change(remaining_amount, fee_rate, drain_script);
-
- <span class="prelude-val">Ok</span>(CoinSelectionResult {
- selected,
- fee_amount,
- excess,
- })
-}
-
-<span class="attr">#[derive(Debug, Clone)]
-</span><span class="comment">// Adds fee information to an UTXO.
-</span><span class="kw">struct </span>OutputGroup {
- weighted_utxo: WeightedUtxo,
- <span class="comment">// Amount of fees for spending a certain utxo, calculated using a certain FeeRate
- </span>fee: u64,
- <span class="comment">// The effective value of the UTXO, i.e., the utxo value minus the fee for spending it
- </span>effective_value: i64,
-}
-
-<span class="kw">impl </span>OutputGroup {
- <span class="kw">fn </span>new(weighted_utxo: WeightedUtxo, fee_rate: FeeRate) -> <span class="self">Self </span>{
- <span class="kw">let </span>fee = (fee_rate
- * Weight::from_wu(
- TxIn::default().segwit_weight().to_wu() + weighted_utxo.satisfaction_weight <span class="kw">as </span>u64,
- ))
- .to_sat();
- <span class="kw">let </span>effective_value = weighted_utxo.utxo.txout().value.to_sat() <span class="kw">as </span>i64 - fee <span class="kw">as </span>i64;
- OutputGroup {
- weighted_utxo,
- fee,
- effective_value,
- }
- }
-}
-
-<span class="doccomment">/// Branch and bound coin selection
-///
-/// Code adapted from Bitcoin Core's implementation and from Mark Erhardt Master's Thesis: <http://murch.one/wp-content/uploads/2016/11/erhardt2016coinselection.pdf>
-</span><span class="attr">#[derive(Debug, Clone)]
-</span><span class="kw">pub struct </span>BranchAndBoundCoinSelection {
- size_of_change: u64,
-}
-
-<span class="kw">impl </span>Default <span class="kw">for </span>BranchAndBoundCoinSelection {
- <span class="kw">fn </span>default() -> <span class="self">Self </span>{
- <span class="self">Self </span>{
- <span class="comment">// P2WPKH cost of change -> value (8 bytes) + script len (1 bytes) + script (22 bytes)
- </span>size_of_change: <span class="number">8 </span>+ <span class="number">1 </span>+ <span class="number">22</span>,
- }
- }
-}
-
-<span class="kw">impl </span>BranchAndBoundCoinSelection {
- <span class="doccomment">/// Create new instance with target size for change output
- </span><span class="kw">pub fn </span>new(size_of_change: u64) -> <span class="self">Self </span>{
- <span class="self">Self </span>{ size_of_change }
- }
-}
-
-<span class="kw">const </span>BNB_TOTAL_TRIES: usize = <span class="number">100_000</span>;
-
-<span class="kw">impl </span>CoinSelectionAlgorithm <span class="kw">for </span>BranchAndBoundCoinSelection {
- <span class="kw">fn </span>coin_select(
- <span class="kw-2">&</span><span class="self">self</span>,
- required_utxos: Vec<WeightedUtxo>,
- optional_utxos: Vec<WeightedUtxo>,
- fee_rate: FeeRate,
- target_amount: u64,
- drain_script: <span class="kw-2">&</span>Script,
- ) -> <span class="prelude-ty">Result</span><CoinSelectionResult, Error> {
- <span class="comment">// Mapping every (UTXO, usize) to an output group
- </span><span class="kw">let </span>required_utxos: Vec<OutputGroup> = required_utxos
- .into_iter()
- .map(|u| OutputGroup::new(u, fee_rate))
- .collect();
-
- <span class="comment">// Mapping every (UTXO, usize) to an output group, filtering UTXOs with a negative
- // effective value
- </span><span class="kw">let </span>optional_utxos: Vec<OutputGroup> = optional_utxos
- .into_iter()
- .map(|u| OutputGroup::new(u, fee_rate))
- .filter(|u| u.effective_value.is_positive())
- .collect();
-
- <span class="kw">let </span>curr_value = required_utxos
- .iter()
- .fold(<span class="number">0</span>, |acc, x| acc + x.effective_value);
-
- <span class="kw">let </span>curr_available_value = optional_utxos
- .iter()
- .fold(<span class="number">0</span>, |acc, x| acc + x.effective_value);
-
- <span class="kw">let </span>cost_of_change =
- (Weight::from_vb(<span class="self">self</span>.size_of_change).expect(<span class="string">"overflow occurred"</span>) * fee_rate).to_sat();
-
- <span class="comment">// `curr_value` and `curr_available_value` are both the sum of *effective_values* of
- // the UTXOs. For the optional UTXOs (curr_available_value) we filter out UTXOs with
- // negative effective value, so it will always be positive.
- //
- // Since we are required to spend the required UTXOs (curr_value) we have to consider
- // all their effective values, even when negative, which means that curr_value could
- // be negative as well.
- //
- // If the sum of curr_value and curr_available_value is negative or lower than our target,
- // we can immediately exit with an error, as it's guaranteed we will never find a solution
- // if we actually run the BnB.
- </span><span class="kw">let </span>total_value: <span class="prelude-ty">Result</span><u64, <span class="kw">_</span>> = (curr_available_value + curr_value).try_into();
- <span class="kw">match </span>total_value {
- <span class="prelude-val">Ok</span>(v) <span class="kw">if </span>v >= target_amount => {}
- <span class="kw">_ </span>=> {
- <span class="comment">// Assume we spend all the UTXOs we can (all the required + all the optional with
- // positive effective value), sum their value and their fee cost.
- </span><span class="kw">let </span>(utxo_fees, utxo_value) = required_utxos
- .iter()
- .chain(optional_utxos.iter())
- .fold((<span class="number">0</span>, <span class="number">0</span>), |(<span class="kw-2">mut </span>fees, <span class="kw-2">mut </span>value), utxo| {
- fees += utxo.fee;
- value += utxo.weighted_utxo.utxo.txout().value.to_sat();
-
- (fees, value)
- });
-
- <span class="comment">// Add to the target the fee cost of the UTXOs
- </span><span class="kw">return </span><span class="prelude-val">Err</span>(Error::InsufficientFunds {
- needed: target_amount + utxo_fees,
- available: utxo_value,
- });
- }
- }
-
- <span class="kw">let </span>target_amount = target_amount
- .try_into()
- .expect(<span class="string">"Bitcoin amount to fit into i64"</span>);
-
- <span class="kw">if </span>curr_value > target_amount {
- <span class="comment">// remaining_amount can't be negative as that would mean the
- // selection wasn't successful
- // target_amount = amount_needed + (fee_amount - vin_fees)
- </span><span class="kw">let </span>remaining_amount = (curr_value - target_amount) <span class="kw">as </span>u64;
-
- <span class="kw">let </span>excess = decide_change(remaining_amount, fee_rate, drain_script);
-
- <span class="kw">return </span><span class="prelude-val">Ok</span>(BranchAndBoundCoinSelection::calculate_cs_result(
- <span class="macro">vec!</span>[],
- required_utxos,
- excess,
- ));
- }
-
- <span class="prelude-val">Ok</span>(<span class="self">self
- </span>.bnb(
- required_utxos.clone(),
- optional_utxos.clone(),
- curr_value,
- curr_available_value,
- target_amount,
- cost_of_change,
- drain_script,
- fee_rate,
- )
- .unwrap_or_else(|<span class="kw">_</span>| {
- <span class="self">self</span>.single_random_draw(
- required_utxos,
- optional_utxos,
- curr_value,
- target_amount,
- drain_script,
- fee_rate,
- )
- }))
- }
-}
-
-<span class="kw">impl </span>BranchAndBoundCoinSelection {
- <span class="comment">// TODO: make this more Rust-onic :)
- // (And perhaps refactor with less arguments?)
- </span><span class="attr">#[allow(clippy::too_many_arguments)]
- </span><span class="kw">fn </span>bnb(
- <span class="kw-2">&</span><span class="self">self</span>,
- required_utxos: Vec<OutputGroup>,
- <span class="kw-2">mut </span>optional_utxos: Vec<OutputGroup>,
- <span class="kw-2">mut </span>curr_value: i64,
- <span class="kw-2">mut </span>curr_available_value: i64,
- target_amount: i64,
- cost_of_change: u64,
- drain_script: <span class="kw-2">&</span>Script,
- fee_rate: FeeRate,
- ) -> <span class="prelude-ty">Result</span><CoinSelectionResult, Error> {
- <span class="comment">// current_selection[i] will contain true if we are using optional_utxos[i],
- // false otherwise. Note that current_selection.len() could be less than
- // optional_utxos.len(), it just means that we still haven't decided if we should keep
- // certain optional_utxos or not.
- </span><span class="kw">let </span><span class="kw-2">mut </span>current_selection: Vec<bool> = Vec::with_capacity(optional_utxos.len());
-
- <span class="comment">// Sort the utxo_pool
- </span>optional_utxos.sort_unstable_by_key(|a| a.effective_value);
- optional_utxos.reverse();
-
- <span class="comment">// Contains the best selection we found
- </span><span class="kw">let </span><span class="kw-2">mut </span>best_selection = Vec::new();
- <span class="kw">let </span><span class="kw-2">mut </span>best_selection_value = <span class="prelude-val">None</span>;
-
- <span class="comment">// Depth First search loop for choosing the UTXOs
- </span><span class="kw">for _ in </span><span class="number">0</span>..BNB_TOTAL_TRIES {
- <span class="comment">// Conditions for starting a backtrack
- </span><span class="kw">let </span><span class="kw-2">mut </span>backtrack = <span class="bool-val">false</span>;
- <span class="comment">// Cannot possibly reach target with the amount remaining in the curr_available_value,
- // or the selected value is out of range.
- // Go back and try other branch
- </span><span class="kw">if </span>curr_value + curr_available_value < target_amount
- || curr_value > target_amount + cost_of_change <span class="kw">as </span>i64
- {
- backtrack = <span class="bool-val">true</span>;
- } <span class="kw">else if </span>curr_value >= target_amount {
- <span class="comment">// Selected value is within range, there's no point in going forward. Start
- // backtracking
- </span>backtrack = <span class="bool-val">true</span>;
-
- <span class="comment">// If we found a solution better than the previous one, or if there wasn't previous
- // solution, update the best solution
- </span><span class="kw">if </span>best_selection_value.is_none() || curr_value < best_selection_value.unwrap() {
- best_selection.clone_from(<span class="kw-2">&</span>current_selection);
- best_selection_value = <span class="prelude-val">Some</span>(curr_value);
- }
-
- <span class="comment">// If we found a perfect match, break here
- </span><span class="kw">if </span>curr_value == target_amount {
- <span class="kw">break</span>;
- }
- }
-
- <span class="comment">// Backtracking, moving backwards
- </span><span class="kw">if </span>backtrack {
- <span class="comment">// Walk backwards to find the last included UTXO that still needs to have its omission branch traversed.
- </span><span class="kw">while let </span><span class="prelude-val">Some</span>(<span class="bool-val">false</span>) = current_selection.last() {
- current_selection.pop();
- curr_available_value += optional_utxos[current_selection.len()].effective_value;
- }
-
- <span class="kw">if </span>current_selection.last_mut().is_none() {
- <span class="comment">// We have walked back to the first utxo and no branch is untraversed. All solutions searched
- // If best selection is empty, then there's no exact match
- </span><span class="kw">if </span>best_selection.is_empty() {
- <span class="kw">return </span><span class="prelude-val">Err</span>(Error::BnBNoExactMatch);
- }
- <span class="kw">break</span>;
- }
-
- <span class="kw">if let </span><span class="prelude-val">Some</span>(c) = current_selection.last_mut() {
- <span class="comment">// Output was included on previous iterations, try excluding now.
- </span><span class="kw-2">*</span>c = <span class="bool-val">false</span>;
- }
-
- <span class="kw">let </span>utxo = <span class="kw-2">&</span>optional_utxos[current_selection.len() - <span class="number">1</span>];
- curr_value -= utxo.effective_value;
- } <span class="kw">else </span>{
- <span class="comment">// Moving forwards, continuing down this branch
- </span><span class="kw">let </span>utxo = <span class="kw-2">&</span>optional_utxos[current_selection.len()];
-
- <span class="comment">// Remove this utxo from the curr_available_value utxo amount
- </span>curr_available_value -= utxo.effective_value;
-
- <span class="comment">// Inclusion branch first (Largest First Exploration)
- </span>current_selection.push(<span class="bool-val">true</span>);
- curr_value += utxo.effective_value;
- }
- }
-
- <span class="comment">// Check for solution
- </span><span class="kw">if </span>best_selection.is_empty() {
- <span class="kw">return </span><span class="prelude-val">Err</span>(Error::BnBTotalTriesExceeded);
- }
-
- <span class="comment">// Set output set
- </span><span class="kw">let </span>selected_utxos = optional_utxos
- .into_iter()
- .zip(best_selection)
- .filter_map(|(optional, is_in_best)| <span class="kw">if </span>is_in_best { <span class="prelude-val">Some</span>(optional) } <span class="kw">else </span>{ <span class="prelude-val">None </span>})
- .collect::<Vec<OutputGroup>>();
-
- <span class="kw">let </span>selected_amount = best_selection_value.unwrap();
-
- <span class="comment">// remaining_amount can't be negative as that would mean the
- // selection wasn't successful
- // target_amount = amount_needed + (fee_amount - vin_fees)
- </span><span class="kw">let </span>remaining_amount = (selected_amount - target_amount) <span class="kw">as </span>u64;
-
- <span class="kw">let </span>excess = decide_change(remaining_amount, fee_rate, drain_script);
-
- <span class="prelude-val">Ok</span>(BranchAndBoundCoinSelection::calculate_cs_result(
- selected_utxos,
- required_utxos,
- excess,
- ))
- }
-
- <span class="attr">#[allow(clippy::too_many_arguments)]
- </span><span class="kw">fn </span>single_random_draw(
- <span class="kw-2">&</span><span class="self">self</span>,
- required_utxos: Vec<OutputGroup>,
- <span class="kw-2">mut </span>optional_utxos: Vec<OutputGroup>,
- curr_value: i64,
- target_amount: i64,
- drain_script: <span class="kw-2">&</span>Script,
- fee_rate: FeeRate,
- ) -> CoinSelectionResult {
- optional_utxos.shuffle(<span class="kw-2">&mut </span>rand::thread_rng());
- <span class="kw">let </span>selected_utxos = optional_utxos.into_iter().fold(
- (curr_value, <span class="macro">vec!</span>[]),
- |(<span class="kw-2">mut </span>amount, <span class="kw-2">mut </span>utxos), utxo| {
- <span class="kw">if </span>amount >= target_amount {
- (amount, utxos)
- } <span class="kw">else </span>{
- amount += utxo.effective_value;
- utxos.push(utxo);
- (amount, utxos)
- }
- },
- );
-
- <span class="comment">// remaining_amount can't be negative as that would mean the
- // selection wasn't successful
- // target_amount = amount_needed + (fee_amount - vin_fees)
- </span><span class="kw">let </span>remaining_amount = (selected_utxos.<span class="number">0 </span>- target_amount) <span class="kw">as </span>u64;
-
- <span class="kw">let </span>excess = decide_change(remaining_amount, fee_rate, drain_script);
-
- BranchAndBoundCoinSelection::calculate_cs_result(selected_utxos.<span class="number">1</span>, required_utxos, excess)
- }
-
- <span class="kw">fn </span>calculate_cs_result(
- <span class="kw-2">mut </span>selected_utxos: Vec<OutputGroup>,
- <span class="kw-2">mut </span>required_utxos: Vec<OutputGroup>,
- excess: Excess,
- ) -> CoinSelectionResult {
- selected_utxos.append(<span class="kw-2">&mut </span>required_utxos);
- <span class="kw">let </span>fee_amount = selected_utxos.iter().map(|u| u.fee).sum::<u64>();
- <span class="kw">let </span>selected = selected_utxos
- .into_iter()
- .map(|u| u.weighted_utxo.utxo)
- .collect::<Vec<<span class="kw">_</span>>>();
-
- CoinSelectionResult {
- selected,
- fee_amount,
- excess,
- }
- }
-}
-
-<span class="doccomment">/// Remove duplicate UTXOs.
-///
-/// If a UTXO appears in both `required` and `optional`, the appearance in `required` is kept.
-</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>filter_duplicates<I>(required: I, optional: I) -> (I, I)
-<span class="kw">where
- </span>I: IntoIterator<Item = WeightedUtxo> + FromIterator<WeightedUtxo>,
-{
- <span class="kw">let </span><span class="kw-2">mut </span>visited = HashSet::<OutPoint>::new();
- <span class="kw">let </span>required = required
- .into_iter()
- .filter(|utxo| visited.insert(utxo.utxo.outpoint()))
- .collect::<I>();
- <span class="kw">let </span>optional = optional
- .into_iter()
- .filter(|utxo| visited.insert(utxo.utxo.outpoint()))
- .collect::<I>();
- (required, optional)
-}
-
-<span class="attr">#[cfg(test)]
-</span><span class="kw">mod </span>test {
- <span class="kw">use </span>assert_matches::assert_matches;
- <span class="kw">use </span>core::str::FromStr;
-
- <span class="kw">use </span>bdk_chain::ConfirmationTime;
- <span class="kw">use </span>bitcoin::{Amount, ScriptBuf, TxIn, TxOut};
-
- <span class="kw">use super</span>::<span class="kw-2">*</span>;
- <span class="kw">use </span><span class="kw">crate</span>::types::<span class="kw-2">*</span>;
- <span class="kw">use </span><span class="kw">crate</span>::wallet::coin_selection::filter_duplicates;
-
- <span class="kw">use </span>rand::rngs::StdRng;
- <span class="kw">use </span>rand::seq::SliceRandom;
- <span class="kw">use </span>rand::{Rng, RngCore, SeedableRng};
-
- <span class="comment">// signature len (1WU) + signature and sighash (72WU)
- // + pubkey len (1WU) + pubkey (33WU)
- </span><span class="kw">const </span>P2WPKH_SATISFACTION_SIZE: usize = <span class="number">1 </span>+ <span class="number">72 </span>+ <span class="number">1 </span>+ <span class="number">33</span>;
-
- <span class="kw">const </span>FEE_AMOUNT: u64 = <span class="number">50</span>;
-
- <span class="kw">fn </span>utxo(value: u64, index: u32, confirmation_time: ConfirmationTime) -> WeightedUtxo {
- <span class="macro">assert!</span>(index < <span class="number">10</span>);
- <span class="kw">let </span>outpoint = OutPoint::from_str(<span class="kw-2">&</span><span class="macro">format!</span>(
- <span class="string">"000000000000000000000000000000000000000000000000000000000000000{}:0"</span>,
- index
- ))
- .unwrap();
- WeightedUtxo {
- satisfaction_weight: P2WPKH_SATISFACTION_SIZE,
- utxo: Utxo::Local(LocalOutput {
- outpoint,
- txout: TxOut {
- value: Amount::from_sat(value),
- script_pubkey: ScriptBuf::new(),
- },
- keychain: KeychainKind::External,
- is_spent: <span class="bool-val">false</span>,
- derivation_index: <span class="number">42</span>,
- confirmation_time,
- }),
- }
- }
-
- <span class="kw">fn </span>get_test_utxos() -> Vec<WeightedUtxo> {
- <span class="macro">vec!</span>[
- utxo(<span class="number">100_000</span>, <span class="number">0</span>, ConfirmationTime::Unconfirmed { last_seen: <span class="number">0 </span>}),
- utxo(
- FEE_AMOUNT - <span class="number">40</span>,
- <span class="number">1</span>,
- ConfirmationTime::Unconfirmed { last_seen: <span class="number">0 </span>},
- ),
- utxo(<span class="number">200_000</span>, <span class="number">2</span>, ConfirmationTime::Unconfirmed { last_seen: <span class="number">0 </span>}),
- ]
- }
-
- <span class="kw">fn </span>get_oldest_first_test_utxos() -> Vec<WeightedUtxo> {
- <span class="comment">// ensure utxos are from different tx
- </span><span class="kw">let </span>utxo1 = utxo(
- <span class="number">120_000</span>,
- <span class="number">1</span>,
- ConfirmationTime::Confirmed {
- height: <span class="number">1</span>,
- time: <span class="number">1231006505</span>,
- },
- );
- <span class="kw">let </span>utxo2 = utxo(
- <span class="number">80_000</span>,
- <span class="number">2</span>,
- ConfirmationTime::Confirmed {
- height: <span class="number">2</span>,
- time: <span class="number">1231006505</span>,
- },
- );
- <span class="kw">let </span>utxo3 = utxo(
- <span class="number">300_000</span>,
- <span class="number">3</span>,
- ConfirmationTime::Confirmed {
- height: <span class="number">3</span>,
- time: <span class="number">1231006505</span>,
- },
- );
- <span class="macro">vec!</span>[utxo1, utxo2, utxo3]
- }
-
- <span class="kw">fn </span>generate_random_utxos(rng: <span class="kw-2">&mut </span>StdRng, utxos_number: usize) -> Vec<WeightedUtxo> {
- <span class="kw">let </span><span class="kw-2">mut </span>res = Vec::new();
- <span class="kw">for </span>i <span class="kw">in </span><span class="number">0</span>..utxos_number {
- res.push(WeightedUtxo {
- satisfaction_weight: P2WPKH_SATISFACTION_SIZE,
- utxo: Utxo::Local(LocalOutput {
- outpoint: OutPoint::from_str(<span class="kw-2">&</span><span class="macro">format!</span>(
- <span class="string">"ebd9813ecebc57ff8f30797de7c205e3c7498ca950ea4341ee51a685ff2fa30a:{}"</span>,
- i
- ))
- .unwrap(),
- txout: TxOut {
- value: Amount::from_sat(rng.gen_range(<span class="number">0</span>..<span class="number">200000000</span>)),
- script_pubkey: ScriptBuf::new(),
- },
- keychain: KeychainKind::External,
- is_spent: <span class="bool-val">false</span>,
- derivation_index: rng.next_u32(),
- confirmation_time: <span class="kw">if </span>rng.gen_bool(<span class="number">0.5</span>) {
- ConfirmationTime::Confirmed {
- height: rng.next_u32(),
- time: rng.next_u64(),
- }
- } <span class="kw">else </span>{
- ConfirmationTime::Unconfirmed { last_seen: <span class="number">0 </span>}
- },
- }),
- });
- }
- res
- }
-
- <span class="kw">fn </span>generate_same_value_utxos(utxos_value: u64, utxos_number: usize) -> Vec<WeightedUtxo> {
- (<span class="number">0</span>..utxos_number)
- .map(|i| WeightedUtxo {
- satisfaction_weight: P2WPKH_SATISFACTION_SIZE,
- utxo: Utxo::Local(LocalOutput {
- outpoint: OutPoint::from_str(<span class="kw-2">&</span><span class="macro">format!</span>(
- <span class="string">"ebd9813ecebc57ff8f30797de7c205e3c7498ca950ea4341ee51a685ff2fa30a:{}"</span>,
- i
- ))
- .unwrap(),
- txout: TxOut {
- value: Amount::from_sat(utxos_value),
- script_pubkey: ScriptBuf::new(),
- },
- keychain: KeychainKind::External,
- is_spent: <span class="bool-val">false</span>,
- derivation_index: <span class="number">42</span>,
- confirmation_time: ConfirmationTime::Unconfirmed { last_seen: <span class="number">0 </span>},
- }),
- })
- .collect()
- }
-
- <span class="kw">fn </span>sum_random_utxos(<span class="kw-2">mut </span>rng: <span class="kw-2">&mut </span>StdRng, utxos: <span class="kw-2">&mut </span>Vec<WeightedUtxo>) -> u64 {
- <span class="kw">let </span>utxos_picked_len = rng.gen_range(<span class="number">2</span>..utxos.len() / <span class="number">2</span>);
- utxos.shuffle(<span class="kw-2">&mut </span>rng);
- utxos[..utxos_picked_len]
- .iter()
- .map(|u| u.utxo.txout().value.to_sat())
- .sum()
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_largest_first_coin_selection_success() {
- <span class="kw">let </span>utxos = get_test_utxos();
- <span class="kw">let </span>drain_script = ScriptBuf::default();
- <span class="kw">let </span>target_amount = <span class="number">250_000 </span>+ FEE_AMOUNT;
-
- <span class="kw">let </span>result = LargestFirstCoinSelection
- .coin_select(
- utxos,
- <span class="macro">vec!</span>[],
- FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
- target_amount,
- <span class="kw-2">&</span>drain_script,
- )
- .unwrap();
-
- <span class="macro">assert_eq!</span>(result.selected.len(), <span class="number">3</span>);
- <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">300_010</span>);
- <span class="macro">assert_eq!</span>(result.fee_amount, <span class="number">204</span>)
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_largest_first_coin_selection_use_all() {
- <span class="kw">let </span>utxos = get_test_utxos();
- <span class="kw">let </span>drain_script = ScriptBuf::default();
- <span class="kw">let </span>target_amount = <span class="number">20_000 </span>+ FEE_AMOUNT;
-
- <span class="kw">let </span>result = LargestFirstCoinSelection
- .coin_select(
- utxos,
- <span class="macro">vec!</span>[],
- FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
- target_amount,
- <span class="kw-2">&</span>drain_script,
- )
- .unwrap();
-
- <span class="macro">assert_eq!</span>(result.selected.len(), <span class="number">3</span>);
- <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">300_010</span>);
- <span class="macro">assert_eq!</span>(result.fee_amount, <span class="number">204</span>);
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_largest_first_coin_selection_use_only_necessary() {
- <span class="kw">let </span>utxos = get_test_utxos();
- <span class="kw">let </span>drain_script = ScriptBuf::default();
- <span class="kw">let </span>target_amount = <span class="number">20_000 </span>+ FEE_AMOUNT;
-
- <span class="kw">let </span>result = LargestFirstCoinSelection
- .coin_select(
- <span class="macro">vec!</span>[],
- utxos,
- FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
- target_amount,
- <span class="kw-2">&</span>drain_script,
- )
- .unwrap();
-
- <span class="macro">assert_eq!</span>(result.selected.len(), <span class="number">1</span>);
- <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">200_000</span>);
- <span class="macro">assert_eq!</span>(result.fee_amount, <span class="number">68</span>);
- }
-
- <span class="attr">#[test]
- #[should_panic(expected = <span class="string">"InsufficientFunds"</span>)]
- </span><span class="kw">fn </span>test_largest_first_coin_selection_insufficient_funds() {
- <span class="kw">let </span>utxos = get_test_utxos();
- <span class="kw">let </span>drain_script = ScriptBuf::default();
- <span class="kw">let </span>target_amount = <span class="number">500_000 </span>+ FEE_AMOUNT;
-
- LargestFirstCoinSelection
- .coin_select(
- <span class="macro">vec!</span>[],
- utxos,
- FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
- target_amount,
- <span class="kw-2">&</span>drain_script,
- )
- .unwrap();
- }
-
- <span class="attr">#[test]
- #[should_panic(expected = <span class="string">"InsufficientFunds"</span>)]
- </span><span class="kw">fn </span>test_largest_first_coin_selection_insufficient_funds_high_fees() {
- <span class="kw">let </span>utxos = get_test_utxos();
- <span class="kw">let </span>drain_script = ScriptBuf::default();
- <span class="kw">let </span>target_amount = <span class="number">250_000 </span>+ FEE_AMOUNT;
-
- LargestFirstCoinSelection
- .coin_select(
- <span class="macro">vec!</span>[],
- utxos,
- FeeRate::from_sat_per_vb_unchecked(<span class="number">1000</span>),
- target_amount,
- <span class="kw-2">&</span>drain_script,
- )
- .unwrap();
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_oldest_first_coin_selection_success() {
- <span class="kw">let </span>utxos = get_oldest_first_test_utxos();
- <span class="kw">let </span>drain_script = ScriptBuf::default();
- <span class="kw">let </span>target_amount = <span class="number">180_000 </span>+ FEE_AMOUNT;
-
- <span class="kw">let </span>result = OldestFirstCoinSelection
- .coin_select(
- <span class="macro">vec!</span>[],
- utxos,
- FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
- target_amount,
- <span class="kw-2">&</span>drain_script,
- )
- .unwrap();
-
- <span class="macro">assert_eq!</span>(result.selected.len(), <span class="number">2</span>);
- <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">200_000</span>);
- <span class="macro">assert_eq!</span>(result.fee_amount, <span class="number">136</span>)
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_oldest_first_coin_selection_use_all() {
- <span class="kw">let </span>utxos = get_oldest_first_test_utxos();
- <span class="kw">let </span>drain_script = ScriptBuf::default();
- <span class="kw">let </span>target_amount = <span class="number">20_000 </span>+ FEE_AMOUNT;
-
- <span class="kw">let </span>result = OldestFirstCoinSelection
- .coin_select(
- utxos,
- <span class="macro">vec!</span>[],
- FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
- target_amount,
- <span class="kw-2">&</span>drain_script,
- )
- .unwrap();
-
- <span class="macro">assert_eq!</span>(result.selected.len(), <span class="number">3</span>);
- <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">500_000</span>);
- <span class="macro">assert_eq!</span>(result.fee_amount, <span class="number">204</span>);
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_oldest_first_coin_selection_use_only_necessary() {
- <span class="kw">let </span>utxos = get_oldest_first_test_utxos();
- <span class="kw">let </span>drain_script = ScriptBuf::default();
- <span class="kw">let </span>target_amount = <span class="number">20_000 </span>+ FEE_AMOUNT;
-
- <span class="kw">let </span>result = OldestFirstCoinSelection
- .coin_select(
- <span class="macro">vec!</span>[],
- utxos,
- FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
- target_amount,
- <span class="kw-2">&</span>drain_script,
- )
- .unwrap();
-
- <span class="macro">assert_eq!</span>(result.selected.len(), <span class="number">1</span>);
- <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">120_000</span>);
- <span class="macro">assert_eq!</span>(result.fee_amount, <span class="number">68</span>);
- }
-
- <span class="attr">#[test]
- #[should_panic(expected = <span class="string">"InsufficientFunds"</span>)]
- </span><span class="kw">fn </span>test_oldest_first_coin_selection_insufficient_funds() {
- <span class="kw">let </span>utxos = get_oldest_first_test_utxos();
- <span class="kw">let </span>drain_script = ScriptBuf::default();
- <span class="kw">let </span>target_amount = <span class="number">600_000 </span>+ FEE_AMOUNT;
-
- OldestFirstCoinSelection
- .coin_select(
- <span class="macro">vec!</span>[],
- utxos,
- FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
- target_amount,
- <span class="kw-2">&</span>drain_script,
- )
- .unwrap();
- }
-
- <span class="attr">#[test]
- #[should_panic(expected = <span class="string">"InsufficientFunds"</span>)]
- </span><span class="kw">fn </span>test_oldest_first_coin_selection_insufficient_funds_high_fees() {
- <span class="kw">let </span>utxos = get_oldest_first_test_utxos();
-
- <span class="kw">let </span>target_amount: u64 = utxos
- .iter()
- .map(|wu| wu.utxo.txout().value.to_sat())
- .sum::<u64>()
- - <span class="number">50</span>;
- <span class="kw">let </span>drain_script = ScriptBuf::default();
-
- OldestFirstCoinSelection
- .coin_select(
- <span class="macro">vec!</span>[],
- utxos,
- FeeRate::from_sat_per_vb_unchecked(<span class="number">1000</span>),
- target_amount,
- <span class="kw-2">&</span>drain_script,
- )
- .unwrap();
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_bnb_coin_selection_success() {
- <span class="comment">// In this case bnb won't find a suitable match and single random draw will
- // select three outputs
- </span><span class="kw">let </span>utxos = generate_same_value_utxos(<span class="number">100_000</span>, <span class="number">20</span>);
-
- <span class="kw">let </span>drain_script = ScriptBuf::default();
-
- <span class="kw">let </span>target_amount = <span class="number">250_000 </span>+ FEE_AMOUNT;
-
- <span class="kw">let </span>result = BranchAndBoundCoinSelection::default()
- .coin_select(
- <span class="macro">vec!</span>[],
- utxos,
- FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
- target_amount,
- <span class="kw-2">&</span>drain_script,
- )
- .unwrap();
-
- <span class="macro">assert_eq!</span>(result.selected.len(), <span class="number">3</span>);
- <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">300_000</span>);
- <span class="macro">assert_eq!</span>(result.fee_amount, <span class="number">204</span>);
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_bnb_coin_selection_required_are_enough() {
- <span class="kw">let </span>utxos = get_test_utxos();
- <span class="kw">let </span>drain_script = ScriptBuf::default();
- <span class="kw">let </span>target_amount = <span class="number">20_000 </span>+ FEE_AMOUNT;
-
- <span class="kw">let </span>result = BranchAndBoundCoinSelection::default()
- .coin_select(
- utxos.clone(),
- utxos,
- FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
- target_amount,
- <span class="kw-2">&</span>drain_script,
- )
- .unwrap();
-
- <span class="macro">assert_eq!</span>(result.selected.len(), <span class="number">3</span>);
- <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">300_010</span>);
- <span class="macro">assert_eq!</span>(result.fee_amount, <span class="number">204</span>);
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_bnb_coin_selection_optional_are_enough() {
- <span class="kw">let </span>utxos = get_test_utxos();
- <span class="kw">let </span>drain_script = ScriptBuf::default();
- <span class="kw">let </span>target_amount = <span class="number">299756 </span>+ FEE_AMOUNT;
-
- <span class="kw">let </span>result = BranchAndBoundCoinSelection::default()
- .coin_select(
- <span class="macro">vec!</span>[],
- utxos,
- FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
- target_amount,
- <span class="kw-2">&</span>drain_script,
- )
- .unwrap();
-
- <span class="macro">assert_eq!</span>(result.selected.len(), <span class="number">2</span>);
- <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">300000</span>);
- <span class="macro">assert_eq!</span>(result.fee_amount, <span class="number">136</span>);
- }
-
- <span class="attr">#[test]
- #[ignore]
- </span><span class="kw">fn </span>test_bnb_coin_selection_required_not_enough() {
- <span class="kw">let </span>utxos = get_test_utxos();
-
- <span class="kw">let </span>required = <span class="macro">vec!</span>[utxos[<span class="number">0</span>].clone()];
- <span class="kw">let </span><span class="kw-2">mut </span>optional = utxos[<span class="number">1</span>..].to_vec();
- optional.push(utxo(
- <span class="number">500_000</span>,
- <span class="number">3</span>,
- ConfirmationTime::Unconfirmed { last_seen: <span class="number">0 </span>},
- ));
-
- <span class="comment">// Defensive assertions, for sanity and in case someone changes the test utxos vector.
- </span><span class="kw">let </span>amount: u64 = required.iter().map(|u| u.utxo.txout().value.to_sat()).sum();
- <span class="macro">assert_eq!</span>(amount, <span class="number">100_000</span>);
- <span class="kw">let </span>amount: u64 = optional.iter().map(|u| u.utxo.txout().value.to_sat()).sum();
- <span class="macro">assert!</span>(amount > <span class="number">150_000</span>);
- <span class="kw">let </span>drain_script = ScriptBuf::default();
-
- <span class="kw">let </span>target_amount = <span class="number">150_000 </span>+ FEE_AMOUNT;
-
- <span class="kw">let </span>result = BranchAndBoundCoinSelection::default()
- .coin_select(
- required,
- optional,
- FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
- target_amount,
- <span class="kw-2">&</span>drain_script,
- )
- .unwrap();
-
- <span class="macro">assert_eq!</span>(result.selected.len(), <span class="number">2</span>);
- <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">300_000</span>);
- <span class="macro">assert_eq!</span>(result.fee_amount, <span class="number">136</span>);
- }
-
- <span class="attr">#[test]
- #[should_panic(expected = <span class="string">"InsufficientFunds"</span>)]
- </span><span class="kw">fn </span>test_bnb_coin_selection_insufficient_funds() {
- <span class="kw">let </span>utxos = get_test_utxos();
- <span class="kw">let </span>drain_script = ScriptBuf::default();
- <span class="kw">let </span>target_amount = <span class="number">500_000 </span>+ FEE_AMOUNT;
-
- BranchAndBoundCoinSelection::default()
- .coin_select(
- <span class="macro">vec!</span>[],
- utxos,
- FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
- target_amount,
- <span class="kw-2">&</span>drain_script,
- )
- .unwrap();
- }
-
- <span class="attr">#[test]
- #[should_panic(expected = <span class="string">"InsufficientFunds"</span>)]
- </span><span class="kw">fn </span>test_bnb_coin_selection_insufficient_funds_high_fees() {
- <span class="kw">let </span>utxos = get_test_utxos();
- <span class="kw">let </span>drain_script = ScriptBuf::default();
- <span class="kw">let </span>target_amount = <span class="number">250_000 </span>+ FEE_AMOUNT;
-
- BranchAndBoundCoinSelection::default()
- .coin_select(
- <span class="macro">vec!</span>[],
- utxos,
- FeeRate::from_sat_per_vb_unchecked(<span class="number">1000</span>),
- target_amount,
- <span class="kw-2">&</span>drain_script,
- )
- .unwrap();
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_bnb_coin_selection_check_fee_rate() {
- <span class="kw">let </span>utxos = get_test_utxos();
- <span class="kw">let </span>drain_script = ScriptBuf::default();
- <span class="kw">let </span>target_amount = <span class="number">99932</span>; <span class="comment">// first utxo's effective value
- </span><span class="kw">let </span>feerate = FeeRate::BROADCAST_MIN;
-
- <span class="kw">let </span>result = BranchAndBoundCoinSelection::new(<span class="number">0</span>)
- .coin_select(<span class="macro">vec!</span>[], utxos, feerate, target_amount, <span class="kw-2">&</span>drain_script)
- .unwrap();
-
- <span class="macro">assert_eq!</span>(result.selected.len(), <span class="number">1</span>);
- <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">100_000</span>);
- <span class="kw">let </span>input_weight =
- TxIn::default().segwit_weight().to_wu() + P2WPKH_SATISFACTION_SIZE <span class="kw">as </span>u64;
- <span class="comment">// the final fee rate should be exactly the same as the fee rate given
- </span><span class="kw">let </span>result_feerate = Amount::from_sat(result.fee_amount) / Weight::from_wu(input_weight);
- <span class="macro">assert_eq!</span>(result_feerate, feerate);
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_bnb_coin_selection_exact_match() {
- <span class="kw">let </span>seed = [<span class="number">0</span>; <span class="number">32</span>];
- <span class="kw">let </span><span class="kw-2">mut </span>rng: StdRng = SeedableRng::from_seed(seed);
-
- <span class="kw">for </span>_i <span class="kw">in </span><span class="number">0</span>..<span class="number">200 </span>{
- <span class="kw">let </span><span class="kw-2">mut </span>optional_utxos = generate_random_utxos(<span class="kw-2">&mut </span>rng, <span class="number">16</span>);
- <span class="kw">let </span>target_amount = sum_random_utxos(<span class="kw-2">&mut </span>rng, <span class="kw-2">&mut </span>optional_utxos);
- <span class="kw">let </span>drain_script = ScriptBuf::default();
- <span class="kw">let </span>result = BranchAndBoundCoinSelection::new(<span class="number">0</span>)
- .coin_select(
- <span class="macro">vec!</span>[],
- optional_utxos,
- FeeRate::ZERO,
- target_amount,
- <span class="kw-2">&</span>drain_script,
- )
- .unwrap();
- <span class="macro">assert_eq!</span>(result.selected_amount(), target_amount);
- }
- }
-
- <span class="attr">#[test]
- #[should_panic(expected = <span class="string">"BnBNoExactMatch"</span>)]
- </span><span class="kw">fn </span>test_bnb_function_no_exact_match() {
- <span class="kw">let </span>fee_rate = FeeRate::from_sat_per_vb_unchecked(<span class="number">10</span>);
- <span class="kw">let </span>utxos: Vec<OutputGroup> = get_test_utxos()
- .into_iter()
- .map(|u| OutputGroup::new(u, fee_rate))
- .collect();
-
- <span class="kw">let </span>curr_available_value = utxos.iter().fold(<span class="number">0</span>, |acc, x| acc + x.effective_value);
-
- <span class="kw">let </span>size_of_change = <span class="number">31</span>;
- <span class="kw">let </span>cost_of_change = (Weight::from_vb_unchecked(size_of_change) * fee_rate).to_sat();
-
- <span class="kw">let </span>drain_script = ScriptBuf::default();
- <span class="kw">let </span>target_amount = <span class="number">20_000 </span>+ FEE_AMOUNT;
- BranchAndBoundCoinSelection::new(size_of_change)
- .bnb(
- <span class="macro">vec!</span>[],
- utxos,
- <span class="number">0</span>,
- curr_available_value,
- target_amount <span class="kw">as </span>i64,
- cost_of_change,
- <span class="kw-2">&</span>drain_script,
- fee_rate,
- )
- .unwrap();
- }
-
- <span class="attr">#[test]
- #[should_panic(expected = <span class="string">"BnBTotalTriesExceeded"</span>)]
- </span><span class="kw">fn </span>test_bnb_function_tries_exceeded() {
- <span class="kw">let </span>fee_rate = FeeRate::from_sat_per_vb_unchecked(<span class="number">10</span>);
- <span class="kw">let </span>utxos: Vec<OutputGroup> = generate_same_value_utxos(<span class="number">100_000</span>, <span class="number">100_000</span>)
- .into_iter()
- .map(|u| OutputGroup::new(u, fee_rate))
- .collect();
-
- <span class="kw">let </span>curr_available_value = utxos.iter().fold(<span class="number">0</span>, |acc, x| acc + x.effective_value);
-
- <span class="kw">let </span>size_of_change = <span class="number">31</span>;
- <span class="kw">let </span>cost_of_change = (Weight::from_vb_unchecked(size_of_change) * fee_rate).to_sat();
- <span class="kw">let </span>target_amount = <span class="number">20_000 </span>+ FEE_AMOUNT;
-
- <span class="kw">let </span>drain_script = ScriptBuf::default();
-
- BranchAndBoundCoinSelection::new(size_of_change)
- .bnb(
- <span class="macro">vec!</span>[],
- utxos,
- <span class="number">0</span>,
- curr_available_value,
- target_amount <span class="kw">as </span>i64,
- cost_of_change,
- <span class="kw-2">&</span>drain_script,
- fee_rate,
- )
- .unwrap();
- }
-
- <span class="comment">// The match won't be exact but still in the range
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_bnb_function_almost_exact_match_with_fees() {
- <span class="kw">let </span>fee_rate = FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>);
- <span class="kw">let </span>size_of_change = <span class="number">31</span>;
- <span class="kw">let </span>cost_of_change = (Weight::from_vb_unchecked(size_of_change) * fee_rate).to_sat();
-
- <span class="kw">let </span>utxos: Vec<<span class="kw">_</span>> = generate_same_value_utxos(<span class="number">50_000</span>, <span class="number">10</span>)
- .into_iter()
- .map(|u| OutputGroup::new(u, fee_rate))
- .collect();
-
- <span class="kw">let </span>curr_value = <span class="number">0</span>;
-
- <span class="kw">let </span>curr_available_value = utxos.iter().fold(<span class="number">0</span>, |acc, x| acc + x.effective_value);
-
- <span class="comment">// 2*(value of 1 utxo) - 2*(1 utxo fees with 1.0sat/vbyte fee rate) -
- // cost_of_change + 5.
- </span><span class="kw">let </span>target_amount = <span class="number">2 </span>* <span class="number">50_000 </span>- <span class="number">2 </span>* <span class="number">67 </span>- cost_of_change <span class="kw">as </span>i64 + <span class="number">5</span>;
-
- <span class="kw">let </span>drain_script = ScriptBuf::default();
-
- <span class="kw">let </span>result = BranchAndBoundCoinSelection::new(size_of_change)
- .bnb(
- <span class="macro">vec!</span>[],
- utxos,
- curr_value,
- curr_available_value,
- target_amount,
- cost_of_change,
- <span class="kw-2">&</span>drain_script,
- fee_rate,
- )
- .unwrap();
- <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">100_000</span>);
- <span class="macro">assert_eq!</span>(result.fee_amount, <span class="number">136</span>);
- }
-
- <span class="comment">// TODO: bnb() function should be optimized, and this test should be done with more utxos
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>test_bnb_function_exact_match_more_utxos() {
- <span class="kw">let </span>seed = [<span class="number">0</span>; <span class="number">32</span>];
- <span class="kw">let </span><span class="kw-2">mut </span>rng: StdRng = SeedableRng::from_seed(seed);
- <span class="kw">let </span>fee_rate = FeeRate::ZERO;
-
- <span class="kw">for _ in </span><span class="number">0</span>..<span class="number">200 </span>{
- <span class="kw">let </span>optional_utxos: Vec<<span class="kw">_</span>> = generate_random_utxos(<span class="kw-2">&mut </span>rng, <span class="number">40</span>)
- .into_iter()
- .map(|u| OutputGroup::new(u, fee_rate))
- .collect();
-
- <span class="kw">let </span>curr_value = <span class="number">0</span>;
-
- <span class="kw">let </span>curr_available_value = optional_utxos
- .iter()
- .fold(<span class="number">0</span>, |acc, x| acc + x.effective_value);
-
- <span class="kw">let </span>target_amount =
- optional_utxos[<span class="number">3</span>].effective_value + optional_utxos[<span class="number">23</span>].effective_value;
-
- <span class="kw">let </span>drain_script = ScriptBuf::default();
-
- <span class="kw">let </span>result = BranchAndBoundCoinSelection::new(<span class="number">0</span>)
- .bnb(
- <span class="macro">vec!</span>[],
- optional_utxos,
- curr_value,
- curr_available_value,
- target_amount,
- <span class="number">0</span>,
- <span class="kw-2">&</span>drain_script,
- fee_rate,
- )
- .unwrap();
- <span class="macro">assert_eq!</span>(result.selected_amount(), target_amount <span class="kw">as </span>u64);
- }
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_single_random_draw_function_success() {
- <span class="kw">let </span>seed = [<span class="number">0</span>; <span class="number">32</span>];
- <span class="kw">let </span><span class="kw-2">mut </span>rng: StdRng = SeedableRng::from_seed(seed);
- <span class="kw">let </span><span class="kw-2">mut </span>utxos = generate_random_utxos(<span class="kw-2">&mut </span>rng, <span class="number">300</span>);
- <span class="kw">let </span>target_amount = sum_random_utxos(<span class="kw-2">&mut </span>rng, <span class="kw-2">&mut </span>utxos) + FEE_AMOUNT;
-
- <span class="kw">let </span>fee_rate = FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>);
- <span class="kw">let </span>utxos: Vec<OutputGroup> = utxos
- .into_iter()
- .map(|u| OutputGroup::new(u, fee_rate))
- .collect();
-
- <span class="kw">let </span>drain_script = ScriptBuf::default();
-
- <span class="kw">let </span>result = BranchAndBoundCoinSelection::default().single_random_draw(
- <span class="macro">vec!</span>[],
- utxos,
- <span class="number">0</span>,
- target_amount <span class="kw">as </span>i64,
- <span class="kw-2">&</span>drain_script,
- fee_rate,
- );
-
- <span class="macro">assert!</span>(result.selected_amount() > target_amount);
- <span class="macro">assert_eq!</span>(result.fee_amount, (result.selected.len() * <span class="number">68</span>) <span class="kw">as </span>u64);
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_bnb_exclude_negative_effective_value() {
- <span class="kw">let </span>utxos = get_test_utxos();
- <span class="kw">let </span>drain_script = ScriptBuf::default();
-
- <span class="kw">let </span>selection = BranchAndBoundCoinSelection::default().coin_select(
- <span class="macro">vec!</span>[],
- utxos,
- FeeRate::from_sat_per_vb_unchecked(<span class="number">10</span>),
- <span class="number">500_000</span>,
- <span class="kw-2">&</span>drain_script,
- );
-
- <span class="macro">assert_matches!</span>(
- selection,
- <span class="prelude-val">Err</span>(Error::InsufficientFunds {
- available: <span class="number">300_000</span>,
- ..
- })
- );
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_bnb_include_negative_effective_value_when_required() {
- <span class="kw">let </span>utxos = get_test_utxos();
- <span class="kw">let </span>drain_script = ScriptBuf::default();
-
- <span class="kw">let </span>(required, optional) = utxos.into_iter().partition(
- |u| <span class="macro">matches!</span>(u, WeightedUtxo { utxo, .. } <span class="kw">if </span>utxo.txout().value.to_sat() < <span class="number">1000</span>),
- );
-
- <span class="kw">let </span>selection = BranchAndBoundCoinSelection::default().coin_select(
- required,
- optional,
- FeeRate::from_sat_per_vb_unchecked(<span class="number">10</span>),
- <span class="number">500_000</span>,
- <span class="kw-2">&</span>drain_script,
- );
-
- <span class="macro">assert_matches!</span>(
- selection,
- <span class="prelude-val">Err</span>(Error::InsufficientFunds {
- available: <span class="number">300_010</span>,
- ..
- })
- );
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_bnb_sum_of_effective_value_negative() {
- <span class="kw">let </span>utxos = get_test_utxos();
- <span class="kw">let </span>drain_script = ScriptBuf::default();
-
- <span class="kw">let </span>selection = BranchAndBoundCoinSelection::default().coin_select(
- utxos,
- <span class="macro">vec!</span>[],
- FeeRate::from_sat_per_vb_unchecked(<span class="number">10_000</span>),
- <span class="number">500_000</span>,
- <span class="kw-2">&</span>drain_script,
- );
-
- <span class="macro">assert_matches!</span>(
- selection,
- <span class="prelude-val">Err</span>(Error::InsufficientFunds {
- available: <span class="number">300_010</span>,
- ..
- })
- );
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_filter_duplicates() {
- <span class="kw">fn </span>utxo(txid: <span class="kw-2">&</span>str, value: u64) -> WeightedUtxo {
- WeightedUtxo {
- satisfaction_weight: <span class="number">0</span>,
- utxo: Utxo::Local(LocalOutput {
- outpoint: OutPoint::new(bitcoin::hashes::Hash::hash(txid.as_bytes()), <span class="number">0</span>),
- txout: TxOut {
- value: Amount::from_sat(value),
- script_pubkey: ScriptBuf::new(),
- },
- keychain: KeychainKind::External,
- is_spent: <span class="bool-val">false</span>,
- derivation_index: <span class="number">0</span>,
- confirmation_time: ConfirmationTime::Confirmed {
- height: <span class="number">12345</span>,
- time: <span class="number">12345</span>,
- },
- }),
- }
- }
-
- <span class="kw">fn </span>to_utxo_vec(utxos: <span class="kw-2">&</span>[(<span class="kw-2">&</span>str, u64)]) -> Vec<WeightedUtxo> {
- <span class="kw">let </span><span class="kw-2">mut </span>v = utxos
- .iter()
- .map(|<span class="kw-2">&</span>(txid, value)| utxo(txid, value))
- .collect::<Vec<<span class="kw">_</span>>>();
- v.sort_by_key(|u| u.utxo.outpoint());
- v
- }
-
- <span class="kw">struct </span>TestCase<<span class="lifetime">'a</span>> {
- name: <span class="kw-2">&</span><span class="lifetime">'a </span>str,
- required: <span class="kw-2">&</span><span class="lifetime">'a </span>[(<span class="kw-2">&</span><span class="lifetime">'a </span>str, u64)],
- optional: <span class="kw-2">&</span><span class="lifetime">'a </span>[(<span class="kw-2">&</span><span class="lifetime">'a </span>str, u64)],
- exp_required: <span class="kw-2">&</span><span class="lifetime">'a </span>[(<span class="kw-2">&</span><span class="lifetime">'a </span>str, u64)],
- exp_optional: <span class="kw-2">&</span><span class="lifetime">'a </span>[(<span class="kw-2">&</span><span class="lifetime">'a </span>str, u64)],
- }
-
- <span class="kw">let </span>test_cases = [
- TestCase {
- name: <span class="string">"no_duplicates"</span>,
- required: <span class="kw-2">&</span>[(<span class="string">"A"</span>, <span class="number">1000</span>), (<span class="string">"B"</span>, <span class="number">2100</span>)],
- optional: <span class="kw-2">&</span>[(<span class="string">"C"</span>, <span class="number">1000</span>)],
- exp_required: <span class="kw-2">&</span>[(<span class="string">"A"</span>, <span class="number">1000</span>), (<span class="string">"B"</span>, <span class="number">2100</span>)],
- exp_optional: <span class="kw-2">&</span>[(<span class="string">"C"</span>, <span class="number">1000</span>)],
- },
- TestCase {
- name: <span class="string">"duplicate_required_utxos"</span>,
- required: <span class="kw-2">&</span>[(<span class="string">"A"</span>, <span class="number">3000</span>), (<span class="string">"B"</span>, <span class="number">1200</span>), (<span class="string">"C"</span>, <span class="number">1234</span>), (<span class="string">"A"</span>, <span class="number">3000</span>)],
- optional: <span class="kw-2">&</span>[(<span class="string">"D"</span>, <span class="number">2100</span>)],
- exp_required: <span class="kw-2">&</span>[(<span class="string">"A"</span>, <span class="number">3000</span>), (<span class="string">"B"</span>, <span class="number">1200</span>), (<span class="string">"C"</span>, <span class="number">1234</span>)],
- exp_optional: <span class="kw-2">&</span>[(<span class="string">"D"</span>, <span class="number">2100</span>)],
- },
- TestCase {
- name: <span class="string">"duplicate_optional_utxos"</span>,
- required: <span class="kw-2">&</span>[(<span class="string">"A"</span>, <span class="number">3000</span>), (<span class="string">"B"</span>, <span class="number">1200</span>)],
- optional: <span class="kw-2">&</span>[(<span class="string">"C"</span>, <span class="number">5000</span>), (<span class="string">"D"</span>, <span class="number">1300</span>), (<span class="string">"C"</span>, <span class="number">5000</span>)],
- exp_required: <span class="kw-2">&</span>[(<span class="string">"A"</span>, <span class="number">3000</span>), (<span class="string">"B"</span>, <span class="number">1200</span>)],
- exp_optional: <span class="kw-2">&</span>[(<span class="string">"C"</span>, <span class="number">5000</span>), (<span class="string">"D"</span>, <span class="number">1300</span>)],
- },
- TestCase {
- name: <span class="string">"duplicate_across_required_and_optional_utxos"</span>,
- required: <span class="kw-2">&</span>[(<span class="string">"A"</span>, <span class="number">3000</span>), (<span class="string">"B"</span>, <span class="number">1200</span>), (<span class="string">"C"</span>, <span class="number">2100</span>)],
- optional: <span class="kw-2">&</span>[(<span class="string">"A"</span>, <span class="number">3000</span>), (<span class="string">"D"</span>, <span class="number">1200</span>), (<span class="string">"E"</span>, <span class="number">5000</span>)],
- exp_required: <span class="kw-2">&</span>[(<span class="string">"A"</span>, <span class="number">3000</span>), (<span class="string">"B"</span>, <span class="number">1200</span>), (<span class="string">"C"</span>, <span class="number">2100</span>)],
- exp_optional: <span class="kw-2">&</span>[(<span class="string">"D"</span>, <span class="number">1200</span>), (<span class="string">"E"</span>, <span class="number">5000</span>)],
- },
- ];
-
- <span class="kw">for </span>(i, t) <span class="kw">in </span>test_cases.into_iter().enumerate() {
- <span class="macro">println!</span>(<span class="string">"Case {}: {}"</span>, i, t.name);
- <span class="kw">let </span>(required, optional) =
- filter_duplicates(to_utxo_vec(t.required), to_utxo_vec(t.optional));
- <span class="macro">assert_eq!</span>(
- required,
- to_utxo_vec(t.exp_required),
- <span class="string">"[{}:{}] unexpected `required` result"</span>,
- i,
- t.name
- );
- <span class="macro">assert_eq!</span>(
- optional,
- to_utxo_vec(t.exp_optional),
- <span class="string">"[{}:{}] unexpected `optional` result"</span>,
- i,
- t.name
- );
- }
- }
-}
-</code></pre></div>
-</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Source of the Rust file `crates/bdk/src/wallet/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk/index.html">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
-<a href="#2" id="2">2</a>
-<a href="#3" id="3">3</a>
-<a href="#4" id="4">4</a>
-<a href="#5" id="5">5</a>
-<a href="#6" id="6">6</a>
-<a href="#7" id="7">7</a>
-<a href="#8" id="8">8</a>
-<a href="#9" id="9">9</a>
-<a href="#10" id="10">10</a>
-<a href="#11" id="11">11</a>
-<a href="#12" id="12">12</a>
-<a href="#13" id="13">13</a>
-<a href="#14" id="14">14</a>
-<a href="#15" id="15">15</a>
-<a href="#16" id="16">16</a>
-<a href="#17" id="17">17</a>
-<a href="#18" id="18">18</a>
-<a href="#19" id="19">19</a>
-<a href="#20" id="20">20</a>
-<a href="#21" id="21">21</a>
-<a href="#22" id="22">22</a>
-<a href="#23" id="23">23</a>
-<a href="#24" id="24">24</a>
-<a href="#25" id="25">25</a>
-<a href="#26" id="26">26</a>
-<a href="#27" id="27">27</a>
-<a href="#28" id="28">28</a>
-<a href="#29" id="29">29</a>
-<a href="#30" id="30">30</a>
-<a href="#31" id="31">31</a>
-<a href="#32" id="32">32</a>
-<a href="#33" id="33">33</a>
-<a href="#34" id="34">34</a>
-<a href="#35" id="35">35</a>
-<a href="#36" id="36">36</a>
-<a href="#37" id="37">37</a>
-<a href="#38" id="38">38</a>
-<a href="#39" id="39">39</a>
-<a href="#40" id="40">40</a>
-<a href="#41" id="41">41</a>
-<a href="#42" id="42">42</a>
-<a href="#43" id="43">43</a>
-<a href="#44" id="44">44</a>
-<a href="#45" id="45">45</a>
-<a href="#46" id="46">46</a>
-<a href="#47" id="47">47</a>
-<a href="#48" id="48">48</a>
-<a href="#49" id="49">49</a>
-<a href="#50" id="50">50</a>
-<a href="#51" id="51">51</a>
-<a href="#52" id="52">52</a>
-<a href="#53" id="53">53</a>
-<a href="#54" id="54">54</a>
-<a href="#55" id="55">55</a>
-<a href="#56" id="56">56</a>
-<a href="#57" id="57">57</a>
-<a href="#58" id="58">58</a>
-<a href="#59" id="59">59</a>
-<a href="#60" id="60">60</a>
-<a href="#61" id="61">61</a>
-<a href="#62" id="62">62</a>
-<a href="#63" id="63">63</a>
-<a href="#64" id="64">64</a>
-<a href="#65" id="65">65</a>
-<a href="#66" id="66">66</a>
-<a href="#67" id="67">67</a>
-<a href="#68" id="68">68</a>
-<a href="#69" id="69">69</a>
-<a href="#70" id="70">70</a>
-<a href="#71" id="71">71</a>
-<a href="#72" id="72">72</a>
-<a href="#73" id="73">73</a>
-<a href="#74" id="74">74</a>
-<a href="#75" id="75">75</a>
-<a href="#76" id="76">76</a>
-<a href="#77" id="77">77</a>
-<a href="#78" id="78">78</a>
-<a href="#79" id="79">79</a>
-<a href="#80" id="80">80</a>
-<a href="#81" id="81">81</a>
-<a href="#82" id="82">82</a>
-<a href="#83" id="83">83</a>
-<a href="#84" id="84">84</a>
-<a href="#85" id="85">85</a>
-<a href="#86" id="86">86</a>
-<a href="#87" id="87">87</a>
-<a href="#88" id="88">88</a>
-<a href="#89" id="89">89</a>
-<a href="#90" id="90">90</a>
-<a href="#91" id="91">91</a>
-<a href="#92" id="92">92</a>
-<a href="#93" id="93">93</a>
-<a href="#94" id="94">94</a>
-<a href="#95" id="95">95</a>
-<a href="#96" id="96">96</a>
-<a href="#97" id="97">97</a>
-<a href="#98" id="98">98</a>
-<a href="#99" id="99">99</a>
-<a href="#100" id="100">100</a>
-<a href="#101" id="101">101</a>
-<a href="#102" id="102">102</a>
-<a href="#103" id="103">103</a>
-<a href="#104" id="104">104</a>
-<a href="#105" id="105">105</a>
-<a href="#106" id="106">106</a>
-<a href="#107" id="107">107</a>
-<a href="#108" id="108">108</a>
-<a href="#109" id="109">109</a>
-<a href="#110" id="110">110</a>
-<a href="#111" id="111">111</a>
-<a href="#112" id="112">112</a>
-<a href="#113" id="113">113</a>
-<a href="#114" id="114">114</a>
-<a href="#115" id="115">115</a>
-<a href="#116" id="116">116</a>
-<a href="#117" id="117">117</a>
-<a href="#118" id="118">118</a>
-<a href="#119" id="119">119</a>
-<a href="#120" id="120">120</a>
-<a href="#121" id="121">121</a>
-<a href="#122" id="122">122</a>
-<a href="#123" id="123">123</a>
-<a href="#124" id="124">124</a>
-<a href="#125" id="125">125</a>
-<a href="#126" id="126">126</a>
-<a href="#127" id="127">127</a>
-<a href="#128" id="128">128</a>
-<a href="#129" id="129">129</a>
-<a href="#130" id="130">130</a>
-<a href="#131" id="131">131</a>
-<a href="#132" id="132">132</a>
-<a href="#133" id="133">133</a>
-<a href="#134" id="134">134</a>
-<a href="#135" id="135">135</a>
-<a href="#136" id="136">136</a>
-<a href="#137" id="137">137</a>
-<a href="#138" id="138">138</a>
-<a href="#139" id="139">139</a>
-<a href="#140" id="140">140</a>
-<a href="#141" id="141">141</a>
-<a href="#142" id="142">142</a>
-<a href="#143" id="143">143</a>
-<a href="#144" id="144">144</a>
-<a href="#145" id="145">145</a>
-<a href="#146" id="146">146</a>
-<a href="#147" id="147">147</a>
-<a href="#148" id="148">148</a>
-<a href="#149" id="149">149</a>
-<a href="#150" id="150">150</a>
-<a href="#151" id="151">151</a>
-<a href="#152" id="152">152</a>
-<a href="#153" id="153">153</a>
-<a href="#154" id="154">154</a>
-<a href="#155" id="155">155</a>
-<a href="#156" id="156">156</a>
-<a href="#157" id="157">157</a>
-<a href="#158" id="158">158</a>
-<a href="#159" id="159">159</a>
-<a href="#160" id="160">160</a>
-<a href="#161" id="161">161</a>
-<a href="#162" id="162">162</a>
-<a href="#163" id="163">163</a>
-<a href="#164" id="164">164</a>
-<a href="#165" id="165">165</a>
-<a href="#166" id="166">166</a>
-<a href="#167" id="167">167</a>
-<a href="#168" id="168">168</a>
-<a href="#169" id="169">169</a>
-<a href="#170" id="170">170</a>
-<a href="#171" id="171">171</a>
-<a href="#172" id="172">172</a>
-<a href="#173" id="173">173</a>
-<a href="#174" id="174">174</a>
-<a href="#175" id="175">175</a>
-<a href="#176" id="176">176</a>
-<a href="#177" id="177">177</a>
-<a href="#178" id="178">178</a>
-<a href="#179" id="179">179</a>
-<a href="#180" id="180">180</a>
-<a href="#181" id="181">181</a>
-<a href="#182" id="182">182</a>
-<a href="#183" id="183">183</a>
-<a href="#184" id="184">184</a>
-<a href="#185" id="185">185</a>
-<a href="#186" id="186">186</a>
-<a href="#187" id="187">187</a>
-<a href="#188" id="188">188</a>
-<a href="#189" id="189">189</a>
-<a href="#190" id="190">190</a>
-<a href="#191" id="191">191</a>
-<a href="#192" id="192">192</a>
-<a href="#193" id="193">193</a>
-<a href="#194" id="194">194</a>
-<a href="#195" id="195">195</a>
-<a href="#196" id="196">196</a>
-<a href="#197" id="197">197</a>
-<a href="#198" id="198">198</a>
-<a href="#199" id="199">199</a>
-<a href="#200" id="200">200</a>
-<a href="#201" id="201">201</a>
-<a href="#202" id="202">202</a>
-<a href="#203" id="203">203</a>
-<a href="#204" id="204">204</a>
-<a href="#205" id="205">205</a>
-<a href="#206" id="206">206</a>
-<a href="#207" id="207">207</a>
-<a href="#208" id="208">208</a>
-<a href="#209" id="209">209</a>
-<a href="#210" id="210">210</a>
-<a href="#211" id="211">211</a>
-<a href="#212" id="212">212</a>
-<a href="#213" id="213">213</a>
-<a href="#214" id="214">214</a>
-<a href="#215" id="215">215</a>
-<a href="#216" id="216">216</a>
-<a href="#217" id="217">217</a>
-<a href="#218" id="218">218</a>
-<a href="#219" id="219">219</a>
-<a href="#220" id="220">220</a>
-<a href="#221" id="221">221</a>
-<a href="#222" id="222">222</a>
-<a href="#223" id="223">223</a>
-<a href="#224" id="224">224</a>
-<a href="#225" id="225">225</a>
-<a href="#226" id="226">226</a>
-<a href="#227" id="227">227</a>
-<a href="#228" id="228">228</a>
-<a href="#229" id="229">229</a>
-<a href="#230" id="230">230</a>
-<a href="#231" id="231">231</a>
-<a href="#232" id="232">232</a>
-<a href="#233" id="233">233</a>
-<a href="#234" id="234">234</a>
-<a href="#235" id="235">235</a>
-<a href="#236" id="236">236</a>
-<a href="#237" id="237">237</a>
-<a href="#238" id="238">238</a>
-<a href="#239" id="239">239</a>
-<a href="#240" id="240">240</a>
-<a href="#241" id="241">241</a>
-<a href="#242" id="242">242</a>
-<a href="#243" id="243">243</a>
-<a href="#244" id="244">244</a>
-<a href="#245" id="245">245</a>
-<a href="#246" id="246">246</a>
-<a href="#247" id="247">247</a>
-<a href="#248" id="248">248</a>
-<a href="#249" id="249">249</a>
-<a href="#250" id="250">250</a>
-<a href="#251" id="251">251</a>
-<a href="#252" id="252">252</a>
-<a href="#253" id="253">253</a>
-<a href="#254" id="254">254</a>
-<a href="#255" id="255">255</a>
-<a href="#256" id="256">256</a>
-<a href="#257" id="257">257</a>
-<a href="#258" id="258">258</a>
-<a href="#259" id="259">259</a>
-<a href="#260" id="260">260</a>
-<a href="#261" id="261">261</a>
-<a href="#262" id="262">262</a>
-<a href="#263" id="263">263</a>
-<a href="#264" id="264">264</a>
-<a href="#265" id="265">265</a>
-<a href="#266" id="266">266</a>
-<a href="#267" id="267">267</a>
-<a href="#268" id="268">268</a>
-<a href="#269" id="269">269</a>
-<a href="#270" id="270">270</a>
-<a href="#271" id="271">271</a>
-<a href="#272" id="272">272</a>
-<a href="#273" id="273">273</a>
-<a href="#274" id="274">274</a>
-<a href="#275" id="275">275</a>
-<a href="#276" id="276">276</a>
-<a href="#277" id="277">277</a>
-<a href="#278" id="278">278</a>
-<a href="#279" id="279">279</a>
-<a href="#280" id="280">280</a>
-<a href="#281" id="281">281</a>
-<a href="#282" id="282">282</a>
-<a href="#283" id="283">283</a>
-<a href="#284" id="284">284</a>
-<a href="#285" id="285">285</a>
-<a href="#286" id="286">286</a>
-<a href="#287" id="287">287</a>
-<a href="#288" id="288">288</a>
-<a href="#289" id="289">289</a>
-<a href="#290" id="290">290</a>
-<a href="#291" id="291">291</a>
-</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-</span><span class="doccomment">//! Errors that can be thrown by the [`Wallet`](crate::wallet::Wallet)
-
-</span><span class="kw">use </span><span class="kw">crate</span>::descriptor::policy::PolicyError;
-<span class="kw">use </span><span class="kw">crate</span>::descriptor::DescriptorError;
-<span class="kw">use </span><span class="kw">crate</span>::wallet::coin_selection;
-<span class="kw">use crate</span>::{descriptor, KeychainKind};
-<span class="kw">use </span>alloc::string::String;
-<span class="kw">use </span>bitcoin::{absolute, psbt, OutPoint, Sequence, Txid};
-<span class="kw">use </span>core::fmt;
-
-<span class="doccomment">/// Errors returned by miniscript when updating inconsistent PSBTs
-</span><span class="attr">#[derive(Debug, Clone)]
-</span><span class="kw">pub enum </span>MiniscriptPsbtError {
- <span class="doccomment">/// Descriptor key conversion error
- </span>Conversion(miniscript::descriptor::ConversionError),
- <span class="doccomment">/// Return error type for PsbtExt::update_input_with_descriptor
- </span>UtxoUpdate(miniscript::psbt::UtxoUpdateError),
- <span class="doccomment">/// Return error type for PsbtExt::update_output_with_descriptor
- </span>OutputUpdate(miniscript::psbt::OutputUpdateError),
-}
-
-<span class="kw">impl </span>fmt::Display <span class="kw">for </span>MiniscriptPsbtError {
- <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
- <span class="kw">match </span><span class="self">self </span>{
- <span class="self">Self</span>::Conversion(err) => <span class="macro">write!</span>(f, <span class="string">"Conversion error: {}"</span>, err),
- <span class="self">Self</span>::UtxoUpdate(err) => <span class="macro">write!</span>(f, <span class="string">"UTXO update error: {}"</span>, err),
- <span class="self">Self</span>::OutputUpdate(err) => <span class="macro">write!</span>(f, <span class="string">"Output update error: {}"</span>, err),
- }
- }
-}
-
-<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
-</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>MiniscriptPsbtError {}
-
-<span class="attr">#[derive(Debug)]
-</span><span class="doccomment">/// Error returned from [`TxBuilder::finish`]
-///
-/// [`TxBuilder::finish`]: crate::wallet::tx_builder::TxBuilder::finish
-</span><span class="kw">pub enum </span>CreateTxError {
- <span class="doccomment">/// There was a problem with the descriptors passed in
- </span>Descriptor(DescriptorError),
- <span class="doccomment">/// We were unable to load wallet data from or write wallet data to the persistence backend
- </span>Persist(anyhow::Error),
- <span class="doccomment">/// There was a problem while extracting and manipulating policies
- </span>Policy(PolicyError),
- <span class="doccomment">/// Spending policy is not compatible with this [`KeychainKind`]
- </span>SpendingPolicyRequired(KeychainKind),
- <span class="doccomment">/// Requested invalid transaction version '0'
- </span>Version0,
- <span class="doccomment">/// Requested transaction version `1`, but at least `2` is needed to use OP_CSV
- </span>Version1Csv,
- <span class="doccomment">/// Requested `LockTime` is less than is required to spend from this script
- </span>LockTime {
- <span class="doccomment">/// Requested `LockTime`
- </span>requested: absolute::LockTime,
- <span class="doccomment">/// Required `LockTime`
- </span>required: absolute::LockTime,
- },
- <span class="doccomment">/// Cannot enable RBF with a `Sequence` >= 0xFFFFFFFE
- </span>RbfSequence,
- <span class="doccomment">/// Cannot enable RBF with `Sequence` given a required OP_CSV
- </span>RbfSequenceCsv {
- <span class="doccomment">/// Given RBF `Sequence`
- </span>rbf: Sequence,
- <span class="doccomment">/// Required OP_CSV `Sequence`
- </span>csv: Sequence,
- },
- <span class="doccomment">/// When bumping a tx the absolute fee requested is lower than replaced tx absolute fee
- </span>FeeTooLow {
- <span class="doccomment">/// Required fee absolute value (satoshi)
- </span>required: u64,
- },
- <span class="doccomment">/// When bumping a tx the fee rate requested is lower than required
- </span>FeeRateTooLow {
- <span class="doccomment">/// Required fee rate
- </span>required: bitcoin::FeeRate,
- },
- <span class="doccomment">/// `manually_selected_only` option is selected but no utxo has been passed
- </span>NoUtxosSelected,
- <span class="doccomment">/// Output created is under the dust limit, 546 satoshis
- </span>OutputBelowDustLimit(usize),
- <span class="doccomment">/// The `change_policy` was set but the wallet does not have a change_descriptor
- </span>ChangePolicyDescriptor,
- <span class="doccomment">/// There was an error with coin selection
- </span>CoinSelection(coin_selection::Error),
- <span class="doccomment">/// Wallet's UTXO set is not enough to cover recipient's requested plus fee
- </span>InsufficientFunds {
- <span class="doccomment">/// Sats needed for some transaction
- </span>needed: u64,
- <span class="doccomment">/// Sats available for spending
- </span>available: u64,
- },
- <span class="doccomment">/// Cannot build a tx without recipients
- </span>NoRecipients,
- <span class="doccomment">/// Partially signed bitcoin transaction error
- </span>Psbt(psbt::Error),
- <span class="doccomment">/// In order to use the [`TxBuilder::add_global_xpubs`] option every extended
- /// key in the descriptor must either be a master key itself (having depth = 0) or have an
- /// explicit origin provided
- ///
- /// [`TxBuilder::add_global_xpubs`]: crate::wallet::tx_builder::TxBuilder::add_global_xpubs
- </span>MissingKeyOrigin(String),
- <span class="doccomment">/// Happens when trying to spend an UTXO that is not in the internal database
- </span>UnknownUtxo,
- <span class="doccomment">/// Missing non_witness_utxo on foreign utxo for given `OutPoint`
- </span>MissingNonWitnessUtxo(OutPoint),
- <span class="doccomment">/// Miniscript PSBT error
- </span>MiniscriptPsbt(MiniscriptPsbtError),
-}
-
-<span class="kw">impl </span>fmt::Display <span class="kw">for </span>CreateTxError {
- <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
- <span class="kw">match </span><span class="self">self </span>{
- <span class="self">Self</span>::Descriptor(e) => e.fmt(f),
- <span class="self">Self</span>::Persist(e) => {
- <span class="macro">write!</span>(
- f,
- <span class="string">"failed to load wallet data from or write wallet data to persistence backend: {}"</span>,
- e
- )
- }
- <span class="self">Self</span>::Policy(e) => e.fmt(f),
- CreateTxError::SpendingPolicyRequired(keychain_kind) => {
- <span class="macro">write!</span>(f, <span class="string">"Spending policy required: {:?}"</span>, keychain_kind)
- }
- CreateTxError::Version0 => {
- <span class="macro">write!</span>(f, <span class="string">"Invalid version `0`"</span>)
- }
- CreateTxError::Version1Csv => {
- <span class="macro">write!</span>(
- f,
- <span class="string">"TxBuilder requested version `1`, but at least `2` is needed to use OP_CSV"
- </span>)
- }
- CreateTxError::LockTime {
- requested,
- required,
- } => {
- <span class="macro">write!</span>(f, <span class="string">"TxBuilder requested timelock of `{:?}`, but at least `{:?}` is required to spend from this script"</span>, required, requested)
- }
- CreateTxError::RbfSequence => {
- <span class="macro">write!</span>(f, <span class="string">"Cannot enable RBF with a nSequence >= 0xFFFFFFFE"</span>)
- }
- CreateTxError::RbfSequenceCsv { rbf, csv } => {
- <span class="macro">write!</span>(
- f,
- <span class="string">"Cannot enable RBF with nSequence `{:?}` given a required OP_CSV of `{:?}`"</span>,
- rbf, csv
- )
- }
- CreateTxError::FeeTooLow { required } => {
- <span class="macro">write!</span>(f, <span class="string">"Fee to low: required {} sat"</span>, required)
- }
- CreateTxError::FeeRateTooLow { required } => {
- <span class="macro">write!</span>(
- f,
- <span class="comment">// Note: alternate fmt as sat/vb (ceil) available in bitcoin-0.31
- //"Fee rate too low: required {required:#}"
- </span><span class="string">"Fee rate too low: required {} sat/vb"</span>,
- <span class="macro">crate::floating_rate!</span>(required)
- )
- }
- CreateTxError::NoUtxosSelected => {
- <span class="macro">write!</span>(f, <span class="string">"No UTXO selected"</span>)
- }
- CreateTxError::OutputBelowDustLimit(limit) => {
- <span class="macro">write!</span>(f, <span class="string">"Output below the dust limit: {}"</span>, limit)
- }
- CreateTxError::ChangePolicyDescriptor => {
- <span class="macro">write!</span>(
- f,
- <span class="string">"The `change_policy` can be set only if the wallet has a change_descriptor"
- </span>)
- }
- CreateTxError::CoinSelection(e) => e.fmt(f),
- CreateTxError::InsufficientFunds { needed, available } => {
- <span class="macro">write!</span>(
- f,
- <span class="string">"Insufficient funds: {} sat available of {} sat needed"</span>,
- available, needed
- )
- }
- CreateTxError::NoRecipients => {
- <span class="macro">write!</span>(f, <span class="string">"Cannot build tx without recipients"</span>)
- }
- CreateTxError::Psbt(e) => e.fmt(f),
- CreateTxError::MissingKeyOrigin(err) => {
- <span class="macro">write!</span>(f, <span class="string">"Missing key origin: {}"</span>, err)
- }
- CreateTxError::UnknownUtxo => {
- <span class="macro">write!</span>(f, <span class="string">"UTXO not found in the internal database"</span>)
- }
- CreateTxError::MissingNonWitnessUtxo(outpoint) => {
- <span class="macro">write!</span>(f, <span class="string">"Missing non_witness_utxo on foreign utxo {}"</span>, outpoint)
- }
- CreateTxError::MiniscriptPsbt(err) => {
- <span class="macro">write!</span>(f, <span class="string">"Miniscript PSBT error: {}"</span>, err)
- }
- }
- }
-}
-
-<span class="kw">impl </span>From<descriptor::error::Error> <span class="kw">for </span>CreateTxError {
- <span class="kw">fn </span>from(err: descriptor::error::Error) -> <span class="self">Self </span>{
- CreateTxError::Descriptor(err)
- }
-}
-
-<span class="kw">impl </span>From<PolicyError> <span class="kw">for </span>CreateTxError {
- <span class="kw">fn </span>from(err: PolicyError) -> <span class="self">Self </span>{
- CreateTxError::Policy(err)
- }
-}
-
-<span class="kw">impl </span>From<MiniscriptPsbtError> <span class="kw">for </span>CreateTxError {
- <span class="kw">fn </span>from(err: MiniscriptPsbtError) -> <span class="self">Self </span>{
- CreateTxError::MiniscriptPsbt(err)
- }
-}
-
-<span class="kw">impl </span>From<psbt::Error> <span class="kw">for </span>CreateTxError {
- <span class="kw">fn </span>from(err: psbt::Error) -> <span class="self">Self </span>{
- CreateTxError::Psbt(err)
- }
-}
-
-<span class="kw">impl </span>From<coin_selection::Error> <span class="kw">for </span>CreateTxError {
- <span class="kw">fn </span>from(err: coin_selection::Error) -> <span class="self">Self </span>{
- CreateTxError::CoinSelection(err)
- }
-}
-
-<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
-</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>CreateTxError {}
-
-<span class="attr">#[derive(Debug)]
-</span><span class="doccomment">/// Error returned from [`Wallet::build_fee_bump`]
-///
-/// [`Wallet::build_fee_bump`]: super::Wallet::build_fee_bump
-</span><span class="kw">pub enum </span>BuildFeeBumpError {
- <span class="doccomment">/// Happens when trying to spend an UTXO that is not in the internal database
- </span>UnknownUtxo(OutPoint),
- <span class="doccomment">/// Thrown when a tx is not found in the internal database
- </span>TransactionNotFound(Txid),
- <span class="doccomment">/// Happens when trying to bump a transaction that is already confirmed
- </span>TransactionConfirmed(Txid),
- <span class="doccomment">/// Trying to replace a tx that has a sequence >= `0xFFFFFFFE`
- </span>IrreplaceableTransaction(Txid),
- <span class="doccomment">/// Node doesn't have data to estimate a fee rate
- </span>FeeRateUnavailable,
-}
-
-<span class="kw">impl </span>fmt::Display <span class="kw">for </span>BuildFeeBumpError {
- <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
- <span class="kw">match </span><span class="self">self </span>{
- <span class="self">Self</span>::UnknownUtxo(outpoint) => <span class="macro">write!</span>(
- f,
- <span class="string">"UTXO not found in the internal database with txid: {}, vout: {}"</span>,
- outpoint.txid, outpoint.vout
- ),
- <span class="self">Self</span>::TransactionNotFound(txid) => {
- <span class="macro">write!</span>(
- f,
- <span class="string">"Transaction not found in the internal database with txid: {}"</span>,
- txid
- )
- }
- <span class="self">Self</span>::TransactionConfirmed(txid) => {
- <span class="macro">write!</span>(f, <span class="string">"Transaction already confirmed with txid: {}"</span>, txid)
- }
- <span class="self">Self</span>::IrreplaceableTransaction(txid) => {
- <span class="macro">write!</span>(f, <span class="string">"Transaction can't be replaced with txid: {}"</span>, txid)
- }
- <span class="self">Self</span>::FeeRateUnavailable => <span class="macro">write!</span>(f, <span class="string">"Fee rate unavailable"</span>),
- }
- }
-}
-
-<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
-</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>BuildFeeBumpError {}
-</code></pre></div>
-</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Source of the Rust file `crates/bdk/src/wallet/export.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>export.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk/index.html">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
-<a href="#2" id="2">2</a>
-<a href="#3" id="3">3</a>
-<a href="#4" id="4">4</a>
-<a href="#5" id="5">5</a>
-<a href="#6" id="6">6</a>
-<a href="#7" id="7">7</a>
-<a href="#8" id="8">8</a>
-<a href="#9" id="9">9</a>
-<a href="#10" id="10">10</a>
-<a href="#11" id="11">11</a>
-<a href="#12" id="12">12</a>
-<a href="#13" id="13">13</a>
-<a href="#14" id="14">14</a>
-<a href="#15" id="15">15</a>
-<a href="#16" id="16">16</a>
-<a href="#17" id="17">17</a>
-<a href="#18" id="18">18</a>
-<a href="#19" id="19">19</a>
-<a href="#20" id="20">20</a>
-<a href="#21" id="21">21</a>
-<a href="#22" id="22">22</a>
-<a href="#23" id="23">23</a>
-<a href="#24" id="24">24</a>
-<a href="#25" id="25">25</a>
-<a href="#26" id="26">26</a>
-<a href="#27" id="27">27</a>
-<a href="#28" id="28">28</a>
-<a href="#29" id="29">29</a>
-<a href="#30" id="30">30</a>
-<a href="#31" id="31">31</a>
-<a href="#32" id="32">32</a>
-<a href="#33" id="33">33</a>
-<a href="#34" id="34">34</a>
-<a href="#35" id="35">35</a>
-<a href="#36" id="36">36</a>
-<a href="#37" id="37">37</a>
-<a href="#38" id="38">38</a>
-<a href="#39" id="39">39</a>
-<a href="#40" id="40">40</a>
-<a href="#41" id="41">41</a>
-<a href="#42" id="42">42</a>
-<a href="#43" id="43">43</a>
-<a href="#44" id="44">44</a>
-<a href="#45" id="45">45</a>
-<a href="#46" id="46">46</a>
-<a href="#47" id="47">47</a>
-<a href="#48" id="48">48</a>
-<a href="#49" id="49">49</a>
-<a href="#50" id="50">50</a>
-<a href="#51" id="51">51</a>
-<a href="#52" id="52">52</a>
-<a href="#53" id="53">53</a>
-<a href="#54" id="54">54</a>
-<a href="#55" id="55">55</a>
-<a href="#56" id="56">56</a>
-<a href="#57" id="57">57</a>
-<a href="#58" id="58">58</a>
-<a href="#59" id="59">59</a>
-<a href="#60" id="60">60</a>
-<a href="#61" id="61">61</a>
-<a href="#62" id="62">62</a>
-<a href="#63" id="63">63</a>
-<a href="#64" id="64">64</a>
-<a href="#65" id="65">65</a>
-<a href="#66" id="66">66</a>
-<a href="#67" id="67">67</a>
-<a href="#68" id="68">68</a>
-<a href="#69" id="69">69</a>
-<a href="#70" id="70">70</a>
-<a href="#71" id="71">71</a>
-<a href="#72" id="72">72</a>
-<a href="#73" id="73">73</a>
-<a href="#74" id="74">74</a>
-<a href="#75" id="75">75</a>
-<a href="#76" id="76">76</a>
-<a href="#77" id="77">77</a>
-<a href="#78" id="78">78</a>
-<a href="#79" id="79">79</a>
-<a href="#80" id="80">80</a>
-<a href="#81" id="81">81</a>
-<a href="#82" id="82">82</a>
-<a href="#83" id="83">83</a>
-<a href="#84" id="84">84</a>
-<a href="#85" id="85">85</a>
-<a href="#86" id="86">86</a>
-<a href="#87" id="87">87</a>
-<a href="#88" id="88">88</a>
-<a href="#89" id="89">89</a>
-<a href="#90" id="90">90</a>
-<a href="#91" id="91">91</a>
-<a href="#92" id="92">92</a>
-<a href="#93" id="93">93</a>
-<a href="#94" id="94">94</a>
-<a href="#95" id="95">95</a>
-<a href="#96" id="96">96</a>
-<a href="#97" id="97">97</a>
-<a href="#98" id="98">98</a>
-<a href="#99" id="99">99</a>
-<a href="#100" id="100">100</a>
-<a href="#101" id="101">101</a>
-<a href="#102" id="102">102</a>
-<a href="#103" id="103">103</a>
-<a href="#104" id="104">104</a>
-<a href="#105" id="105">105</a>
-<a href="#106" id="106">106</a>
-<a href="#107" id="107">107</a>
-<a href="#108" id="108">108</a>
-<a href="#109" id="109">109</a>
-<a href="#110" id="110">110</a>
-<a href="#111" id="111">111</a>
-<a href="#112" id="112">112</a>
-<a href="#113" id="113">113</a>
-<a href="#114" id="114">114</a>
-<a href="#115" id="115">115</a>
-<a href="#116" id="116">116</a>
-<a href="#117" id="117">117</a>
-<a href="#118" id="118">118</a>
-<a href="#119" id="119">119</a>
-<a href="#120" id="120">120</a>
-<a href="#121" id="121">121</a>
-<a href="#122" id="122">122</a>
-<a href="#123" id="123">123</a>
-<a href="#124" id="124">124</a>
-<a href="#125" id="125">125</a>
-<a href="#126" id="126">126</a>
-<a href="#127" id="127">127</a>
-<a href="#128" id="128">128</a>
-<a href="#129" id="129">129</a>
-<a href="#130" id="130">130</a>
-<a href="#131" id="131">131</a>
-<a href="#132" id="132">132</a>
-<a href="#133" id="133">133</a>
-<a href="#134" id="134">134</a>
-<a href="#135" id="135">135</a>
-<a href="#136" id="136">136</a>
-<a href="#137" id="137">137</a>
-<a href="#138" id="138">138</a>
-<a href="#139" id="139">139</a>
-<a href="#140" id="140">140</a>
-<a href="#141" id="141">141</a>
-<a href="#142" id="142">142</a>
-<a href="#143" id="143">143</a>
-<a href="#144" id="144">144</a>
-<a href="#145" id="145">145</a>
-<a href="#146" id="146">146</a>
-<a href="#147" id="147">147</a>
-<a href="#148" id="148">148</a>
-<a href="#149" id="149">149</a>
-<a href="#150" id="150">150</a>
-<a href="#151" id="151">151</a>
-<a href="#152" id="152">152</a>
-<a href="#153" id="153">153</a>
-<a href="#154" id="154">154</a>
-<a href="#155" id="155">155</a>
-<a href="#156" id="156">156</a>
-<a href="#157" id="157">157</a>
-<a href="#158" id="158">158</a>
-<a href="#159" id="159">159</a>
-<a href="#160" id="160">160</a>
-<a href="#161" id="161">161</a>
-<a href="#162" id="162">162</a>
-<a href="#163" id="163">163</a>
-<a href="#164" id="164">164</a>
-<a href="#165" id="165">165</a>
-<a href="#166" id="166">166</a>
-<a href="#167" id="167">167</a>
-<a href="#168" id="168">168</a>
-<a href="#169" id="169">169</a>
-<a href="#170" id="170">170</a>
-<a href="#171" id="171">171</a>
-<a href="#172" id="172">172</a>
-<a href="#173" id="173">173</a>
-<a href="#174" id="174">174</a>
-<a href="#175" id="175">175</a>
-<a href="#176" id="176">176</a>
-<a href="#177" id="177">177</a>
-<a href="#178" id="178">178</a>
-<a href="#179" id="179">179</a>
-<a href="#180" id="180">180</a>
-<a href="#181" id="181">181</a>
-<a href="#182" id="182">182</a>
-<a href="#183" id="183">183</a>
-<a href="#184" id="184">184</a>
-<a href="#185" id="185">185</a>
-<a href="#186" id="186">186</a>
-<a href="#187" id="187">187</a>
-<a href="#188" id="188">188</a>
-<a href="#189" id="189">189</a>
-<a href="#190" id="190">190</a>
-<a href="#191" id="191">191</a>
-<a href="#192" id="192">192</a>
-<a href="#193" id="193">193</a>
-<a href="#194" id="194">194</a>
-<a href="#195" id="195">195</a>
-<a href="#196" id="196">196</a>
-<a href="#197" id="197">197</a>
-<a href="#198" id="198">198</a>
-<a href="#199" id="199">199</a>
-<a href="#200" id="200">200</a>
-<a href="#201" id="201">201</a>
-<a href="#202" id="202">202</a>
-<a href="#203" id="203">203</a>
-<a href="#204" id="204">204</a>
-<a href="#205" id="205">205</a>
-<a href="#206" id="206">206</a>
-<a href="#207" id="207">207</a>
-<a href="#208" id="208">208</a>
-<a href="#209" id="209">209</a>
-<a href="#210" id="210">210</a>
-<a href="#211" id="211">211</a>
-<a href="#212" id="212">212</a>
-<a href="#213" id="213">213</a>
-<a href="#214" id="214">214</a>
-<a href="#215" id="215">215</a>
-<a href="#216" id="216">216</a>
-<a href="#217" id="217">217</a>
-<a href="#218" id="218">218</a>
-<a href="#219" id="219">219</a>
-<a href="#220" id="220">220</a>
-<a href="#221" id="221">221</a>
-<a href="#222" id="222">222</a>
-<a href="#223" id="223">223</a>
-<a href="#224" id="224">224</a>
-<a href="#225" id="225">225</a>
-<a href="#226" id="226">226</a>
-<a href="#227" id="227">227</a>
-<a href="#228" id="228">228</a>
-<a href="#229" id="229">229</a>
-<a href="#230" id="230">230</a>
-<a href="#231" id="231">231</a>
-<a href="#232" id="232">232</a>
-<a href="#233" id="233">233</a>
-<a href="#234" id="234">234</a>
-<a href="#235" id="235">235</a>
-<a href="#236" id="236">236</a>
-<a href="#237" id="237">237</a>
-<a href="#238" id="238">238</a>
-<a href="#239" id="239">239</a>
-<a href="#240" id="240">240</a>
-<a href="#241" id="241">241</a>
-<a href="#242" id="242">242</a>
-<a href="#243" id="243">243</a>
-<a href="#244" id="244">244</a>
-<a href="#245" id="245">245</a>
-<a href="#246" id="246">246</a>
-<a href="#247" id="247">247</a>
-<a href="#248" id="248">248</a>
-<a href="#249" id="249">249</a>
-<a href="#250" id="250">250</a>
-<a href="#251" id="251">251</a>
-<a href="#252" id="252">252</a>
-<a href="#253" id="253">253</a>
-<a href="#254" id="254">254</a>
-<a href="#255" id="255">255</a>
-<a href="#256" id="256">256</a>
-<a href="#257" id="257">257</a>
-<a href="#258" id="258">258</a>
-<a href="#259" id="259">259</a>
-<a href="#260" id="260">260</a>
-<a href="#261" id="261">261</a>
-<a href="#262" id="262">262</a>
-<a href="#263" id="263">263</a>
-<a href="#264" id="264">264</a>
-<a href="#265" id="265">265</a>
-<a href="#266" id="266">266</a>
-<a href="#267" id="267">267</a>
-<a href="#268" id="268">268</a>
-<a href="#269" id="269">269</a>
-<a href="#270" id="270">270</a>
-<a href="#271" id="271">271</a>
-<a href="#272" id="272">272</a>
-<a href="#273" id="273">273</a>
-<a href="#274" id="274">274</a>
-<a href="#275" id="275">275</a>
-<a href="#276" id="276">276</a>
-<a href="#277" id="277">277</a>
-<a href="#278" id="278">278</a>
-<a href="#279" id="279">279</a>
-<a href="#280" id="280">280</a>
-<a href="#281" id="281">281</a>
-<a href="#282" id="282">282</a>
-<a href="#283" id="283">283</a>
-<a href="#284" id="284">284</a>
-<a href="#285" id="285">285</a>
-<a href="#286" id="286">286</a>
-<a href="#287" id="287">287</a>
-<a href="#288" id="288">288</a>
-<a href="#289" id="289">289</a>
-<a href="#290" id="290">290</a>
-<a href="#291" id="291">291</a>
-<a href="#292" id="292">292</a>
-<a href="#293" id="293">293</a>
-<a href="#294" id="294">294</a>
-<a href="#295" id="295">295</a>
-<a href="#296" id="296">296</a>
-<a href="#297" id="297">297</a>
-<a href="#298" id="298">298</a>
-<a href="#299" id="299">299</a>
-<a href="#300" id="300">300</a>
-<a href="#301" id="301">301</a>
-<a href="#302" id="302">302</a>
-<a href="#303" id="303">303</a>
-<a href="#304" id="304">304</a>
-<a href="#305" id="305">305</a>
-<a href="#306" id="306">306</a>
-<a href="#307" id="307">307</a>
-<a href="#308" id="308">308</a>
-<a href="#309" id="309">309</a>
-<a href="#310" id="310">310</a>
-<a href="#311" id="311">311</a>
-<a href="#312" id="312">312</a>
-<a href="#313" id="313">313</a>
-<a href="#314" id="314">314</a>
-<a href="#315" id="315">315</a>
-<a href="#316" id="316">316</a>
-<a href="#317" id="317">317</a>
-<a href="#318" id="318">318</a>
-<a href="#319" id="319">319</a>
-<a href="#320" id="320">320</a>
-<a href="#321" id="321">321</a>
-<a href="#322" id="322">322</a>
-<a href="#323" id="323">323</a>
-<a href="#324" id="324">324</a>
-<a href="#325" id="325">325</a>
-<a href="#326" id="326">326</a>
-<a href="#327" id="327">327</a>
-<a href="#328" id="328">328</a>
-<a href="#329" id="329">329</a>
-<a href="#330" id="330">330</a>
-<a href="#331" id="331">331</a>
-<a href="#332" id="332">332</a>
-<a href="#333" id="333">333</a>
-<a href="#334" id="334">334</a>
-<a href="#335" id="335">335</a>
-<a href="#336" id="336">336</a>
-<a href="#337" id="337">337</a>
-<a href="#338" id="338">338</a>
-<a href="#339" id="339">339</a>
-<a href="#340" id="340">340</a>
-<a href="#341" id="341">341</a>
-</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-</span><span class="doccomment">//! Wallet export
-//!
-//! This modules implements the wallet export format used by [FullyNoded](https://github.com/Fonta1n3/FullyNoded/blob/10b7808c8b929b171cca537fb50522d015168ac9/Docs/Wallets/Wallet-Export-Spec.md).
-//!
-//! ## Examples
-//!
-//! ### Import from JSON
-//!
-//! ```
-//! # use std::str::FromStr;
-//! # use bitcoin::*;
-//! # use bdk::wallet::export::*;
-//! # use bdk::*;
-//! let import = r#"{
-//! "descriptor": "wpkh([c258d2e4\/84h\/1h\/0h]tpubDD3ynpHgJQW8VvWRzQ5WFDCrs4jqVFGHB3vLC3r49XHJSqP8bHKdK4AriuUKLccK68zfzowx7YhmDN8SiSkgCDENUFx9qVw65YyqM78vyVe\/0\/*)",
-//! "blockheight":1782088,
-//! "label":"testnet"
-//! }"#;
-//!
-//! let import = FullyNodedExport::from_str(import)?;
-//! let wallet = Wallet::new_no_persist(
-//! &import.descriptor(),
-//! import.change_descriptor().as_ref(),
-//! Network::Testnet,
-//! )?;
-//! # Ok::<_, Box<dyn std::error::Error>>(())
-//! ```
-//!
-//! ### Export a `Wallet`
-//! ```
-//! # use bitcoin::*;
-//! # use bdk::wallet::export::*;
-//! # use bdk::*;
-//! let wallet = Wallet::new_no_persist(
-//! "wpkh([c258d2e4/84h/1h/0h]tpubDD3ynpHgJQW8VvWRzQ5WFDCrs4jqVFGHB3vLC3r49XHJSqP8bHKdK4AriuUKLccK68zfzowx7YhmDN8SiSkgCDENUFx9qVw65YyqM78vyVe/0/*)",
-//! Some("wpkh([c258d2e4/84h/1h/0h]tpubDD3ynpHgJQW8VvWRzQ5WFDCrs4jqVFGHB3vLC3r49XHJSqP8bHKdK4AriuUKLccK68zfzowx7YhmDN8SiSkgCDENUFx9qVw65YyqM78vyVe/1/*)"),
-//! Network::Testnet,
-//! )?;
-//! let export = FullyNodedExport::export_wallet(&wallet, "exported wallet", true).unwrap();
-//!
-//! println!("Exported: {}", export.to_string());
-//! # Ok::<_, Box<dyn std::error::Error>>(())
-//! ```
-
-</span><span class="kw">use </span>alloc::string::String;
-<span class="kw">use </span>core::fmt;
-<span class="kw">use </span>core::str::FromStr;
-<span class="kw">use </span>serde::{Deserialize, Serialize};
-
-<span class="kw">use </span>miniscript::descriptor::{ShInner, WshInner};
-<span class="kw">use </span>miniscript::{Descriptor, ScriptContext, Terminal};
-
-<span class="kw">use </span><span class="kw">crate</span>::types::KeychainKind;
-<span class="kw">use </span><span class="kw">crate</span>::wallet::Wallet;
-
-<span class="doccomment">/// Alias for [`FullyNodedExport`]
-</span><span class="attr">#[deprecated(since = <span class="string">"0.18.0"</span>, note = <span class="string">"Please use [`FullyNodedExport`] instead"</span>)]
-</span><span class="kw">pub type </span>WalletExport = FullyNodedExport;
-
-<span class="doccomment">/// Structure that contains the export of a wallet
-///
-/// For a usage example see [this module](crate::wallet::export)'s documentation.
-</span><span class="attr">#[derive(Debug, Serialize, Deserialize)]
-</span><span class="kw">pub struct </span>FullyNodedExport {
- descriptor: String,
- <span class="doccomment">/// Earliest block to rescan when looking for the wallet's transactions
- </span><span class="kw">pub </span>blockheight: u32,
- <span class="doccomment">/// Arbitrary label for the wallet
- </span><span class="kw">pub </span>label: String,
-}
-
-<span class="kw">impl </span>fmt::Display <span class="kw">for </span>FullyNodedExport {
- <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
- <span class="macro">write!</span>(f, <span class="string">"{}"</span>, serde_json::to_string(<span class="self">self</span>).unwrap())
- }
-}
-
-<span class="kw">impl </span>FromStr <span class="kw">for </span>FullyNodedExport {
- <span class="kw">type </span><span class="prelude-val">Err </span>= serde_json::Error;
-
- <span class="kw">fn </span>from_str(s: <span class="kw-2">&</span>str) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>, <span class="self">Self</span>::Err> {
- serde_json::from_str(s)
- }
-}
-
-<span class="kw">fn </span>remove_checksum(s: String) -> String {
- s.split_once(<span class="string">'#'</span>).map(|(a, <span class="kw">_</span>)| String::from(a)).unwrap()
-}
-
-<span class="kw">impl </span>FullyNodedExport {
- <span class="doccomment">/// Export a wallet
- ///
- /// This function returns an error if it determines that the `wallet`'s descriptor(s) are not
- /// supported by Bitcoin Core or don't follow the standard derivation paths defined by BIP44
- /// and others.
- ///
- /// If `include_blockheight` is `true`, this function will look into the `wallet`'s database
- /// for the oldest transaction it knows and use that as the earliest block to rescan.
- ///
- /// If the database is empty or `include_blockheight` is false, the `blockheight` field
- /// returned will be `0`.
- </span><span class="kw">pub fn </span>export_wallet(
- wallet: <span class="kw-2">&</span>Wallet,
- label: <span class="kw-2">&</span>str,
- include_blockheight: bool,
- ) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>, <span class="kw-2">&</span><span class="lifetime">'static </span>str> {
- <span class="kw">let </span>descriptor = wallet
- .get_descriptor_for_keychain(KeychainKind::External)
- .to_string_with_secret(
- <span class="kw-2">&</span>wallet
- .get_signers(KeychainKind::External)
- .as_key_map(wallet.secp_ctx()),
- );
- <span class="kw">let </span>descriptor = remove_checksum(descriptor);
- <span class="self">Self</span>::is_compatible_with_core(<span class="kw-2">&</span>descriptor)<span class="question-mark">?</span>;
-
- <span class="kw">let </span>blockheight = <span class="kw">if </span>include_blockheight {
- wallet.transactions().next().map_or(<span class="number">0</span>, |canonical_tx| {
- <span class="kw">match </span>canonical_tx.chain_position {
- bdk_chain::ChainPosition::Confirmed(a) => a.confirmation_height,
- bdk_chain::ChainPosition::Unconfirmed(<span class="kw">_</span>) => <span class="number">0</span>,
- }
- })
- } <span class="kw">else </span>{
- <span class="number">0
- </span>};
-
- <span class="kw">let </span>export = FullyNodedExport {
- descriptor,
- label: label.into(),
- blockheight,
- };
-
- <span class="kw">let </span>change_descriptor = <span class="kw">match </span>wallet.public_descriptor(KeychainKind::Internal).is_some() {
- <span class="bool-val">false </span>=> <span class="prelude-val">None</span>,
- <span class="bool-val">true </span>=> {
- <span class="kw">let </span>descriptor = wallet
- .get_descriptor_for_keychain(KeychainKind::Internal)
- .to_string_with_secret(
- <span class="kw-2">&</span>wallet
- .get_signers(KeychainKind::Internal)
- .as_key_map(wallet.secp_ctx()),
- );
- <span class="prelude-val">Some</span>(remove_checksum(descriptor))
- }
- };
- <span class="kw">if </span>export.change_descriptor() != change_descriptor {
- <span class="kw">return </span><span class="prelude-val">Err</span>(<span class="string">"Incompatible change descriptor"</span>);
- }
-
- <span class="prelude-val">Ok</span>(export)
- }
-
- <span class="kw">fn </span>is_compatible_with_core(descriptor: <span class="kw-2">&</span>str) -> <span class="prelude-ty">Result</span><(), <span class="kw-2">&</span><span class="lifetime">'static </span>str> {
- <span class="kw">fn </span>check_ms<Ctx: ScriptContext>(
- terminal: <span class="kw-2">&</span>Terminal<String, Ctx>,
- ) -> <span class="prelude-ty">Result</span><(), <span class="kw-2">&</span><span class="lifetime">'static </span>str> {
- <span class="kw">if let </span>Terminal::Multi(<span class="kw">_</span>, <span class="kw">_</span>) = terminal {
- <span class="prelude-val">Ok</span>(())
- } <span class="kw">else </span>{
- <span class="prelude-val">Err</span>(<span class="string">"The descriptor contains operators not supported by Bitcoin Core"</span>)
- }
- }
-
- <span class="comment">// pkh(), wpkh(), sh(wpkh()) are always fine, as well as multi() and sortedmulti()
- </span><span class="kw">match </span>Descriptor::<String>::from_str(descriptor).map_err(|<span class="kw">_</span>| <span class="string">"Invalid descriptor"</span>)<span class="question-mark">? </span>{
- Descriptor::Pkh(<span class="kw">_</span>) | Descriptor::Wpkh(<span class="kw">_</span>) => <span class="prelude-val">Ok</span>(()),
- Descriptor::Sh(sh) => <span class="kw">match </span>sh.as_inner() {
- ShInner::Wpkh(<span class="kw">_</span>) => <span class="prelude-val">Ok</span>(()),
- ShInner::SortedMulti(<span class="kw">_</span>) => <span class="prelude-val">Ok</span>(()),
- ShInner::Wsh(wsh) => <span class="kw">match </span>wsh.as_inner() {
- WshInner::SortedMulti(<span class="kw">_</span>) => <span class="prelude-val">Ok</span>(()),
- WshInner::Ms(ms) => check_ms(<span class="kw-2">&</span>ms.node),
- },
- ShInner::Ms(ms) => check_ms(<span class="kw-2">&</span>ms.node),
- },
- Descriptor::Wsh(wsh) => <span class="kw">match </span>wsh.as_inner() {
- WshInner::SortedMulti(<span class="kw">_</span>) => <span class="prelude-val">Ok</span>(()),
- WshInner::Ms(ms) => check_ms(<span class="kw-2">&</span>ms.node),
- },
- <span class="kw">_ </span>=> <span class="prelude-val">Err</span>(<span class="string">"The descriptor is not compatible with Bitcoin Core"</span>),
- }
- }
-
- <span class="doccomment">/// Return the external descriptor
- </span><span class="kw">pub fn </span>descriptor(<span class="kw-2">&</span><span class="self">self</span>) -> String {
- <span class="self">self</span>.descriptor.clone()
- }
-
- <span class="doccomment">/// Return the internal descriptor, if present
- </span><span class="kw">pub fn </span>change_descriptor(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Option</span><String> {
- <span class="kw">let </span>replaced = <span class="self">self</span>.descriptor.replace(<span class="string">"/0/*"</span>, <span class="string">"/1/*"</span>);
-
- <span class="kw">if </span>replaced != <span class="self">self</span>.descriptor {
- <span class="prelude-val">Some</span>(replaced)
- } <span class="kw">else </span>{
- <span class="prelude-val">None
- </span>}
- }
-}
-
-<span class="attr">#[cfg(test)]
-</span><span class="kw">mod </span>test {
- <span class="kw">use </span>core::str::FromStr;
-
- <span class="kw">use </span><span class="kw">crate</span>::std::string::ToString;
- <span class="kw">use </span>bdk_chain::{BlockId, ConfirmationTime};
- <span class="kw">use </span>bitcoin::hashes::Hash;
- <span class="kw">use </span>bitcoin::{transaction, BlockHash, Network, Transaction};
-
- <span class="kw">use super</span>::<span class="kw-2">*</span>;
- <span class="kw">use </span><span class="kw">crate</span>::wallet::Wallet;
-
- <span class="kw">fn </span>get_test_wallet(
- descriptor: <span class="kw-2">&</span>str,
- change_descriptor: <span class="prelude-ty">Option</span><<span class="kw-2">&</span>str>,
- network: Network,
- ) -> Wallet {
- <span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(descriptor, change_descriptor, network).unwrap();
- <span class="kw">let </span>transaction = Transaction {
- input: <span class="macro">vec!</span>[],
- output: <span class="macro">vec!</span>[],
- version: transaction::Version::non_standard(<span class="number">0</span>),
- lock_time: bitcoin::absolute::LockTime::ZERO,
- };
- wallet
- .insert_checkpoint(BlockId {
- height: <span class="number">5001</span>,
- hash: BlockHash::all_zeros(),
- })
- .unwrap();
- wallet
- .insert_tx(
- transaction,
- ConfirmationTime::Confirmed {
- height: <span class="number">5000</span>,
- time: <span class="number">0</span>,
- },
- )
- .unwrap();
- wallet
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_export_bip44() {
- <span class="kw">let </span>descriptor = <span class="string">"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/0/*)"</span>;
- <span class="kw">let </span>change_descriptor = <span class="string">"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/1/*)"</span>;
-
- <span class="kw">let </span>wallet = get_test_wallet(descriptor, <span class="prelude-val">Some</span>(change_descriptor), Network::Bitcoin);
- <span class="kw">let </span>export = FullyNodedExport::export_wallet(<span class="kw-2">&</span>wallet, <span class="string">"Test Label"</span>, <span class="bool-val">true</span>).unwrap();
-
- <span class="macro">assert_eq!</span>(export.descriptor(), descriptor);
- <span class="macro">assert_eq!</span>(export.change_descriptor(), <span class="prelude-val">Some</span>(change_descriptor.into()));
- <span class="macro">assert_eq!</span>(export.blockheight, <span class="number">5000</span>);
- <span class="macro">assert_eq!</span>(export.label, <span class="string">"Test Label"</span>);
- }
-
- <span class="attr">#[test]
- #[should_panic(expected = <span class="string">"Incompatible change descriptor"</span>)]
- </span><span class="kw">fn </span>test_export_no_change() {
- <span class="comment">// This wallet explicitly doesn't have a change descriptor. It should be impossible to
- // export, because exporting this kind of external descriptor normally implies the
- // existence of an internal descriptor
-
- </span><span class="kw">let </span>descriptor = <span class="string">"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/0/*)"</span>;
-
- <span class="kw">let </span>wallet = get_test_wallet(descriptor, <span class="prelude-val">None</span>, Network::Bitcoin);
- FullyNodedExport::export_wallet(<span class="kw-2">&</span>wallet, <span class="string">"Test Label"</span>, <span class="bool-val">true</span>).unwrap();
- }
-
- <span class="attr">#[test]
- #[should_panic(expected = <span class="string">"Incompatible change descriptor"</span>)]
- </span><span class="kw">fn </span>test_export_incompatible_change() {
- <span class="comment">// This wallet has a change descriptor, but the derivation path is not in the "standard"
- // bip44/49/etc format
-
- </span><span class="kw">let </span>descriptor = <span class="string">"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/0/*)"</span>;
- <span class="kw">let </span>change_descriptor = <span class="string">"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/50'/0'/1/*)"</span>;
-
- <span class="kw">let </span>wallet = get_test_wallet(descriptor, <span class="prelude-val">Some</span>(change_descriptor), Network::Bitcoin);
- FullyNodedExport::export_wallet(<span class="kw-2">&</span>wallet, <span class="string">"Test Label"</span>, <span class="bool-val">true</span>).unwrap();
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_export_multi() {
- <span class="kw">let </span>descriptor = <span class="string">"wsh(multi(2,\
- [73756c7f/48'/0'/0'/2']tpubDCKxNyM3bLgbEX13Mcd8mYxbVg9ajDkWXMh29hMWBurKfVmBfWAM96QVP3zaUcN51HvkZ3ar4VwP82kC8JZhhux8vFQoJintSpVBwpFvyU3/0/*,\
- [f9f62194/48'/0'/0'/2']tpubDDp3ZSH1yCwusRppH7zgSxq2t1VEUyXSeEp8E5aFS8m43MknUjiF1bSLo3CGWAxbDyhF1XowA5ukPzyJZjznYk3kYi6oe7QxtX2euvKWsk4/0/*,\
- [c98b1535/48'/0'/0'/2']tpubDCDi5W4sP6zSnzJeowy8rQDVhBdRARaPhK1axABi8V1661wEPeanpEXj4ZLAUEoikVtoWcyK26TKKJSecSfeKxwHCcRrge9k1ybuiL71z4a/0/*\
- ))"</span>;
- <span class="kw">let </span>change_descriptor = <span class="string">"wsh(multi(2,\
- [73756c7f/48'/0'/0'/2']tpubDCKxNyM3bLgbEX13Mcd8mYxbVg9ajDkWXMh29hMWBurKfVmBfWAM96QVP3zaUcN51HvkZ3ar4VwP82kC8JZhhux8vFQoJintSpVBwpFvyU3/1/*,\
- [f9f62194/48'/0'/0'/2']tpubDDp3ZSH1yCwusRppH7zgSxq2t1VEUyXSeEp8E5aFS8m43MknUjiF1bSLo3CGWAxbDyhF1XowA5ukPzyJZjznYk3kYi6oe7QxtX2euvKWsk4/1/*,\
- [c98b1535/48'/0'/0'/2']tpubDCDi5W4sP6zSnzJeowy8rQDVhBdRARaPhK1axABi8V1661wEPeanpEXj4ZLAUEoikVtoWcyK26TKKJSecSfeKxwHCcRrge9k1ybuiL71z4a/1/*\
- ))"</span>;
-
- <span class="kw">let </span>wallet = get_test_wallet(descriptor, <span class="prelude-val">Some</span>(change_descriptor), Network::Testnet);
- <span class="kw">let </span>export = FullyNodedExport::export_wallet(<span class="kw-2">&</span>wallet, <span class="string">"Test Label"</span>, <span class="bool-val">true</span>).unwrap();
-
- <span class="macro">assert_eq!</span>(export.descriptor(), descriptor);
- <span class="macro">assert_eq!</span>(export.change_descriptor(), <span class="prelude-val">Some</span>(change_descriptor.into()));
- <span class="macro">assert_eq!</span>(export.blockheight, <span class="number">5000</span>);
- <span class="macro">assert_eq!</span>(export.label, <span class="string">"Test Label"</span>);
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_export_to_json() {
- <span class="kw">let </span>descriptor = <span class="string">"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/0/*)"</span>;
- <span class="kw">let </span>change_descriptor = <span class="string">"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/1/*)"</span>;
-
- <span class="kw">let </span>wallet = get_test_wallet(descriptor, <span class="prelude-val">Some</span>(change_descriptor), Network::Bitcoin);
- <span class="kw">let </span>export = FullyNodedExport::export_wallet(<span class="kw-2">&</span>wallet, <span class="string">"Test Label"</span>, <span class="bool-val">true</span>).unwrap();
-
- <span class="macro">assert_eq!</span>(export.to_string(), <span class="string">"{\"descriptor\":\"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44\'/0\'/0\'/0/*)\",\"blockheight\":5000,\"label\":\"Test Label\"}"</span>);
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_export_from_json() {
- <span class="kw">let </span>descriptor = <span class="string">"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/0/*)"</span>;
- <span class="kw">let </span>change_descriptor = <span class="string">"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/1/*)"</span>;
-
- <span class="kw">let </span>import_str = <span class="string">"{\"descriptor\":\"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44\'/0\'/0\'/0/*)\",\"blockheight\":5000,\"label\":\"Test Label\"}"</span>;
- <span class="kw">let </span>export = FullyNodedExport::from_str(import_str).unwrap();
-
- <span class="macro">assert_eq!</span>(export.descriptor(), descriptor);
- <span class="macro">assert_eq!</span>(export.change_descriptor(), <span class="prelude-val">Some</span>(change_descriptor.into()));
- <span class="macro">assert_eq!</span>(export.blockheight, <span class="number">5000</span>);
- <span class="macro">assert_eq!</span>(export.label, <span class="string">"Test Label"</span>);
- }
-}
-</code></pre></div>
-</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Source of the Rust file `crates/bdk/src/wallet/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk/index.html">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
-<a href="#2" id="2">2</a>
-<a href="#3" id="3">3</a>
-<a href="#4" id="4">4</a>
-<a href="#5" id="5">5</a>
-<a href="#6" id="6">6</a>
-<a href="#7" id="7">7</a>
-<a href="#8" id="8">8</a>
-<a href="#9" id="9">9</a>
-<a href="#10" id="10">10</a>
-<a href="#11" id="11">11</a>
-<a href="#12" id="12">12</a>
-<a href="#13" id="13">13</a>
-<a href="#14" id="14">14</a>
-<a href="#15" id="15">15</a>
-<a href="#16" id="16">16</a>
-<a href="#17" id="17">17</a>
-<a href="#18" id="18">18</a>
-<a href="#19" id="19">19</a>
-<a href="#20" id="20">20</a>
-<a href="#21" id="21">21</a>
-<a href="#22" id="22">22</a>
-<a href="#23" id="23">23</a>
-<a href="#24" id="24">24</a>
-<a href="#25" id="25">25</a>
-<a href="#26" id="26">26</a>
-<a href="#27" id="27">27</a>
-<a href="#28" id="28">28</a>
-<a href="#29" id="29">29</a>
-<a href="#30" id="30">30</a>
-<a href="#31" id="31">31</a>
-<a href="#32" id="32">32</a>
-<a href="#33" id="33">33</a>
-<a href="#34" id="34">34</a>
-<a href="#35" id="35">35</a>
-<a href="#36" id="36">36</a>
-<a href="#37" id="37">37</a>
-<a href="#38" id="38">38</a>
-<a href="#39" id="39">39</a>
-<a href="#40" id="40">40</a>
-<a href="#41" id="41">41</a>
-<a href="#42" id="42">42</a>
-<a href="#43" id="43">43</a>
-<a href="#44" id="44">44</a>
-<a href="#45" id="45">45</a>
-<a href="#46" id="46">46</a>
-<a href="#47" id="47">47</a>
-<a href="#48" id="48">48</a>
-<a href="#49" id="49">49</a>
-<a href="#50" id="50">50</a>
-<a href="#51" id="51">51</a>
-<a href="#52" id="52">52</a>
-<a href="#53" id="53">53</a>
-<a href="#54" id="54">54</a>
-<a href="#55" id="55">55</a>
-<a href="#56" id="56">56</a>
-<a href="#57" id="57">57</a>
-<a href="#58" id="58">58</a>
-<a href="#59" id="59">59</a>
-<a href="#60" id="60">60</a>
-<a href="#61" id="61">61</a>
-<a href="#62" id="62">62</a>
-<a href="#63" id="63">63</a>
-<a href="#64" id="64">64</a>
-<a href="#65" id="65">65</a>
-<a href="#66" id="66">66</a>
-<a href="#67" id="67">67</a>
-<a href="#68" id="68">68</a>
-<a href="#69" id="69">69</a>
-<a href="#70" id="70">70</a>
-<a href="#71" id="71">71</a>
-<a href="#72" id="72">72</a>
-<a href="#73" id="73">73</a>
-<a href="#74" id="74">74</a>
-<a href="#75" id="75">75</a>
-<a href="#76" id="76">76</a>
-<a href="#77" id="77">77</a>
-<a href="#78" id="78">78</a>
-<a href="#79" id="79">79</a>
-<a href="#80" id="80">80</a>
-<a href="#81" id="81">81</a>
-<a href="#82" id="82">82</a>
-<a href="#83" id="83">83</a>
-<a href="#84" id="84">84</a>
-<a href="#85" id="85">85</a>
-<a href="#86" id="86">86</a>
-<a href="#87" id="87">87</a>
-<a href="#88" id="88">88</a>
-<a href="#89" id="89">89</a>
-<a href="#90" id="90">90</a>
-<a href="#91" id="91">91</a>
-<a href="#92" id="92">92</a>
-<a href="#93" id="93">93</a>
-<a href="#94" id="94">94</a>
-<a href="#95" id="95">95</a>
-<a href="#96" id="96">96</a>
-<a href="#97" id="97">97</a>
-<a href="#98" id="98">98</a>
-<a href="#99" id="99">99</a>
-<a href="#100" id="100">100</a>
-<a href="#101" id="101">101</a>
-<a href="#102" id="102">102</a>
-<a href="#103" id="103">103</a>
-<a href="#104" id="104">104</a>
-<a href="#105" id="105">105</a>
-<a href="#106" id="106">106</a>
-<a href="#107" id="107">107</a>
-<a href="#108" id="108">108</a>
-<a href="#109" id="109">109</a>
-<a href="#110" id="110">110</a>
-<a href="#111" id="111">111</a>
-<a href="#112" id="112">112</a>
-<a href="#113" id="113">113</a>
-<a href="#114" id="114">114</a>
-<a href="#115" id="115">115</a>
-<a href="#116" id="116">116</a>
-<a href="#117" id="117">117</a>
-<a href="#118" id="118">118</a>
-<a href="#119" id="119">119</a>
-<a href="#120" id="120">120</a>
-<a href="#121" id="121">121</a>
-<a href="#122" id="122">122</a>
-<a href="#123" id="123">123</a>
-<a href="#124" id="124">124</a>
-<a href="#125" id="125">125</a>
-<a href="#126" id="126">126</a>
-<a href="#127" id="127">127</a>
-<a href="#128" id="128">128</a>
-<a href="#129" id="129">129</a>
-<a href="#130" id="130">130</a>
-<a href="#131" id="131">131</a>
-<a href="#132" id="132">132</a>
-<a href="#133" id="133">133</a>
-<a href="#134" id="134">134</a>
-<a href="#135" id="135">135</a>
-<a href="#136" id="136">136</a>
-<a href="#137" id="137">137</a>
-<a href="#138" id="138">138</a>
-<a href="#139" id="139">139</a>
-<a href="#140" id="140">140</a>
-<a href="#141" id="141">141</a>
-<a href="#142" id="142">142</a>
-<a href="#143" id="143">143</a>
-<a href="#144" id="144">144</a>
-<a href="#145" id="145">145</a>
-<a href="#146" id="146">146</a>
-<a href="#147" id="147">147</a>
-<a href="#148" id="148">148</a>
-<a href="#149" id="149">149</a>
-<a href="#150" id="150">150</a>
-<a href="#151" id="151">151</a>
-<a href="#152" id="152">152</a>
-<a href="#153" id="153">153</a>
-<a href="#154" id="154">154</a>
-<a href="#155" id="155">155</a>
-<a href="#156" id="156">156</a>
-<a href="#157" id="157">157</a>
-<a href="#158" id="158">158</a>
-<a href="#159" id="159">159</a>
-<a href="#160" id="160">160</a>
-<a href="#161" id="161">161</a>
-<a href="#162" id="162">162</a>
-<a href="#163" id="163">163</a>
-<a href="#164" id="164">164</a>
-<a href="#165" id="165">165</a>
-<a href="#166" id="166">166</a>
-<a href="#167" id="167">167</a>
-<a href="#168" id="168">168</a>
-<a href="#169" id="169">169</a>
-<a href="#170" id="170">170</a>
-<a href="#171" id="171">171</a>
-<a href="#172" id="172">172</a>
-<a href="#173" id="173">173</a>
-<a href="#174" id="174">174</a>
-<a href="#175" id="175">175</a>
-<a href="#176" id="176">176</a>
-<a href="#177" id="177">177</a>
-<a href="#178" id="178">178</a>
-<a href="#179" id="179">179</a>
-<a href="#180" id="180">180</a>
-<a href="#181" id="181">181</a>
-<a href="#182" id="182">182</a>
-<a href="#183" id="183">183</a>
-<a href="#184" id="184">184</a>
-<a href="#185" id="185">185</a>
-<a href="#186" id="186">186</a>
-<a href="#187" id="187">187</a>
-<a href="#188" id="188">188</a>
-<a href="#189" id="189">189</a>
-<a href="#190" id="190">190</a>
-<a href="#191" id="191">191</a>
-<a href="#192" id="192">192</a>
-<a href="#193" id="193">193</a>
-<a href="#194" id="194">194</a>
-<a href="#195" id="195">195</a>
-<a href="#196" id="196">196</a>
-<a href="#197" id="197">197</a>
-<a href="#198" id="198">198</a>
-<a href="#199" id="199">199</a>
-<a href="#200" id="200">200</a>
-<a href="#201" id="201">201</a>
-<a href="#202" id="202">202</a>
-<a href="#203" id="203">203</a>
-<a href="#204" id="204">204</a>
-<a href="#205" id="205">205</a>
-<a href="#206" id="206">206</a>
-<a href="#207" id="207">207</a>
-<a href="#208" id="208">208</a>
-<a href="#209" id="209">209</a>
-<a href="#210" id="210">210</a>
-<a href="#211" id="211">211</a>
-<a href="#212" id="212">212</a>
-<a href="#213" id="213">213</a>
-<a href="#214" id="214">214</a>
-<a href="#215" id="215">215</a>
-<a href="#216" id="216">216</a>
-<a href="#217" id="217">217</a>
-<a href="#218" id="218">218</a>
-<a href="#219" id="219">219</a>
-<a href="#220" id="220">220</a>
-<a href="#221" id="221">221</a>
-<a href="#222" id="222">222</a>
-<a href="#223" id="223">223</a>
-<a href="#224" id="224">224</a>
-<a href="#225" id="225">225</a>
-<a href="#226" id="226">226</a>
-<a href="#227" id="227">227</a>
-<a href="#228" id="228">228</a>
-<a href="#229" id="229">229</a>
-<a href="#230" id="230">230</a>
-<a href="#231" id="231">231</a>
-<a href="#232" id="232">232</a>
-<a href="#233" id="233">233</a>
-<a href="#234" id="234">234</a>
-<a href="#235" id="235">235</a>
-<a href="#236" id="236">236</a>
-<a href="#237" id="237">237</a>
-<a href="#238" id="238">238</a>
-<a href="#239" id="239">239</a>
-<a href="#240" id="240">240</a>
-<a href="#241" id="241">241</a>
-<a href="#242" id="242">242</a>
-<a href="#243" id="243">243</a>
-<a href="#244" id="244">244</a>
-<a href="#245" id="245">245</a>
-<a href="#246" id="246">246</a>
-<a href="#247" id="247">247</a>
-<a href="#248" id="248">248</a>
-<a href="#249" id="249">249</a>
-<a href="#250" id="250">250</a>
-<a href="#251" id="251">251</a>
-<a href="#252" id="252">252</a>
-<a href="#253" id="253">253</a>
-<a href="#254" id="254">254</a>
-<a href="#255" id="255">255</a>
-<a href="#256" id="256">256</a>
-<a href="#257" id="257">257</a>
-<a href="#258" id="258">258</a>
-<a href="#259" id="259">259</a>
-<a href="#260" id="260">260</a>
-<a href="#261" id="261">261</a>
-<a href="#262" id="262">262</a>
-<a href="#263" id="263">263</a>
-<a href="#264" id="264">264</a>
-<a href="#265" id="265">265</a>
-<a href="#266" id="266">266</a>
-<a href="#267" id="267">267</a>
-<a href="#268" id="268">268</a>
-<a href="#269" id="269">269</a>
-<a href="#270" id="270">270</a>
-<a href="#271" id="271">271</a>
-<a href="#272" id="272">272</a>
-<a href="#273" id="273">273</a>
-<a href="#274" id="274">274</a>
-<a href="#275" id="275">275</a>
-<a href="#276" id="276">276</a>
-<a href="#277" id="277">277</a>
-<a href="#278" id="278">278</a>
-<a href="#279" id="279">279</a>
-<a href="#280" id="280">280</a>
-<a href="#281" id="281">281</a>
-<a href="#282" id="282">282</a>
-<a href="#283" id="283">283</a>
-<a href="#284" id="284">284</a>
-<a href="#285" id="285">285</a>
-<a href="#286" id="286">286</a>
-<a href="#287" id="287">287</a>
-<a href="#288" id="288">288</a>
-<a href="#289" id="289">289</a>
-<a href="#290" id="290">290</a>
-<a href="#291" id="291">291</a>
-<a href="#292" id="292">292</a>
-<a href="#293" id="293">293</a>
-<a href="#294" id="294">294</a>
-<a href="#295" id="295">295</a>
-<a href="#296" id="296">296</a>
-<a href="#297" id="297">297</a>
-<a href="#298" id="298">298</a>
-<a href="#299" id="299">299</a>
-<a href="#300" id="300">300</a>
-<a href="#301" id="301">301</a>
-<a href="#302" id="302">302</a>
-<a href="#303" id="303">303</a>
-<a href="#304" id="304">304</a>
-<a href="#305" id="305">305</a>
-<a href="#306" id="306">306</a>
-<a href="#307" id="307">307</a>
-<a href="#308" id="308">308</a>
-<a href="#309" id="309">309</a>
-<a href="#310" id="310">310</a>
-<a href="#311" id="311">311</a>
-<a href="#312" id="312">312</a>
-<a href="#313" id="313">313</a>
-<a href="#314" id="314">314</a>
-<a href="#315" id="315">315</a>
-<a href="#316" id="316">316</a>
-<a href="#317" id="317">317</a>
-<a href="#318" id="318">318</a>
-<a href="#319" id="319">319</a>
-<a href="#320" id="320">320</a>
-<a href="#321" id="321">321</a>
-<a href="#322" id="322">322</a>
-<a href="#323" id="323">323</a>
-<a href="#324" id="324">324</a>
-<a href="#325" id="325">325</a>
-<a href="#326" id="326">326</a>
-<a href="#327" id="327">327</a>
-<a href="#328" id="328">328</a>
-<a href="#329" id="329">329</a>
-<a href="#330" id="330">330</a>
-<a href="#331" id="331">331</a>
-<a href="#332" id="332">332</a>
-<a href="#333" id="333">333</a>
-<a href="#334" id="334">334</a>
-<a href="#335" id="335">335</a>
-<a href="#336" id="336">336</a>
-<a href="#337" id="337">337</a>
-<a href="#338" id="338">338</a>
-<a href="#339" id="339">339</a>
-<a href="#340" id="340">340</a>
-<a href="#341" id="341">341</a>
-<a href="#342" id="342">342</a>
-<a href="#343" id="343">343</a>
-<a href="#344" id="344">344</a>
-<a href="#345" id="345">345</a>
-<a href="#346" id="346">346</a>
-<a href="#347" id="347">347</a>
-<a href="#348" id="348">348</a>
-<a href="#349" id="349">349</a>
-<a href="#350" id="350">350</a>
-<a href="#351" id="351">351</a>
-<a href="#352" id="352">352</a>
-<a href="#353" id="353">353</a>
-<a href="#354" id="354">354</a>
-<a href="#355" id="355">355</a>
-<a href="#356" id="356">356</a>
-<a href="#357" id="357">357</a>
-<a href="#358" id="358">358</a>
-<a href="#359" id="359">359</a>
-<a href="#360" id="360">360</a>
-<a href="#361" id="361">361</a>
-<a href="#362" id="362">362</a>
-<a href="#363" id="363">363</a>
-<a href="#364" id="364">364</a>
-<a href="#365" id="365">365</a>
-<a href="#366" id="366">366</a>
-<a href="#367" id="367">367</a>
-<a href="#368" id="368">368</a>
-<a href="#369" id="369">369</a>
-<a href="#370" id="370">370</a>
-<a href="#371" id="371">371</a>
-<a href="#372" id="372">372</a>
-<a href="#373" id="373">373</a>
-<a href="#374" id="374">374</a>
-<a href="#375" id="375">375</a>
-<a href="#376" id="376">376</a>
-<a href="#377" id="377">377</a>
-<a href="#378" id="378">378</a>
-<a href="#379" id="379">379</a>
-<a href="#380" id="380">380</a>
-<a href="#381" id="381">381</a>
-<a href="#382" id="382">382</a>
-<a href="#383" id="383">383</a>
-<a href="#384" id="384">384</a>
-<a href="#385" id="385">385</a>
-<a href="#386" id="386">386</a>
-<a href="#387" id="387">387</a>
-<a href="#388" id="388">388</a>
-<a href="#389" id="389">389</a>
-<a href="#390" id="390">390</a>
-<a href="#391" id="391">391</a>
-<a href="#392" id="392">392</a>
-<a href="#393" id="393">393</a>
-<a href="#394" id="394">394</a>
-<a href="#395" id="395">395</a>
-<a href="#396" id="396">396</a>
-<a href="#397" id="397">397</a>
-<a href="#398" id="398">398</a>
-<a href="#399" id="399">399</a>
-<a href="#400" id="400">400</a>
-<a href="#401" id="401">401</a>
-<a href="#402" id="402">402</a>
-<a href="#403" id="403">403</a>
-<a href="#404" id="404">404</a>
-<a href="#405" id="405">405</a>
-<a href="#406" id="406">406</a>
-<a href="#407" id="407">407</a>
-<a href="#408" id="408">408</a>
-<a href="#409" id="409">409</a>
-<a href="#410" id="410">410</a>
-<a href="#411" id="411">411</a>
-<a href="#412" id="412">412</a>
-<a href="#413" id="413">413</a>
-<a href="#414" id="414">414</a>
-<a href="#415" id="415">415</a>
-<a href="#416" id="416">416</a>
-<a href="#417" id="417">417</a>
-<a href="#418" id="418">418</a>
-<a href="#419" id="419">419</a>
-<a href="#420" id="420">420</a>
-<a href="#421" id="421">421</a>
-<a href="#422" id="422">422</a>
-<a href="#423" id="423">423</a>
-<a href="#424" id="424">424</a>
-<a href="#425" id="425">425</a>
-<a href="#426" id="426">426</a>
-<a href="#427" id="427">427</a>
-<a href="#428" id="428">428</a>
-<a href="#429" id="429">429</a>
-<a href="#430" id="430">430</a>
-<a href="#431" id="431">431</a>
-<a href="#432" id="432">432</a>
-<a href="#433" id="433">433</a>
-<a href="#434" id="434">434</a>
-<a href="#435" id="435">435</a>
-<a href="#436" id="436">436</a>
-<a href="#437" id="437">437</a>
-<a href="#438" id="438">438</a>
-<a href="#439" id="439">439</a>
-<a href="#440" id="440">440</a>
-<a href="#441" id="441">441</a>
-<a href="#442" id="442">442</a>
-<a href="#443" id="443">443</a>
-<a href="#444" id="444">444</a>
-<a href="#445" id="445">445</a>
-<a href="#446" id="446">446</a>
-<a href="#447" id="447">447</a>
-<a href="#448" id="448">448</a>
-<a href="#449" id="449">449</a>
-<a href="#450" id="450">450</a>
-<a href="#451" id="451">451</a>
-<a href="#452" id="452">452</a>
-<a href="#453" id="453">453</a>
-<a href="#454" id="454">454</a>
-<a href="#455" id="455">455</a>
-<a href="#456" id="456">456</a>
-<a href="#457" id="457">457</a>
-<a href="#458" id="458">458</a>
-<a href="#459" id="459">459</a>
-<a href="#460" id="460">460</a>
-<a href="#461" id="461">461</a>
-<a href="#462" id="462">462</a>
-<a href="#463" id="463">463</a>
-<a href="#464" id="464">464</a>
-<a href="#465" id="465">465</a>
-<a href="#466" id="466">466</a>
-<a href="#467" id="467">467</a>
-<a href="#468" id="468">468</a>
-<a href="#469" id="469">469</a>
-<a href="#470" id="470">470</a>
-<a href="#471" id="471">471</a>
-<a href="#472" id="472">472</a>
-<a href="#473" id="473">473</a>
-<a href="#474" id="474">474</a>
-<a href="#475" id="475">475</a>
-<a href="#476" id="476">476</a>
-<a href="#477" id="477">477</a>
-<a href="#478" id="478">478</a>
-<a href="#479" id="479">479</a>
-<a href="#480" id="480">480</a>
-<a href="#481" id="481">481</a>
-<a href="#482" id="482">482</a>
-<a href="#483" id="483">483</a>
-<a href="#484" id="484">484</a>
-<a href="#485" id="485">485</a>
-<a href="#486" id="486">486</a>
-<a href="#487" id="487">487</a>
-<a href="#488" id="488">488</a>
-<a href="#489" id="489">489</a>
-<a href="#490" id="490">490</a>
-<a href="#491" id="491">491</a>
-<a href="#492" id="492">492</a>
-<a href="#493" id="493">493</a>
-<a href="#494" id="494">494</a>
-<a href="#495" id="495">495</a>
-<a href="#496" id="496">496</a>
-<a href="#497" id="497">497</a>
-<a href="#498" id="498">498</a>
-<a href="#499" id="499">499</a>
-<a href="#500" id="500">500</a>
-<a href="#501" id="501">501</a>
-<a href="#502" id="502">502</a>
-<a href="#503" id="503">503</a>
-<a href="#504" id="504">504</a>
-<a href="#505" id="505">505</a>
-<a href="#506" id="506">506</a>
-<a href="#507" id="507">507</a>
-<a href="#508" id="508">508</a>
-<a href="#509" id="509">509</a>
-<a href="#510" id="510">510</a>
-<a href="#511" id="511">511</a>
-<a href="#512" id="512">512</a>
-<a href="#513" id="513">513</a>
-<a href="#514" id="514">514</a>
-<a href="#515" id="515">515</a>
-<a href="#516" id="516">516</a>
-<a href="#517" id="517">517</a>
-<a href="#518" id="518">518</a>
-<a href="#519" id="519">519</a>
-<a href="#520" id="520">520</a>
-<a href="#521" id="521">521</a>
-<a href="#522" id="522">522</a>
-<a href="#523" id="523">523</a>
-<a href="#524" id="524">524</a>
-<a href="#525" id="525">525</a>
-<a href="#526" id="526">526</a>
-<a href="#527" id="527">527</a>
-<a href="#528" id="528">528</a>
-<a href="#529" id="529">529</a>
-<a href="#530" id="530">530</a>
-<a href="#531" id="531">531</a>
-<a href="#532" id="532">532</a>
-<a href="#533" id="533">533</a>
-<a href="#534" id="534">534</a>
-<a href="#535" id="535">535</a>
-<a href="#536" id="536">536</a>
-<a href="#537" id="537">537</a>
-<a href="#538" id="538">538</a>
-<a href="#539" id="539">539</a>
-<a href="#540" id="540">540</a>
-<a href="#541" id="541">541</a>
-<a href="#542" id="542">542</a>
-<a href="#543" id="543">543</a>
-<a href="#544" id="544">544</a>
-<a href="#545" id="545">545</a>
-<a href="#546" id="546">546</a>
-<a href="#547" id="547">547</a>
-<a href="#548" id="548">548</a>
-<a href="#549" id="549">549</a>
-<a href="#550" id="550">550</a>
-<a href="#551" id="551">551</a>
-<a href="#552" id="552">552</a>
-<a href="#553" id="553">553</a>
-<a href="#554" id="554">554</a>
-<a href="#555" id="555">555</a>
-<a href="#556" id="556">556</a>
-<a href="#557" id="557">557</a>
-<a href="#558" id="558">558</a>
-<a href="#559" id="559">559</a>
-<a href="#560" id="560">560</a>
-<a href="#561" id="561">561</a>
-<a href="#562" id="562">562</a>
-<a href="#563" id="563">563</a>
-<a href="#564" id="564">564</a>
-<a href="#565" id="565">565</a>
-<a href="#566" id="566">566</a>
-<a href="#567" id="567">567</a>
-<a href="#568" id="568">568</a>
-<a href="#569" id="569">569</a>
-<a href="#570" id="570">570</a>
-<a href="#571" id="571">571</a>
-<a href="#572" id="572">572</a>
-<a href="#573" id="573">573</a>
-<a href="#574" id="574">574</a>
-<a href="#575" id="575">575</a>
-<a href="#576" id="576">576</a>
-<a href="#577" id="577">577</a>
-<a href="#578" id="578">578</a>
-<a href="#579" id="579">579</a>
-<a href="#580" id="580">580</a>
-<a href="#581" id="581">581</a>
-<a href="#582" id="582">582</a>
-<a href="#583" id="583">583</a>
-<a href="#584" id="584">584</a>
-<a href="#585" id="585">585</a>
-<a href="#586" id="586">586</a>
-<a href="#587" id="587">587</a>
-<a href="#588" id="588">588</a>
-<a href="#589" id="589">589</a>
-<a href="#590" id="590">590</a>
-<a href="#591" id="591">591</a>
-<a href="#592" id="592">592</a>
-<a href="#593" id="593">593</a>
-<a href="#594" id="594">594</a>
-<a href="#595" id="595">595</a>
-<a href="#596" id="596">596</a>
-<a href="#597" id="597">597</a>
-<a href="#598" id="598">598</a>
-<a href="#599" id="599">599</a>
-<a href="#600" id="600">600</a>
-<a href="#601" id="601">601</a>
-<a href="#602" id="602">602</a>
-<a href="#603" id="603">603</a>
-<a href="#604" id="604">604</a>
-<a href="#605" id="605">605</a>
-<a href="#606" id="606">606</a>
-<a href="#607" id="607">607</a>
-<a href="#608" id="608">608</a>
-<a href="#609" id="609">609</a>
-<a href="#610" id="610">610</a>
-<a href="#611" id="611">611</a>
-<a href="#612" id="612">612</a>
-<a href="#613" id="613">613</a>
-<a href="#614" id="614">614</a>
-<a href="#615" id="615">615</a>
-<a href="#616" id="616">616</a>
-<a href="#617" id="617">617</a>
-<a href="#618" id="618">618</a>
-<a href="#619" id="619">619</a>
-<a href="#620" id="620">620</a>
-<a href="#621" id="621">621</a>
-<a href="#622" id="622">622</a>
-<a href="#623" id="623">623</a>
-<a href="#624" id="624">624</a>
-<a href="#625" id="625">625</a>
-<a href="#626" id="626">626</a>
-<a href="#627" id="627">627</a>
-<a href="#628" id="628">628</a>
-<a href="#629" id="629">629</a>
-<a href="#630" id="630">630</a>
-<a href="#631" id="631">631</a>
-<a href="#632" id="632">632</a>
-<a href="#633" id="633">633</a>
-<a href="#634" id="634">634</a>
-<a href="#635" id="635">635</a>
-<a href="#636" id="636">636</a>
-<a href="#637" id="637">637</a>
-<a href="#638" id="638">638</a>
-<a href="#639" id="639">639</a>
-<a href="#640" id="640">640</a>
-<a href="#641" id="641">641</a>
-<a href="#642" id="642">642</a>
-<a href="#643" id="643">643</a>
-<a href="#644" id="644">644</a>
-<a href="#645" id="645">645</a>
-<a href="#646" id="646">646</a>
-<a href="#647" id="647">647</a>
-<a href="#648" id="648">648</a>
-<a href="#649" id="649">649</a>
-<a href="#650" id="650">650</a>
-<a href="#651" id="651">651</a>
-<a href="#652" id="652">652</a>
-<a href="#653" id="653">653</a>
-<a href="#654" id="654">654</a>
-<a href="#655" id="655">655</a>
-<a href="#656" id="656">656</a>
-<a href="#657" id="657">657</a>
-<a href="#658" id="658">658</a>
-<a href="#659" id="659">659</a>
-<a href="#660" id="660">660</a>
-<a href="#661" id="661">661</a>
-<a href="#662" id="662">662</a>
-<a href="#663" id="663">663</a>
-<a href="#664" id="664">664</a>
-<a href="#665" id="665">665</a>
-<a href="#666" id="666">666</a>
-<a href="#667" id="667">667</a>
-<a href="#668" id="668">668</a>
-<a href="#669" id="669">669</a>
-<a href="#670" id="670">670</a>
-<a href="#671" id="671">671</a>
-<a href="#672" id="672">672</a>
-<a href="#673" id="673">673</a>
-<a href="#674" id="674">674</a>
-<a href="#675" id="675">675</a>
-<a href="#676" id="676">676</a>
-<a href="#677" id="677">677</a>
-<a href="#678" id="678">678</a>
-<a href="#679" id="679">679</a>
-<a href="#680" id="680">680</a>
-<a href="#681" id="681">681</a>
-<a href="#682" id="682">682</a>
-<a href="#683" id="683">683</a>
-<a href="#684" id="684">684</a>
-<a href="#685" id="685">685</a>
-<a href="#686" id="686">686</a>
-<a href="#687" id="687">687</a>
-<a href="#688" id="688">688</a>
-<a href="#689" id="689">689</a>
-<a href="#690" id="690">690</a>
-<a href="#691" id="691">691</a>
-<a href="#692" id="692">692</a>
-<a href="#693" id="693">693</a>
-<a href="#694" id="694">694</a>
-<a href="#695" id="695">695</a>
-<a href="#696" id="696">696</a>
-<a href="#697" id="697">697</a>
-<a href="#698" id="698">698</a>
-<a href="#699" id="699">699</a>
-<a href="#700" id="700">700</a>
-<a href="#701" id="701">701</a>
-<a href="#702" id="702">702</a>
-<a href="#703" id="703">703</a>
-<a href="#704" id="704">704</a>
-<a href="#705" id="705">705</a>
-<a href="#706" id="706">706</a>
-<a href="#707" id="707">707</a>
-<a href="#708" id="708">708</a>
-<a href="#709" id="709">709</a>
-<a href="#710" id="710">710</a>
-<a href="#711" id="711">711</a>
-<a href="#712" id="712">712</a>
-<a href="#713" id="713">713</a>
-<a href="#714" id="714">714</a>
-<a href="#715" id="715">715</a>
-<a href="#716" id="716">716</a>
-<a href="#717" id="717">717</a>
-<a href="#718" id="718">718</a>
-<a href="#719" id="719">719</a>
-<a href="#720" id="720">720</a>
-<a href="#721" id="721">721</a>
-<a href="#722" id="722">722</a>
-<a href="#723" id="723">723</a>
-<a href="#724" id="724">724</a>
-<a href="#725" id="725">725</a>
-<a href="#726" id="726">726</a>
-<a href="#727" id="727">727</a>
-<a href="#728" id="728">728</a>
-<a href="#729" id="729">729</a>
-<a href="#730" id="730">730</a>
-<a href="#731" id="731">731</a>
-<a href="#732" id="732">732</a>
-<a href="#733" id="733">733</a>
-<a href="#734" id="734">734</a>
-<a href="#735" id="735">735</a>
-<a href="#736" id="736">736</a>
-<a href="#737" id="737">737</a>
-<a href="#738" id="738">738</a>
-<a href="#739" id="739">739</a>
-<a href="#740" id="740">740</a>
-<a href="#741" id="741">741</a>
-<a href="#742" id="742">742</a>
-<a href="#743" id="743">743</a>
-<a href="#744" id="744">744</a>
-<a href="#745" id="745">745</a>
-<a href="#746" id="746">746</a>
-<a href="#747" id="747">747</a>
-<a href="#748" id="748">748</a>
-<a href="#749" id="749">749</a>
-<a href="#750" id="750">750</a>
-<a href="#751" id="751">751</a>
-<a href="#752" id="752">752</a>
-<a href="#753" id="753">753</a>
-<a href="#754" id="754">754</a>
-<a href="#755" id="755">755</a>
-<a href="#756" id="756">756</a>
-<a href="#757" id="757">757</a>
-<a href="#758" id="758">758</a>
-<a href="#759" id="759">759</a>
-<a href="#760" id="760">760</a>
-<a href="#761" id="761">761</a>
-<a href="#762" id="762">762</a>
-<a href="#763" id="763">763</a>
-<a href="#764" id="764">764</a>
-<a href="#765" id="765">765</a>
-<a href="#766" id="766">766</a>
-<a href="#767" id="767">767</a>
-<a href="#768" id="768">768</a>
-<a href="#769" id="769">769</a>
-<a href="#770" id="770">770</a>
-<a href="#771" id="771">771</a>
-<a href="#772" id="772">772</a>
-<a href="#773" id="773">773</a>
-<a href="#774" id="774">774</a>
-<a href="#775" id="775">775</a>
-<a href="#776" id="776">776</a>
-<a href="#777" id="777">777</a>
-<a href="#778" id="778">778</a>
-<a href="#779" id="779">779</a>
-<a href="#780" id="780">780</a>
-<a href="#781" id="781">781</a>
-<a href="#782" id="782">782</a>
-<a href="#783" id="783">783</a>
-<a href="#784" id="784">784</a>
-<a href="#785" id="785">785</a>
-<a href="#786" id="786">786</a>
-<a href="#787" id="787">787</a>
-<a href="#788" id="788">788</a>
-<a href="#789" id="789">789</a>
-<a href="#790" id="790">790</a>
-<a href="#791" id="791">791</a>
-<a href="#792" id="792">792</a>
-<a href="#793" id="793">793</a>
-<a href="#794" id="794">794</a>
-<a href="#795" id="795">795</a>
-<a href="#796" id="796">796</a>
-<a href="#797" id="797">797</a>
-<a href="#798" id="798">798</a>
-<a href="#799" id="799">799</a>
-<a href="#800" id="800">800</a>
-<a href="#801" id="801">801</a>
-<a href="#802" id="802">802</a>
-<a href="#803" id="803">803</a>
-<a href="#804" id="804">804</a>
-<a href="#805" id="805">805</a>
-<a href="#806" id="806">806</a>
-<a href="#807" id="807">807</a>
-<a href="#808" id="808">808</a>
-<a href="#809" id="809">809</a>
-<a href="#810" id="810">810</a>
-<a href="#811" id="811">811</a>
-<a href="#812" id="812">812</a>
-<a href="#813" id="813">813</a>
-<a href="#814" id="814">814</a>
-<a href="#815" id="815">815</a>
-<a href="#816" id="816">816</a>
-<a href="#817" id="817">817</a>
-<a href="#818" id="818">818</a>
-<a href="#819" id="819">819</a>
-<a href="#820" id="820">820</a>
-<a href="#821" id="821">821</a>
-<a href="#822" id="822">822</a>
-<a href="#823" id="823">823</a>
-<a href="#824" id="824">824</a>
-<a href="#825" id="825">825</a>
-<a href="#826" id="826">826</a>
-<a href="#827" id="827">827</a>
-<a href="#828" id="828">828</a>
-<a href="#829" id="829">829</a>
-<a href="#830" id="830">830</a>
-<a href="#831" id="831">831</a>
-<a href="#832" id="832">832</a>
-<a href="#833" id="833">833</a>
-<a href="#834" id="834">834</a>
-<a href="#835" id="835">835</a>
-<a href="#836" id="836">836</a>
-<a href="#837" id="837">837</a>
-<a href="#838" id="838">838</a>
-<a href="#839" id="839">839</a>
-<a href="#840" id="840">840</a>
-<a href="#841" id="841">841</a>
-<a href="#842" id="842">842</a>
-<a href="#843" id="843">843</a>
-<a href="#844" id="844">844</a>
-<a href="#845" id="845">845</a>
-<a href="#846" id="846">846</a>
-<a href="#847" id="847">847</a>
-<a href="#848" id="848">848</a>
-<a href="#849" id="849">849</a>
-<a href="#850" id="850">850</a>
-<a href="#851" id="851">851</a>
-<a href="#852" id="852">852</a>
-<a href="#853" id="853">853</a>
-<a href="#854" id="854">854</a>
-<a href="#855" id="855">855</a>
-<a href="#856" id="856">856</a>
-<a href="#857" id="857">857</a>
-<a href="#858" id="858">858</a>
-<a href="#859" id="859">859</a>
-<a href="#860" id="860">860</a>
-<a href="#861" id="861">861</a>
-<a href="#862" id="862">862</a>
-<a href="#863" id="863">863</a>
-<a href="#864" id="864">864</a>
-<a href="#865" id="865">865</a>
-<a href="#866" id="866">866</a>
-<a href="#867" id="867">867</a>
-<a href="#868" id="868">868</a>
-<a href="#869" id="869">869</a>
-<a href="#870" id="870">870</a>
-<a href="#871" id="871">871</a>
-<a href="#872" id="872">872</a>
-<a href="#873" id="873">873</a>
-<a href="#874" id="874">874</a>
-<a href="#875" id="875">875</a>
-<a href="#876" id="876">876</a>
-<a href="#877" id="877">877</a>
-<a href="#878" id="878">878</a>
-<a href="#879" id="879">879</a>
-<a href="#880" id="880">880</a>
-<a href="#881" id="881">881</a>
-<a href="#882" id="882">882</a>
-<a href="#883" id="883">883</a>
-<a href="#884" id="884">884</a>
-<a href="#885" id="885">885</a>
-<a href="#886" id="886">886</a>
-<a href="#887" id="887">887</a>
-<a href="#888" id="888">888</a>
-<a href="#889" id="889">889</a>
-<a href="#890" id="890">890</a>
-<a href="#891" id="891">891</a>
-<a href="#892" id="892">892</a>
-<a href="#893" id="893">893</a>
-<a href="#894" id="894">894</a>
-<a href="#895" id="895">895</a>
-<a href="#896" id="896">896</a>
-<a href="#897" id="897">897</a>
-<a href="#898" id="898">898</a>
-<a href="#899" id="899">899</a>
-<a href="#900" id="900">900</a>
-<a href="#901" id="901">901</a>
-<a href="#902" id="902">902</a>
-<a href="#903" id="903">903</a>
-<a href="#904" id="904">904</a>
-<a href="#905" id="905">905</a>
-<a href="#906" id="906">906</a>
-<a href="#907" id="907">907</a>
-<a href="#908" id="908">908</a>
-<a href="#909" id="909">909</a>
-<a href="#910" id="910">910</a>
-<a href="#911" id="911">911</a>
-<a href="#912" id="912">912</a>
-<a href="#913" id="913">913</a>
-<a href="#914" id="914">914</a>
-<a href="#915" id="915">915</a>
-<a href="#916" id="916">916</a>
-<a href="#917" id="917">917</a>
-<a href="#918" id="918">918</a>
-<a href="#919" id="919">919</a>
-<a href="#920" id="920">920</a>
-<a href="#921" id="921">921</a>
-<a href="#922" id="922">922</a>
-<a href="#923" id="923">923</a>
-<a href="#924" id="924">924</a>
-<a href="#925" id="925">925</a>
-<a href="#926" id="926">926</a>
-<a href="#927" id="927">927</a>
-<a href="#928" id="928">928</a>
-<a href="#929" id="929">929</a>
-<a href="#930" id="930">930</a>
-<a href="#931" id="931">931</a>
-<a href="#932" id="932">932</a>
-<a href="#933" id="933">933</a>
-<a href="#934" id="934">934</a>
-<a href="#935" id="935">935</a>
-<a href="#936" id="936">936</a>
-<a href="#937" id="937">937</a>
-<a href="#938" id="938">938</a>
-<a href="#939" id="939">939</a>
-<a href="#940" id="940">940</a>
-<a href="#941" id="941">941</a>
-<a href="#942" id="942">942</a>
-<a href="#943" id="943">943</a>
-<a href="#944" id="944">944</a>
-<a href="#945" id="945">945</a>
-<a href="#946" id="946">946</a>
-<a href="#947" id="947">947</a>
-<a href="#948" id="948">948</a>
-<a href="#949" id="949">949</a>
-<a href="#950" id="950">950</a>
-<a href="#951" id="951">951</a>
-<a href="#952" id="952">952</a>
-<a href="#953" id="953">953</a>
-<a href="#954" id="954">954</a>
-<a href="#955" id="955">955</a>
-<a href="#956" id="956">956</a>
-<a href="#957" id="957">957</a>
-<a href="#958" id="958">958</a>
-<a href="#959" id="959">959</a>
-<a href="#960" id="960">960</a>
-<a href="#961" id="961">961</a>
-<a href="#962" id="962">962</a>
-<a href="#963" id="963">963</a>
-<a href="#964" id="964">964</a>
-<a href="#965" id="965">965</a>
-<a href="#966" id="966">966</a>
-<a href="#967" id="967">967</a>
-<a href="#968" id="968">968</a>
-<a href="#969" id="969">969</a>
-<a href="#970" id="970">970</a>
-<a href="#971" id="971">971</a>
-<a href="#972" id="972">972</a>
-<a href="#973" id="973">973</a>
-<a href="#974" id="974">974</a>
-<a href="#975" id="975">975</a>
-<a href="#976" id="976">976</a>
-<a href="#977" id="977">977</a>
-<a href="#978" id="978">978</a>
-<a href="#979" id="979">979</a>
-<a href="#980" id="980">980</a>
-<a href="#981" id="981">981</a>
-<a href="#982" id="982">982</a>
-<a href="#983" id="983">983</a>
-<a href="#984" id="984">984</a>
-<a href="#985" id="985">985</a>
-<a href="#986" id="986">986</a>
-<a href="#987" id="987">987</a>
-<a href="#988" id="988">988</a>
-<a href="#989" id="989">989</a>
-<a href="#990" id="990">990</a>
-<a href="#991" id="991">991</a>
-<a href="#992" id="992">992</a>
-<a href="#993" id="993">993</a>
-<a href="#994" id="994">994</a>
-<a href="#995" id="995">995</a>
-<a href="#996" id="996">996</a>
-<a href="#997" id="997">997</a>
-<a href="#998" id="998">998</a>
-<a href="#999" id="999">999</a>
-<a href="#1000" id="1000">1000</a>
-<a href="#1001" id="1001">1001</a>
-<a href="#1002" id="1002">1002</a>
-<a href="#1003" id="1003">1003</a>
-<a href="#1004" id="1004">1004</a>
-<a href="#1005" id="1005">1005</a>
-<a href="#1006" id="1006">1006</a>
-<a href="#1007" id="1007">1007</a>
-<a href="#1008" id="1008">1008</a>
-<a href="#1009" id="1009">1009</a>
-<a href="#1010" id="1010">1010</a>
-<a href="#1011" id="1011">1011</a>
-<a href="#1012" id="1012">1012</a>
-<a href="#1013" id="1013">1013</a>
-<a href="#1014" id="1014">1014</a>
-<a href="#1015" id="1015">1015</a>
-<a href="#1016" id="1016">1016</a>
-<a href="#1017" id="1017">1017</a>
-<a href="#1018" id="1018">1018</a>
-<a href="#1019" id="1019">1019</a>
-<a href="#1020" id="1020">1020</a>
-<a href="#1021" id="1021">1021</a>
-<a href="#1022" id="1022">1022</a>
-<a href="#1023" id="1023">1023</a>
-<a href="#1024" id="1024">1024</a>
-<a href="#1025" id="1025">1025</a>
-<a href="#1026" id="1026">1026</a>
-<a href="#1027" id="1027">1027</a>
-<a href="#1028" id="1028">1028</a>
-<a href="#1029" id="1029">1029</a>
-<a href="#1030" id="1030">1030</a>
-<a href="#1031" id="1031">1031</a>
-<a href="#1032" id="1032">1032</a>
-<a href="#1033" id="1033">1033</a>
-<a href="#1034" id="1034">1034</a>
-<a href="#1035" id="1035">1035</a>
-<a href="#1036" id="1036">1036</a>
-<a href="#1037" id="1037">1037</a>
-<a href="#1038" id="1038">1038</a>
-<a href="#1039" id="1039">1039</a>
-<a href="#1040" id="1040">1040</a>
-<a href="#1041" id="1041">1041</a>
-<a href="#1042" id="1042">1042</a>
-<a href="#1043" id="1043">1043</a>
-<a href="#1044" id="1044">1044</a>
-<a href="#1045" id="1045">1045</a>
-<a href="#1046" id="1046">1046</a>
-<a href="#1047" id="1047">1047</a>
-<a href="#1048" id="1048">1048</a>
-<a href="#1049" id="1049">1049</a>
-<a href="#1050" id="1050">1050</a>
-<a href="#1051" id="1051">1051</a>
-<a href="#1052" id="1052">1052</a>
-<a href="#1053" id="1053">1053</a>
-<a href="#1054" id="1054">1054</a>
-<a href="#1055" id="1055">1055</a>
-<a href="#1056" id="1056">1056</a>
-<a href="#1057" id="1057">1057</a>
-<a href="#1058" id="1058">1058</a>
-<a href="#1059" id="1059">1059</a>
-<a href="#1060" id="1060">1060</a>
-<a href="#1061" id="1061">1061</a>
-<a href="#1062" id="1062">1062</a>
-<a href="#1063" id="1063">1063</a>
-<a href="#1064" id="1064">1064</a>
-<a href="#1065" id="1065">1065</a>
-<a href="#1066" id="1066">1066</a>
-<a href="#1067" id="1067">1067</a>
-<a href="#1068" id="1068">1068</a>
-<a href="#1069" id="1069">1069</a>
-<a href="#1070" id="1070">1070</a>
-<a href="#1071" id="1071">1071</a>
-<a href="#1072" id="1072">1072</a>
-<a href="#1073" id="1073">1073</a>
-<a href="#1074" id="1074">1074</a>
-<a href="#1075" id="1075">1075</a>
-<a href="#1076" id="1076">1076</a>
-<a href="#1077" id="1077">1077</a>
-<a href="#1078" id="1078">1078</a>
-<a href="#1079" id="1079">1079</a>
-<a href="#1080" id="1080">1080</a>
-<a href="#1081" id="1081">1081</a>
-<a href="#1082" id="1082">1082</a>
-<a href="#1083" id="1083">1083</a>
-<a href="#1084" id="1084">1084</a>
-<a href="#1085" id="1085">1085</a>
-<a href="#1086" id="1086">1086</a>
-<a href="#1087" id="1087">1087</a>
-<a href="#1088" id="1088">1088</a>
-<a href="#1089" id="1089">1089</a>
-<a href="#1090" id="1090">1090</a>
-<a href="#1091" id="1091">1091</a>
-<a href="#1092" id="1092">1092</a>
-<a href="#1093" id="1093">1093</a>
-<a href="#1094" id="1094">1094</a>
-<a href="#1095" id="1095">1095</a>
-<a href="#1096" id="1096">1096</a>
-<a href="#1097" id="1097">1097</a>
-<a href="#1098" id="1098">1098</a>
-<a href="#1099" id="1099">1099</a>
-<a href="#1100" id="1100">1100</a>
-<a href="#1101" id="1101">1101</a>
-<a href="#1102" id="1102">1102</a>
-<a href="#1103" id="1103">1103</a>
-<a href="#1104" id="1104">1104</a>
-<a href="#1105" id="1105">1105</a>
-<a href="#1106" id="1106">1106</a>
-<a href="#1107" id="1107">1107</a>
-<a href="#1108" id="1108">1108</a>
-<a href="#1109" id="1109">1109</a>
-<a href="#1110" id="1110">1110</a>
-<a href="#1111" id="1111">1111</a>
-<a href="#1112" id="1112">1112</a>
-<a href="#1113" id="1113">1113</a>
-<a href="#1114" id="1114">1114</a>
-<a href="#1115" id="1115">1115</a>
-<a href="#1116" id="1116">1116</a>
-<a href="#1117" id="1117">1117</a>
-<a href="#1118" id="1118">1118</a>
-<a href="#1119" id="1119">1119</a>
-<a href="#1120" id="1120">1120</a>
-<a href="#1121" id="1121">1121</a>
-<a href="#1122" id="1122">1122</a>
-<a href="#1123" id="1123">1123</a>
-<a href="#1124" id="1124">1124</a>
-<a href="#1125" id="1125">1125</a>
-<a href="#1126" id="1126">1126</a>
-<a href="#1127" id="1127">1127</a>
-<a href="#1128" id="1128">1128</a>
-<a href="#1129" id="1129">1129</a>
-<a href="#1130" id="1130">1130</a>
-<a href="#1131" id="1131">1131</a>
-<a href="#1132" id="1132">1132</a>
-<a href="#1133" id="1133">1133</a>
-<a href="#1134" id="1134">1134</a>
-<a href="#1135" id="1135">1135</a>
-<a href="#1136" id="1136">1136</a>
-<a href="#1137" id="1137">1137</a>
-<a href="#1138" id="1138">1138</a>
-<a href="#1139" id="1139">1139</a>
-<a href="#1140" id="1140">1140</a>
-<a href="#1141" id="1141">1141</a>
-<a href="#1142" id="1142">1142</a>
-<a href="#1143" id="1143">1143</a>
-<a href="#1144" id="1144">1144</a>
-<a href="#1145" id="1145">1145</a>
-<a href="#1146" id="1146">1146</a>
-<a href="#1147" id="1147">1147</a>
-<a href="#1148" id="1148">1148</a>
-<a href="#1149" id="1149">1149</a>
-<a href="#1150" id="1150">1150</a>
-<a href="#1151" id="1151">1151</a>
-<a href="#1152" id="1152">1152</a>
-<a href="#1153" id="1153">1153</a>
-<a href="#1154" id="1154">1154</a>
-<a href="#1155" id="1155">1155</a>
-<a href="#1156" id="1156">1156</a>
-<a href="#1157" id="1157">1157</a>
-<a href="#1158" id="1158">1158</a>
-<a href="#1159" id="1159">1159</a>
-<a href="#1160" id="1160">1160</a>
-<a href="#1161" id="1161">1161</a>
-<a href="#1162" id="1162">1162</a>
-<a href="#1163" id="1163">1163</a>
-<a href="#1164" id="1164">1164</a>
-<a href="#1165" id="1165">1165</a>
-<a href="#1166" id="1166">1166</a>
-<a href="#1167" id="1167">1167</a>
-<a href="#1168" id="1168">1168</a>
-<a href="#1169" id="1169">1169</a>
-<a href="#1170" id="1170">1170</a>
-<a href="#1171" id="1171">1171</a>
-<a href="#1172" id="1172">1172</a>
-<a href="#1173" id="1173">1173</a>
-<a href="#1174" id="1174">1174</a>
-<a href="#1175" id="1175">1175</a>
-<a href="#1176" id="1176">1176</a>
-<a href="#1177" id="1177">1177</a>
-<a href="#1178" id="1178">1178</a>
-<a href="#1179" id="1179">1179</a>
-<a href="#1180" id="1180">1180</a>
-<a href="#1181" id="1181">1181</a>
-<a href="#1182" id="1182">1182</a>
-<a href="#1183" id="1183">1183</a>
-<a href="#1184" id="1184">1184</a>
-<a href="#1185" id="1185">1185</a>
-<a href="#1186" id="1186">1186</a>
-<a href="#1187" id="1187">1187</a>
-<a href="#1188" id="1188">1188</a>
-<a href="#1189" id="1189">1189</a>
-<a href="#1190" id="1190">1190</a>
-<a href="#1191" id="1191">1191</a>
-<a href="#1192" id="1192">1192</a>
-<a href="#1193" id="1193">1193</a>
-<a href="#1194" id="1194">1194</a>
-<a href="#1195" id="1195">1195</a>
-<a href="#1196" id="1196">1196</a>
-<a href="#1197" id="1197">1197</a>
-<a href="#1198" id="1198">1198</a>
-<a href="#1199" id="1199">1199</a>
-<a href="#1200" id="1200">1200</a>
-<a href="#1201" id="1201">1201</a>
-<a href="#1202" id="1202">1202</a>
-<a href="#1203" id="1203">1203</a>
-<a href="#1204" id="1204">1204</a>
-<a href="#1205" id="1205">1205</a>
-<a href="#1206" id="1206">1206</a>
-<a href="#1207" id="1207">1207</a>
-<a href="#1208" id="1208">1208</a>
-<a href="#1209" id="1209">1209</a>
-<a href="#1210" id="1210">1210</a>
-<a href="#1211" id="1211">1211</a>
-<a href="#1212" id="1212">1212</a>
-<a href="#1213" id="1213">1213</a>
-<a href="#1214" id="1214">1214</a>
-<a href="#1215" id="1215">1215</a>
-<a href="#1216" id="1216">1216</a>
-<a href="#1217" id="1217">1217</a>
-<a href="#1218" id="1218">1218</a>
-<a href="#1219" id="1219">1219</a>
-<a href="#1220" id="1220">1220</a>
-<a href="#1221" id="1221">1221</a>
-<a href="#1222" id="1222">1222</a>
-<a href="#1223" id="1223">1223</a>
-<a href="#1224" id="1224">1224</a>
-<a href="#1225" id="1225">1225</a>
-<a href="#1226" id="1226">1226</a>
-<a href="#1227" id="1227">1227</a>
-<a href="#1228" id="1228">1228</a>
-<a href="#1229" id="1229">1229</a>
-<a href="#1230" id="1230">1230</a>
-<a href="#1231" id="1231">1231</a>
-<a href="#1232" id="1232">1232</a>
-<a href="#1233" id="1233">1233</a>
-<a href="#1234" id="1234">1234</a>
-<a href="#1235" id="1235">1235</a>
-<a href="#1236" id="1236">1236</a>
-<a href="#1237" id="1237">1237</a>
-<a href="#1238" id="1238">1238</a>
-<a href="#1239" id="1239">1239</a>
-<a href="#1240" id="1240">1240</a>
-<a href="#1241" id="1241">1241</a>
-<a href="#1242" id="1242">1242</a>
-<a href="#1243" id="1243">1243</a>
-<a href="#1244" id="1244">1244</a>
-<a href="#1245" id="1245">1245</a>
-<a href="#1246" id="1246">1246</a>
-<a href="#1247" id="1247">1247</a>
-<a href="#1248" id="1248">1248</a>
-<a href="#1249" id="1249">1249</a>
-<a href="#1250" id="1250">1250</a>
-<a href="#1251" id="1251">1251</a>
-<a href="#1252" id="1252">1252</a>
-<a href="#1253" id="1253">1253</a>
-<a href="#1254" id="1254">1254</a>
-<a href="#1255" id="1255">1255</a>
-<a href="#1256" id="1256">1256</a>
-<a href="#1257" id="1257">1257</a>
-<a href="#1258" id="1258">1258</a>
-<a href="#1259" id="1259">1259</a>
-<a href="#1260" id="1260">1260</a>
-<a href="#1261" id="1261">1261</a>
-<a href="#1262" id="1262">1262</a>
-<a href="#1263" id="1263">1263</a>
-<a href="#1264" id="1264">1264</a>
-<a href="#1265" id="1265">1265</a>
-<a href="#1266" id="1266">1266</a>
-<a href="#1267" id="1267">1267</a>
-<a href="#1268" id="1268">1268</a>
-<a href="#1269" id="1269">1269</a>
-<a href="#1270" id="1270">1270</a>
-<a href="#1271" id="1271">1271</a>
-<a href="#1272" id="1272">1272</a>
-<a href="#1273" id="1273">1273</a>
-<a href="#1274" id="1274">1274</a>
-<a href="#1275" id="1275">1275</a>
-<a href="#1276" id="1276">1276</a>
-<a href="#1277" id="1277">1277</a>
-<a href="#1278" id="1278">1278</a>
-<a href="#1279" id="1279">1279</a>
-<a href="#1280" id="1280">1280</a>
-<a href="#1281" id="1281">1281</a>
-<a href="#1282" id="1282">1282</a>
-<a href="#1283" id="1283">1283</a>
-<a href="#1284" id="1284">1284</a>
-<a href="#1285" id="1285">1285</a>
-<a href="#1286" id="1286">1286</a>
-<a href="#1287" id="1287">1287</a>
-<a href="#1288" id="1288">1288</a>
-<a href="#1289" id="1289">1289</a>
-<a href="#1290" id="1290">1290</a>
-<a href="#1291" id="1291">1291</a>
-<a href="#1292" id="1292">1292</a>
-<a href="#1293" id="1293">1293</a>
-<a href="#1294" id="1294">1294</a>
-<a href="#1295" id="1295">1295</a>
-<a href="#1296" id="1296">1296</a>
-<a href="#1297" id="1297">1297</a>
-<a href="#1298" id="1298">1298</a>
-<a href="#1299" id="1299">1299</a>
-<a href="#1300" id="1300">1300</a>
-<a href="#1301" id="1301">1301</a>
-<a href="#1302" id="1302">1302</a>
-<a href="#1303" id="1303">1303</a>
-<a href="#1304" id="1304">1304</a>
-<a href="#1305" id="1305">1305</a>
-<a href="#1306" id="1306">1306</a>
-<a href="#1307" id="1307">1307</a>
-<a href="#1308" id="1308">1308</a>
-<a href="#1309" id="1309">1309</a>
-<a href="#1310" id="1310">1310</a>
-<a href="#1311" id="1311">1311</a>
-<a href="#1312" id="1312">1312</a>
-<a href="#1313" id="1313">1313</a>
-<a href="#1314" id="1314">1314</a>
-<a href="#1315" id="1315">1315</a>
-<a href="#1316" id="1316">1316</a>
-<a href="#1317" id="1317">1317</a>
-<a href="#1318" id="1318">1318</a>
-<a href="#1319" id="1319">1319</a>
-<a href="#1320" id="1320">1320</a>
-<a href="#1321" id="1321">1321</a>
-<a href="#1322" id="1322">1322</a>
-<a href="#1323" id="1323">1323</a>
-<a href="#1324" id="1324">1324</a>
-<a href="#1325" id="1325">1325</a>
-<a href="#1326" id="1326">1326</a>
-<a href="#1327" id="1327">1327</a>
-<a href="#1328" id="1328">1328</a>
-<a href="#1329" id="1329">1329</a>
-<a href="#1330" id="1330">1330</a>
-<a href="#1331" id="1331">1331</a>
-<a href="#1332" id="1332">1332</a>
-<a href="#1333" id="1333">1333</a>
-<a href="#1334" id="1334">1334</a>
-<a href="#1335" id="1335">1335</a>
-<a href="#1336" id="1336">1336</a>
-<a href="#1337" id="1337">1337</a>
-<a href="#1338" id="1338">1338</a>
-<a href="#1339" id="1339">1339</a>
-<a href="#1340" id="1340">1340</a>
-<a href="#1341" id="1341">1341</a>
-<a href="#1342" id="1342">1342</a>
-<a href="#1343" id="1343">1343</a>
-<a href="#1344" id="1344">1344</a>
-<a href="#1345" id="1345">1345</a>
-<a href="#1346" id="1346">1346</a>
-<a href="#1347" id="1347">1347</a>
-<a href="#1348" id="1348">1348</a>
-<a href="#1349" id="1349">1349</a>
-<a href="#1350" id="1350">1350</a>
-<a href="#1351" id="1351">1351</a>
-<a href="#1352" id="1352">1352</a>
-<a href="#1353" id="1353">1353</a>
-<a href="#1354" id="1354">1354</a>
-<a href="#1355" id="1355">1355</a>
-<a href="#1356" id="1356">1356</a>
-<a href="#1357" id="1357">1357</a>
-<a href="#1358" id="1358">1358</a>
-<a href="#1359" id="1359">1359</a>
-<a href="#1360" id="1360">1360</a>
-<a href="#1361" id="1361">1361</a>
-<a href="#1362" id="1362">1362</a>
-<a href="#1363" id="1363">1363</a>
-<a href="#1364" id="1364">1364</a>
-<a href="#1365" id="1365">1365</a>
-<a href="#1366" id="1366">1366</a>
-<a href="#1367" id="1367">1367</a>
-<a href="#1368" id="1368">1368</a>
-<a href="#1369" id="1369">1369</a>
-<a href="#1370" id="1370">1370</a>
-<a href="#1371" id="1371">1371</a>
-<a href="#1372" id="1372">1372</a>
-<a href="#1373" id="1373">1373</a>
-<a href="#1374" id="1374">1374</a>
-<a href="#1375" id="1375">1375</a>
-<a href="#1376" id="1376">1376</a>
-<a href="#1377" id="1377">1377</a>
-<a href="#1378" id="1378">1378</a>
-<a href="#1379" id="1379">1379</a>
-<a href="#1380" id="1380">1380</a>
-<a href="#1381" id="1381">1381</a>
-<a href="#1382" id="1382">1382</a>
-<a href="#1383" id="1383">1383</a>
-<a href="#1384" id="1384">1384</a>
-<a href="#1385" id="1385">1385</a>
-<a href="#1386" id="1386">1386</a>
-<a href="#1387" id="1387">1387</a>
-<a href="#1388" id="1388">1388</a>
-<a href="#1389" id="1389">1389</a>
-<a href="#1390" id="1390">1390</a>
-<a href="#1391" id="1391">1391</a>
-<a href="#1392" id="1392">1392</a>
-<a href="#1393" id="1393">1393</a>
-<a href="#1394" id="1394">1394</a>
-<a href="#1395" id="1395">1395</a>
-<a href="#1396" id="1396">1396</a>
-<a href="#1397" id="1397">1397</a>
-<a href="#1398" id="1398">1398</a>
-<a href="#1399" id="1399">1399</a>
-<a href="#1400" id="1400">1400</a>
-<a href="#1401" id="1401">1401</a>
-<a href="#1402" id="1402">1402</a>
-<a href="#1403" id="1403">1403</a>
-<a href="#1404" id="1404">1404</a>
-<a href="#1405" id="1405">1405</a>
-<a href="#1406" id="1406">1406</a>
-<a href="#1407" id="1407">1407</a>
-<a href="#1408" id="1408">1408</a>
-<a href="#1409" id="1409">1409</a>
-<a href="#1410" id="1410">1410</a>
-<a href="#1411" id="1411">1411</a>
-<a href="#1412" id="1412">1412</a>
-<a href="#1413" id="1413">1413</a>
-<a href="#1414" id="1414">1414</a>
-<a href="#1415" id="1415">1415</a>
-<a href="#1416" id="1416">1416</a>
-<a href="#1417" id="1417">1417</a>
-<a href="#1418" id="1418">1418</a>
-<a href="#1419" id="1419">1419</a>
-<a href="#1420" id="1420">1420</a>
-<a href="#1421" id="1421">1421</a>
-<a href="#1422" id="1422">1422</a>
-<a href="#1423" id="1423">1423</a>
-<a href="#1424" id="1424">1424</a>
-<a href="#1425" id="1425">1425</a>
-<a href="#1426" id="1426">1426</a>
-<a href="#1427" id="1427">1427</a>
-<a href="#1428" id="1428">1428</a>
-<a href="#1429" id="1429">1429</a>
-<a href="#1430" id="1430">1430</a>
-<a href="#1431" id="1431">1431</a>
-<a href="#1432" id="1432">1432</a>
-<a href="#1433" id="1433">1433</a>
-<a href="#1434" id="1434">1434</a>
-<a href="#1435" id="1435">1435</a>
-<a href="#1436" id="1436">1436</a>
-<a href="#1437" id="1437">1437</a>
-<a href="#1438" id="1438">1438</a>
-<a href="#1439" id="1439">1439</a>
-<a href="#1440" id="1440">1440</a>
-<a href="#1441" id="1441">1441</a>
-<a href="#1442" id="1442">1442</a>
-<a href="#1443" id="1443">1443</a>
-<a href="#1444" id="1444">1444</a>
-<a href="#1445" id="1445">1445</a>
-<a href="#1446" id="1446">1446</a>
-<a href="#1447" id="1447">1447</a>
-<a href="#1448" id="1448">1448</a>
-<a href="#1449" id="1449">1449</a>
-<a href="#1450" id="1450">1450</a>
-<a href="#1451" id="1451">1451</a>
-<a href="#1452" id="1452">1452</a>
-<a href="#1453" id="1453">1453</a>
-<a href="#1454" id="1454">1454</a>
-<a href="#1455" id="1455">1455</a>
-<a href="#1456" id="1456">1456</a>
-<a href="#1457" id="1457">1457</a>
-<a href="#1458" id="1458">1458</a>
-<a href="#1459" id="1459">1459</a>
-<a href="#1460" id="1460">1460</a>
-<a href="#1461" id="1461">1461</a>
-<a href="#1462" id="1462">1462</a>
-<a href="#1463" id="1463">1463</a>
-<a href="#1464" id="1464">1464</a>
-<a href="#1465" id="1465">1465</a>
-<a href="#1466" id="1466">1466</a>
-<a href="#1467" id="1467">1467</a>
-<a href="#1468" id="1468">1468</a>
-<a href="#1469" id="1469">1469</a>
-<a href="#1470" id="1470">1470</a>
-<a href="#1471" id="1471">1471</a>
-<a href="#1472" id="1472">1472</a>
-<a href="#1473" id="1473">1473</a>
-<a href="#1474" id="1474">1474</a>
-<a href="#1475" id="1475">1475</a>
-<a href="#1476" id="1476">1476</a>
-<a href="#1477" id="1477">1477</a>
-<a href="#1478" id="1478">1478</a>
-<a href="#1479" id="1479">1479</a>
-<a href="#1480" id="1480">1480</a>
-<a href="#1481" id="1481">1481</a>
-<a href="#1482" id="1482">1482</a>
-<a href="#1483" id="1483">1483</a>
-<a href="#1484" id="1484">1484</a>
-<a href="#1485" id="1485">1485</a>
-<a href="#1486" id="1486">1486</a>
-<a href="#1487" id="1487">1487</a>
-<a href="#1488" id="1488">1488</a>
-<a href="#1489" id="1489">1489</a>
-<a href="#1490" id="1490">1490</a>
-<a href="#1491" id="1491">1491</a>
-<a href="#1492" id="1492">1492</a>
-<a href="#1493" id="1493">1493</a>
-<a href="#1494" id="1494">1494</a>
-<a href="#1495" id="1495">1495</a>
-<a href="#1496" id="1496">1496</a>
-<a href="#1497" id="1497">1497</a>
-<a href="#1498" id="1498">1498</a>
-<a href="#1499" id="1499">1499</a>
-<a href="#1500" id="1500">1500</a>
-<a href="#1501" id="1501">1501</a>
-<a href="#1502" id="1502">1502</a>
-<a href="#1503" id="1503">1503</a>
-<a href="#1504" id="1504">1504</a>
-<a href="#1505" id="1505">1505</a>
-<a href="#1506" id="1506">1506</a>
-<a href="#1507" id="1507">1507</a>
-<a href="#1508" id="1508">1508</a>
-<a href="#1509" id="1509">1509</a>
-<a href="#1510" id="1510">1510</a>
-<a href="#1511" id="1511">1511</a>
-<a href="#1512" id="1512">1512</a>
-<a href="#1513" id="1513">1513</a>
-<a href="#1514" id="1514">1514</a>
-<a href="#1515" id="1515">1515</a>
-<a href="#1516" id="1516">1516</a>
-<a href="#1517" id="1517">1517</a>
-<a href="#1518" id="1518">1518</a>
-<a href="#1519" id="1519">1519</a>
-<a href="#1520" id="1520">1520</a>
-<a href="#1521" id="1521">1521</a>
-<a href="#1522" id="1522">1522</a>
-<a href="#1523" id="1523">1523</a>
-<a href="#1524" id="1524">1524</a>
-<a href="#1525" id="1525">1525</a>
-<a href="#1526" id="1526">1526</a>
-<a href="#1527" id="1527">1527</a>
-<a href="#1528" id="1528">1528</a>
-<a href="#1529" id="1529">1529</a>
-<a href="#1530" id="1530">1530</a>
-<a href="#1531" id="1531">1531</a>
-<a href="#1532" id="1532">1532</a>
-<a href="#1533" id="1533">1533</a>
-<a href="#1534" id="1534">1534</a>
-<a href="#1535" id="1535">1535</a>
-<a href="#1536" id="1536">1536</a>
-<a href="#1537" id="1537">1537</a>
-<a href="#1538" id="1538">1538</a>
-<a href="#1539" id="1539">1539</a>
-<a href="#1540" id="1540">1540</a>
-<a href="#1541" id="1541">1541</a>
-<a href="#1542" id="1542">1542</a>
-<a href="#1543" id="1543">1543</a>
-<a href="#1544" id="1544">1544</a>
-<a href="#1545" id="1545">1545</a>
-<a href="#1546" id="1546">1546</a>
-<a href="#1547" id="1547">1547</a>
-<a href="#1548" id="1548">1548</a>
-<a href="#1549" id="1549">1549</a>
-<a href="#1550" id="1550">1550</a>
-<a href="#1551" id="1551">1551</a>
-<a href="#1552" id="1552">1552</a>
-<a href="#1553" id="1553">1553</a>
-<a href="#1554" id="1554">1554</a>
-<a href="#1555" id="1555">1555</a>
-<a href="#1556" id="1556">1556</a>
-<a href="#1557" id="1557">1557</a>
-<a href="#1558" id="1558">1558</a>
-<a href="#1559" id="1559">1559</a>
-<a href="#1560" id="1560">1560</a>
-<a href="#1561" id="1561">1561</a>
-<a href="#1562" id="1562">1562</a>
-<a href="#1563" id="1563">1563</a>
-<a href="#1564" id="1564">1564</a>
-<a href="#1565" id="1565">1565</a>
-<a href="#1566" id="1566">1566</a>
-<a href="#1567" id="1567">1567</a>
-<a href="#1568" id="1568">1568</a>
-<a href="#1569" id="1569">1569</a>
-<a href="#1570" id="1570">1570</a>
-<a href="#1571" id="1571">1571</a>
-<a href="#1572" id="1572">1572</a>
-<a href="#1573" id="1573">1573</a>
-<a href="#1574" id="1574">1574</a>
-<a href="#1575" id="1575">1575</a>
-<a href="#1576" id="1576">1576</a>
-<a href="#1577" id="1577">1577</a>
-<a href="#1578" id="1578">1578</a>
-<a href="#1579" id="1579">1579</a>
-<a href="#1580" id="1580">1580</a>
-<a href="#1581" id="1581">1581</a>
-<a href="#1582" id="1582">1582</a>
-<a href="#1583" id="1583">1583</a>
-<a href="#1584" id="1584">1584</a>
-<a href="#1585" id="1585">1585</a>
-<a href="#1586" id="1586">1586</a>
-<a href="#1587" id="1587">1587</a>
-<a href="#1588" id="1588">1588</a>
-<a href="#1589" id="1589">1589</a>
-<a href="#1590" id="1590">1590</a>
-<a href="#1591" id="1591">1591</a>
-<a href="#1592" id="1592">1592</a>
-<a href="#1593" id="1593">1593</a>
-<a href="#1594" id="1594">1594</a>
-<a href="#1595" id="1595">1595</a>
-<a href="#1596" id="1596">1596</a>
-<a href="#1597" id="1597">1597</a>
-<a href="#1598" id="1598">1598</a>
-<a href="#1599" id="1599">1599</a>
-<a href="#1600" id="1600">1600</a>
-<a href="#1601" id="1601">1601</a>
-<a href="#1602" id="1602">1602</a>
-<a href="#1603" id="1603">1603</a>
-<a href="#1604" id="1604">1604</a>
-<a href="#1605" id="1605">1605</a>
-<a href="#1606" id="1606">1606</a>
-<a href="#1607" id="1607">1607</a>
-<a href="#1608" id="1608">1608</a>
-<a href="#1609" id="1609">1609</a>
-<a href="#1610" id="1610">1610</a>
-<a href="#1611" id="1611">1611</a>
-<a href="#1612" id="1612">1612</a>
-<a href="#1613" id="1613">1613</a>
-<a href="#1614" id="1614">1614</a>
-<a href="#1615" id="1615">1615</a>
-<a href="#1616" id="1616">1616</a>
-<a href="#1617" id="1617">1617</a>
-<a href="#1618" id="1618">1618</a>
-<a href="#1619" id="1619">1619</a>
-<a href="#1620" id="1620">1620</a>
-<a href="#1621" id="1621">1621</a>
-<a href="#1622" id="1622">1622</a>
-<a href="#1623" id="1623">1623</a>
-<a href="#1624" id="1624">1624</a>
-<a href="#1625" id="1625">1625</a>
-<a href="#1626" id="1626">1626</a>
-<a href="#1627" id="1627">1627</a>
-<a href="#1628" id="1628">1628</a>
-<a href="#1629" id="1629">1629</a>
-<a href="#1630" id="1630">1630</a>
-<a href="#1631" id="1631">1631</a>
-<a href="#1632" id="1632">1632</a>
-<a href="#1633" id="1633">1633</a>
-<a href="#1634" id="1634">1634</a>
-<a href="#1635" id="1635">1635</a>
-<a href="#1636" id="1636">1636</a>
-<a href="#1637" id="1637">1637</a>
-<a href="#1638" id="1638">1638</a>
-<a href="#1639" id="1639">1639</a>
-<a href="#1640" id="1640">1640</a>
-<a href="#1641" id="1641">1641</a>
-<a href="#1642" id="1642">1642</a>
-<a href="#1643" id="1643">1643</a>
-<a href="#1644" id="1644">1644</a>
-<a href="#1645" id="1645">1645</a>
-<a href="#1646" id="1646">1646</a>
-<a href="#1647" id="1647">1647</a>
-<a href="#1648" id="1648">1648</a>
-<a href="#1649" id="1649">1649</a>
-<a href="#1650" id="1650">1650</a>
-<a href="#1651" id="1651">1651</a>
-<a href="#1652" id="1652">1652</a>
-<a href="#1653" id="1653">1653</a>
-<a href="#1654" id="1654">1654</a>
-<a href="#1655" id="1655">1655</a>
-<a href="#1656" id="1656">1656</a>
-<a href="#1657" id="1657">1657</a>
-<a href="#1658" id="1658">1658</a>
-<a href="#1659" id="1659">1659</a>
-<a href="#1660" id="1660">1660</a>
-<a href="#1661" id="1661">1661</a>
-<a href="#1662" id="1662">1662</a>
-<a href="#1663" id="1663">1663</a>
-<a href="#1664" id="1664">1664</a>
-<a href="#1665" id="1665">1665</a>
-<a href="#1666" id="1666">1666</a>
-<a href="#1667" id="1667">1667</a>
-<a href="#1668" id="1668">1668</a>
-<a href="#1669" id="1669">1669</a>
-<a href="#1670" id="1670">1670</a>
-<a href="#1671" id="1671">1671</a>
-<a href="#1672" id="1672">1672</a>
-<a href="#1673" id="1673">1673</a>
-<a href="#1674" id="1674">1674</a>
-<a href="#1675" id="1675">1675</a>
-<a href="#1676" id="1676">1676</a>
-<a href="#1677" id="1677">1677</a>
-<a href="#1678" id="1678">1678</a>
-<a href="#1679" id="1679">1679</a>
-<a href="#1680" id="1680">1680</a>
-<a href="#1681" id="1681">1681</a>
-<a href="#1682" id="1682">1682</a>
-<a href="#1683" id="1683">1683</a>
-<a href="#1684" id="1684">1684</a>
-<a href="#1685" id="1685">1685</a>
-<a href="#1686" id="1686">1686</a>
-<a href="#1687" id="1687">1687</a>
-<a href="#1688" id="1688">1688</a>
-<a href="#1689" id="1689">1689</a>
-<a href="#1690" id="1690">1690</a>
-<a href="#1691" id="1691">1691</a>
-<a href="#1692" id="1692">1692</a>
-<a href="#1693" id="1693">1693</a>
-<a href="#1694" id="1694">1694</a>
-<a href="#1695" id="1695">1695</a>
-<a href="#1696" id="1696">1696</a>
-<a href="#1697" id="1697">1697</a>
-<a href="#1698" id="1698">1698</a>
-<a href="#1699" id="1699">1699</a>
-<a href="#1700" id="1700">1700</a>
-<a href="#1701" id="1701">1701</a>
-<a href="#1702" id="1702">1702</a>
-<a href="#1703" id="1703">1703</a>
-<a href="#1704" id="1704">1704</a>
-<a href="#1705" id="1705">1705</a>
-<a href="#1706" id="1706">1706</a>
-<a href="#1707" id="1707">1707</a>
-<a href="#1708" id="1708">1708</a>
-<a href="#1709" id="1709">1709</a>
-<a href="#1710" id="1710">1710</a>
-<a href="#1711" id="1711">1711</a>
-<a href="#1712" id="1712">1712</a>
-<a href="#1713" id="1713">1713</a>
-<a href="#1714" id="1714">1714</a>
-<a href="#1715" id="1715">1715</a>
-<a href="#1716" id="1716">1716</a>
-<a href="#1717" id="1717">1717</a>
-<a href="#1718" id="1718">1718</a>
-<a href="#1719" id="1719">1719</a>
-<a href="#1720" id="1720">1720</a>
-<a href="#1721" id="1721">1721</a>
-<a href="#1722" id="1722">1722</a>
-<a href="#1723" id="1723">1723</a>
-<a href="#1724" id="1724">1724</a>
-<a href="#1725" id="1725">1725</a>
-<a href="#1726" id="1726">1726</a>
-<a href="#1727" id="1727">1727</a>
-<a href="#1728" id="1728">1728</a>
-<a href="#1729" id="1729">1729</a>
-<a href="#1730" id="1730">1730</a>
-<a href="#1731" id="1731">1731</a>
-<a href="#1732" id="1732">1732</a>
-<a href="#1733" id="1733">1733</a>
-<a href="#1734" id="1734">1734</a>
-<a href="#1735" id="1735">1735</a>
-<a href="#1736" id="1736">1736</a>
-<a href="#1737" id="1737">1737</a>
-<a href="#1738" id="1738">1738</a>
-<a href="#1739" id="1739">1739</a>
-<a href="#1740" id="1740">1740</a>
-<a href="#1741" id="1741">1741</a>
-<a href="#1742" id="1742">1742</a>
-<a href="#1743" id="1743">1743</a>
-<a href="#1744" id="1744">1744</a>
-<a href="#1745" id="1745">1745</a>
-<a href="#1746" id="1746">1746</a>
-<a href="#1747" id="1747">1747</a>
-<a href="#1748" id="1748">1748</a>
-<a href="#1749" id="1749">1749</a>
-<a href="#1750" id="1750">1750</a>
-<a href="#1751" id="1751">1751</a>
-<a href="#1752" id="1752">1752</a>
-<a href="#1753" id="1753">1753</a>
-<a href="#1754" id="1754">1754</a>
-<a href="#1755" id="1755">1755</a>
-<a href="#1756" id="1756">1756</a>
-<a href="#1757" id="1757">1757</a>
-<a href="#1758" id="1758">1758</a>
-<a href="#1759" id="1759">1759</a>
-<a href="#1760" id="1760">1760</a>
-<a href="#1761" id="1761">1761</a>
-<a href="#1762" id="1762">1762</a>
-<a href="#1763" id="1763">1763</a>
-<a href="#1764" id="1764">1764</a>
-<a href="#1765" id="1765">1765</a>
-<a href="#1766" id="1766">1766</a>
-<a href="#1767" id="1767">1767</a>
-<a href="#1768" id="1768">1768</a>
-<a href="#1769" id="1769">1769</a>
-<a href="#1770" id="1770">1770</a>
-<a href="#1771" id="1771">1771</a>
-<a href="#1772" id="1772">1772</a>
-<a href="#1773" id="1773">1773</a>
-<a href="#1774" id="1774">1774</a>
-<a href="#1775" id="1775">1775</a>
-<a href="#1776" id="1776">1776</a>
-<a href="#1777" id="1777">1777</a>
-<a href="#1778" id="1778">1778</a>
-<a href="#1779" id="1779">1779</a>
-<a href="#1780" id="1780">1780</a>
-<a href="#1781" id="1781">1781</a>
-<a href="#1782" id="1782">1782</a>
-<a href="#1783" id="1783">1783</a>
-<a href="#1784" id="1784">1784</a>
-<a href="#1785" id="1785">1785</a>
-<a href="#1786" id="1786">1786</a>
-<a href="#1787" id="1787">1787</a>
-<a href="#1788" id="1788">1788</a>
-<a href="#1789" id="1789">1789</a>
-<a href="#1790" id="1790">1790</a>
-<a href="#1791" id="1791">1791</a>
-<a href="#1792" id="1792">1792</a>
-<a href="#1793" id="1793">1793</a>
-<a href="#1794" id="1794">1794</a>
-<a href="#1795" id="1795">1795</a>
-<a href="#1796" id="1796">1796</a>
-<a href="#1797" id="1797">1797</a>
-<a href="#1798" id="1798">1798</a>
-<a href="#1799" id="1799">1799</a>
-<a href="#1800" id="1800">1800</a>
-<a href="#1801" id="1801">1801</a>
-<a href="#1802" id="1802">1802</a>
-<a href="#1803" id="1803">1803</a>
-<a href="#1804" id="1804">1804</a>
-<a href="#1805" id="1805">1805</a>
-<a href="#1806" id="1806">1806</a>
-<a href="#1807" id="1807">1807</a>
-<a href="#1808" id="1808">1808</a>
-<a href="#1809" id="1809">1809</a>
-<a href="#1810" id="1810">1810</a>
-<a href="#1811" id="1811">1811</a>
-<a href="#1812" id="1812">1812</a>
-<a href="#1813" id="1813">1813</a>
-<a href="#1814" id="1814">1814</a>
-<a href="#1815" id="1815">1815</a>
-<a href="#1816" id="1816">1816</a>
-<a href="#1817" id="1817">1817</a>
-<a href="#1818" id="1818">1818</a>
-<a href="#1819" id="1819">1819</a>
-<a href="#1820" id="1820">1820</a>
-<a href="#1821" id="1821">1821</a>
-<a href="#1822" id="1822">1822</a>
-<a href="#1823" id="1823">1823</a>
-<a href="#1824" id="1824">1824</a>
-<a href="#1825" id="1825">1825</a>
-<a href="#1826" id="1826">1826</a>
-<a href="#1827" id="1827">1827</a>
-<a href="#1828" id="1828">1828</a>
-<a href="#1829" id="1829">1829</a>
-<a href="#1830" id="1830">1830</a>
-<a href="#1831" id="1831">1831</a>
-<a href="#1832" id="1832">1832</a>
-<a href="#1833" id="1833">1833</a>
-<a href="#1834" id="1834">1834</a>
-<a href="#1835" id="1835">1835</a>
-<a href="#1836" id="1836">1836</a>
-<a href="#1837" id="1837">1837</a>
-<a href="#1838" id="1838">1838</a>
-<a href="#1839" id="1839">1839</a>
-<a href="#1840" id="1840">1840</a>
-<a href="#1841" id="1841">1841</a>
-<a href="#1842" id="1842">1842</a>
-<a href="#1843" id="1843">1843</a>
-<a href="#1844" id="1844">1844</a>
-<a href="#1845" id="1845">1845</a>
-<a href="#1846" id="1846">1846</a>
-<a href="#1847" id="1847">1847</a>
-<a href="#1848" id="1848">1848</a>
-<a href="#1849" id="1849">1849</a>
-<a href="#1850" id="1850">1850</a>
-<a href="#1851" id="1851">1851</a>
-<a href="#1852" id="1852">1852</a>
-<a href="#1853" id="1853">1853</a>
-<a href="#1854" id="1854">1854</a>
-<a href="#1855" id="1855">1855</a>
-<a href="#1856" id="1856">1856</a>
-<a href="#1857" id="1857">1857</a>
-<a href="#1858" id="1858">1858</a>
-<a href="#1859" id="1859">1859</a>
-<a href="#1860" id="1860">1860</a>
-<a href="#1861" id="1861">1861</a>
-<a href="#1862" id="1862">1862</a>
-<a href="#1863" id="1863">1863</a>
-<a href="#1864" id="1864">1864</a>
-<a href="#1865" id="1865">1865</a>
-<a href="#1866" id="1866">1866</a>
-<a href="#1867" id="1867">1867</a>
-<a href="#1868" id="1868">1868</a>
-<a href="#1869" id="1869">1869</a>
-<a href="#1870" id="1870">1870</a>
-<a href="#1871" id="1871">1871</a>
-<a href="#1872" id="1872">1872</a>
-<a href="#1873" id="1873">1873</a>
-<a href="#1874" id="1874">1874</a>
-<a href="#1875" id="1875">1875</a>
-<a href="#1876" id="1876">1876</a>
-<a href="#1877" id="1877">1877</a>
-<a href="#1878" id="1878">1878</a>
-<a href="#1879" id="1879">1879</a>
-<a href="#1880" id="1880">1880</a>
-<a href="#1881" id="1881">1881</a>
-<a href="#1882" id="1882">1882</a>
-<a href="#1883" id="1883">1883</a>
-<a href="#1884" id="1884">1884</a>
-<a href="#1885" id="1885">1885</a>
-<a href="#1886" id="1886">1886</a>
-<a href="#1887" id="1887">1887</a>
-<a href="#1888" id="1888">1888</a>
-<a href="#1889" id="1889">1889</a>
-<a href="#1890" id="1890">1890</a>
-<a href="#1891" id="1891">1891</a>
-<a href="#1892" id="1892">1892</a>
-<a href="#1893" id="1893">1893</a>
-<a href="#1894" id="1894">1894</a>
-<a href="#1895" id="1895">1895</a>
-<a href="#1896" id="1896">1896</a>
-<a href="#1897" id="1897">1897</a>
-<a href="#1898" id="1898">1898</a>
-<a href="#1899" id="1899">1899</a>
-<a href="#1900" id="1900">1900</a>
-<a href="#1901" id="1901">1901</a>
-<a href="#1902" id="1902">1902</a>
-<a href="#1903" id="1903">1903</a>
-<a href="#1904" id="1904">1904</a>
-<a href="#1905" id="1905">1905</a>
-<a href="#1906" id="1906">1906</a>
-<a href="#1907" id="1907">1907</a>
-<a href="#1908" id="1908">1908</a>
-<a href="#1909" id="1909">1909</a>
-<a href="#1910" id="1910">1910</a>
-<a href="#1911" id="1911">1911</a>
-<a href="#1912" id="1912">1912</a>
-<a href="#1913" id="1913">1913</a>
-<a href="#1914" id="1914">1914</a>
-<a href="#1915" id="1915">1915</a>
-<a href="#1916" id="1916">1916</a>
-<a href="#1917" id="1917">1917</a>
-<a href="#1918" id="1918">1918</a>
-<a href="#1919" id="1919">1919</a>
-<a href="#1920" id="1920">1920</a>
-<a href="#1921" id="1921">1921</a>
-<a href="#1922" id="1922">1922</a>
-<a href="#1923" id="1923">1923</a>
-<a href="#1924" id="1924">1924</a>
-<a href="#1925" id="1925">1925</a>
-<a href="#1926" id="1926">1926</a>
-<a href="#1927" id="1927">1927</a>
-<a href="#1928" id="1928">1928</a>
-<a href="#1929" id="1929">1929</a>
-<a href="#1930" id="1930">1930</a>
-<a href="#1931" id="1931">1931</a>
-<a href="#1932" id="1932">1932</a>
-<a href="#1933" id="1933">1933</a>
-<a href="#1934" id="1934">1934</a>
-<a href="#1935" id="1935">1935</a>
-<a href="#1936" id="1936">1936</a>
-<a href="#1937" id="1937">1937</a>
-<a href="#1938" id="1938">1938</a>
-<a href="#1939" id="1939">1939</a>
-<a href="#1940" id="1940">1940</a>
-<a href="#1941" id="1941">1941</a>
-<a href="#1942" id="1942">1942</a>
-<a href="#1943" id="1943">1943</a>
-<a href="#1944" id="1944">1944</a>
-<a href="#1945" id="1945">1945</a>
-<a href="#1946" id="1946">1946</a>
-<a href="#1947" id="1947">1947</a>
-<a href="#1948" id="1948">1948</a>
-<a href="#1949" id="1949">1949</a>
-<a href="#1950" id="1950">1950</a>
-<a href="#1951" id="1951">1951</a>
-<a href="#1952" id="1952">1952</a>
-<a href="#1953" id="1953">1953</a>
-<a href="#1954" id="1954">1954</a>
-<a href="#1955" id="1955">1955</a>
-<a href="#1956" id="1956">1956</a>
-<a href="#1957" id="1957">1957</a>
-<a href="#1958" id="1958">1958</a>
-<a href="#1959" id="1959">1959</a>
-<a href="#1960" id="1960">1960</a>
-<a href="#1961" id="1961">1961</a>
-<a href="#1962" id="1962">1962</a>
-<a href="#1963" id="1963">1963</a>
-<a href="#1964" id="1964">1964</a>
-<a href="#1965" id="1965">1965</a>
-<a href="#1966" id="1966">1966</a>
-<a href="#1967" id="1967">1967</a>
-<a href="#1968" id="1968">1968</a>
-<a href="#1969" id="1969">1969</a>
-<a href="#1970" id="1970">1970</a>
-<a href="#1971" id="1971">1971</a>
-<a href="#1972" id="1972">1972</a>
-<a href="#1973" id="1973">1973</a>
-<a href="#1974" id="1974">1974</a>
-<a href="#1975" id="1975">1975</a>
-<a href="#1976" id="1976">1976</a>
-<a href="#1977" id="1977">1977</a>
-<a href="#1978" id="1978">1978</a>
-<a href="#1979" id="1979">1979</a>
-<a href="#1980" id="1980">1980</a>
-<a href="#1981" id="1981">1981</a>
-<a href="#1982" id="1982">1982</a>
-<a href="#1983" id="1983">1983</a>
-<a href="#1984" id="1984">1984</a>
-<a href="#1985" id="1985">1985</a>
-<a href="#1986" id="1986">1986</a>
-<a href="#1987" id="1987">1987</a>
-<a href="#1988" id="1988">1988</a>
-<a href="#1989" id="1989">1989</a>
-<a href="#1990" id="1990">1990</a>
-<a href="#1991" id="1991">1991</a>
-<a href="#1992" id="1992">1992</a>
-<a href="#1993" id="1993">1993</a>
-<a href="#1994" id="1994">1994</a>
-<a href="#1995" id="1995">1995</a>
-<a href="#1996" id="1996">1996</a>
-<a href="#1997" id="1997">1997</a>
-<a href="#1998" id="1998">1998</a>
-<a href="#1999" id="1999">1999</a>
-<a href="#2000" id="2000">2000</a>
-<a href="#2001" id="2001">2001</a>
-<a href="#2002" id="2002">2002</a>
-<a href="#2003" id="2003">2003</a>
-<a href="#2004" id="2004">2004</a>
-<a href="#2005" id="2005">2005</a>
-<a href="#2006" id="2006">2006</a>
-<a href="#2007" id="2007">2007</a>
-<a href="#2008" id="2008">2008</a>
-<a href="#2009" id="2009">2009</a>
-<a href="#2010" id="2010">2010</a>
-<a href="#2011" id="2011">2011</a>
-<a href="#2012" id="2012">2012</a>
-<a href="#2013" id="2013">2013</a>
-<a href="#2014" id="2014">2014</a>
-<a href="#2015" id="2015">2015</a>
-<a href="#2016" id="2016">2016</a>
-<a href="#2017" id="2017">2017</a>
-<a href="#2018" id="2018">2018</a>
-<a href="#2019" id="2019">2019</a>
-<a href="#2020" id="2020">2020</a>
-<a href="#2021" id="2021">2021</a>
-<a href="#2022" id="2022">2022</a>
-<a href="#2023" id="2023">2023</a>
-<a href="#2024" id="2024">2024</a>
-<a href="#2025" id="2025">2025</a>
-<a href="#2026" id="2026">2026</a>
-<a href="#2027" id="2027">2027</a>
-<a href="#2028" id="2028">2028</a>
-<a href="#2029" id="2029">2029</a>
-<a href="#2030" id="2030">2030</a>
-<a href="#2031" id="2031">2031</a>
-<a href="#2032" id="2032">2032</a>
-<a href="#2033" id="2033">2033</a>
-<a href="#2034" id="2034">2034</a>
-<a href="#2035" id="2035">2035</a>
-<a href="#2036" id="2036">2036</a>
-<a href="#2037" id="2037">2037</a>
-<a href="#2038" id="2038">2038</a>
-<a href="#2039" id="2039">2039</a>
-<a href="#2040" id="2040">2040</a>
-<a href="#2041" id="2041">2041</a>
-<a href="#2042" id="2042">2042</a>
-<a href="#2043" id="2043">2043</a>
-<a href="#2044" id="2044">2044</a>
-<a href="#2045" id="2045">2045</a>
-<a href="#2046" id="2046">2046</a>
-<a href="#2047" id="2047">2047</a>
-<a href="#2048" id="2048">2048</a>
-<a href="#2049" id="2049">2049</a>
-<a href="#2050" id="2050">2050</a>
-<a href="#2051" id="2051">2051</a>
-<a href="#2052" id="2052">2052</a>
-<a href="#2053" id="2053">2053</a>
-<a href="#2054" id="2054">2054</a>
-<a href="#2055" id="2055">2055</a>
-<a href="#2056" id="2056">2056</a>
-<a href="#2057" id="2057">2057</a>
-<a href="#2058" id="2058">2058</a>
-<a href="#2059" id="2059">2059</a>
-<a href="#2060" id="2060">2060</a>
-<a href="#2061" id="2061">2061</a>
-<a href="#2062" id="2062">2062</a>
-<a href="#2063" id="2063">2063</a>
-<a href="#2064" id="2064">2064</a>
-<a href="#2065" id="2065">2065</a>
-<a href="#2066" id="2066">2066</a>
-<a href="#2067" id="2067">2067</a>
-<a href="#2068" id="2068">2068</a>
-<a href="#2069" id="2069">2069</a>
-<a href="#2070" id="2070">2070</a>
-<a href="#2071" id="2071">2071</a>
-<a href="#2072" id="2072">2072</a>
-<a href="#2073" id="2073">2073</a>
-<a href="#2074" id="2074">2074</a>
-<a href="#2075" id="2075">2075</a>
-<a href="#2076" id="2076">2076</a>
-<a href="#2077" id="2077">2077</a>
-<a href="#2078" id="2078">2078</a>
-<a href="#2079" id="2079">2079</a>
-<a href="#2080" id="2080">2080</a>
-<a href="#2081" id="2081">2081</a>
-<a href="#2082" id="2082">2082</a>
-<a href="#2083" id="2083">2083</a>
-<a href="#2084" id="2084">2084</a>
-<a href="#2085" id="2085">2085</a>
-<a href="#2086" id="2086">2086</a>
-<a href="#2087" id="2087">2087</a>
-<a href="#2088" id="2088">2088</a>
-<a href="#2089" id="2089">2089</a>
-<a href="#2090" id="2090">2090</a>
-<a href="#2091" id="2091">2091</a>
-<a href="#2092" id="2092">2092</a>
-<a href="#2093" id="2093">2093</a>
-<a href="#2094" id="2094">2094</a>
-<a href="#2095" id="2095">2095</a>
-<a href="#2096" id="2096">2096</a>
-<a href="#2097" id="2097">2097</a>
-<a href="#2098" id="2098">2098</a>
-<a href="#2099" id="2099">2099</a>
-<a href="#2100" id="2100">2100</a>
-<a href="#2101" id="2101">2101</a>
-<a href="#2102" id="2102">2102</a>
-<a href="#2103" id="2103">2103</a>
-<a href="#2104" id="2104">2104</a>
-<a href="#2105" id="2105">2105</a>
-<a href="#2106" id="2106">2106</a>
-<a href="#2107" id="2107">2107</a>
-<a href="#2108" id="2108">2108</a>
-<a href="#2109" id="2109">2109</a>
-<a href="#2110" id="2110">2110</a>
-<a href="#2111" id="2111">2111</a>
-<a href="#2112" id="2112">2112</a>
-<a href="#2113" id="2113">2113</a>
-<a href="#2114" id="2114">2114</a>
-<a href="#2115" id="2115">2115</a>
-<a href="#2116" id="2116">2116</a>
-<a href="#2117" id="2117">2117</a>
-<a href="#2118" id="2118">2118</a>
-<a href="#2119" id="2119">2119</a>
-<a href="#2120" id="2120">2120</a>
-<a href="#2121" id="2121">2121</a>
-<a href="#2122" id="2122">2122</a>
-<a href="#2123" id="2123">2123</a>
-<a href="#2124" id="2124">2124</a>
-<a href="#2125" id="2125">2125</a>
-<a href="#2126" id="2126">2126</a>
-<a href="#2127" id="2127">2127</a>
-<a href="#2128" id="2128">2128</a>
-<a href="#2129" id="2129">2129</a>
-<a href="#2130" id="2130">2130</a>
-<a href="#2131" id="2131">2131</a>
-<a href="#2132" id="2132">2132</a>
-<a href="#2133" id="2133">2133</a>
-<a href="#2134" id="2134">2134</a>
-<a href="#2135" id="2135">2135</a>
-<a href="#2136" id="2136">2136</a>
-<a href="#2137" id="2137">2137</a>
-<a href="#2138" id="2138">2138</a>
-<a href="#2139" id="2139">2139</a>
-<a href="#2140" id="2140">2140</a>
-<a href="#2141" id="2141">2141</a>
-<a href="#2142" id="2142">2142</a>
-<a href="#2143" id="2143">2143</a>
-<a href="#2144" id="2144">2144</a>
-<a href="#2145" id="2145">2145</a>
-<a href="#2146" id="2146">2146</a>
-<a href="#2147" id="2147">2147</a>
-<a href="#2148" id="2148">2148</a>
-<a href="#2149" id="2149">2149</a>
-<a href="#2150" id="2150">2150</a>
-<a href="#2151" id="2151">2151</a>
-<a href="#2152" id="2152">2152</a>
-<a href="#2153" id="2153">2153</a>
-<a href="#2154" id="2154">2154</a>
-<a href="#2155" id="2155">2155</a>
-<a href="#2156" id="2156">2156</a>
-<a href="#2157" id="2157">2157</a>
-<a href="#2158" id="2158">2158</a>
-<a href="#2159" id="2159">2159</a>
-<a href="#2160" id="2160">2160</a>
-<a href="#2161" id="2161">2161</a>
-<a href="#2162" id="2162">2162</a>
-<a href="#2163" id="2163">2163</a>
-<a href="#2164" id="2164">2164</a>
-<a href="#2165" id="2165">2165</a>
-<a href="#2166" id="2166">2166</a>
-<a href="#2167" id="2167">2167</a>
-<a href="#2168" id="2168">2168</a>
-<a href="#2169" id="2169">2169</a>
-<a href="#2170" id="2170">2170</a>
-<a href="#2171" id="2171">2171</a>
-<a href="#2172" id="2172">2172</a>
-<a href="#2173" id="2173">2173</a>
-<a href="#2174" id="2174">2174</a>
-<a href="#2175" id="2175">2175</a>
-<a href="#2176" id="2176">2176</a>
-<a href="#2177" id="2177">2177</a>
-<a href="#2178" id="2178">2178</a>
-<a href="#2179" id="2179">2179</a>
-<a href="#2180" id="2180">2180</a>
-<a href="#2181" id="2181">2181</a>
-<a href="#2182" id="2182">2182</a>
-<a href="#2183" id="2183">2183</a>
-<a href="#2184" id="2184">2184</a>
-<a href="#2185" id="2185">2185</a>
-<a href="#2186" id="2186">2186</a>
-<a href="#2187" id="2187">2187</a>
-<a href="#2188" id="2188">2188</a>
-<a href="#2189" id="2189">2189</a>
-<a href="#2190" id="2190">2190</a>
-<a href="#2191" id="2191">2191</a>
-<a href="#2192" id="2192">2192</a>
-<a href="#2193" id="2193">2193</a>
-<a href="#2194" id="2194">2194</a>
-<a href="#2195" id="2195">2195</a>
-<a href="#2196" id="2196">2196</a>
-<a href="#2197" id="2197">2197</a>
-<a href="#2198" id="2198">2198</a>
-<a href="#2199" id="2199">2199</a>
-<a href="#2200" id="2200">2200</a>
-<a href="#2201" id="2201">2201</a>
-<a href="#2202" id="2202">2202</a>
-<a href="#2203" id="2203">2203</a>
-<a href="#2204" id="2204">2204</a>
-<a href="#2205" id="2205">2205</a>
-<a href="#2206" id="2206">2206</a>
-<a href="#2207" id="2207">2207</a>
-<a href="#2208" id="2208">2208</a>
-<a href="#2209" id="2209">2209</a>
-<a href="#2210" id="2210">2210</a>
-<a href="#2211" id="2211">2211</a>
-<a href="#2212" id="2212">2212</a>
-<a href="#2213" id="2213">2213</a>
-<a href="#2214" id="2214">2214</a>
-<a href="#2215" id="2215">2215</a>
-<a href="#2216" id="2216">2216</a>
-<a href="#2217" id="2217">2217</a>
-<a href="#2218" id="2218">2218</a>
-<a href="#2219" id="2219">2219</a>
-<a href="#2220" id="2220">2220</a>
-<a href="#2221" id="2221">2221</a>
-<a href="#2222" id="2222">2222</a>
-<a href="#2223" id="2223">2223</a>
-<a href="#2224" id="2224">2224</a>
-<a href="#2225" id="2225">2225</a>
-<a href="#2226" id="2226">2226</a>
-<a href="#2227" id="2227">2227</a>
-<a href="#2228" id="2228">2228</a>
-<a href="#2229" id="2229">2229</a>
-<a href="#2230" id="2230">2230</a>
-<a href="#2231" id="2231">2231</a>
-<a href="#2232" id="2232">2232</a>
-<a href="#2233" id="2233">2233</a>
-<a href="#2234" id="2234">2234</a>
-<a href="#2235" id="2235">2235</a>
-<a href="#2236" id="2236">2236</a>
-<a href="#2237" id="2237">2237</a>
-<a href="#2238" id="2238">2238</a>
-<a href="#2239" id="2239">2239</a>
-<a href="#2240" id="2240">2240</a>
-<a href="#2241" id="2241">2241</a>
-<a href="#2242" id="2242">2242</a>
-<a href="#2243" id="2243">2243</a>
-<a href="#2244" id="2244">2244</a>
-<a href="#2245" id="2245">2245</a>
-<a href="#2246" id="2246">2246</a>
-<a href="#2247" id="2247">2247</a>
-<a href="#2248" id="2248">2248</a>
-<a href="#2249" id="2249">2249</a>
-<a href="#2250" id="2250">2250</a>
-<a href="#2251" id="2251">2251</a>
-<a href="#2252" id="2252">2252</a>
-<a href="#2253" id="2253">2253</a>
-<a href="#2254" id="2254">2254</a>
-<a href="#2255" id="2255">2255</a>
-<a href="#2256" id="2256">2256</a>
-<a href="#2257" id="2257">2257</a>
-<a href="#2258" id="2258">2258</a>
-<a href="#2259" id="2259">2259</a>
-<a href="#2260" id="2260">2260</a>
-<a href="#2261" id="2261">2261</a>
-<a href="#2262" id="2262">2262</a>
-<a href="#2263" id="2263">2263</a>
-<a href="#2264" id="2264">2264</a>
-<a href="#2265" id="2265">2265</a>
-<a href="#2266" id="2266">2266</a>
-<a href="#2267" id="2267">2267</a>
-<a href="#2268" id="2268">2268</a>
-<a href="#2269" id="2269">2269</a>
-<a href="#2270" id="2270">2270</a>
-<a href="#2271" id="2271">2271</a>
-<a href="#2272" id="2272">2272</a>
-<a href="#2273" id="2273">2273</a>
-<a href="#2274" id="2274">2274</a>
-<a href="#2275" id="2275">2275</a>
-<a href="#2276" id="2276">2276</a>
-<a href="#2277" id="2277">2277</a>
-<a href="#2278" id="2278">2278</a>
-<a href="#2279" id="2279">2279</a>
-<a href="#2280" id="2280">2280</a>
-<a href="#2281" id="2281">2281</a>
-<a href="#2282" id="2282">2282</a>
-<a href="#2283" id="2283">2283</a>
-<a href="#2284" id="2284">2284</a>
-<a href="#2285" id="2285">2285</a>
-<a href="#2286" id="2286">2286</a>
-<a href="#2287" id="2287">2287</a>
-<a href="#2288" id="2288">2288</a>
-<a href="#2289" id="2289">2289</a>
-<a href="#2290" id="2290">2290</a>
-<a href="#2291" id="2291">2291</a>
-<a href="#2292" id="2292">2292</a>
-<a href="#2293" id="2293">2293</a>
-<a href="#2294" id="2294">2294</a>
-<a href="#2295" id="2295">2295</a>
-<a href="#2296" id="2296">2296</a>
-<a href="#2297" id="2297">2297</a>
-<a href="#2298" id="2298">2298</a>
-<a href="#2299" id="2299">2299</a>
-<a href="#2300" id="2300">2300</a>
-<a href="#2301" id="2301">2301</a>
-<a href="#2302" id="2302">2302</a>
-<a href="#2303" id="2303">2303</a>
-<a href="#2304" id="2304">2304</a>
-<a href="#2305" id="2305">2305</a>
-<a href="#2306" id="2306">2306</a>
-<a href="#2307" id="2307">2307</a>
-<a href="#2308" id="2308">2308</a>
-<a href="#2309" id="2309">2309</a>
-<a href="#2310" id="2310">2310</a>
-<a href="#2311" id="2311">2311</a>
-<a href="#2312" id="2312">2312</a>
-<a href="#2313" id="2313">2313</a>
-<a href="#2314" id="2314">2314</a>
-<a href="#2315" id="2315">2315</a>
-<a href="#2316" id="2316">2316</a>
-<a href="#2317" id="2317">2317</a>
-<a href="#2318" id="2318">2318</a>
-<a href="#2319" id="2319">2319</a>
-<a href="#2320" id="2320">2320</a>
-<a href="#2321" id="2321">2321</a>
-<a href="#2322" id="2322">2322</a>
-<a href="#2323" id="2323">2323</a>
-<a href="#2324" id="2324">2324</a>
-<a href="#2325" id="2325">2325</a>
-<a href="#2326" id="2326">2326</a>
-<a href="#2327" id="2327">2327</a>
-<a href="#2328" id="2328">2328</a>
-<a href="#2329" id="2329">2329</a>
-<a href="#2330" id="2330">2330</a>
-<a href="#2331" id="2331">2331</a>
-<a href="#2332" id="2332">2332</a>
-<a href="#2333" id="2333">2333</a>
-<a href="#2334" id="2334">2334</a>
-<a href="#2335" id="2335">2335</a>
-<a href="#2336" id="2336">2336</a>
-<a href="#2337" id="2337">2337</a>
-<a href="#2338" id="2338">2338</a>
-<a href="#2339" id="2339">2339</a>
-<a href="#2340" id="2340">2340</a>
-<a href="#2341" id="2341">2341</a>
-<a href="#2342" id="2342">2342</a>
-<a href="#2343" id="2343">2343</a>
-<a href="#2344" id="2344">2344</a>
-<a href="#2345" id="2345">2345</a>
-<a href="#2346" id="2346">2346</a>
-<a href="#2347" id="2347">2347</a>
-<a href="#2348" id="2348">2348</a>
-<a href="#2349" id="2349">2349</a>
-<a href="#2350" id="2350">2350</a>
-<a href="#2351" id="2351">2351</a>
-<a href="#2352" id="2352">2352</a>
-<a href="#2353" id="2353">2353</a>
-<a href="#2354" id="2354">2354</a>
-<a href="#2355" id="2355">2355</a>
-<a href="#2356" id="2356">2356</a>
-<a href="#2357" id="2357">2357</a>
-<a href="#2358" id="2358">2358</a>
-<a href="#2359" id="2359">2359</a>
-<a href="#2360" id="2360">2360</a>
-<a href="#2361" id="2361">2361</a>
-<a href="#2362" id="2362">2362</a>
-<a href="#2363" id="2363">2363</a>
-<a href="#2364" id="2364">2364</a>
-<a href="#2365" id="2365">2365</a>
-<a href="#2366" id="2366">2366</a>
-<a href="#2367" id="2367">2367</a>
-<a href="#2368" id="2368">2368</a>
-<a href="#2369" id="2369">2369</a>
-<a href="#2370" id="2370">2370</a>
-<a href="#2371" id="2371">2371</a>
-<a href="#2372" id="2372">2372</a>
-<a href="#2373" id="2373">2373</a>
-<a href="#2374" id="2374">2374</a>
-<a href="#2375" id="2375">2375</a>
-<a href="#2376" id="2376">2376</a>
-<a href="#2377" id="2377">2377</a>
-<a href="#2378" id="2378">2378</a>
-<a href="#2379" id="2379">2379</a>
-<a href="#2380" id="2380">2380</a>
-<a href="#2381" id="2381">2381</a>
-<a href="#2382" id="2382">2382</a>
-<a href="#2383" id="2383">2383</a>
-<a href="#2384" id="2384">2384</a>
-<a href="#2385" id="2385">2385</a>
-<a href="#2386" id="2386">2386</a>
-<a href="#2387" id="2387">2387</a>
-<a href="#2388" id="2388">2388</a>
-<a href="#2389" id="2389">2389</a>
-<a href="#2390" id="2390">2390</a>
-<a href="#2391" id="2391">2391</a>
-<a href="#2392" id="2392">2392</a>
-<a href="#2393" id="2393">2393</a>
-<a href="#2394" id="2394">2394</a>
-<a href="#2395" id="2395">2395</a>
-<a href="#2396" id="2396">2396</a>
-<a href="#2397" id="2397">2397</a>
-<a href="#2398" id="2398">2398</a>
-<a href="#2399" id="2399">2399</a>
-<a href="#2400" id="2400">2400</a>
-<a href="#2401" id="2401">2401</a>
-<a href="#2402" id="2402">2402</a>
-<a href="#2403" id="2403">2403</a>
-<a href="#2404" id="2404">2404</a>
-<a href="#2405" id="2405">2405</a>
-<a href="#2406" id="2406">2406</a>
-<a href="#2407" id="2407">2407</a>
-<a href="#2408" id="2408">2408</a>
-<a href="#2409" id="2409">2409</a>
-<a href="#2410" id="2410">2410</a>
-<a href="#2411" id="2411">2411</a>
-<a href="#2412" id="2412">2412</a>
-<a href="#2413" id="2413">2413</a>
-<a href="#2414" id="2414">2414</a>
-<a href="#2415" id="2415">2415</a>
-<a href="#2416" id="2416">2416</a>
-<a href="#2417" id="2417">2417</a>
-<a href="#2418" id="2418">2418</a>
-<a href="#2419" id="2419">2419</a>
-<a href="#2420" id="2420">2420</a>
-<a href="#2421" id="2421">2421</a>
-<a href="#2422" id="2422">2422</a>
-<a href="#2423" id="2423">2423</a>
-<a href="#2424" id="2424">2424</a>
-<a href="#2425" id="2425">2425</a>
-<a href="#2426" id="2426">2426</a>
-<a href="#2427" id="2427">2427</a>
-<a href="#2428" id="2428">2428</a>
-<a href="#2429" id="2429">2429</a>
-<a href="#2430" id="2430">2430</a>
-<a href="#2431" id="2431">2431</a>
-<a href="#2432" id="2432">2432</a>
-<a href="#2433" id="2433">2433</a>
-<a href="#2434" id="2434">2434</a>
-<a href="#2435" id="2435">2435</a>
-<a href="#2436" id="2436">2436</a>
-<a href="#2437" id="2437">2437</a>
-<a href="#2438" id="2438">2438</a>
-<a href="#2439" id="2439">2439</a>
-<a href="#2440" id="2440">2440</a>
-<a href="#2441" id="2441">2441</a>
-<a href="#2442" id="2442">2442</a>
-<a href="#2443" id="2443">2443</a>
-<a href="#2444" id="2444">2444</a>
-<a href="#2445" id="2445">2445</a>
-<a href="#2446" id="2446">2446</a>
-<a href="#2447" id="2447">2447</a>
-<a href="#2448" id="2448">2448</a>
-<a href="#2449" id="2449">2449</a>
-<a href="#2450" id="2450">2450</a>
-<a href="#2451" id="2451">2451</a>
-<a href="#2452" id="2452">2452</a>
-<a href="#2453" id="2453">2453</a>
-<a href="#2454" id="2454">2454</a>
-<a href="#2455" id="2455">2455</a>
-<a href="#2456" id="2456">2456</a>
-<a href="#2457" id="2457">2457</a>
-<a href="#2458" id="2458">2458</a>
-<a href="#2459" id="2459">2459</a>
-<a href="#2460" id="2460">2460</a>
-<a href="#2461" id="2461">2461</a>
-<a href="#2462" id="2462">2462</a>
-<a href="#2463" id="2463">2463</a>
-<a href="#2464" id="2464">2464</a>
-<a href="#2465" id="2465">2465</a>
-<a href="#2466" id="2466">2466</a>
-<a href="#2467" id="2467">2467</a>
-<a href="#2468" id="2468">2468</a>
-<a href="#2469" id="2469">2469</a>
-<a href="#2470" id="2470">2470</a>
-<a href="#2471" id="2471">2471</a>
-<a href="#2472" id="2472">2472</a>
-<a href="#2473" id="2473">2473</a>
-<a href="#2474" id="2474">2474</a>
-<a href="#2475" id="2475">2475</a>
-<a href="#2476" id="2476">2476</a>
-<a href="#2477" id="2477">2477</a>
-<a href="#2478" id="2478">2478</a>
-<a href="#2479" id="2479">2479</a>
-<a href="#2480" id="2480">2480</a>
-<a href="#2481" id="2481">2481</a>
-<a href="#2482" id="2482">2482</a>
-<a href="#2483" id="2483">2483</a>
-<a href="#2484" id="2484">2484</a>
-<a href="#2485" id="2485">2485</a>
-<a href="#2486" id="2486">2486</a>
-<a href="#2487" id="2487">2487</a>
-<a href="#2488" id="2488">2488</a>
-<a href="#2489" id="2489">2489</a>
-<a href="#2490" id="2490">2490</a>
-<a href="#2491" id="2491">2491</a>
-<a href="#2492" id="2492">2492</a>
-<a href="#2493" id="2493">2493</a>
-<a href="#2494" id="2494">2494</a>
-<a href="#2495" id="2495">2495</a>
-<a href="#2496" id="2496">2496</a>
-<a href="#2497" id="2497">2497</a>
-<a href="#2498" id="2498">2498</a>
-<a href="#2499" id="2499">2499</a>
-<a href="#2500" id="2500">2500</a>
-<a href="#2501" id="2501">2501</a>
-<a href="#2502" id="2502">2502</a>
-<a href="#2503" id="2503">2503</a>
-<a href="#2504" id="2504">2504</a>
-<a href="#2505" id="2505">2505</a>
-<a href="#2506" id="2506">2506</a>
-<a href="#2507" id="2507">2507</a>
-<a href="#2508" id="2508">2508</a>
-<a href="#2509" id="2509">2509</a>
-<a href="#2510" id="2510">2510</a>
-<a href="#2511" id="2511">2511</a>
-<a href="#2512" id="2512">2512</a>
-<a href="#2513" id="2513">2513</a>
-<a href="#2514" id="2514">2514</a>
-<a href="#2515" id="2515">2515</a>
-<a href="#2516" id="2516">2516</a>
-<a href="#2517" id="2517">2517</a>
-<a href="#2518" id="2518">2518</a>
-<a href="#2519" id="2519">2519</a>
-<a href="#2520" id="2520">2520</a>
-<a href="#2521" id="2521">2521</a>
-<a href="#2522" id="2522">2522</a>
-<a href="#2523" id="2523">2523</a>
-<a href="#2524" id="2524">2524</a>
-<a href="#2525" id="2525">2525</a>
-<a href="#2526" id="2526">2526</a>
-<a href="#2527" id="2527">2527</a>
-<a href="#2528" id="2528">2528</a>
-<a href="#2529" id="2529">2529</a>
-<a href="#2530" id="2530">2530</a>
-<a href="#2531" id="2531">2531</a>
-<a href="#2532" id="2532">2532</a>
-<a href="#2533" id="2533">2533</a>
-<a href="#2534" id="2534">2534</a>
-<a href="#2535" id="2535">2535</a>
-<a href="#2536" id="2536">2536</a>
-<a href="#2537" id="2537">2537</a>
-<a href="#2538" id="2538">2538</a>
-<a href="#2539" id="2539">2539</a>
-<a href="#2540" id="2540">2540</a>
-<a href="#2541" id="2541">2541</a>
-<a href="#2542" id="2542">2542</a>
-<a href="#2543" id="2543">2543</a>
-<a href="#2544" id="2544">2544</a>
-<a href="#2545" id="2545">2545</a>
-<a href="#2546" id="2546">2546</a>
-<a href="#2547" id="2547">2547</a>
-<a href="#2548" id="2548">2548</a>
-<a href="#2549" id="2549">2549</a>
-<a href="#2550" id="2550">2550</a>
-<a href="#2551" id="2551">2551</a>
-<a href="#2552" id="2552">2552</a>
-<a href="#2553" id="2553">2553</a>
-<a href="#2554" id="2554">2554</a>
-<a href="#2555" id="2555">2555</a>
-<a href="#2556" id="2556">2556</a>
-<a href="#2557" id="2557">2557</a>
-<a href="#2558" id="2558">2558</a>
-<a href="#2559" id="2559">2559</a>
-<a href="#2560" id="2560">2560</a>
-<a href="#2561" id="2561">2561</a>
-<a href="#2562" id="2562">2562</a>
-<a href="#2563" id="2563">2563</a>
-<a href="#2564" id="2564">2564</a>
-<a href="#2565" id="2565">2565</a>
-<a href="#2566" id="2566">2566</a>
-<a href="#2567" id="2567">2567</a>
-<a href="#2568" id="2568">2568</a>
-<a href="#2569" id="2569">2569</a>
-<a href="#2570" id="2570">2570</a>
-<a href="#2571" id="2571">2571</a>
-<a href="#2572" id="2572">2572</a>
-<a href="#2573" id="2573">2573</a>
-<a href="#2574" id="2574">2574</a>
-<a href="#2575" id="2575">2575</a>
-<a href="#2576" id="2576">2576</a>
-<a href="#2577" id="2577">2577</a>
-<a href="#2578" id="2578">2578</a>
-<a href="#2579" id="2579">2579</a>
-<a href="#2580" id="2580">2580</a>
-<a href="#2581" id="2581">2581</a>
-<a href="#2582" id="2582">2582</a>
-<a href="#2583" id="2583">2583</a>
-<a href="#2584" id="2584">2584</a>
-<a href="#2585" id="2585">2585</a>
-<a href="#2586" id="2586">2586</a>
-<a href="#2587" id="2587">2587</a>
-<a href="#2588" id="2588">2588</a>
-<a href="#2589" id="2589">2589</a>
-<a href="#2590" id="2590">2590</a>
-<a href="#2591" id="2591">2591</a>
-<a href="#2592" id="2592">2592</a>
-<a href="#2593" id="2593">2593</a>
-<a href="#2594" id="2594">2594</a>
-<a href="#2595" id="2595">2595</a>
-<a href="#2596" id="2596">2596</a>
-<a href="#2597" id="2597">2597</a>
-<a href="#2598" id="2598">2598</a>
-<a href="#2599" id="2599">2599</a>
-<a href="#2600" id="2600">2600</a>
-<a href="#2601" id="2601">2601</a>
-<a href="#2602" id="2602">2602</a>
-<a href="#2603" id="2603">2603</a>
-<a href="#2604" id="2604">2604</a>
-<a href="#2605" id="2605">2605</a>
-<a href="#2606" id="2606">2606</a>
-<a href="#2607" id="2607">2607</a>
-<a href="#2608" id="2608">2608</a>
-<a href="#2609" id="2609">2609</a>
-<a href="#2610" id="2610">2610</a>
-<a href="#2611" id="2611">2611</a>
-<a href="#2612" id="2612">2612</a>
-<a href="#2613" id="2613">2613</a>
-<a href="#2614" id="2614">2614</a>
-<a href="#2615" id="2615">2615</a>
-<a href="#2616" id="2616">2616</a>
-<a href="#2617" id="2617">2617</a>
-<a href="#2618" id="2618">2618</a>
-<a href="#2619" id="2619">2619</a>
-<a href="#2620" id="2620">2620</a>
-<a href="#2621" id="2621">2621</a>
-<a href="#2622" id="2622">2622</a>
-<a href="#2623" id="2623">2623</a>
-<a href="#2624" id="2624">2624</a>
-<a href="#2625" id="2625">2625</a>
-<a href="#2626" id="2626">2626</a>
-<a href="#2627" id="2627">2627</a>
-<a href="#2628" id="2628">2628</a>
-<a href="#2629" id="2629">2629</a>
-<a href="#2630" id="2630">2630</a>
-<a href="#2631" id="2631">2631</a>
-<a href="#2632" id="2632">2632</a>
-<a href="#2633" id="2633">2633</a>
-<a href="#2634" id="2634">2634</a>
-<a href="#2635" id="2635">2635</a>
-<a href="#2636" id="2636">2636</a>
-<a href="#2637" id="2637">2637</a>
-<a href="#2638" id="2638">2638</a>
-<a href="#2639" id="2639">2639</a>
-<a href="#2640" id="2640">2640</a>
-<a href="#2641" id="2641">2641</a>
-<a href="#2642" id="2642">2642</a>
-<a href="#2643" id="2643">2643</a>
-<a href="#2644" id="2644">2644</a>
-<a href="#2645" id="2645">2645</a>
-<a href="#2646" id="2646">2646</a>
-<a href="#2647" id="2647">2647</a>
-<a href="#2648" id="2648">2648</a>
-<a href="#2649" id="2649">2649</a>
-<a href="#2650" id="2650">2650</a>
-<a href="#2651" id="2651">2651</a>
-<a href="#2652" id="2652">2652</a>
-<a href="#2653" id="2653">2653</a>
-<a href="#2654" id="2654">2654</a>
-<a href="#2655" id="2655">2655</a>
-<a href="#2656" id="2656">2656</a>
-<a href="#2657" id="2657">2657</a>
-<a href="#2658" id="2658">2658</a>
-<a href="#2659" id="2659">2659</a>
-<a href="#2660" id="2660">2660</a>
-<a href="#2661" id="2661">2661</a>
-<a href="#2662" id="2662">2662</a>
-<a href="#2663" id="2663">2663</a>
-<a href="#2664" id="2664">2664</a>
-<a href="#2665" id="2665">2665</a>
-<a href="#2666" id="2666">2666</a>
-<a href="#2667" id="2667">2667</a>
-<a href="#2668" id="2668">2668</a>
-<a href="#2669" id="2669">2669</a>
-<a href="#2670" id="2670">2670</a>
-<a href="#2671" id="2671">2671</a>
-<a href="#2672" id="2672">2672</a>
-<a href="#2673" id="2673">2673</a>
-<a href="#2674" id="2674">2674</a>
-<a href="#2675" id="2675">2675</a>
-<a href="#2676" id="2676">2676</a>
-<a href="#2677" id="2677">2677</a>
-<a href="#2678" id="2678">2678</a>
-<a href="#2679" id="2679">2679</a>
-<a href="#2680" id="2680">2680</a>
-<a href="#2681" id="2681">2681</a>
-<a href="#2682" id="2682">2682</a>
-<a href="#2683" id="2683">2683</a>
-<a href="#2684" id="2684">2684</a>
-<a href="#2685" id="2685">2685</a>
-<a href="#2686" id="2686">2686</a>
-<a href="#2687" id="2687">2687</a>
-<a href="#2688" id="2688">2688</a>
-<a href="#2689" id="2689">2689</a>
-<a href="#2690" id="2690">2690</a>
-<a href="#2691" id="2691">2691</a>
-<a href="#2692" id="2692">2692</a>
-<a href="#2693" id="2693">2693</a>
-<a href="#2694" id="2694">2694</a>
-<a href="#2695" id="2695">2695</a>
-<a href="#2696" id="2696">2696</a>
-<a href="#2697" id="2697">2697</a>
-<a href="#2698" id="2698">2698</a>
-<a href="#2699" id="2699">2699</a>
-<a href="#2700" id="2700">2700</a>
-<a href="#2701" id="2701">2701</a>
-<a href="#2702" id="2702">2702</a>
-<a href="#2703" id="2703">2703</a>
-<a href="#2704" id="2704">2704</a>
-<a href="#2705" id="2705">2705</a>
-<a href="#2706" id="2706">2706</a>
-<a href="#2707" id="2707">2707</a>
-<a href="#2708" id="2708">2708</a>
-</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-</span><span class="doccomment">//! Wallet
-//!
-//! This module defines the [`Wallet`].
-</span><span class="kw">use </span><span class="kw">crate</span>::collections::{BTreeMap, HashMap};
-<span class="kw">use </span>alloc::{
- boxed::Box,
- string::{String, ToString},
- sync::Arc,
- vec::Vec,
-};
-<span class="kw">pub use </span>bdk_chain::keychain::Balance;
-<span class="kw">use </span>bdk_chain::{
- indexed_tx_graph,
- keychain::{<span class="self">self</span>, KeychainTxOutIndex},
- local_chain::{
- <span class="self">self</span>, ApplyHeaderError, CannotConnectError, CheckPoint, CheckPointIter, LocalChain,
- },
- spk_client::{FullScanRequest, FullScanResult, SyncRequest, SyncResult},
- tx_graph::{CanonicalTx, TxGraph},
- Append, BlockId, ChainPosition, ConfirmationTime, ConfirmationTimeHeightAnchor, FullTxOut,
- IndexedTxGraph,
-};
-<span class="kw">use </span>bdk_persist::{Persist, PersistBackend};
-<span class="kw">use </span>bitcoin::secp256k1::{All, Secp256k1};
-<span class="kw">use </span>bitcoin::sighash::{EcdsaSighashType, TapSighashType};
-<span class="kw">use </span>bitcoin::{
- absolute, psbt, Address, Block, FeeRate, Network, OutPoint, Script, ScriptBuf, Sequence,
- Transaction, TxOut, Txid, Witness,
-};
-<span class="kw">use </span>bitcoin::{consensus::encode::serialize, transaction, BlockHash, Psbt};
-<span class="kw">use </span>bitcoin::{constants::genesis_block, Amount};
-<span class="kw">use </span>core::fmt;
-<span class="kw">use </span>core::ops::Deref;
-<span class="kw">use </span>descriptor::error::Error <span class="kw">as </span>DescriptorError;
-<span class="kw">use </span>miniscript::psbt::{PsbtExt, PsbtInputExt, PsbtInputSatisfier};
-
-<span class="kw">use </span>bdk_chain::tx_graph::CalculateFeeError;
-
-<span class="kw">pub mod </span>coin_selection;
-<span class="kw">pub mod </span>export;
-<span class="kw">pub mod </span>signer;
-<span class="kw">pub mod </span>tx_builder;
-<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">mod </span>utils;
-
-<span class="kw">pub mod </span>error;
-
-<span class="kw">pub use </span>utils::IsDust;
-
-<span class="kw">use </span>coin_selection::DefaultCoinSelectionAlgorithm;
-<span class="kw">use </span>signer::{SignOptions, SignerOrdering, SignersContainer, TransactionSigner};
-<span class="kw">use </span>tx_builder::{BumpFee, CreateTx, FeePolicy, TxBuilder, TxParams};
-<span class="kw">use </span>utils::{check_nsequence_rbf, After, Older, SecpCtx};
-
-<span class="kw">use </span><span class="kw">crate</span>::descriptor::policy::BuildSatisfaction;
-<span class="kw">use </span><span class="kw">crate</span>::descriptor::{
- <span class="self">self</span>, calc_checksum, into_wallet_descriptor_checked, DerivedDescriptor, DescriptorMeta,
- ExtendedDescriptor, ExtractPolicy, IntoWalletDescriptor, Policy, XKeyUtils,
-};
-<span class="kw">use </span><span class="kw">crate</span>::psbt::PsbtUtils;
-<span class="kw">use </span><span class="kw">crate</span>::signer::SignerError;
-<span class="kw">use </span><span class="kw">crate</span>::types::<span class="kw-2">*</span>;
-<span class="kw">use </span><span class="kw">crate</span>::wallet::coin_selection::Excess::{Change, NoChange};
-<span class="kw">use </span><span class="kw">crate</span>::wallet::error::{BuildFeeBumpError, CreateTxError, MiniscriptPsbtError};
-
-<span class="kw">const </span>COINBASE_MATURITY: u32 = <span class="number">100</span>;
-
-<span class="doccomment">/// A Bitcoin wallet
-///
-/// The `Wallet` acts as a way of coherently interfacing with output descriptors and related transactions.
-/// Its main components are:
-///
-/// 1. output *descriptors* from which it can derive addresses.
-/// 2. [`signer`]s that can contribute signatures to addresses instantiated from the descriptors.
-///
-/// [`signer`]: crate::signer
-</span><span class="attr">#[derive(Debug)]
-</span><span class="kw">pub struct </span>Wallet {
- signers: Arc<SignersContainer>,
- change_signers: Arc<SignersContainer>,
- chain: LocalChain,
- indexed_graph: IndexedTxGraph<ConfirmationTimeHeightAnchor, KeychainTxOutIndex<KeychainKind>>,
- persist: Persist<ChangeSet>,
- network: Network,
- secp: SecpCtx,
-}
-
-<span class="doccomment">/// An update to [`Wallet`].
-///
-/// It updates [`bdk_chain::keychain::KeychainTxOutIndex`], [`bdk_chain::TxGraph`] and [`local_chain::LocalChain`] atomically.
-</span><span class="attr">#[derive(Debug, Clone, Default)]
-</span><span class="kw">pub struct </span>Update {
- <span class="doccomment">/// Contains the last active derivation indices per keychain (`K`), which is used to update the
- /// [`KeychainTxOutIndex`].
- </span><span class="kw">pub </span>last_active_indices: BTreeMap<KeychainKind, u32>,
-
- <span class="doccomment">/// Update for the wallet's internal [`TxGraph`].
- </span><span class="kw">pub </span>graph: TxGraph<ConfirmationTimeHeightAnchor>,
-
- <span class="doccomment">/// Update for the wallet's internal [`LocalChain`].
- ///
- /// [`LocalChain`]: local_chain::LocalChain
- </span><span class="kw">pub </span>chain: <span class="prelude-ty">Option</span><CheckPoint>,
-}
-
-<span class="kw">impl </span>From<FullScanResult<KeychainKind>> <span class="kw">for </span>Update {
- <span class="kw">fn </span>from(value: FullScanResult<KeychainKind>) -> <span class="self">Self </span>{
- <span class="self">Self </span>{
- last_active_indices: value.last_active_indices,
- graph: value.graph_update,
- chain: <span class="prelude-val">Some</span>(value.chain_update),
- }
- }
-}
-
-<span class="kw">impl </span>From<SyncResult> <span class="kw">for </span>Update {
- <span class="kw">fn </span>from(value: SyncResult) -> <span class="self">Self </span>{
- <span class="self">Self </span>{
- last_active_indices: BTreeMap::new(),
- graph: value.graph_update,
- chain: <span class="prelude-val">Some</span>(value.chain_update),
- }
- }
-}
-
-<span class="doccomment">/// The changes made to a wallet by applying an [`Update`].
-</span><span class="attr">#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize, Default)]
-</span><span class="kw">pub struct </span>ChangeSet {
- <span class="doccomment">/// Changes to the [`LocalChain`].
- ///
- /// [`LocalChain`]: local_chain::LocalChain
- </span><span class="kw">pub </span>chain: local_chain::ChangeSet,
-
- <span class="doccomment">/// Changes to [`IndexedTxGraph`].
- ///
- /// [`IndexedTxGraph`]: bdk_chain::indexed_tx_graph::IndexedTxGraph
- </span><span class="kw">pub </span>indexed_tx_graph: indexed_tx_graph::ChangeSet<
- ConfirmationTimeHeightAnchor,
- keychain::ChangeSet<KeychainKind>,
- >,
-
- <span class="doccomment">/// Stores the network type of the wallet.
- </span><span class="kw">pub </span>network: <span class="prelude-ty">Option</span><Network>,
-}
-
-<span class="kw">impl </span>Append <span class="kw">for </span>ChangeSet {
- <span class="kw">fn </span>append(<span class="kw-2">&mut </span><span class="self">self</span>, other: <span class="self">Self</span>) {
- Append::append(<span class="kw-2">&mut </span><span class="self">self</span>.chain, other.chain);
- Append::append(<span class="kw-2">&mut </span><span class="self">self</span>.indexed_tx_graph, other.indexed_tx_graph);
- <span class="kw">if </span>other.network.is_some() {
- <span class="macro">debug_assert!</span>(
- <span class="self">self</span>.network.is_none() || <span class="self">self</span>.network == other.network,
- <span class="string">"network type must be consistent"
- </span>);
- <span class="self">self</span>.network = other.network;
- }
- }
-
- <span class="kw">fn </span>is_empty(<span class="kw-2">&</span><span class="self">self</span>) -> bool {
- <span class="self">self</span>.chain.is_empty() && <span class="self">self</span>.indexed_tx_graph.is_empty()
- }
-}
-
-<span class="kw">impl </span>From<local_chain::ChangeSet> <span class="kw">for </span>ChangeSet {
- <span class="kw">fn </span>from(chain: local_chain::ChangeSet) -> <span class="self">Self </span>{
- <span class="self">Self </span>{
- chain,
- ..Default::default()
- }
- }
-}
-
-<span class="kw">impl
- </span>From<
- indexed_tx_graph::ChangeSet<
- ConfirmationTimeHeightAnchor,
- keychain::ChangeSet<KeychainKind>,
- >,
- > <span class="kw">for </span>ChangeSet
-{
- <span class="kw">fn </span>from(
- indexed_tx_graph: indexed_tx_graph::ChangeSet<
- ConfirmationTimeHeightAnchor,
- keychain::ChangeSet<KeychainKind>,
- >,
- ) -> <span class="self">Self </span>{
- <span class="self">Self </span>{
- indexed_tx_graph,
- ..Default::default()
- }
- }
-}
-
-<span class="doccomment">/// A derived address and the index it was found at.
-/// For convenience this automatically derefs to `Address`
-</span><span class="attr">#[derive(Debug, PartialEq, Eq)]
-</span><span class="kw">pub struct </span>AddressInfo {
- <span class="doccomment">/// Child index of this address
- </span><span class="kw">pub </span>index: u32,
- <span class="doccomment">/// Address
- </span><span class="kw">pub </span>address: Address,
- <span class="doccomment">/// Type of keychain
- </span><span class="kw">pub </span>keychain: KeychainKind,
-}
-
-<span class="kw">impl </span>Deref <span class="kw">for </span>AddressInfo {
- <span class="kw">type </span>Target = Address;
-
- <span class="kw">fn </span>deref(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span><span class="self">Self</span>::Target {
- <span class="kw-2">&</span><span class="self">self</span>.address
- }
-}
-
-<span class="kw">impl </span>fmt::Display <span class="kw">for </span>AddressInfo {
- <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
- <span class="macro">write!</span>(f, <span class="string">"{}"</span>, <span class="self">self</span>.address)
- }
-}
-
-<span class="kw">impl </span>Wallet {
- <span class="doccomment">/// Creates a wallet that does not persist data.
- </span><span class="kw">pub fn </span>new_no_persist<E: IntoWalletDescriptor>(
- descriptor: E,
- change_descriptor: <span class="prelude-ty">Option</span><E>,
- network: Network,
- ) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>, DescriptorError> {
- <span class="self">Self</span>::new(descriptor, change_descriptor, (), network).map_err(|e| <span class="kw">match </span>e {
- NewError::NonEmptyDatabase => <span class="macro">unreachable!</span>(<span class="string">"mock-database cannot have data"</span>),
- NewError::Descriptor(e) => e,
- NewError::Persist(<span class="kw">_</span>) => <span class="macro">unreachable!</span>(<span class="string">"mock-write must always succeed"</span>),
- })
- }
-
- <span class="doccomment">/// Creates a wallet that does not persist data, with a custom genesis hash.
- </span><span class="kw">pub fn </span>new_no_persist_with_genesis_hash<E: IntoWalletDescriptor>(
- descriptor: E,
- change_descriptor: <span class="prelude-ty">Option</span><E>,
- network: Network,
- genesis_hash: BlockHash,
- ) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>, <span class="kw">crate</span>::descriptor::DescriptorError> {
- <span class="self">Self</span>::new_with_genesis_hash(descriptor, change_descriptor, (), network, genesis_hash)
- .map_err(|e| <span class="kw">match </span>e {
- NewError::NonEmptyDatabase => <span class="macro">unreachable!</span>(<span class="string">"mock-database cannot have data"</span>),
- NewError::Descriptor(e) => e,
- NewError::Persist(<span class="kw">_</span>) => <span class="macro">unreachable!</span>(<span class="string">"mock-write must always succeed"</span>),
- })
- }
-}
-
-<span class="doccomment">/// The error type when constructing a fresh [`Wallet`].
-///
-/// Methods [`new`] and [`new_with_genesis_hash`] may return this error.
-///
-/// [`new`]: Wallet::new
-/// [`new_with_genesis_hash`]: Wallet::new_with_genesis_hash
-</span><span class="attr">#[derive(Debug)]
-</span><span class="kw">pub enum </span>NewError {
- <span class="doccomment">/// Database already has data.
- </span>NonEmptyDatabase,
- <span class="doccomment">/// There was problem with the passed-in descriptor(s).
- </span>Descriptor(<span class="kw">crate</span>::descriptor::DescriptorError),
- <span class="doccomment">/// We were unable to write the wallet's data to the persistence backend.
- </span>Persist(anyhow::Error),
-}
-
-<span class="kw">impl </span>fmt::Display <span class="kw">for </span>NewError {
- <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
- <span class="kw">match </span><span class="self">self </span>{
- NewError::NonEmptyDatabase => <span class="macro">write!</span>(
- f,
- <span class="string">"database already has data - use `load` or `new_or_load` methods instead"
- </span>),
- NewError::Descriptor(e) => e.fmt(f),
- NewError::Persist(e) => e.fmt(f),
- }
- }
-}
-
-<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
-</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>NewError {}
-
-<span class="doccomment">/// The error type when loading a [`Wallet`] from persistence.
-///
-/// Method [`load`] may return this error.
-///
-/// [`load`]: Wallet::load
-</span><span class="attr">#[derive(Debug)]
-</span><span class="kw">pub enum </span>LoadError {
- <span class="doccomment">/// There was a problem with the passed-in descriptor(s).
- </span>Descriptor(<span class="kw">crate</span>::descriptor::DescriptorError),
- <span class="doccomment">/// Loading data from the persistence backend failed.
- </span>Persist(anyhow::Error),
- <span class="doccomment">/// Wallet not initialized, persistence backend is empty.
- </span>NotInitialized,
- <span class="doccomment">/// Data loaded from persistence is missing network type.
- </span>MissingNetwork,
- <span class="doccomment">/// Data loaded from persistence is missing genesis hash.
- </span>MissingGenesis,
- <span class="doccomment">/// Data loaded from persistence is missing descriptor.
- </span>MissingDescriptor,
-}
-
-<span class="kw">impl </span>fmt::Display <span class="kw">for </span>LoadError {
- <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
- <span class="kw">match </span><span class="self">self </span>{
- LoadError::Descriptor(e) => e.fmt(f),
- LoadError::Persist(e) => e.fmt(f),
- LoadError::NotInitialized => {
- <span class="macro">write!</span>(f, <span class="string">"wallet is not initialized, persistence backend is empty"</span>)
- }
- LoadError::MissingNetwork => <span class="macro">write!</span>(f, <span class="string">"loaded data is missing network type"</span>),
- LoadError::MissingGenesis => <span class="macro">write!</span>(f, <span class="string">"loaded data is missing genesis hash"</span>),
- LoadError::MissingDescriptor => <span class="macro">write!</span>(f, <span class="string">"loaded data is missing descriptor"</span>),
- }
- }
-}
-
-<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
-</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>LoadError {}
-
-<span class="doccomment">/// Error type for when we try load a [`Wallet`] from persistence and creating it if non-existent.
-///
-/// Methods [`new_or_load`] and [`new_or_load_with_genesis_hash`] may return this error.
-///
-/// [`new_or_load`]: Wallet::new_or_load
-/// [`new_or_load_with_genesis_hash`]: Wallet::new_or_load_with_genesis_hash
-</span><span class="attr">#[derive(Debug)]
-</span><span class="kw">pub enum </span>NewOrLoadError {
- <span class="doccomment">/// There is a problem with the passed-in descriptor.
- </span>Descriptor(<span class="kw">crate</span>::descriptor::DescriptorError),
- <span class="doccomment">/// Either writing to or loading from the persistence backend failed.
- </span>Persist(anyhow::Error),
- <span class="doccomment">/// Wallet is not initialized, persistence backend is empty.
- </span>NotInitialized,
- <span class="doccomment">/// The loaded genesis hash does not match what was provided.
- </span>LoadedGenesisDoesNotMatch {
- <span class="doccomment">/// The expected genesis block hash.
- </span>expected: BlockHash,
- <span class="doccomment">/// The block hash loaded from persistence.
- </span>got: <span class="prelude-ty">Option</span><BlockHash>,
- },
- <span class="doccomment">/// The loaded network type does not match what was provided.
- </span>LoadedNetworkDoesNotMatch {
- <span class="doccomment">/// The expected network type.
- </span>expected: Network,
- <span class="doccomment">/// The network type loaded from persistence.
- </span>got: <span class="prelude-ty">Option</span><Network>,
- },
- <span class="doccomment">/// The loaded desccriptor does not match what was provided.
- </span>LoadedDescriptorDoesNotMatch {
- <span class="doccomment">/// The descriptor loaded from persistence.
- </span>got: <span class="prelude-ty">Option</span><ExtendedDescriptor>,
- <span class="doccomment">/// The keychain of the descriptor not matching
- </span>keychain: KeychainKind,
- },
-}
-
-<span class="kw">impl </span>fmt::Display <span class="kw">for </span>NewOrLoadError {
- <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
- <span class="kw">match </span><span class="self">self </span>{
- NewOrLoadError::Descriptor(e) => e.fmt(f),
- NewOrLoadError::Persist(e) => <span class="macro">write!</span>(
- f,
- <span class="string">"failed to either write to or load from persistence, {}"</span>,
- e
- ),
- NewOrLoadError::NotInitialized => {
- <span class="macro">write!</span>(f, <span class="string">"wallet is not initialized, persistence backend is empty"</span>)
- }
- NewOrLoadError::LoadedGenesisDoesNotMatch { expected, got } => {
- <span class="macro">write!</span>(f, <span class="string">"loaded genesis hash is not {}, got {:?}"</span>, expected, got)
- }
- NewOrLoadError::LoadedNetworkDoesNotMatch { expected, got } => {
- <span class="macro">write!</span>(f, <span class="string">"loaded network type is not {}, got {:?}"</span>, expected, got)
- }
- NewOrLoadError::LoadedDescriptorDoesNotMatch { got, keychain } => {
- <span class="macro">write!</span>(
- f,
- <span class="string">"loaded descriptor is different from what was provided, got {:?} for keychain {:?}"</span>,
- got, keychain
- )
- }
- }
- }
-}
-
-<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
-</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>NewOrLoadError {}
-
-<span class="doccomment">/// An error that may occur when inserting a transaction into [`Wallet`].
-</span><span class="attr">#[derive(Debug)]
-</span><span class="kw">pub enum </span>InsertTxError {
- <span class="doccomment">/// The error variant that occurs when the caller attempts to insert a transaction with a
- /// confirmation height that is greater than the internal chain tip.
- </span>ConfirmationHeightCannotBeGreaterThanTip {
- <span class="doccomment">/// The internal chain's tip height.
- </span>tip_height: u32,
- <span class="doccomment">/// The introduced transaction's confirmation height.
- </span>tx_height: u32,
- },
-}
-
-<span class="kw">impl </span>fmt::Display <span class="kw">for </span>InsertTxError {
- <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
- <span class="kw">match </span><span class="self">self </span>{
- InsertTxError::ConfirmationHeightCannotBeGreaterThanTip {
- tip_height,
- tx_height,
- } => {
- <span class="macro">write!</span>(f, <span class="string">"cannot insert tx with confirmation height ({}) higher than internal tip height ({})"</span>, tx_height, tip_height)
- }
- }
- }
-}
-
-<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
-</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>InsertTxError {}
-
-<span class="doccomment">/// An error that may occur when applying a block to [`Wallet`].
-</span><span class="attr">#[derive(Debug)]
-</span><span class="kw">pub enum </span>ApplyBlockError {
- <span class="doccomment">/// Occurs when the update chain cannot connect with original chain.
- </span>CannotConnect(CannotConnectError),
- <span class="doccomment">/// Occurs when the `connected_to` hash does not match the hash derived from `block`.
- </span>UnexpectedConnectedToHash {
- <span class="doccomment">/// Block hash of `connected_to`.
- </span>connected_to_hash: BlockHash,
- <span class="doccomment">/// Expected block hash of `connected_to`, as derived from `block`.
- </span>expected_hash: BlockHash,
- },
-}
-
-<span class="kw">impl </span>fmt::Display <span class="kw">for </span>ApplyBlockError {
- <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
- <span class="kw">match </span><span class="self">self </span>{
- ApplyBlockError::CannotConnect(err) => err.fmt(f),
- ApplyBlockError::UnexpectedConnectedToHash {
- expected_hash: block_hash,
- connected_to_hash: checkpoint_hash,
- } => <span class="macro">write!</span>(
- f,
- <span class="string">"`connected_to` hash {} differs from the expected hash {} (which is derived from `block`)"</span>,
- checkpoint_hash, block_hash
- ),
- }
- }
-}
-
-<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
-</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>ApplyBlockError {}
-
-<span class="kw">impl </span>Wallet {
- <span class="doccomment">/// Initialize an empty [`Wallet`].
- </span><span class="kw">pub fn </span>new<E: IntoWalletDescriptor>(
- descriptor: E,
- change_descriptor: <span class="prelude-ty">Option</span><E>,
- db: <span class="kw">impl </span>PersistBackend<ChangeSet> + Send + Sync + <span class="lifetime">'static</span>,
- network: Network,
- ) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>, NewError> {
- <span class="kw">let </span>genesis_hash = genesis_block(network).block_hash();
- <span class="self">Self</span>::new_with_genesis_hash(descriptor, change_descriptor, db, network, genesis_hash)
- }
-
- <span class="doccomment">/// Initialize an empty [`Wallet`] with a custom genesis hash.
- ///
- /// This is like [`Wallet::new`] with an additional `genesis_hash` parameter. This is useful
- /// for syncing from alternative networks.
- </span><span class="kw">pub fn </span>new_with_genesis_hash<E: IntoWalletDescriptor>(
- descriptor: E,
- change_descriptor: <span class="prelude-ty">Option</span><E>,
- <span class="kw-2">mut </span>db: <span class="kw">impl </span>PersistBackend<ChangeSet> + Send + Sync + <span class="lifetime">'static</span>,
- network: Network,
- genesis_hash: BlockHash,
- ) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>, NewError> {
- <span class="kw">if let </span><span class="prelude-val">Ok</span>(changeset) = db.load_from_persistence() {
- <span class="kw">if </span>changeset.is_some() {
- <span class="kw">return </span><span class="prelude-val">Err</span>(NewError::NonEmptyDatabase);
- }
- }
- <span class="kw">let </span>secp = Secp256k1::new();
- <span class="kw">let </span>(chain, chain_changeset) = LocalChain::from_genesis_hash(genesis_hash);
- <span class="kw">let </span><span class="kw-2">mut </span>index = KeychainTxOutIndex::<KeychainKind>::default();
-
- <span class="kw">let </span>(signers, change_signers) =
- create_signers(<span class="kw-2">&mut </span>index, <span class="kw-2">&</span>secp, descriptor, change_descriptor, network)
- .map_err(NewError::Descriptor)<span class="question-mark">?</span>;
-
- <span class="kw">let </span>indexed_graph = IndexedTxGraph::new(index);
-
- <span class="kw">let </span><span class="kw-2">mut </span>persist = Persist::new(db);
- persist.stage(ChangeSet {
- chain: chain_changeset,
- indexed_tx_graph: indexed_graph.initial_changeset(),
- network: <span class="prelude-val">Some</span>(network),
- });
- persist.commit().map_err(NewError::Persist)<span class="question-mark">?</span>;
-
- <span class="prelude-val">Ok</span>(Wallet {
- signers,
- change_signers,
- network,
- chain,
- indexed_graph,
- persist,
- secp,
- })
- }
-
- <span class="doccomment">/// Load [`Wallet`] from the given persistence backend.
- ///
- /// Note that the descriptor secret keys are not persisted to the db; this means that after
- /// calling this method the [`Wallet`] **won't** know the secret keys, and as such, won't be
- /// able to sign transactions.
- ///
- /// If you wish to use the wallet to sign transactions, you need to add the secret keys
- /// manually to the [`Wallet`]:
- ///
- /// ```rust,no_run
- /// # use bdk::Wallet;
- /// # use bdk::signer::{SignersContainer, SignerOrdering};
- /// # use bdk::descriptor::Descriptor;
- /// # use bitcoin::key::Secp256k1;
- /// # use bdk::KeychainKind;
- /// # use bdk_file_store::Store;
- /// #
- /// # fn main() -> Result<(), anyhow::Error> {
- /// # let temp_dir = tempfile::tempdir().expect("must create tempdir");
- /// # let file_path = temp_dir.path().join("store.db");
- /// # let db: Store<bdk::wallet::ChangeSet> = Store::create_new(&[], &file_path).expect("must create db");
- /// let secp = Secp256k1::new();
- ///
- /// let (external_descriptor, external_keymap) = Descriptor::parse_descriptor(&secp, "wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/0/*)").unwrap();
- /// let (internal_descriptor, internal_keymap) = Descriptor::parse_descriptor(&secp, "wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/1/*)").unwrap();
- ///
- /// let external_signer_container = SignersContainer::build(external_keymap, &external_descriptor, &secp);
- /// let internal_signer_container = SignersContainer::build(internal_keymap, &internal_descriptor, &secp);
- ///
- /// let mut wallet = Wallet::load(db)?;
- ///
- /// external_signer_container.signers().into_iter()
- /// .for_each(|s| wallet.add_signer(KeychainKind::External, SignerOrdering::default(), s.clone()));
- /// internal_signer_container.signers().into_iter()
- /// .for_each(|s| wallet.add_signer(KeychainKind::Internal, SignerOrdering::default(), s.clone()));
- /// # Ok(())
- /// # }
- /// ```
- ///
- /// Alternatively, you can call [`Wallet::new_or_load`], which will add the private keys of the
- /// passed-in descriptors to the [`Wallet`].
- </span><span class="kw">pub fn </span>load(
- <span class="kw-2">mut </span>db: <span class="kw">impl </span>PersistBackend<ChangeSet> + Send + Sync + <span class="lifetime">'static</span>,
- ) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>, LoadError> {
- <span class="kw">let </span>changeset = db
- .load_from_persistence()
- .map_err(LoadError::Persist)<span class="question-mark">?
- </span>.ok_or(LoadError::NotInitialized)<span class="question-mark">?</span>;
- <span class="self">Self</span>::load_from_changeset(db, changeset)
- }
-
- <span class="kw">fn </span>load_from_changeset(
- db: <span class="kw">impl </span>PersistBackend<ChangeSet> + Send + Sync + <span class="lifetime">'static</span>,
- changeset: ChangeSet,
- ) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>, LoadError> {
- <span class="kw">let </span>secp = Secp256k1::new();
- <span class="kw">let </span>network = changeset.network.ok_or(LoadError::MissingNetwork)<span class="question-mark">?</span>;
- <span class="kw">let </span>chain =
- LocalChain::from_changeset(changeset.chain).map_err(|<span class="kw">_</span>| LoadError::MissingGenesis)<span class="question-mark">?</span>;
- <span class="kw">let </span><span class="kw-2">mut </span>index = KeychainTxOutIndex::<KeychainKind>::default();
- <span class="kw">let </span>descriptor = changeset
- .indexed_tx_graph
- .indexer
- .keychains_added
- .get(<span class="kw-2">&</span>KeychainKind::External)
- .ok_or(LoadError::MissingDescriptor)<span class="question-mark">?
- </span>.clone();
- <span class="kw">let </span>change_descriptor = changeset
- .indexed_tx_graph
- .indexer
- .keychains_added
- .get(<span class="kw-2">&</span>KeychainKind::Internal)
- .cloned();
-
- <span class="kw">let </span>(signers, change_signers) =
- create_signers(<span class="kw-2">&mut </span>index, <span class="kw-2">&</span>secp, descriptor, change_descriptor, network)
- .expect(<span class="string">"Can't fail: we passed in valid descriptors, recovered from the changeset"</span>);
-
- <span class="kw">let </span><span class="kw-2">mut </span>indexed_graph = IndexedTxGraph::new(index);
- indexed_graph.apply_changeset(changeset.indexed_tx_graph);
-
- <span class="kw">let </span>persist = Persist::new(db);
-
- <span class="prelude-val">Ok</span>(Wallet {
- signers,
- change_signers,
- chain,
- indexed_graph,
- persist,
- network,
- secp,
- })
- }
-
- <span class="doccomment">/// Either loads [`Wallet`] from persistence, or initializes it if it does not exist.
- ///
- /// This method will fail if the loaded [`Wallet`] has different parameters to those provided.
- </span><span class="kw">pub fn </span>new_or_load<E: IntoWalletDescriptor>(
- descriptor: E,
- change_descriptor: <span class="prelude-ty">Option</span><E>,
- db: <span class="kw">impl </span>PersistBackend<ChangeSet> + Send + Sync + <span class="lifetime">'static</span>,
- network: Network,
- ) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>, NewOrLoadError> {
- <span class="kw">let </span>genesis_hash = genesis_block(network).block_hash();
- <span class="self">Self</span>::new_or_load_with_genesis_hash(
- descriptor,
- change_descriptor,
- db,
- network,
- genesis_hash,
- )
- }
-
- <span class="doccomment">/// Either loads [`Wallet`] from persistence, or initializes it if it does not exist, using the
- /// provided descriptor, change descriptor, network, and custom genesis hash.
- ///
- /// This method will fail if the loaded [`Wallet`] has different parameters to those provided.
- /// This is like [`Wallet::new_or_load`] with an additional `genesis_hash` parameter. This is
- /// useful for syncing from alternative networks.
- </span><span class="kw">pub fn </span>new_or_load_with_genesis_hash<E: IntoWalletDescriptor>(
- descriptor: E,
- change_descriptor: <span class="prelude-ty">Option</span><E>,
- <span class="kw-2">mut </span>db: <span class="kw">impl </span>PersistBackend<ChangeSet> + Send + Sync + <span class="lifetime">'static</span>,
- network: Network,
- genesis_hash: BlockHash,
- ) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>, NewOrLoadError> {
- <span class="kw">let </span>changeset = db
- .load_from_persistence()
- .map_err(NewOrLoadError::Persist)<span class="question-mark">?</span>;
- <span class="kw">match </span>changeset {
- <span class="prelude-val">Some</span>(changeset) => {
- <span class="kw">let </span><span class="kw-2">mut </span>wallet = <span class="self">Self</span>::load_from_changeset(db, changeset).map_err(|e| <span class="kw">match </span>e {
- LoadError::Descriptor(e) => NewOrLoadError::Descriptor(e),
- LoadError::Persist(e) => NewOrLoadError::Persist(e),
- LoadError::NotInitialized => NewOrLoadError::NotInitialized,
- LoadError::MissingNetwork => NewOrLoadError::LoadedNetworkDoesNotMatch {
- expected: network,
- got: <span class="prelude-val">None</span>,
- },
- LoadError::MissingGenesis => NewOrLoadError::LoadedGenesisDoesNotMatch {
- expected: genesis_hash,
- got: <span class="prelude-val">None</span>,
- },
- LoadError::MissingDescriptor => NewOrLoadError::LoadedDescriptorDoesNotMatch {
- got: <span class="prelude-val">None</span>,
- keychain: KeychainKind::External,
- },
- })<span class="question-mark">?</span>;
- <span class="kw">if </span>wallet.network != network {
- <span class="kw">return </span><span class="prelude-val">Err</span>(NewOrLoadError::LoadedNetworkDoesNotMatch {
- expected: network,
- got: <span class="prelude-val">Some</span>(wallet.network),
- });
- }
- <span class="kw">if </span>wallet.chain.genesis_hash() != genesis_hash {
- <span class="kw">return </span><span class="prelude-val">Err</span>(NewOrLoadError::LoadedGenesisDoesNotMatch {
- expected: genesis_hash,
- got: <span class="prelude-val">Some</span>(wallet.chain.genesis_hash()),
- });
- }
-
- <span class="kw">let </span>(expected_descriptor, expected_descriptor_keymap) = descriptor
- .into_wallet_descriptor(<span class="kw-2">&</span>wallet.secp, network)
- .map_err(NewOrLoadError::Descriptor)<span class="question-mark">?</span>;
- <span class="kw">let </span>wallet_descriptor = wallet.public_descriptor(KeychainKind::External).cloned();
- <span class="kw">if </span>wallet_descriptor != <span class="prelude-val">Some</span>(expected_descriptor.clone()) {
- <span class="kw">return </span><span class="prelude-val">Err</span>(NewOrLoadError::LoadedDescriptorDoesNotMatch {
- got: wallet_descriptor,
- keychain: KeychainKind::External,
- });
- }
- <span class="comment">// if expected descriptor has private keys add them as new signers
- </span><span class="kw">if </span>!expected_descriptor_keymap.is_empty() {
- <span class="kw">let </span>signer_container = SignersContainer::build(
- expected_descriptor_keymap,
- <span class="kw-2">&</span>expected_descriptor,
- <span class="kw-2">&</span>wallet.secp,
- );
- signer_container.signers().into_iter().for_each(|signer| {
- wallet.add_signer(
- KeychainKind::External,
- SignerOrdering::default(),
- signer.clone(),
- )
- });
- }
-
- <span class="kw">let </span>expected_change_descriptor = <span class="kw">if let </span><span class="prelude-val">Some</span>(c) = change_descriptor {
- <span class="prelude-val">Some</span>(
- c.into_wallet_descriptor(<span class="kw-2">&</span>wallet.secp, network)
- .map_err(NewOrLoadError::Descriptor)<span class="question-mark">?</span>,
- )
- } <span class="kw">else </span>{
- <span class="prelude-val">None
- </span>};
- <span class="kw">let </span>wallet_change_descriptor =
- wallet.public_descriptor(KeychainKind::Internal).cloned();
-
- <span class="kw">match </span>(expected_change_descriptor, wallet_change_descriptor) {
- (<span class="prelude-val">Some</span>((expected_descriptor, expected_keymap)), <span class="prelude-val">Some</span>(wallet_descriptor))
- <span class="kw">if </span>wallet_descriptor == expected_descriptor =>
- {
- <span class="comment">// if expected change descriptor has private keys add them as new signers
- </span><span class="kw">if </span>!expected_keymap.is_empty() {
- <span class="kw">let </span>signer_container = SignersContainer::build(
- expected_keymap,
- <span class="kw-2">&</span>expected_descriptor,
- <span class="kw-2">&</span>wallet.secp,
- );
- signer_container.signers().into_iter().for_each(|signer| {
- wallet.add_signer(
- KeychainKind::Internal,
- SignerOrdering::default(),
- signer.clone(),
- )
- });
- }
- }
- (<span class="prelude-val">None</span>, <span class="prelude-val">None</span>) => (),
- (<span class="kw">_</span>, wallet_descriptor) => {
- <span class="kw">return </span><span class="prelude-val">Err</span>(NewOrLoadError::LoadedDescriptorDoesNotMatch {
- got: wallet_descriptor,
- keychain: KeychainKind::Internal,
- });
- }
- }
-
- <span class="prelude-val">Ok</span>(wallet)
- }
- <span class="prelude-val">None </span>=> <span class="self">Self</span>::new_with_genesis_hash(
- descriptor,
- change_descriptor,
- db,
- network,
- genesis_hash,
- )
- .map_err(|e| <span class="kw">match </span>e {
- NewError::NonEmptyDatabase => {
- <span class="macro">unreachable!</span>(<span class="string">"database is already checked to have no data"</span>)
- }
- NewError::Descriptor(e) => NewOrLoadError::Descriptor(e),
- NewError::Persist(e) => NewOrLoadError::Persist(e),
- }),
- }
- }
-
- <span class="doccomment">/// Get the Bitcoin network the wallet is using.
- </span><span class="kw">pub fn </span>network(<span class="kw-2">&</span><span class="self">self</span>) -> Network {
- <span class="self">self</span>.network
- }
-
- <span class="doccomment">/// Iterator over all keychains in this wallet
- </span><span class="kw">pub fn </span>keychains(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw">impl </span>Iterator<Item = (<span class="kw-2">&</span>KeychainKind, <span class="kw-2">&</span>ExtendedDescriptor)> {
- <span class="self">self</span>.indexed_graph.index.keychains()
- }
-
- <span class="doccomment">/// Peek an address of the given `keychain` at `index` without revealing it.
- ///
- /// For non-wildcard descriptors this returns the same address at every provided index.
- ///
- /// # Panics
- ///
- /// This panics when the caller requests for an address of derivation index greater than the
- /// [BIP32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki) max index.
- </span><span class="kw">pub fn </span>peek_address(<span class="kw-2">&</span><span class="self">self</span>, keychain: KeychainKind, <span class="kw-2">mut </span>index: u32) -> AddressInfo {
- <span class="kw">let </span>keychain = <span class="self">self</span>.map_keychain(keychain);
- <span class="kw">let </span><span class="kw-2">mut </span>spk_iter = <span class="self">self
- </span>.indexed_graph
- .index
- .unbounded_spk_iter(<span class="kw-2">&</span>keychain)
- .expect(<span class="string">"Must exist (we called map_keychain)"</span>);
- <span class="kw">if </span>!spk_iter.descriptor().has_wildcard() {
- index = <span class="number">0</span>;
- }
- <span class="kw">let </span>(index, spk) = spk_iter
- .nth(index <span class="kw">as </span>usize)
- .expect(<span class="string">"derivation index is out of bounds"</span>);
-
- AddressInfo {
- index,
- address: Address::from_script(<span class="kw-2">&</span>spk, <span class="self">self</span>.network).expect(<span class="string">"must have address form"</span>),
- keychain,
- }
- }
-
- <span class="doccomment">/// Attempt to reveal the next address of the given `keychain`.
- ///
- /// This will increment the internal derivation index. If the keychain's descriptor doesn't
- /// contain a wildcard or every address is already revealed up to the maximum derivation
- /// index defined in [BIP32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki),
- /// then returns the last revealed address.
- ///
- /// # Errors
- ///
- /// If writing to persistent storage fails.
- </span><span class="kw">pub fn </span>reveal_next_address(<span class="kw-2">&mut </span><span class="self">self</span>, keychain: KeychainKind) -> anyhow::Result<AddressInfo> {
- <span class="kw">let </span>keychain = <span class="self">self</span>.map_keychain(keychain);
- <span class="kw">let </span>((index, spk), index_changeset) = <span class="self">self
- </span>.indexed_graph
- .index
- .reveal_next_spk(<span class="kw-2">&</span>keychain)
- .expect(<span class="string">"Must exist (we called map_keychain)"</span>);
-
- <span class="self">self</span>.persist
- .stage_and_commit(indexed_tx_graph::ChangeSet::from(index_changeset).into())<span class="question-mark">?</span>;
-
- <span class="prelude-val">Ok</span>(AddressInfo {
- index,
- address: Address::from_script(spk, <span class="self">self</span>.network).expect(<span class="string">"must have address form"</span>),
- keychain,
- })
- }
-
- <span class="doccomment">/// Reveal addresses up to and including the target `index` and return an iterator
- /// of newly revealed addresses.
- ///
- /// If the target `index` is unreachable, we make a best effort to reveal up to the last
- /// possible index. If all addresses up to the given `index` are already revealed, then
- /// no new addresses are returned.
- ///
- /// # Errors
- ///
- /// If writing to persistent storage fails.
- </span><span class="kw">pub fn </span>reveal_addresses_to(
- <span class="kw-2">&mut </span><span class="self">self</span>,
- keychain: KeychainKind,
- index: u32,
- ) -> anyhow::Result<<span class="kw">impl </span>Iterator<Item = AddressInfo> + <span class="lifetime">'_</span>> {
- <span class="kw">let </span>keychain = <span class="self">self</span>.map_keychain(keychain);
- <span class="kw">let </span>(spk_iter, index_changeset) = <span class="self">self
- </span>.indexed_graph
- .index
- .reveal_to_target(<span class="kw-2">&</span>keychain, index)
- .expect(<span class="string">"must exist (we called map_keychain)"</span>);
-
- <span class="self">self</span>.persist
- .stage_and_commit(indexed_tx_graph::ChangeSet::from(index_changeset).into())<span class="question-mark">?</span>;
-
- <span class="prelude-val">Ok</span>(spk_iter.map(<span class="kw">move </span>|(index, spk)| AddressInfo {
- index,
- address: Address::from_script(<span class="kw-2">&</span>spk, <span class="self">self</span>.network).expect(<span class="string">"must have address form"</span>),
- keychain,
- }))
- }
-
- <span class="doccomment">/// Get the next unused address for the given `keychain`, i.e. the address with the lowest
- /// derivation index that hasn't been used.
- ///
- /// This will attempt to derive and reveal a new address if no newly revealed addresses
- /// are available. See also [`reveal_next_address`](Self::reveal_next_address).
- ///
- /// # Errors
- ///
- /// If writing to persistent storage fails.
- </span><span class="kw">pub fn </span>next_unused_address(<span class="kw-2">&mut </span><span class="self">self</span>, keychain: KeychainKind) -> anyhow::Result<AddressInfo> {
- <span class="kw">let </span>keychain = <span class="self">self</span>.map_keychain(keychain);
- <span class="kw">let </span>((index, spk), index_changeset) = <span class="self">self
- </span>.indexed_graph
- .index
- .next_unused_spk(<span class="kw-2">&</span>keychain)
- .expect(<span class="string">"must exist (we called map_keychain)"</span>);
-
- <span class="self">self</span>.persist
- .stage_and_commit(indexed_tx_graph::ChangeSet::from(index_changeset).into())<span class="question-mark">?</span>;
-
- <span class="prelude-val">Ok</span>(AddressInfo {
- index,
- address: Address::from_script(spk, <span class="self">self</span>.network).expect(<span class="string">"must have address form"</span>),
- keychain,
- })
- }
-
- <span class="doccomment">/// Marks an address used of the given `keychain` at `index`.
- ///
- /// Returns whether the given index was present and then removed from the unused set.
- </span><span class="kw">pub fn </span>mark_used(<span class="kw-2">&mut </span><span class="self">self</span>, keychain: KeychainKind, index: u32) -> bool {
- <span class="self">self</span>.indexed_graph.index.mark_used(keychain, index)
- }
-
- <span class="doccomment">/// Undoes the effect of [`mark_used`] and returns whether the `index` was inserted
- /// back into the unused set.
- ///
- /// Since this is only a superficial marker, it will have no effect if the address at the given
- /// `index` was actually used, i.e. the wallet has previously indexed a tx output for the
- /// derived spk.
- ///
- /// [`mark_used`]: Self::mark_used
- </span><span class="kw">pub fn </span>unmark_used(<span class="kw-2">&mut </span><span class="self">self</span>, keychain: KeychainKind, index: u32) -> bool {
- <span class="self">self</span>.indexed_graph.index.unmark_used(keychain, index)
- }
-
- <span class="doccomment">/// List addresses that are revealed but unused.
- ///
- /// Note if the returned iterator is empty you can reveal more addresses
- /// by using [`reveal_next_address`](Self::reveal_next_address) or
- /// [`reveal_addresses_to`](Self::reveal_addresses_to).
- </span><span class="kw">pub fn </span>list_unused_addresses(
- <span class="kw-2">&</span><span class="self">self</span>,
- keychain: KeychainKind,
- ) -> <span class="kw">impl </span>DoubleEndedIterator<Item = AddressInfo> + <span class="lifetime">'_ </span>{
- <span class="kw">let </span>keychain = <span class="self">self</span>.map_keychain(keychain);
- <span class="self">self</span>.indexed_graph
- .index
- .unused_keychain_spks(<span class="kw-2">&</span>keychain)
- .map(<span class="kw">move </span>|(index, spk)| AddressInfo {
- index,
- address: Address::from_script(spk, <span class="self">self</span>.network).expect(<span class="string">"must have address form"</span>),
- keychain,
- })
- }
-
- <span class="doccomment">/// Return whether or not a `script` is part of this wallet (either internal or external)
- </span><span class="kw">pub fn </span>is_mine(<span class="kw-2">&</span><span class="self">self</span>, script: <span class="kw-2">&</span>Script) -> bool {
- <span class="self">self</span>.indexed_graph.index.index_of_spk(script).is_some()
- }
-
- <span class="doccomment">/// Finds how the wallet derived the script pubkey `spk`.
- ///
- /// Will only return `Some(_)` if the wallet has given out the spk.
- </span><span class="kw">pub fn </span>derivation_of_spk(<span class="kw-2">&</span><span class="self">self</span>, spk: <span class="kw-2">&</span>Script) -> <span class="prelude-ty">Option</span><(KeychainKind, u32)> {
- <span class="self">self</span>.indexed_graph.index.index_of_spk(spk)
- }
-
- <span class="doccomment">/// Return the list of unspent outputs of this wallet
- </span><span class="kw">pub fn </span>list_unspent(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw">impl </span>Iterator<Item = LocalOutput> + <span class="lifetime">'_ </span>{
- <span class="self">self</span>.indexed_graph
- .graph()
- .filter_chain_unspents(
- <span class="kw-2">&</span><span class="self">self</span>.chain,
- <span class="self">self</span>.chain.tip().block_id(),
- <span class="self">self</span>.indexed_graph.index.outpoints(),
- )
- .map(|((k, i), full_txo)| new_local_utxo(k, i, full_txo))
- }
-
- <span class="doccomment">/// List all relevant outputs (includes both spent and unspent, confirmed and unconfirmed).
- ///
- /// To list only unspent outputs (UTXOs), use [`Wallet::list_unspent`] instead.
- </span><span class="kw">pub fn </span>list_output(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw">impl </span>Iterator<Item = LocalOutput> + <span class="lifetime">'_ </span>{
- <span class="self">self</span>.indexed_graph
- .graph()
- .filter_chain_txouts(
- <span class="kw-2">&</span><span class="self">self</span>.chain,
- <span class="self">self</span>.chain.tip().block_id(),
- <span class="self">self</span>.indexed_graph.index.outpoints(),
- )
- .map(|((k, i), full_txo)| new_local_utxo(k, i, full_txo))
- }
-
- <span class="doccomment">/// Get all the checkpoints the wallet is currently storing indexed by height.
- </span><span class="kw">pub fn </span>checkpoints(<span class="kw-2">&</span><span class="self">self</span>) -> CheckPointIter {
- <span class="self">self</span>.chain.iter_checkpoints()
- }
-
- <span class="doccomment">/// Returns the latest checkpoint.
- </span><span class="kw">pub fn </span>latest_checkpoint(<span class="kw-2">&</span><span class="self">self</span>) -> CheckPoint {
- <span class="self">self</span>.chain.tip()
- }
-
- <span class="doccomment">/// Get unbounded script pubkey iterators for both `Internal` and `External` keychains.
- ///
- /// This is intended to be used when doing a full scan of your addresses (e.g. after restoring
- /// from seed words). You pass the `BTreeMap` of iterators to a blockchain data source (e.g.
- /// electrum server) which will go through each address until it reaches a *stop gap*.
- ///
- /// Note carefully that iterators go over **all** script pubkeys on the keychains (not what
- /// script pubkeys the wallet is storing internally).
- </span><span class="kw">pub fn </span>all_unbounded_spk_iters(
- <span class="kw-2">&</span><span class="self">self</span>,
- ) -> BTreeMap<KeychainKind, <span class="kw">impl </span>Iterator<Item = (u32, ScriptBuf)> + Clone> {
- <span class="self">self</span>.indexed_graph.index.all_unbounded_spk_iters()
- }
-
- <span class="doccomment">/// Get an unbounded script pubkey iterator for the given `keychain`.
- ///
- /// See [`all_unbounded_spk_iters`] for more documentation
- ///
- /// [`all_unbounded_spk_iters`]: Self::all_unbounded_spk_iters
- </span><span class="kw">pub fn </span>unbounded_spk_iter(
- <span class="kw-2">&</span><span class="self">self</span>,
- keychain: KeychainKind,
- ) -> <span class="kw">impl </span>Iterator<Item = (u32, ScriptBuf)> + Clone {
- <span class="kw">let </span>keychain = <span class="self">self</span>.map_keychain(keychain);
- <span class="self">self</span>.indexed_graph
- .index
- .unbounded_spk_iter(<span class="kw-2">&</span>keychain)
- .expect(<span class="string">"Must exist (we called map_keychain)"</span>)
- }
-
- <span class="doccomment">/// Returns the utxo owned by this wallet corresponding to `outpoint` if it exists in the
- /// wallet's database.
- </span><span class="kw">pub fn </span>get_utxo(<span class="kw-2">&</span><span class="self">self</span>, op: OutPoint) -> <span class="prelude-ty">Option</span><LocalOutput> {
- <span class="kw">let </span>(keychain, index, <span class="kw">_</span>) = <span class="self">self</span>.indexed_graph.index.txout(op)<span class="question-mark">?</span>;
- <span class="self">self</span>.indexed_graph
- .graph()
- .filter_chain_unspents(
- <span class="kw-2">&</span><span class="self">self</span>.chain,
- <span class="self">self</span>.chain.tip().block_id(),
- core::iter::once(((), op)),
- )
- .map(|(<span class="kw">_</span>, full_txo)| new_local_utxo(keychain, index, full_txo))
- .next()
- }
-
- <span class="doccomment">/// Inserts a [`TxOut`] at [`OutPoint`] into the wallet's transaction graph.
- ///
- /// This is used for providing a previous output's value so that we can use [`calculate_fee`]
- /// or [`calculate_fee_rate`] on a given transaction. Outputs inserted with this method will
- /// not be returned in [`list_unspent`] or [`list_output`].
- ///
- /// Any inserted `TxOut`s are not persisted until [`commit`] is called.
- ///
- /// **WARNING:** This should only be used to add `TxOut`s that the wallet does not own. Only
- /// insert `TxOut`s that you trust the values for!
- ///
- /// [`calculate_fee`]: Self::calculate_fee
- /// [`calculate_fee_rate`]: Self::calculate_fee_rate
- /// [`list_unspent`]: Self::list_unspent
- /// [`list_output`]: Self::list_output
- /// [`commit`]: Self::commit
- </span><span class="kw">pub fn </span>insert_txout(<span class="kw-2">&mut </span><span class="self">self</span>, outpoint: OutPoint, txout: TxOut) {
- <span class="kw">let </span>additions = <span class="self">self</span>.indexed_graph.insert_txout(outpoint, txout);
- <span class="self">self</span>.persist.stage(ChangeSet::from(additions));
- }
-
- <span class="doccomment">/// Calculates the fee of a given transaction. Returns 0 if `tx` is a coinbase transaction.
- ///
- /// To calculate the fee for a [`Transaction`] with inputs not owned by this wallet you must
- /// manually insert the TxOut(s) into the tx graph using the [`insert_txout`] function.
- ///
- /// Note `tx` does not have to be in the graph for this to work.
- ///
- /// # Examples
- ///
- /// ```rust, no_run
- /// # use bitcoin::Txid;
- /// # use bdk::Wallet;
- /// # let mut wallet: Wallet = todo!();
- /// # let txid:Txid = todo!();
- /// let tx = wallet.get_tx(txid).expect("transaction").tx_node.tx;
- /// let fee = wallet.calculate_fee(&tx).expect("fee");
- /// ```
- ///
- /// ```rust, no_run
- /// # use bitcoin::Psbt;
- /// # use bdk::Wallet;
- /// # let mut wallet: Wallet = todo!();
- /// # let mut psbt: Psbt = todo!();
- /// let tx = &psbt.clone().extract_tx().expect("tx");
- /// let fee = wallet.calculate_fee(tx).expect("fee");
- /// ```
- /// [`insert_txout`]: Self::insert_txout
- </span><span class="kw">pub fn </span>calculate_fee(<span class="kw-2">&</span><span class="self">self</span>, tx: <span class="kw-2">&</span>Transaction) -> <span class="prelude-ty">Result</span><u64, CalculateFeeError> {
- <span class="self">self</span>.indexed_graph.graph().calculate_fee(tx)
- }
-
- <span class="doccomment">/// Calculate the [`FeeRate`] for a given transaction.
- ///
- /// To calculate the fee rate for a [`Transaction`] with inputs not owned by this wallet you must
- /// manually insert the TxOut(s) into the tx graph using the [`insert_txout`] function.
- ///
- /// Note `tx` does not have to be in the graph for this to work.
- ///
- /// # Examples
- ///
- /// ```rust, no_run
- /// # use bitcoin::Txid;
- /// # use bdk::Wallet;
- /// # let mut wallet: Wallet = todo!();
- /// # let txid:Txid = todo!();
- /// let tx = wallet.get_tx(txid).expect("transaction").tx_node.tx;
- /// let fee_rate = wallet.calculate_fee_rate(&tx).expect("fee rate");
- /// ```
- ///
- /// ```rust, no_run
- /// # use bitcoin::Psbt;
- /// # use bdk::Wallet;
- /// # let mut wallet: Wallet = todo!();
- /// # let mut psbt: Psbt = todo!();
- /// let tx = &psbt.clone().extract_tx().expect("tx");
- /// let fee_rate = wallet.calculate_fee_rate(tx).expect("fee rate");
- /// ```
- /// [`insert_txout`]: Self::insert_txout
- </span><span class="kw">pub fn </span>calculate_fee_rate(<span class="kw-2">&</span><span class="self">self</span>, tx: <span class="kw-2">&</span>Transaction) -> <span class="prelude-ty">Result</span><FeeRate, CalculateFeeError> {
- <span class="self">self</span>.calculate_fee(tx)
- .map(|fee| Amount::from_sat(fee) / tx.weight())
- }
-
- <span class="doccomment">/// Compute the `tx`'s sent and received [`Amount`]s.
- ///
- /// This method returns a tuple `(sent, received)`. Sent is the sum of the txin amounts
- /// that spend from previous txouts tracked by this wallet. Received is the summation
- /// of this tx's outputs that send to script pubkeys tracked by this wallet.
- ///
- /// # Examples
- ///
- /// ```rust, no_run
- /// # use bitcoin::Txid;
- /// # use bdk::Wallet;
- /// # let mut wallet: Wallet = todo!();
- /// # let txid:Txid = todo!();
- /// let tx = wallet.get_tx(txid).expect("tx exists").tx_node.tx;
- /// let (sent, received) = wallet.sent_and_received(&tx);
- /// ```
- ///
- /// ```rust, no_run
- /// # use bitcoin::Psbt;
- /// # use bdk::Wallet;
- /// # let mut wallet: Wallet = todo!();
- /// # let mut psbt: Psbt = todo!();
- /// let tx = &psbt.clone().extract_tx().expect("tx");
- /// let (sent, received) = wallet.sent_and_received(tx);
- /// ```
- </span><span class="kw">pub fn </span>sent_and_received(<span class="kw-2">&</span><span class="self">self</span>, tx: <span class="kw-2">&</span>Transaction) -> (Amount, Amount) {
- <span class="self">self</span>.indexed_graph.index.sent_and_received(tx, ..)
- }
-
- <span class="doccomment">/// Get a single transaction from the wallet as a [`CanonicalTx`] (if the transaction exists).
- ///
- /// `CanonicalTx` contains the full transaction alongside meta-data such as:
- /// * Blocks that the transaction is [`Anchor`]ed in. These may or may not be blocks that exist
- /// in the best chain.
- /// * The [`ChainPosition`] of the transaction in the best chain - whether the transaction is
- /// confirmed or unconfirmed. If the transaction is confirmed, the anchor which proves the
- /// confirmation is provided. If the transaction is unconfirmed, the unix timestamp of when
- /// the transaction was last seen in the mempool is provided.
- ///
- /// ```rust, no_run
- /// use bdk::{chain::ChainPosition, Wallet};
- /// use bdk_chain::Anchor;
- /// # let wallet: Wallet = todo!();
- /// # let my_txid: bitcoin::Txid = todo!();
- ///
- /// let canonical_tx = wallet.get_tx(my_txid).expect("panic if tx does not exist");
- ///
- /// // get reference to full transaction
- /// println!("my tx: {:#?}", canonical_tx.tx_node.tx);
- ///
- /// // list all transaction anchors
- /// for anchor in canonical_tx.tx_node.anchors {
- /// println!(
- /// "tx is anchored by block of hash {}",
- /// anchor.anchor_block().hash
- /// );
- /// }
- ///
- /// // get confirmation status of transaction
- /// match canonical_tx.chain_position {
- /// ChainPosition::Confirmed(anchor) => println!(
- /// "tx is confirmed at height {}, we know this since {}:{} is in the best chain",
- /// anchor.confirmation_height, anchor.anchor_block.height, anchor.anchor_block.hash,
- /// ),
- /// ChainPosition::Unconfirmed(last_seen) => println!(
- /// "tx is last seen at {}, it is unconfirmed as it is not anchored in the best chain",
- /// last_seen,
- /// ),
- /// }
- /// ```
- ///
- /// [`Anchor`]: bdk_chain::Anchor
- </span><span class="kw">pub fn </span>get_tx(
- <span class="kw-2">&</span><span class="self">self</span>,
- txid: Txid,
- ) -> <span class="prelude-ty">Option</span><CanonicalTx<<span class="lifetime">'_</span>, Arc<Transaction>, ConfirmationTimeHeightAnchor>> {
- <span class="kw">let </span>graph = <span class="self">self</span>.indexed_graph.graph();
-
- <span class="prelude-val">Some</span>(CanonicalTx {
- chain_position: graph.get_chain_position(
- <span class="kw-2">&</span><span class="self">self</span>.chain,
- <span class="self">self</span>.chain.tip().block_id(),
- txid,
- )<span class="question-mark">?</span>,
- tx_node: graph.get_tx_node(txid)<span class="question-mark">?</span>,
- })
- }
-
- <span class="doccomment">/// Add a new checkpoint to the wallet's internal view of the chain.
- /// This stages but does not [`commit`] the change.
- ///
- /// Returns whether anything changed with the insertion (e.g. `false` if checkpoint was already
- /// there).
- ///
- /// [`commit`]: Self::commit
- </span><span class="kw">pub fn </span>insert_checkpoint(
- <span class="kw-2">&mut </span><span class="self">self</span>,
- block_id: BlockId,
- ) -> <span class="prelude-ty">Result</span><bool, local_chain::AlterCheckPointError> {
- <span class="kw">let </span>changeset = <span class="self">self</span>.chain.insert_block(block_id)<span class="question-mark">?</span>;
- <span class="kw">let </span>changed = !changeset.is_empty();
- <span class="self">self</span>.persist.stage(changeset.into());
- <span class="prelude-val">Ok</span>(changed)
- }
-
- <span class="doccomment">/// Add a transaction to the wallet's internal view of the chain. This stages but does not
- /// [`commit`] the change.
- ///
- /// Returns whether anything changed with the transaction insertion (e.g. `false` if the
- /// transaction was already inserted at the same position).
- ///
- /// A `tx` can be rejected if `position` has a height greater than the [`latest_checkpoint`].
- /// Therefore you should use [`insert_checkpoint`] to insert new checkpoints before manually
- /// inserting new transactions.
- ///
- /// **WARNING:** If `position` is confirmed, we anchor the `tx` to a the lowest checkpoint that
- /// is >= the `position`'s height. The caller is responsible for ensuring the `tx` exists in our
- /// local view of the best chain's history.
- ///
- /// [`commit`]: Self::commit
- /// [`latest_checkpoint`]: Self::latest_checkpoint
- /// [`insert_checkpoint`]: Self::insert_checkpoint
- </span><span class="kw">pub fn </span>insert_tx(
- <span class="kw-2">&mut </span><span class="self">self</span>,
- tx: Transaction,
- position: ConfirmationTime,
- ) -> <span class="prelude-ty">Result</span><bool, InsertTxError> {
- <span class="kw">let </span>(anchor, last_seen) = <span class="kw">match </span>position {
- ConfirmationTime::Confirmed { height, time } => {
- <span class="comment">// anchor tx to checkpoint with lowest height that is >= position's height
- </span><span class="kw">let </span>anchor = <span class="self">self
- </span>.chain
- .range(height..)
- .last()
- .ok_or(InsertTxError::ConfirmationHeightCannotBeGreaterThanTip {
- tip_height: <span class="self">self</span>.chain.tip().height(),
- tx_height: height,
- })
- .map(|anchor_cp| ConfirmationTimeHeightAnchor {
- anchor_block: anchor_cp.block_id(),
- confirmation_height: height,
- confirmation_time: time,
- })<span class="question-mark">?</span>;
-
- (<span class="prelude-val">Some</span>(anchor), <span class="prelude-val">None</span>)
- }
- ConfirmationTime::Unconfirmed { last_seen } => (<span class="prelude-val">None</span>, <span class="prelude-val">Some</span>(last_seen)),
- };
-
- <span class="kw">let </span><span class="kw-2">mut </span>changeset = ChangeSet::default();
- <span class="kw">let </span>txid = tx.txid();
- changeset.append(<span class="self">self</span>.indexed_graph.insert_tx(tx).into());
- <span class="kw">if let </span><span class="prelude-val">Some</span>(anchor) = anchor {
- changeset.append(<span class="self">self</span>.indexed_graph.insert_anchor(txid, anchor).into());
- }
- <span class="kw">if let </span><span class="prelude-val">Some</span>(last_seen) = last_seen {
- changeset.append(<span class="self">self</span>.indexed_graph.insert_seen_at(txid, last_seen).into());
- }
-
- <span class="kw">let </span>changed = !changeset.is_empty();
- <span class="self">self</span>.persist.stage(changeset);
- <span class="prelude-val">Ok</span>(changed)
- }
-
- <span class="doccomment">/// Iterate over the transactions in the wallet.
- </span><span class="kw">pub fn </span>transactions(
- <span class="kw-2">&</span><span class="self">self</span>,
- ) -> <span class="kw">impl </span>Iterator<Item = CanonicalTx<<span class="lifetime">'_</span>, Arc<Transaction>, ConfirmationTimeHeightAnchor>> + <span class="lifetime">'_
- </span>{
- <span class="self">self</span>.indexed_graph
- .graph()
- .list_chain_txs(<span class="kw-2">&</span><span class="self">self</span>.chain, <span class="self">self</span>.chain.tip().block_id())
- }
-
- <span class="doccomment">/// Return the balance, separated into available, trusted-pending, untrusted-pending and immature
- /// values.
- </span><span class="kw">pub fn </span>get_balance(<span class="kw-2">&</span><span class="self">self</span>) -> Balance {
- <span class="self">self</span>.indexed_graph.graph().balance(
- <span class="kw-2">&</span><span class="self">self</span>.chain,
- <span class="self">self</span>.chain.tip().block_id(),
- <span class="self">self</span>.indexed_graph.index.outpoints(),
- |<span class="kw-2">&</span>(k, <span class="kw">_</span>), <span class="kw">_</span>| k == KeychainKind::Internal,
- )
- }
-
- <span class="doccomment">/// Add an external signer
- ///
- /// See [the `signer` module](signer) for an example.
- </span><span class="kw">pub fn </span>add_signer(
- <span class="kw-2">&mut </span><span class="self">self</span>,
- keychain: KeychainKind,
- ordering: SignerOrdering,
- signer: Arc<<span class="kw">dyn </span>TransactionSigner>,
- ) {
- <span class="kw">let </span>signers = <span class="kw">match </span>keychain {
- KeychainKind::External => Arc::make_mut(<span class="kw-2">&mut </span><span class="self">self</span>.signers),
- KeychainKind::Internal => Arc::make_mut(<span class="kw-2">&mut </span><span class="self">self</span>.change_signers),
- };
-
- signers.add_external(signer.id(<span class="kw-2">&</span><span class="self">self</span>.secp), ordering, signer);
- }
-
- <span class="doccomment">/// Get the signers
- ///
- /// ## Example
- ///
- /// ```
- /// # use bdk::{Wallet, KeychainKind};
- /// # use bdk::bitcoin::Network;
- /// let wallet = Wallet::new_no_persist("wpkh(tprv8ZgxMBicQKsPe73PBRSmNbTfbcsZnwWhz5eVmhHpi31HW29Z7mc9B4cWGRQzopNUzZUT391DeDJxL2PefNunWyLgqCKRMDkU1s2s8bAfoSk/84'/0'/0'/0/*)", None, Network::Testnet)?;
- /// for secret_key in wallet.get_signers(KeychainKind::External).signers().iter().filter_map(|s| s.descriptor_secret_key()) {
- /// // secret_key: tprv8ZgxMBicQKsPe73PBRSmNbTfbcsZnwWhz5eVmhHpi31HW29Z7mc9B4cWGRQzopNUzZUT391DeDJxL2PefNunWyLgqCKRMDkU1s2s8bAfoSk/84'/0'/0'/0/*
- /// println!("secret_key: {}", secret_key);
- /// }
- ///
- /// Ok::<(), Box<dyn std::error::Error>>(())
- /// ```
- </span><span class="kw">pub fn </span>get_signers(<span class="kw-2">&</span><span class="self">self</span>, keychain: KeychainKind) -> Arc<SignersContainer> {
- <span class="kw">match </span>keychain {
- KeychainKind::External => Arc::clone(<span class="kw-2">&</span><span class="self">self</span>.signers),
- KeychainKind::Internal => Arc::clone(<span class="kw-2">&</span><span class="self">self</span>.change_signers),
- }
- }
-
- <span class="doccomment">/// Start building a transaction.
- ///
- /// This returns a blank [`TxBuilder`] from which you can specify the parameters for the transaction.
- ///
- /// ## Example
- ///
- /// ```
- /// # use std::str::FromStr;
- /// # use bitcoin::*;
- /// # use bdk::*;
- /// # use bdk::wallet::ChangeSet;
- /// # use bdk::wallet::error::CreateTxError;
- /// # use bdk_persist::PersistBackend;
- /// # use anyhow::Error;
- /// # let descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/*)";
- /// # let mut wallet = doctest_wallet!();
- /// # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap().assume_checked();
- /// let psbt = {
- /// let mut builder = wallet.build_tx();
- /// builder
- /// .add_recipient(to_address.script_pubkey(), Amount::from_sat(50_000));
- /// builder.finish()?
- /// };
- ///
- /// // sign and broadcast ...
- /// # Ok::<(), anyhow::Error>(())
- /// ```
- ///
- /// [`TxBuilder`]: crate::TxBuilder
- </span><span class="kw">pub fn </span>build_tx(<span class="kw-2">&mut </span><span class="self">self</span>) -> TxBuilder<<span class="lifetime">'_</span>, DefaultCoinSelectionAlgorithm, CreateTx> {
- TxBuilder {
- wallet: alloc::rc::Rc::new(core::cell::RefCell::new(<span class="self">self</span>)),
- params: TxParams::default(),
- coin_selection: DefaultCoinSelectionAlgorithm::default(),
- phantom: core::marker::PhantomData,
- }
- }
-
- <span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>create_tx<Cs: coin_selection::CoinSelectionAlgorithm>(
- <span class="kw-2">&mut </span><span class="self">self</span>,
- coin_selection: Cs,
- params: TxParams,
- ) -> <span class="prelude-ty">Result</span><Psbt, CreateTxError> {
- <span class="kw">let </span>keychains: BTreeMap<<span class="kw">_</span>, <span class="kw">_</span>> = <span class="self">self</span>.indexed_graph.index.keychains().collect();
- <span class="kw">let </span>external_descriptor = keychains.get(<span class="kw-2">&</span>KeychainKind::External).expect(<span class="string">"must exist"</span>);
- <span class="kw">let </span>internal_descriptor = keychains.get(<span class="kw-2">&</span>KeychainKind::Internal);
-
- <span class="kw">let </span>external_policy = external_descriptor
- .extract_policy(<span class="kw-2">&</span><span class="self">self</span>.signers, BuildSatisfaction::None, <span class="kw-2">&</span><span class="self">self</span>.secp)<span class="question-mark">?
- </span>.unwrap();
- <span class="kw">let </span>internal_policy = internal_descriptor
- .as_ref()
- .map(|desc| {
- <span class="prelude-val">Ok</span>::<<span class="kw">_</span>, CreateTxError>(
- desc.extract_policy(<span class="kw-2">&</span><span class="self">self</span>.change_signers, BuildSatisfaction::None, <span class="kw-2">&</span><span class="self">self</span>.secp)<span class="question-mark">?
- </span>.unwrap(),
- )
- })
- .transpose()<span class="question-mark">?</span>;
-
- <span class="comment">// The policy allows spending external outputs, but it requires a policy path that hasn't been
- // provided
- </span><span class="kw">if </span>params.change_policy != tx_builder::ChangeSpendPolicy::OnlyChange
- && external_policy.requires_path()
- && params.external_policy_path.is_none()
- {
- <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::SpendingPolicyRequired(
- KeychainKind::External,
- ));
- };
- <span class="comment">// Same for the internal_policy path, if present
- </span><span class="kw">if let </span><span class="prelude-val">Some</span>(internal_policy) = <span class="kw-2">&</span>internal_policy {
- <span class="kw">if </span>params.change_policy != tx_builder::ChangeSpendPolicy::ChangeForbidden
- && internal_policy.requires_path()
- && params.internal_policy_path.is_none()
- {
- <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::SpendingPolicyRequired(
- KeychainKind::Internal,
- ));
- };
- }
-
- <span class="kw">let </span>external_requirements = external_policy.get_condition(
- params
- .external_policy_path
- .as_ref()
- .unwrap_or(<span class="kw-2">&</span>BTreeMap::new()),
- )<span class="question-mark">?</span>;
- <span class="kw">let </span>internal_requirements = internal_policy
- .map(|policy| {
- <span class="prelude-val">Ok</span>::<<span class="kw">_</span>, CreateTxError>(
- policy.get_condition(
- params
- .internal_policy_path
- .as_ref()
- .unwrap_or(<span class="kw-2">&</span>BTreeMap::new()),
- )<span class="question-mark">?</span>,
- )
- })
- .transpose()<span class="question-mark">?</span>;
-
- <span class="kw">let </span>requirements =
- external_requirements.merge(<span class="kw-2">&</span>internal_requirements.unwrap_or_default())<span class="question-mark">?</span>;
-
- <span class="kw">let </span>version = <span class="kw">match </span>params.version {
- <span class="prelude-val">Some</span>(tx_builder::Version(<span class="number">0</span>)) => <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::Version0),
- <span class="prelude-val">Some</span>(tx_builder::Version(<span class="number">1</span>)) <span class="kw">if </span>requirements.csv.is_some() => {
- <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::Version1Csv)
- }
- <span class="prelude-val">Some</span>(tx_builder::Version(x)) => x,
- <span class="prelude-val">None </span><span class="kw">if </span>requirements.csv.is_some() => <span class="number">2</span>,
- <span class="prelude-val">None </span>=> <span class="number">1</span>,
- };
-
- <span class="comment">// We use a match here instead of a unwrap_or_else as it's way more readable :)
- </span><span class="kw">let </span>current_height = <span class="kw">match </span>params.current_height {
- <span class="comment">// If they didn't tell us the current height, we assume it's the latest sync height.
- </span><span class="prelude-val">None </span>=> {
- <span class="kw">let </span>tip_height = <span class="self">self</span>.chain.tip().height();
- absolute::LockTime::from_height(tip_height).expect(<span class="string">"invalid height"</span>)
- }
- <span class="prelude-val">Some</span>(h) => h,
- };
-
- <span class="kw">let </span>lock_time = <span class="kw">match </span>params.locktime {
- <span class="comment">// When no nLockTime is specified, we try to prevent fee sniping, if possible
- </span><span class="prelude-val">None </span>=> {
- <span class="comment">// Fee sniping can be partially prevented by setting the timelock
- // to current_height. If we don't know the current_height,
- // we default to 0.
- </span><span class="kw">let </span>fee_sniping_height = current_height;
-
- <span class="comment">// We choose the biggest between the required nlocktime and the fee sniping
- // height
- </span><span class="kw">match </span>requirements.timelock {
- <span class="comment">// No requirement, just use the fee_sniping_height
- </span><span class="prelude-val">None </span>=> fee_sniping_height,
- <span class="comment">// There's a block-based requirement, but the value is lower than the fee_sniping_height
- </span><span class="prelude-val">Some</span>(value @ absolute::LockTime::Blocks(<span class="kw">_</span>)) <span class="kw">if </span>value < fee_sniping_height => {
- fee_sniping_height
- }
- <span class="comment">// There's a time-based requirement or a block-based requirement greater
- // than the fee_sniping_height use that value
- </span><span class="prelude-val">Some</span>(value) => value,
- }
- }
- <span class="comment">// Specific nLockTime required and we have no constraints, so just set to that value
- </span><span class="prelude-val">Some</span>(x) <span class="kw">if </span>requirements.timelock.is_none() => x,
- <span class="comment">// Specific nLockTime required and it's compatible with the constraints
- </span><span class="prelude-val">Some</span>(x)
- <span class="kw">if </span>requirements.timelock.unwrap().is_same_unit(x)
- && x >= requirements.timelock.unwrap() =>
- {
- x
- }
- <span class="comment">// Invalid nLockTime required
- </span><span class="prelude-val">Some</span>(x) => {
- <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::LockTime {
- requested: x,
- required: requirements.timelock.unwrap(),
- })
- }
- };
-
- <span class="comment">// The nSequence to be by default for inputs unless an explicit sequence is specified.
- </span><span class="kw">let </span>n_sequence = <span class="kw">match </span>(params.rbf, requirements.csv) {
- <span class="comment">// No RBF or CSV but there's an nLockTime, so the nSequence cannot be final
- </span>(<span class="prelude-val">None</span>, <span class="prelude-val">None</span>) <span class="kw">if </span>lock_time != absolute::LockTime::ZERO => {
- Sequence::ENABLE_LOCKTIME_NO_RBF
- }
- <span class="comment">// No RBF, CSV or nLockTime, make the transaction final
- </span>(<span class="prelude-val">None</span>, <span class="prelude-val">None</span>) => Sequence::MAX,
-
- <span class="comment">// No RBF requested, use the value from CSV. Note that this value is by definition
- // non-final, so even if a timelock is enabled this nSequence is fine, hence why we
- // don't bother checking for it here. The same is true for all the other branches below
- </span>(<span class="prelude-val">None</span>, <span class="prelude-val">Some</span>(csv)) => csv,
-
- <span class="comment">// RBF with a specific value but that value is too high
- </span>(<span class="prelude-val">Some</span>(tx_builder::RbfValue::Value(rbf)), <span class="kw">_</span>) <span class="kw">if </span>!rbf.is_rbf() => {
- <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::RbfSequence)
- }
- <span class="comment">// RBF with a specific value requested, but the value is incompatible with CSV
- </span>(<span class="prelude-val">Some</span>(tx_builder::RbfValue::Value(rbf)), <span class="prelude-val">Some</span>(csv))
- <span class="kw">if </span>!check_nsequence_rbf(rbf, csv) =>
- {
- <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::RbfSequenceCsv { rbf, csv })
- }
-
- <span class="comment">// RBF enabled with the default value with CSV also enabled. CSV takes precedence
- </span>(<span class="prelude-val">Some</span>(tx_builder::RbfValue::Default), <span class="prelude-val">Some</span>(csv)) => csv,
- <span class="comment">// Valid RBF, either default or with a specific value. We ignore the `CSV` value
- // because we've already checked it before
- </span>(<span class="prelude-val">Some</span>(rbf), <span class="kw">_</span>) => rbf.get_value(),
- };
-
- <span class="kw">let </span>(fee_rate, <span class="kw-2">mut </span>fee_amount) = <span class="kw">match </span>params.fee_policy.unwrap_or_default() {
- <span class="comment">//FIXME: see https://github.com/bitcoindevkit/bdk/issues/256
- </span>FeePolicy::FeeAmount(fee) => {
- <span class="kw">if let </span><span class="prelude-val">Some</span>(previous_fee) = params.bumping_fee {
- <span class="kw">if </span>fee < previous_fee.absolute {
- <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::FeeTooLow {
- required: previous_fee.absolute,
- });
- }
- }
- (FeeRate::ZERO, fee)
- }
- FeePolicy::FeeRate(rate) => {
- <span class="kw">if let </span><span class="prelude-val">Some</span>(previous_fee) = params.bumping_fee {
- <span class="kw">let </span>required_feerate = FeeRate::from_sat_per_kwu(
- previous_fee.rate.to_sat_per_kwu()
- + FeeRate::BROADCAST_MIN.to_sat_per_kwu(), <span class="comment">// +1 sat/vb
- </span>);
- <span class="kw">if </span>rate < required_feerate {
- <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::FeeRateTooLow {
- required: required_feerate,
- });
- }
- }
- (rate, <span class="number">0</span>)
- }
- };
-
- <span class="kw">let </span><span class="kw-2">mut </span>tx = Transaction {
- version: transaction::Version::non_standard(version),
- lock_time,
- input: <span class="macro">vec!</span>[],
- output: <span class="macro">vec!</span>[],
- };
-
- <span class="kw">if </span>params.manually_selected_only && params.utxos.is_empty() {
- <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::NoUtxosSelected);
- }
-
- <span class="comment">// we keep it as a float while we accumulate it, and only round it at the end
- </span><span class="kw">let </span><span class="kw-2">mut </span>outgoing: u64 = <span class="number">0</span>;
- <span class="kw">let </span><span class="kw-2">mut </span>received: u64 = <span class="number">0</span>;
-
- <span class="kw">let </span>recipients = params.recipients.iter().map(|(r, v)| (r, <span class="kw-2">*</span>v));
-
- <span class="kw">for </span>(index, (script_pubkey, value)) <span class="kw">in </span>recipients.enumerate() {
- <span class="kw">if </span>!params.allow_dust
- && value.is_dust(script_pubkey)
- && !script_pubkey.is_provably_unspendable()
- {
- <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::OutputBelowDustLimit(index));
- }
-
- <span class="kw">if </span><span class="self">self</span>.is_mine(script_pubkey) {
- received += value;
- }
-
- <span class="kw">let </span>new_out = TxOut {
- script_pubkey: script_pubkey.clone(),
- value: Amount::from_sat(value),
- };
-
- tx.output.push(new_out);
-
- outgoing += value;
- }
-
- fee_amount += (fee_rate * tx.weight()).to_sat();
-
- <span class="kw">if </span>params.change_policy != tx_builder::ChangeSpendPolicy::ChangeAllowed
- && internal_descriptor.is_none()
- {
- <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::ChangePolicyDescriptor);
- }
-
- <span class="kw">let </span>(required_utxos, optional_utxos) =
- <span class="self">self</span>.preselect_utxos(<span class="kw-2">&</span>params, <span class="prelude-val">Some</span>(current_height.to_consensus_u32()));
-
- <span class="comment">// get drain script
- </span><span class="kw">let </span>drain_script = <span class="kw">match </span>params.drain_to {
- <span class="prelude-val">Some</span>(<span class="kw-2">ref </span>drain_recipient) => drain_recipient.clone(),
- <span class="prelude-val">None </span>=> {
- <span class="kw">let </span>change_keychain = <span class="self">self</span>.map_keychain(KeychainKind::Internal);
- <span class="kw">let </span>((index, spk), index_changeset) = <span class="self">self
- </span>.indexed_graph
- .index
- .next_unused_spk(<span class="kw-2">&</span>change_keychain)
- .expect(<span class="string">"Keychain exists (we called map_keychain)"</span>);
- <span class="kw">let </span>spk = spk.into();
- <span class="self">self</span>.indexed_graph.index.mark_used(change_keychain, index);
- <span class="self">self</span>.persist
- .stage(ChangeSet::from(indexed_tx_graph::ChangeSet::from(
- index_changeset,
- )));
- <span class="self">self</span>.persist.commit().map_err(CreateTxError::Persist)<span class="question-mark">?</span>;
- spk
- }
- };
-
- <span class="kw">let </span>(required_utxos, optional_utxos) =
- coin_selection::filter_duplicates(required_utxos, optional_utxos);
-
- <span class="kw">let </span>coin_selection = coin_selection.coin_select(
- required_utxos,
- optional_utxos,
- fee_rate,
- outgoing + fee_amount,
- <span class="kw-2">&</span>drain_script,
- )<span class="question-mark">?</span>;
- fee_amount += coin_selection.fee_amount;
- <span class="kw">let </span>excess = <span class="kw-2">&</span>coin_selection.excess;
-
- tx.input = coin_selection
- .selected
- .iter()
- .map(|u| bitcoin::TxIn {
- previous_output: u.outpoint(),
- script_sig: ScriptBuf::default(),
- sequence: u.sequence().unwrap_or(n_sequence),
- witness: Witness::new(),
- })
- .collect();
-
- <span class="kw">if </span>tx.output.is_empty() {
- <span class="comment">// Uh oh, our transaction has no outputs.
- // We allow this when:
- // - We have a drain_to address and the utxos we must spend (this happens,
- // for example, when we RBF)
- // - We have a drain_to address and drain_wallet set
- // Otherwise, we don't know who we should send the funds to, and how much
- // we should send!
- </span><span class="kw">if </span>params.drain_to.is_some() && (params.drain_wallet || !params.utxos.is_empty()) {
- <span class="kw">if let </span>NoChange {
- dust_threshold,
- remaining_amount,
- change_fee,
- } = excess
- {
- <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::InsufficientFunds {
- needed: <span class="kw-2">*</span>dust_threshold,
- available: remaining_amount.saturating_sub(<span class="kw-2">*</span>change_fee),
- });
- }
- } <span class="kw">else </span>{
- <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::NoRecipients);
- }
- }
-
- <span class="kw">match </span>excess {
- NoChange {
- remaining_amount, ..
- } => fee_amount += remaining_amount,
- Change { amount, fee } => {
- <span class="kw">if </span><span class="self">self</span>.is_mine(<span class="kw-2">&</span>drain_script) {
- received += amount;
- }
- fee_amount += fee;
-
- <span class="comment">// create drain output
- </span><span class="kw">let </span>drain_output = TxOut {
- value: Amount::from_sat(<span class="kw-2">*</span>amount),
- script_pubkey: drain_script,
- };
-
- <span class="comment">// TODO: We should pay attention when adding a new output: this might increase
- // the length of the "number of vouts" parameter by 2 bytes, potentially making
- // our feerate too low
- </span>tx.output.push(drain_output);
- }
- };
-
- <span class="comment">// sort input/outputs according to the chosen algorithm
- </span>params.ordering.sort_tx(<span class="kw-2">&mut </span>tx);
-
- <span class="kw">let </span>psbt = <span class="self">self</span>.complete_transaction(tx, coin_selection.selected, params)<span class="question-mark">?</span>;
- <span class="prelude-val">Ok</span>(psbt)
- }
-
- <span class="doccomment">/// Bump the fee of a transaction previously created with this wallet.
- ///
- /// Returns an error if the transaction is already confirmed or doesn't explicitly signal
- /// *replace by fee* (RBF). If the transaction can be fee bumped then it returns a [`TxBuilder`]
- /// pre-populated with the inputs and outputs of the original transaction.
- ///
- /// ## Example
- ///
- /// ```no_run
- /// # // TODO: remove norun -- bumping fee seems to need the tx in the wallet database first.
- /// # use std::str::FromStr;
- /// # use bitcoin::*;
- /// # use bdk::*;
- /// # use bdk::wallet::ChangeSet;
- /// # use bdk::wallet::error::CreateTxError;
- /// # use bdk_persist::PersistBackend;
- /// # use anyhow::Error;
- /// # let descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/*)";
- /// # let mut wallet = doctest_wallet!();
- /// # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap().assume_checked();
- /// let mut psbt = {
- /// let mut builder = wallet.build_tx();
- /// builder
- /// .add_recipient(to_address.script_pubkey(), Amount::from_sat(50_000))
- /// .enable_rbf();
- /// builder.finish()?
- /// };
- /// let _ = wallet.sign(&mut psbt, SignOptions::default())?;
- /// let tx = psbt.clone().extract_tx().expect("tx");
- /// // broadcast tx but it's taking too long to confirm so we want to bump the fee
- /// let mut psbt = {
- /// let mut builder = wallet.build_fee_bump(tx.txid())?;
- /// builder
- /// .fee_rate(FeeRate::from_sat_per_vb(5).expect("valid feerate"));
- /// builder.finish()?
- /// };
- ///
- /// let _ = wallet.sign(&mut psbt, SignOptions::default())?;
- /// let fee_bumped_tx = psbt.extract_tx();
- /// // broadcast fee_bumped_tx to replace original
- /// # Ok::<(), anyhow::Error>(())
- /// ```
- </span><span class="comment">// TODO: support for merging multiple transactions while bumping the fees
- </span><span class="kw">pub fn </span>build_fee_bump(
- <span class="kw-2">&mut </span><span class="self">self</span>,
- txid: Txid,
- ) -> <span class="prelude-ty">Result</span><TxBuilder<<span class="lifetime">'_</span>, DefaultCoinSelectionAlgorithm, BumpFee>, BuildFeeBumpError> {
- <span class="kw">let </span>graph = <span class="self">self</span>.indexed_graph.graph();
- <span class="kw">let </span>txout_index = <span class="kw-2">&</span><span class="self">self</span>.indexed_graph.index;
- <span class="kw">let </span>chain_tip = <span class="self">self</span>.chain.tip().block_id();
-
- <span class="kw">let </span><span class="kw-2">mut </span>tx = graph
- .get_tx(txid)
- .ok_or(BuildFeeBumpError::TransactionNotFound(txid))<span class="question-mark">?
- </span>.as_ref()
- .clone();
-
- <span class="kw">let </span>pos = graph
- .get_chain_position(<span class="kw-2">&</span><span class="self">self</span>.chain, chain_tip, txid)
- .ok_or(BuildFeeBumpError::TransactionNotFound(txid))<span class="question-mark">?</span>;
- <span class="kw">if let </span>ChainPosition::Confirmed(<span class="kw">_</span>) = pos {
- <span class="kw">return </span><span class="prelude-val">Err</span>(BuildFeeBumpError::TransactionConfirmed(txid));
- }
-
- <span class="kw">if </span>!tx
- .input
- .iter()
- .any(|txin| txin.sequence.to_consensus_u32() <= <span class="number">0xFFFFFFFD</span>)
- {
- <span class="kw">return </span><span class="prelude-val">Err</span>(BuildFeeBumpError::IrreplaceableTransaction(tx.txid()));
- }
-
- <span class="kw">let </span>fee = <span class="self">self
- </span>.calculate_fee(<span class="kw-2">&</span>tx)
- .map_err(|<span class="kw">_</span>| BuildFeeBumpError::FeeRateUnavailable)<span class="question-mark">?</span>;
- <span class="kw">let </span>fee_rate = <span class="self">self
- </span>.calculate_fee_rate(<span class="kw-2">&</span>tx)
- .map_err(|<span class="kw">_</span>| BuildFeeBumpError::FeeRateUnavailable)<span class="question-mark">?</span>;
-
- <span class="comment">// remove the inputs from the tx and process them
- </span><span class="kw">let </span>original_txin = tx.input.drain(..).collect::<Vec<<span class="kw">_</span>>>();
- <span class="kw">let </span>original_utxos = original_txin
- .iter()
- .map(|txin| -> <span class="prelude-ty">Result</span><<span class="kw">_</span>, BuildFeeBumpError> {
- <span class="kw">let </span>prev_tx = graph
- .get_tx(txin.previous_output.txid)
- .ok_or(BuildFeeBumpError::UnknownUtxo(txin.previous_output))<span class="question-mark">?</span>;
- <span class="kw">let </span>txout = <span class="kw-2">&</span>prev_tx.output[txin.previous_output.vout <span class="kw">as </span>usize];
-
- <span class="kw">let </span>confirmation_time: ConfirmationTime = graph
- .get_chain_position(<span class="kw-2">&</span><span class="self">self</span>.chain, chain_tip, txin.previous_output.txid)
- .ok_or(BuildFeeBumpError::UnknownUtxo(txin.previous_output))<span class="question-mark">?
- </span>.cloned()
- .into();
-
- <span class="kw">let </span>weighted_utxo = <span class="kw">match </span>txout_index.index_of_spk(<span class="kw-2">&</span>txout.script_pubkey) {
- <span class="prelude-val">Some</span>((keychain, derivation_index)) => {
- <span class="kw">let </span>satisfaction_weight = <span class="self">self
- </span>.get_descriptor_for_keychain(keychain)
- .max_weight_to_satisfy()
- .unwrap();
- WeightedUtxo {
- utxo: Utxo::Local(LocalOutput {
- outpoint: txin.previous_output,
- txout: txout.clone(),
- keychain,
- is_spent: <span class="bool-val">true</span>,
- derivation_index,
- confirmation_time,
- }),
- satisfaction_weight,
- }
- }
- <span class="prelude-val">None </span>=> {
- <span class="kw">let </span>satisfaction_weight =
- serialize(<span class="kw-2">&</span>txin.script_sig).len() * <span class="number">4 </span>+ serialize(<span class="kw-2">&</span>txin.witness).len();
- WeightedUtxo {
- utxo: Utxo::Foreign {
- outpoint: txin.previous_output,
- sequence: <span class="prelude-val">Some</span>(txin.sequence),
- psbt_input: Box::new(psbt::Input {
- witness_utxo: <span class="prelude-val">Some</span>(txout.clone()),
- non_witness_utxo: <span class="prelude-val">Some</span>(prev_tx.as_ref().clone()),
- ..Default::default()
- }),
- },
- satisfaction_weight,
- }
- }
- };
-
- <span class="prelude-val">Ok</span>(weighted_utxo)
- })
- .collect::<<span class="prelude-ty">Result</span><Vec<<span class="kw">_</span>>, <span class="kw">_</span>>>()<span class="question-mark">?</span>;
-
- <span class="kw">if </span>tx.output.len() > <span class="number">1 </span>{
- <span class="kw">let </span><span class="kw-2">mut </span>change_index = <span class="prelude-val">None</span>;
- <span class="kw">for </span>(index, txout) <span class="kw">in </span>tx.output.iter().enumerate() {
- <span class="kw">let </span>change_type = <span class="self">self</span>.map_keychain(KeychainKind::Internal);
- <span class="kw">match </span>txout_index.index_of_spk(<span class="kw-2">&</span>txout.script_pubkey) {
- <span class="prelude-val">Some</span>((keychain, <span class="kw">_</span>)) <span class="kw">if </span>keychain == change_type => change_index = <span class="prelude-val">Some</span>(index),
- <span class="kw">_ </span>=> {}
- }
- }
-
- <span class="kw">if let </span><span class="prelude-val">Some</span>(change_index) = change_index {
- tx.output.remove(change_index);
- }
- }
-
- <span class="kw">let </span>params = TxParams {
- <span class="comment">// TODO: figure out what rbf option should be?
- </span>version: <span class="prelude-val">Some</span>(tx_builder::Version(tx.version.<span class="number">0</span>)),
- recipients: tx
- .output
- .into_iter()
- .map(|txout| (txout.script_pubkey, txout.value.to_sat()))
- .collect(),
- utxos: original_utxos,
- bumping_fee: <span class="prelude-val">Some</span>(tx_builder::PreviousFee {
- absolute: fee,
- rate: fee_rate,
- }),
- ..Default::default()
- };
-
- <span class="prelude-val">Ok</span>(TxBuilder {
- wallet: alloc::rc::Rc::new(core::cell::RefCell::new(<span class="self">self</span>)),
- params,
- coin_selection: DefaultCoinSelectionAlgorithm::default(),
- phantom: core::marker::PhantomData,
- })
- }
-
- <span class="doccomment">/// Sign a transaction with all the wallet's signers, in the order specified by every signer's
- /// [`SignerOrdering`]. This function returns the `Result` type with an encapsulated `bool` that has the value true if the PSBT was finalized, or false otherwise.
- ///
- /// The [`SignOptions`] can be used to tweak the behavior of the software signers, and the way
- /// the transaction is finalized at the end. Note that it can't be guaranteed that *every*
- /// signers will follow the options, but the "software signers" (WIF keys and `xprv`) defined
- /// in this library will.
- ///
- /// ## Example
- ///
- /// ```
- /// # use std::str::FromStr;
- /// # use bitcoin::*;
- /// # use bdk::*;
- /// # use bdk::wallet::ChangeSet;
- /// # use bdk::wallet::error::CreateTxError;
- /// # use bdk_persist::PersistBackend;
- /// # let descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/*)";
- /// # let mut wallet = doctest_wallet!();
- /// # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap().assume_checked();
- /// let mut psbt = {
- /// let mut builder = wallet.build_tx();
- /// builder.add_recipient(to_address.script_pubkey(), Amount::from_sat(50_000));
- /// builder.finish()?
- /// };
- /// let finalized = wallet.sign(&mut psbt, SignOptions::default())?;
- /// assert!(finalized, "we should have signed all the inputs");
- /// # Ok::<(),anyhow::Error>(())
- </span><span class="kw">pub fn </span>sign(<span class="kw-2">&</span><span class="self">self</span>, psbt: <span class="kw-2">&mut </span>Psbt, sign_options: SignOptions) -> <span class="prelude-ty">Result</span><bool, SignerError> {
- <span class="comment">// This adds all the PSBT metadata for the inputs, which will help us later figure out how
- // to derive our keys
- </span><span class="self">self</span>.update_psbt_with_descriptor(psbt)
- .map_err(SignerError::MiniscriptPsbt)<span class="question-mark">?</span>;
-
- <span class="comment">// If we aren't allowed to use `witness_utxo`, ensure that every input (except p2tr and finalized ones)
- // has the `non_witness_utxo`
- </span><span class="kw">if </span>!sign_options.trust_witness_utxo
- && psbt
- .inputs
- .iter()
- .filter(|i| i.final_script_witness.is_none() && i.final_script_sig.is_none())
- .filter(|i| i.tap_internal_key.is_none() && i.tap_merkle_root.is_none())
- .any(|i| i.non_witness_utxo.is_none())
- {
- <span class="kw">return </span><span class="prelude-val">Err</span>(SignerError::MissingNonWitnessUtxo);
- }
-
- <span class="comment">// If the user hasn't explicitly opted-in, refuse to sign the transaction unless every input
- // is using `SIGHASH_ALL` or `SIGHASH_DEFAULT` for taproot
- </span><span class="kw">if </span>!sign_options.allow_all_sighashes
- && !psbt.inputs.iter().all(|i| {
- i.sighash_type.is_none()
- || i.sighash_type == <span class="prelude-val">Some</span>(EcdsaSighashType::All.into())
- || i.sighash_type == <span class="prelude-val">Some</span>(TapSighashType::All.into())
- || i.sighash_type == <span class="prelude-val">Some</span>(TapSighashType::Default.into())
- })
- {
- <span class="kw">return </span><span class="prelude-val">Err</span>(SignerError::NonStandardSighash);
- }
-
- <span class="kw">for </span>signer <span class="kw">in </span><span class="self">self
- </span>.signers
- .signers()
- .iter()
- .chain(<span class="self">self</span>.change_signers.signers().iter())
- {
- signer.sign_transaction(psbt, <span class="kw-2">&</span>sign_options, <span class="kw-2">&</span><span class="self">self</span>.secp)<span class="question-mark">?</span>;
- }
-
- <span class="comment">// attempt to finalize
- </span><span class="kw">if </span>sign_options.try_finalize {
- <span class="self">self</span>.finalize_psbt(psbt, sign_options)
- } <span class="kw">else </span>{
- <span class="prelude-val">Ok</span>(<span class="bool-val">false</span>)
- }
- }
-
- <span class="doccomment">/// Return the spending policies for the wallet's descriptor
- </span><span class="kw">pub fn </span>policies(<span class="kw-2">&</span><span class="self">self</span>, keychain: KeychainKind) -> <span class="prelude-ty">Result</span><<span class="prelude-ty">Option</span><Policy>, DescriptorError> {
- <span class="kw">let </span>signers = <span class="kw">match </span>keychain {
- KeychainKind::External => <span class="kw-2">&</span><span class="self">self</span>.signers,
- KeychainKind::Internal => <span class="kw-2">&</span><span class="self">self</span>.change_signers,
- };
-
- <span class="kw">match </span><span class="self">self</span>.public_descriptor(keychain) {
- <span class="prelude-val">Some</span>(desc) => <span class="prelude-val">Ok</span>(desc.extract_policy(signers, BuildSatisfaction::None, <span class="kw-2">&</span><span class="self">self</span>.secp)<span class="question-mark">?</span>),
- <span class="prelude-val">None </span>=> <span class="prelude-val">Ok</span>(<span class="prelude-val">None</span>),
- }
- }
-
- <span class="doccomment">/// Return the "public" version of the wallet's descriptor, meaning a new descriptor that has
- /// the same structure but with every secret key removed
- ///
- /// This can be used to build a watch-only version of a wallet
- </span><span class="kw">pub fn </span>public_descriptor(<span class="kw-2">&</span><span class="self">self</span>, keychain: KeychainKind) -> <span class="prelude-ty">Option</span><<span class="kw-2">&</span>ExtendedDescriptor> {
- <span class="self">self</span>.indexed_graph
- .index
- .keychains()
- .find(|(k, <span class="kw">_</span>)| <span class="kw-2">*</span>k == <span class="kw-2">&</span>keychain)
- .map(|(<span class="kw">_</span>, d)| d)
- }
-
- <span class="doccomment">/// Finalize a PSBT, i.e., for each input determine if sufficient data is available to pass
- /// validation and construct the respective `scriptSig` or `scriptWitness`. Please refer to
- /// [BIP174](https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#Input_Finalizer)
- /// for further information.
- ///
- /// Returns `true` if the PSBT could be finalized, and `false` otherwise.
- ///
- /// The [`SignOptions`] can be used to tweak the behavior of the finalizer.
- </span><span class="kw">pub fn </span>finalize_psbt(
- <span class="kw-2">&</span><span class="self">self</span>,
- psbt: <span class="kw-2">&mut </span>Psbt,
- sign_options: SignOptions,
- ) -> <span class="prelude-ty">Result</span><bool, SignerError> {
- <span class="kw">let </span>chain_tip = <span class="self">self</span>.chain.tip().block_id();
-
- <span class="kw">let </span>tx = <span class="kw-2">&</span>psbt.unsigned_tx;
- <span class="kw">let </span><span class="kw-2">mut </span>finished = <span class="bool-val">true</span>;
-
- <span class="kw">for </span>(n, input) <span class="kw">in </span>tx.input.iter().enumerate() {
- <span class="kw">let </span>psbt_input = <span class="kw-2">&</span>psbt
- .inputs
- .get(n)
- .ok_or(SignerError::InputIndexOutOfRange)<span class="question-mark">?</span>;
- <span class="kw">if </span>psbt_input.final_script_sig.is_some() || psbt_input.final_script_witness.is_some() {
- <span class="kw">continue</span>;
- }
- <span class="kw">let </span>confirmation_height = <span class="self">self
- </span>.indexed_graph
- .graph()
- .get_chain_position(<span class="kw-2">&</span><span class="self">self</span>.chain, chain_tip, input.previous_output.txid)
- .map(|chain_position| <span class="kw">match </span>chain_position {
- ChainPosition::Confirmed(a) => a.confirmation_height,
- ChainPosition::Unconfirmed(<span class="kw">_</span>) => u32::MAX,
- });
- <span class="kw">let </span>current_height = sign_options
- .assume_height
- .unwrap_or_else(|| <span class="self">self</span>.chain.tip().height());
-
- <span class="comment">// - Try to derive the descriptor by looking at the txout. If it's in our database, we
- // know exactly which `keychain` to use, and which derivation index it is
- // - If that fails, try to derive it by looking at the psbt input: the complete logic
- // is in `src/descriptor/mod.rs`, but it will basically look at `bip32_derivation`,
- // `redeem_script` and `witness_script` to determine the right derivation
- // - If that also fails, it will try it on the internal descriptor, if present
- </span><span class="kw">let </span>desc = psbt
- .get_utxo_for(n)
- .and_then(|txout| <span class="self">self</span>.get_descriptor_for_txout(<span class="kw-2">&</span>txout))
- .or_else(|| {
- <span class="self">self</span>.indexed_graph.index.keychains().find_map(|(<span class="kw">_</span>, desc)| {
- desc.derive_from_psbt_input(psbt_input, psbt.get_utxo_for(n), <span class="kw-2">&</span><span class="self">self</span>.secp)
- })
- });
-
- <span class="kw">match </span>desc {
- <span class="prelude-val">Some</span>(desc) => {
- <span class="kw">let </span><span class="kw-2">mut </span>tmp_input = bitcoin::TxIn::default();
- <span class="kw">match </span>desc.satisfy(
- <span class="kw-2">&mut </span>tmp_input,
- (
- PsbtInputSatisfier::new(psbt, n),
- After::new(<span class="prelude-val">Some</span>(current_height), <span class="bool-val">false</span>),
- Older::new(<span class="prelude-val">Some</span>(current_height), confirmation_height, <span class="bool-val">false</span>),
- ),
- ) {
- <span class="prelude-val">Ok</span>(<span class="kw">_</span>) => {
- <span class="kw">let </span>psbt_input = <span class="kw-2">&mut </span>psbt.inputs[n];
- psbt_input.final_script_sig = <span class="prelude-val">Some</span>(tmp_input.script_sig);
- psbt_input.final_script_witness = <span class="prelude-val">Some</span>(tmp_input.witness);
- <span class="kw">if </span>sign_options.remove_partial_sigs {
- psbt_input.partial_sigs.clear();
- }
- <span class="kw">if </span>sign_options.remove_taproot_extras {
- <span class="comment">// We just constructed the final witness, clear these fields.
- </span>psbt_input.tap_key_sig = <span class="prelude-val">None</span>;
- psbt_input.tap_script_sigs.clear();
- psbt_input.tap_scripts.clear();
- psbt_input.tap_key_origins.clear();
- psbt_input.tap_internal_key = <span class="prelude-val">None</span>;
- psbt_input.tap_merkle_root = <span class="prelude-val">None</span>;
- }
- }
- <span class="prelude-val">Err</span>(<span class="kw">_</span>) => finished = <span class="bool-val">false</span>,
- }
- }
- <span class="prelude-val">None </span>=> finished = <span class="bool-val">false</span>,
- }
- }
-
- <span class="kw">if </span>finished && sign_options.remove_taproot_extras {
- <span class="kw">for </span>output <span class="kw">in </span><span class="kw-2">&mut </span>psbt.outputs {
- output.tap_key_origins.clear();
- }
- }
-
- <span class="prelude-val">Ok</span>(finished)
- }
-
- <span class="doccomment">/// Return the secp256k1 context used for all signing operations
- </span><span class="kw">pub fn </span>secp_ctx(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span>SecpCtx {
- <span class="kw-2">&</span><span class="self">self</span>.secp
- }
-
- <span class="doccomment">/// Returns the descriptor used to create addresses for a particular `keychain`.
- </span><span class="kw">pub fn </span>get_descriptor_for_keychain(<span class="kw-2">&</span><span class="self">self</span>, keychain: KeychainKind) -> <span class="kw-2">&</span>ExtendedDescriptor {
- <span class="self">self</span>.public_descriptor(<span class="self">self</span>.map_keychain(keychain))
- .expect(<span class="string">"we mapped it to external if it doesn't exist"</span>)
- }
-
- <span class="doccomment">/// The derivation index of this wallet. It will return `None` if it has not derived any addresses.
- /// Otherwise, it will return the index of the highest address it has derived.
- </span><span class="kw">pub fn </span>derivation_index(<span class="kw-2">&</span><span class="self">self</span>, keychain: KeychainKind) -> <span class="prelude-ty">Option</span><u32> {
- <span class="self">self</span>.indexed_graph.index.last_revealed_index(<span class="kw-2">&</span>keychain)
- }
-
- <span class="doccomment">/// The index of the next address that you would get if you were to ask the wallet for a new address
- </span><span class="kw">pub fn </span>next_derivation_index(<span class="kw-2">&</span><span class="self">self</span>, keychain: KeychainKind) -> u32 {
- <span class="kw">let </span>keychain = <span class="self">self</span>.map_keychain(keychain);
- <span class="self">self</span>.indexed_graph
- .index
- .next_index(<span class="kw-2">&</span>keychain)
- .expect(<span class="string">"Keychain must exist (we called map_keychain)"</span>)
- .<span class="number">0
- </span>}
-
- <span class="doccomment">/// Informs the wallet that you no longer intend to broadcast a tx that was built from it.
- ///
- /// This frees up the change address used when creating the tx for use in future transactions.
- </span><span class="comment">// TODO: Make this free up reserved utxos when that's implemented
- </span><span class="kw">pub fn </span>cancel_tx(<span class="kw-2">&mut </span><span class="self">self</span>, tx: <span class="kw-2">&</span>Transaction) {
- <span class="kw">let </span>txout_index = <span class="kw-2">&mut </span><span class="self">self</span>.indexed_graph.index;
- <span class="kw">for </span>txout <span class="kw">in </span><span class="kw-2">&</span>tx.output {
- <span class="kw">if let </span><span class="prelude-val">Some</span>((keychain, index)) = txout_index.index_of_spk(<span class="kw-2">&</span>txout.script_pubkey) {
- <span class="comment">// NOTE: unmark_used will **not** make something unused if it has actually been used
- // by a tx in the tracker. It only removes the superficial marking.
- </span>txout_index.unmark_used(keychain, index);
- }
- }
- }
-
- <span class="kw">fn </span>map_keychain(<span class="kw-2">&</span><span class="self">self</span>, keychain: KeychainKind) -> KeychainKind {
- <span class="kw">if </span>keychain == KeychainKind::Internal
- && <span class="self">self</span>.public_descriptor(KeychainKind::Internal).is_none()
- {
- KeychainKind::External
- } <span class="kw">else </span>{
- keychain
- }
- }
-
- <span class="kw">fn </span>get_descriptor_for_txout(<span class="kw-2">&</span><span class="self">self</span>, txout: <span class="kw-2">&</span>TxOut) -> <span class="prelude-ty">Option</span><DerivedDescriptor> {
- <span class="kw">let </span>(keychain, child) = <span class="self">self
- </span>.indexed_graph
- .index
- .index_of_spk(<span class="kw-2">&</span>txout.script_pubkey)<span class="question-mark">?</span>;
- <span class="kw">let </span>descriptor = <span class="self">self</span>.get_descriptor_for_keychain(keychain);
- descriptor.at_derivation_index(child).ok()
- }
-
- <span class="kw">fn </span>get_available_utxos(<span class="kw-2">&</span><span class="self">self</span>) -> Vec<(LocalOutput, usize)> {
- <span class="self">self</span>.list_unspent()
- .map(|utxo| {
- <span class="kw">let </span>keychain = utxo.keychain;
- (utxo, {
- <span class="self">self</span>.get_descriptor_for_keychain(keychain)
- .max_weight_to_satisfy()
- .unwrap()
- })
- })
- .collect()
- }
-
- <span class="doccomment">/// Given the options returns the list of utxos that must be used to form the
- /// transaction and any further that may be used if needed.
- </span><span class="kw">fn </span>preselect_utxos(
- <span class="kw-2">&</span><span class="self">self</span>,
- params: <span class="kw-2">&</span>TxParams,
- current_height: <span class="prelude-ty">Option</span><u32>,
- ) -> (Vec<WeightedUtxo>, Vec<WeightedUtxo>) {
- <span class="kw">let </span>TxParams {
- change_policy,
- unspendable,
- utxos,
- drain_wallet,
- manually_selected_only,
- bumping_fee,
- ..
- } = params;
-
- <span class="kw">let </span>manually_selected = utxos.clone();
- <span class="comment">// we mandate confirmed transactions if we're bumping the fee
- </span><span class="kw">let </span>must_only_use_confirmed_tx = bumping_fee.is_some();
- <span class="kw">let </span>must_use_all_available = <span class="kw-2">*</span>drain_wallet;
-
- <span class="kw">let </span>chain_tip = <span class="self">self</span>.chain.tip().block_id();
- <span class="comment">// must_spend <- manually selected utxos
- // may_spend <- all other available utxos
- </span><span class="kw">let </span><span class="kw-2">mut </span>may_spend = <span class="self">self</span>.get_available_utxos();
-
- may_spend.retain(|may_spend| {
- !manually_selected
- .iter()
- .any(|manually_selected| manually_selected.utxo.outpoint() == may_spend.<span class="number">0</span>.outpoint)
- });
- <span class="kw">let </span><span class="kw-2">mut </span>must_spend = manually_selected;
-
- <span class="comment">// NOTE: we are intentionally ignoring `unspendable` here. i.e manual
- // selection overrides unspendable.
- </span><span class="kw">if </span><span class="kw-2">*</span>manually_selected_only {
- <span class="kw">return </span>(must_spend, <span class="macro">vec!</span>[]);
- }
-
- <span class="kw">let </span>satisfies_confirmed = may_spend
- .iter()
- .map(|u| -> bool {
- <span class="kw">let </span>txid = u.<span class="number">0</span>.outpoint.txid;
- <span class="kw">let </span>tx = <span class="kw">match </span><span class="self">self</span>.indexed_graph.graph().get_tx(txid) {
- <span class="prelude-val">Some</span>(tx) => tx,
- <span class="prelude-val">None </span>=> <span class="kw">return </span><span class="bool-val">false</span>,
- };
- <span class="kw">let </span>confirmation_time: ConfirmationTime = <span class="kw">match </span><span class="self">self
- </span>.indexed_graph
- .graph()
- .get_chain_position(<span class="kw-2">&</span><span class="self">self</span>.chain, chain_tip, txid)
- {
- <span class="prelude-val">Some</span>(chain_position) => chain_position.cloned().into(),
- <span class="prelude-val">None </span>=> <span class="kw">return </span><span class="bool-val">false</span>,
- };
-
- <span class="comment">// Whether the UTXO is mature and, if needed, confirmed
- </span><span class="kw">let </span><span class="kw-2">mut </span>spendable = <span class="bool-val">true</span>;
- <span class="kw">if </span>must_only_use_confirmed_tx && !confirmation_time.is_confirmed() {
- <span class="kw">return </span><span class="bool-val">false</span>;
- }
- <span class="kw">if </span>tx.is_coinbase() {
- <span class="macro">debug_assert!</span>(
- confirmation_time.is_confirmed(),
- <span class="string">"coinbase must always be confirmed"
- </span>);
- <span class="kw">if let </span><span class="prelude-val">Some</span>(current_height) = current_height {
- <span class="kw">match </span>confirmation_time {
- ConfirmationTime::Confirmed { height, .. } => {
- <span class="comment">// https://github.com/bitcoin/bitcoin/blob/c5e67be03bb06a5d7885c55db1f016fbf2333fe3/src/validation.cpp#L373-L375
- </span>spendable &=
- (current_height.saturating_sub(height)) >= COINBASE_MATURITY;
- }
- ConfirmationTime::Unconfirmed { .. } => spendable = <span class="bool-val">false</span>,
- }
- }
- }
- spendable
- })
- .collect::<Vec<<span class="kw">_</span>>>();
-
- <span class="kw">let </span><span class="kw-2">mut </span>i = <span class="number">0</span>;
- may_spend.retain(|u| {
- <span class="kw">let </span>retain = change_policy.is_satisfied_by(<span class="kw-2">&</span>u.<span class="number">0</span>)
- && !unspendable.contains(<span class="kw-2">&</span>u.<span class="number">0</span>.outpoint)
- && satisfies_confirmed[i];
- i += <span class="number">1</span>;
- retain
- });
-
- <span class="kw">let </span><span class="kw-2">mut </span>may_spend = may_spend
- .into_iter()
- .map(|(local_utxo, satisfaction_weight)| WeightedUtxo {
- satisfaction_weight,
- utxo: Utxo::Local(local_utxo),
- })
- .collect();
-
- <span class="kw">if </span>must_use_all_available {
- must_spend.append(<span class="kw-2">&mut </span>may_spend);
- }
-
- (must_spend, may_spend)
- }
-
- <span class="kw">fn </span>complete_transaction(
- <span class="kw-2">&</span><span class="self">self</span>,
- tx: Transaction,
- selected: Vec<Utxo>,
- params: TxParams,
- ) -> <span class="prelude-ty">Result</span><Psbt, CreateTxError> {
- <span class="kw">let </span><span class="kw-2">mut </span>psbt = Psbt::from_unsigned_tx(tx)<span class="question-mark">?</span>;
-
- <span class="kw">if </span>params.add_global_xpubs {
- <span class="kw">let </span>all_xpubs = <span class="self">self
- </span>.keychains()
- .flat_map(|(<span class="kw">_</span>, desc)| desc.get_extended_keys())
- .collect::<Vec<<span class="kw">_</span>>>();
-
- <span class="kw">for </span>xpub <span class="kw">in </span>all_xpubs {
- <span class="kw">let </span>origin = <span class="kw">match </span>xpub.origin {
- <span class="prelude-val">Some</span>(origin) => origin,
- <span class="prelude-val">None </span><span class="kw">if </span>xpub.xkey.depth == <span class="number">0 </span>=> {
- (xpub.root_fingerprint(<span class="kw-2">&</span><span class="self">self</span>.secp), <span class="macro">vec!</span>[].into())
- }
- <span class="kw">_ </span>=> <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::MissingKeyOrigin(xpub.xkey.to_string())),
- };
-
- psbt.xpub.insert(xpub.xkey, origin);
- }
- }
-
- <span class="kw">let </span><span class="kw-2">mut </span>lookup_output = selected
- .into_iter()
- .map(|utxo| (utxo.outpoint(), utxo))
- .collect::<HashMap<<span class="kw">_</span>, <span class="kw">_</span>>>();
-
- <span class="comment">// add metadata for the inputs
- </span><span class="kw">for </span>(psbt_input, input) <span class="kw">in </span>psbt.inputs.iter_mut().zip(psbt.unsigned_tx.input.iter()) {
- <span class="kw">let </span>utxo = <span class="kw">match </span>lookup_output.remove(<span class="kw-2">&</span>input.previous_output) {
- <span class="prelude-val">Some</span>(utxo) => utxo,
- <span class="prelude-val">None </span>=> <span class="kw">continue</span>,
- };
-
- <span class="kw">match </span>utxo {
- Utxo::Local(utxo) => {
- <span class="kw-2">*</span>psbt_input =
- <span class="kw">match </span><span class="self">self</span>.get_psbt_input(utxo, params.sighash, params.only_witness_utxo) {
- <span class="prelude-val">Ok</span>(psbt_input) => psbt_input,
- <span class="prelude-val">Err</span>(e) => <span class="kw">match </span>e {
- CreateTxError::UnknownUtxo => psbt::Input {
- sighash_type: params.sighash,
- ..psbt::Input::default()
- },
- <span class="kw">_ </span>=> <span class="kw">return </span><span class="prelude-val">Err</span>(e),
- },
- }
- }
- Utxo::Foreign {
- outpoint,
- psbt_input: foreign_psbt_input,
- ..
- } => {
- <span class="kw">let </span>is_taproot = foreign_psbt_input
- .witness_utxo
- .as_ref()
- .map(|txout| txout.script_pubkey.is_p2tr())
- .unwrap_or(<span class="bool-val">false</span>);
- <span class="kw">if </span>!is_taproot
- && !params.only_witness_utxo
- && foreign_psbt_input.non_witness_utxo.is_none()
- {
- <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::MissingNonWitnessUtxo(outpoint));
- }
- <span class="kw-2">*</span>psbt_input = <span class="kw-2">*</span>foreign_psbt_input;
- }
- }
- }
-
- <span class="self">self</span>.update_psbt_with_descriptor(<span class="kw-2">&mut </span>psbt)<span class="question-mark">?</span>;
-
- <span class="prelude-val">Ok</span>(psbt)
- }
-
- <span class="doccomment">/// get the corresponding PSBT Input for a LocalUtxo
- </span><span class="kw">pub fn </span>get_psbt_input(
- <span class="kw-2">&</span><span class="self">self</span>,
- utxo: LocalOutput,
- sighash_type: <span class="prelude-ty">Option</span><psbt::PsbtSighashType>,
- only_witness_utxo: bool,
- ) -> <span class="prelude-ty">Result</span><psbt::Input, CreateTxError> {
- <span class="comment">// Try to find the prev_script in our db to figure out if this is internal or external,
- // and the derivation index
- </span><span class="kw">let </span>(keychain, child) = <span class="self">self
- </span>.indexed_graph
- .index
- .index_of_spk(<span class="kw-2">&</span>utxo.txout.script_pubkey)
- .ok_or(CreateTxError::UnknownUtxo)<span class="question-mark">?</span>;
-
- <span class="kw">let </span><span class="kw-2">mut </span>psbt_input = psbt::Input {
- sighash_type,
- ..psbt::Input::default()
- };
-
- <span class="kw">let </span>desc = <span class="self">self</span>.get_descriptor_for_keychain(keychain);
- <span class="kw">let </span>derived_descriptor = desc
- .at_derivation_index(child)
- .expect(<span class="string">"child can't be hardened"</span>);
-
- psbt_input
- .update_with_descriptor_unchecked(<span class="kw-2">&</span>derived_descriptor)
- .map_err(MiniscriptPsbtError::Conversion)<span class="question-mark">?</span>;
-
- <span class="kw">let </span>prev_output = utxo.outpoint;
- <span class="kw">if let </span><span class="prelude-val">Some</span>(prev_tx) = <span class="self">self</span>.indexed_graph.graph().get_tx(prev_output.txid) {
- <span class="kw">if </span>desc.is_witness() || desc.is_taproot() {
- psbt_input.witness_utxo = <span class="prelude-val">Some</span>(prev_tx.output[prev_output.vout <span class="kw">as </span>usize].clone());
- }
- <span class="kw">if </span>!desc.is_taproot() && (!desc.is_witness() || !only_witness_utxo) {
- psbt_input.non_witness_utxo = <span class="prelude-val">Some</span>(prev_tx.as_ref().clone());
- }
- }
- <span class="prelude-val">Ok</span>(psbt_input)
- }
-
- <span class="kw">fn </span>update_psbt_with_descriptor(<span class="kw-2">&</span><span class="self">self</span>, psbt: <span class="kw-2">&mut </span>Psbt) -> <span class="prelude-ty">Result</span><(), MiniscriptPsbtError> {
- <span class="comment">// We need to borrow `psbt` mutably within the loops, so we have to allocate a vec for all
- // the input utxos and outputs
- </span><span class="kw">let </span>utxos = (<span class="number">0</span>..psbt.inputs.len())
- .filter_map(|i| psbt.get_utxo_for(i).map(|utxo| (<span class="bool-val">true</span>, i, utxo)))
- .chain(
- psbt.unsigned_tx
- .output
- .iter()
- .enumerate()
- .map(|(i, out)| (<span class="bool-val">false</span>, i, out.clone())),
- )
- .collect::<Vec<<span class="kw">_</span>>>();
-
- <span class="comment">// Try to figure out the keychain and derivation for every input and output
- </span><span class="kw">for </span>(is_input, index, out) <span class="kw">in </span>utxos.into_iter() {
- <span class="kw">if let </span><span class="prelude-val">Some</span>((keychain, child)) =
- <span class="self">self</span>.indexed_graph.index.index_of_spk(<span class="kw-2">&</span>out.script_pubkey)
- {
- <span class="kw">let </span>desc = <span class="self">self</span>.get_descriptor_for_keychain(keychain);
- <span class="kw">let </span>desc = desc
- .at_derivation_index(child)
- .expect(<span class="string">"child can't be hardened"</span>);
-
- <span class="kw">if </span>is_input {
- psbt.update_input_with_descriptor(index, <span class="kw-2">&</span>desc)
- .map_err(MiniscriptPsbtError::UtxoUpdate)<span class="question-mark">?</span>;
- } <span class="kw">else </span>{
- psbt.update_output_with_descriptor(index, <span class="kw-2">&</span>desc)
- .map_err(MiniscriptPsbtError::OutputUpdate)<span class="question-mark">?</span>;
- }
- }
- }
-
- <span class="prelude-val">Ok</span>(())
- }
-
- <span class="doccomment">/// Return the checksum of the public descriptor associated to `keychain`
- ///
- /// Internally calls [`Self::get_descriptor_for_keychain`] to fetch the right descriptor
- </span><span class="kw">pub fn </span>descriptor_checksum(<span class="kw-2">&</span><span class="self">self</span>, keychain: KeychainKind) -> String {
- <span class="self">self</span>.get_descriptor_for_keychain(keychain)
- .to_string()
- .split_once(<span class="string">'#'</span>)
- .unwrap()
- .<span class="number">1
- </span>.to_string()
- }
-
- <span class="doccomment">/// Applies an update to the wallet and stages the changes (but does not [`commit`] them).
- ///
- /// Usually you create an `update` by interacting with some blockchain data source and inserting
- /// transactions related to your wallet into it.
- ///
- /// [`commit`]: Self::commit
- </span><span class="kw">pub fn </span>apply_update(<span class="kw-2">&mut </span><span class="self">self</span>, update: <span class="kw">impl </span>Into<Update>) -> <span class="prelude-ty">Result</span><(), CannotConnectError> {
- <span class="kw">let </span>update = update.into();
- <span class="kw">let </span><span class="kw-2">mut </span>changeset = <span class="kw">match </span>update.chain {
- <span class="prelude-val">Some</span>(chain_update) => ChangeSet::from(<span class="self">self</span>.chain.apply_update(chain_update)<span class="question-mark">?</span>),
- <span class="prelude-val">None </span>=> ChangeSet::default(),
- };
-
- <span class="kw">let </span>(<span class="kw">_</span>, index_changeset) = <span class="self">self
- </span>.indexed_graph
- .index
- .reveal_to_target_multi(<span class="kw-2">&</span>update.last_active_indices);
- changeset.append(ChangeSet::from(indexed_tx_graph::ChangeSet::from(
- index_changeset,
- )));
- changeset.append(ChangeSet::from(
- <span class="self">self</span>.indexed_graph.apply_update(update.graph),
- ));
- <span class="self">self</span>.persist.stage(changeset);
- <span class="prelude-val">Ok</span>(())
- }
-
- <span class="doccomment">/// Commits all currently [`staged`] changed to the persistence backend returning and error when
- /// this fails.
- ///
- /// This returns whether the `update` resulted in any changes.
- ///
- /// [`staged`]: Self::staged
- </span><span class="kw">pub fn </span>commit(<span class="kw-2">&mut </span><span class="self">self</span>) -> anyhow::Result<bool> {
- <span class="self">self</span>.persist.commit().map(|c| c.is_some())
- }
-
- <span class="doccomment">/// Returns the changes that will be committed with the next call to [`commit`].
- ///
- /// [`commit`]: Self::commit
- </span><span class="kw">pub fn </span>staged(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span>ChangeSet {
- <span class="self">self</span>.persist.staged()
- }
-
- <span class="doccomment">/// Get a reference to the inner [`TxGraph`].
- </span><span class="kw">pub fn </span>tx_graph(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span>TxGraph<ConfirmationTimeHeightAnchor> {
- <span class="self">self</span>.indexed_graph.graph()
- }
-
- <span class="doccomment">/// Get a reference to the inner [`KeychainTxOutIndex`].
- </span><span class="kw">pub fn </span>spk_index(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span>KeychainTxOutIndex<KeychainKind> {
- <span class="kw-2">&</span><span class="self">self</span>.indexed_graph.index
- }
-
- <span class="doccomment">/// Get a reference to the inner [`LocalChain`].
- </span><span class="kw">pub fn </span>local_chain(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span>LocalChain {
- <span class="kw-2">&</span><span class="self">self</span>.chain
- }
-
- <span class="doccomment">/// Introduces a `block` of `height` to the wallet, and tries to connect it to the
- /// `prev_blockhash` of the block's header.
- ///
- /// This is a convenience method that is equivalent to calling [`apply_block_connected_to`]
- /// with `prev_blockhash` and `height-1` as the `connected_to` parameter.
- ///
- /// [`apply_block_connected_to`]: Self::apply_block_connected_to
- </span><span class="kw">pub fn </span>apply_block(<span class="kw-2">&mut </span><span class="self">self</span>, block: <span class="kw-2">&</span>Block, height: u32) -> <span class="prelude-ty">Result</span><(), CannotConnectError> {
- <span class="kw">let </span>connected_to = <span class="kw">match </span>height.checked_sub(<span class="number">1</span>) {
- <span class="prelude-val">Some</span>(prev_height) => BlockId {
- height: prev_height,
- hash: block.header.prev_blockhash,
- },
- <span class="prelude-val">None </span>=> BlockId {
- height,
- hash: block.block_hash(),
- },
- };
- <span class="self">self</span>.apply_block_connected_to(block, height, connected_to)
- .map_err(|err| <span class="kw">match </span>err {
- ApplyHeaderError::InconsistentBlocks => {
- <span class="macro">unreachable!</span>(<span class="string">"connected_to is derived from the block so must be consistent"</span>)
- }
- ApplyHeaderError::CannotConnect(err) => err,
- })
- }
-
- <span class="doccomment">/// Applies relevant transactions from `block` of `height` to the wallet, and connects the
- /// block to the internal chain.
- ///
- /// The `connected_to` parameter informs the wallet how this block connects to the internal
- /// [`LocalChain`]. Relevant transactions are filtered from the `block` and inserted into the
- /// internal [`TxGraph`].
- </span><span class="kw">pub fn </span>apply_block_connected_to(
- <span class="kw-2">&mut </span><span class="self">self</span>,
- block: <span class="kw-2">&</span>Block,
- height: u32,
- connected_to: BlockId,
- ) -> <span class="prelude-ty">Result</span><(), ApplyHeaderError> {
- <span class="kw">let </span><span class="kw-2">mut </span>changeset = ChangeSet::default();
- changeset.append(
- <span class="self">self</span>.chain
- .apply_header_connected_to(<span class="kw-2">&</span>block.header, height, connected_to)<span class="question-mark">?
- </span>.into(),
- );
- changeset.append(
- <span class="self">self</span>.indexed_graph
- .apply_block_relevant(block, height)
- .into(),
- );
- <span class="self">self</span>.persist.stage(changeset);
- <span class="prelude-val">Ok</span>(())
- }
-
- <span class="doccomment">/// Apply relevant unconfirmed transactions to the wallet.
- ///
- /// Transactions that are not relevant are filtered out.
- ///
- /// This method takes in an iterator of `(tx, last_seen)` where `last_seen` is the timestamp of
- /// when the transaction was last seen in the mempool. This is used for conflict resolution
- /// when there is conflicting unconfirmed transactions. The transaction with the later
- /// `last_seen` is prioritized.
- </span><span class="kw">pub fn </span>apply_unconfirmed_txs<<span class="lifetime">'t</span>>(
- <span class="kw-2">&mut </span><span class="self">self</span>,
- unconfirmed_txs: <span class="kw">impl </span>IntoIterator<Item = (<span class="kw-2">&</span><span class="lifetime">'t </span>Transaction, u64)>,
- ) {
- <span class="kw">let </span>indexed_graph_changeset = <span class="self">self
- </span>.indexed_graph
- .batch_insert_relevant_unconfirmed(unconfirmed_txs);
- <span class="self">self</span>.persist.stage(ChangeSet::from(indexed_graph_changeset));
- }
-}
-
-<span class="doccomment">/// Methods to construct sync/full-scan requests for spk-based chain sources.
-</span><span class="kw">impl </span>Wallet {
- <span class="doccomment">/// Create a partial [`SyncRequest`] for this wallet for all revealed spks.
- ///
- /// This is the first step when performing a spk-based wallet partial sync, the returned
- /// [`SyncRequest`] collects all revealed script pubkeys from the wallet keychain needed to
- /// start a blockchain sync with a spk based blockchain client.
- </span><span class="kw">pub fn </span>start_sync_with_revealed_spks(<span class="kw-2">&</span><span class="self">self</span>) -> SyncRequest {
- SyncRequest::from_chain_tip(<span class="self">self</span>.chain.tip())
- .cache_graph_txs(<span class="self">self</span>.tx_graph())
- .populate_with_revealed_spks(<span class="kw-2">&</span><span class="self">self</span>.indexed_graph.index, ..)
- }
-
- <span class="doccomment">/// Create a [`FullScanRequest] for this wallet.
- ///
- /// This is the first step when performing a spk-based wallet full scan, the returned
- /// [`FullScanRequest] collects iterators for the wallet's keychain script pub keys needed to
- /// start a blockchain full scan with a spk based blockchain client.
- ///
- /// This operation is generally only used when importing or restoring a previously used wallet
- /// in which the list of used scripts is not known.
- </span><span class="kw">pub fn </span>start_full_scan(<span class="kw-2">&</span><span class="self">self</span>) -> FullScanRequest<KeychainKind> {
- FullScanRequest::from_keychain_txout_index(<span class="self">self</span>.chain.tip(), <span class="kw-2">&</span><span class="self">self</span>.indexed_graph.index)
- .cache_graph_txs(<span class="self">self</span>.tx_graph())
- }
-}
-
-<span class="kw">impl </span>AsRef<bdk_chain::tx_graph::TxGraph<ConfirmationTimeHeightAnchor>> <span class="kw">for </span>Wallet {
- <span class="kw">fn </span>as_ref(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span>bdk_chain::tx_graph::TxGraph<ConfirmationTimeHeightAnchor> {
- <span class="self">self</span>.indexed_graph.graph()
- }
-}
-
-<span class="doccomment">/// Deterministically generate a unique name given the descriptors defining the wallet
-///
-/// Compatible with [`wallet_name_from_descriptor`]
-</span><span class="kw">pub fn </span>wallet_name_from_descriptor<T>(
- descriptor: T,
- change_descriptor: <span class="prelude-ty">Option</span><T>,
- network: Network,
- secp: <span class="kw-2">&</span>SecpCtx,
-) -> <span class="prelude-ty">Result</span><String, DescriptorError>
-<span class="kw">where
- </span>T: IntoWalletDescriptor,
-{
- <span class="comment">//TODO check descriptors contains only public keys
- </span><span class="kw">let </span>descriptor = descriptor
- .into_wallet_descriptor(secp, network)<span class="question-mark">?
- </span>.<span class="number">0
- </span>.to_string();
- <span class="kw">let </span><span class="kw-2">mut </span>wallet_name = calc_checksum(<span class="kw-2">&</span>descriptor[..descriptor.find(<span class="string">'#'</span>).unwrap()])<span class="question-mark">?</span>;
- <span class="kw">if let </span><span class="prelude-val">Some</span>(change_descriptor) = change_descriptor {
- <span class="kw">let </span>change_descriptor = change_descriptor
- .into_wallet_descriptor(secp, network)<span class="question-mark">?
- </span>.<span class="number">0
- </span>.to_string();
- wallet_name.push_str(
- calc_checksum(<span class="kw-2">&</span>change_descriptor[..change_descriptor.find(<span class="string">'#'</span>).unwrap()])<span class="question-mark">?</span>.as_str(),
- );
- }
-
- <span class="prelude-val">Ok</span>(wallet_name)
-}
-
-<span class="kw">fn </span>new_local_utxo(
- keychain: KeychainKind,
- derivation_index: u32,
- full_txo: FullTxOut<ConfirmationTimeHeightAnchor>,
-) -> LocalOutput {
- LocalOutput {
- outpoint: full_txo.outpoint,
- txout: full_txo.txout,
- is_spent: full_txo.spent_by.is_some(),
- confirmation_time: full_txo.chain_position.into(),
- keychain,
- derivation_index,
- }
-}
-
-<span class="kw">fn </span>create_signers<E: IntoWalletDescriptor>(
- index: <span class="kw-2">&mut </span>KeychainTxOutIndex<KeychainKind>,
- secp: <span class="kw-2">&</span>Secp256k1<All>,
- descriptor: E,
- change_descriptor: <span class="prelude-ty">Option</span><E>,
- network: Network,
-) -> <span class="prelude-ty">Result</span><(Arc<SignersContainer>, Arc<SignersContainer>), <span class="kw">crate</span>::descriptor::error::Error> {
- <span class="kw">let </span>(descriptor, keymap) = into_wallet_descriptor_checked(descriptor, secp, network)<span class="question-mark">?</span>;
- <span class="kw">let </span>signers = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>descriptor, secp));
- <span class="kw">let _ </span>= index.insert_descriptor(KeychainKind::External, descriptor);
-
- <span class="kw">let </span>change_signers = <span class="kw">match </span>change_descriptor {
- <span class="prelude-val">Some</span>(descriptor) => {
- <span class="kw">let </span>(descriptor, keymap) = into_wallet_descriptor_checked(descriptor, secp, network)<span class="question-mark">?</span>;
- <span class="kw">let </span>signers = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>descriptor, secp));
- <span class="kw">let _ </span>= index.insert_descriptor(KeychainKind::Internal, descriptor);
- signers
- }
- <span class="prelude-val">None </span>=> Arc::new(SignersContainer::new()),
- };
-
- <span class="prelude-val">Ok</span>((signers, change_signers))
-}
-
-<span class="doccomment">/// Transforms a [`FeeRate`] to `f64` with unit as sat/vb.
-</span><span class="attr">#[macro_export]
-#[doc(hidden)]
-</span><span class="macro">macro_rules! </span>floating_rate {
- (<span class="macro-nonterminal">$rate</span>:expr) => {{
- <span class="kw">use </span><span class="macro-nonterminal">$crate::bitcoin::blockdata::constants::WITNESS_SCALE_FACTOR</span>;
- <span class="comment">// sat_kwu / 250.0 -> sat_vb
- </span><span class="macro-nonterminal">$rate</span>.to_sat_per_kwu() <span class="kw">as </span>f64 / ((<span class="number">1000 </span>/ WITNESS_SCALE_FACTOR) <span class="kw">as </span>f64)
- }};
-}
-
-<span class="attr">#[macro_export]
-#[doc(hidden)]
-</span><span class="doccomment">/// Macro for getting a wallet for use in a doctest
-</span><span class="macro">macro_rules! </span>doctest_wallet {
- () => {{
- <span class="kw">use </span><span class="macro-nonterminal">$crate::bitcoin</span>::{BlockHash, Transaction, absolute, TxOut, Network, hashes::Hash};
- <span class="kw">use </span><span class="macro-nonterminal">$crate::chain</span>::{ConfirmationTime, BlockId};
- <span class="kw">use </span><span class="macro-nonterminal">$</span><span class="kw">crate</span>::{<span class="macro-nonterminal">KeychainKind</span>, wallet::Wallet};
- <span class="kw">let </span>descriptor = <span class="string">"tr([73c5da0a/86'/0'/0']tprv8fMn4hSKPRC1oaCPqxDb1JWtgkpeiQvZhsr8W2xuy3GEMkzoArcAWTfJxYb6Wj8XNNDWEjfYKK4wGQXh3ZUXhDF2NcnsALpWTeSwarJt7Vc/0/*)"</span>;
- <span class="kw">let </span>change_descriptor = <span class="string">"tr([73c5da0a/86'/0'/0']tprv8fMn4hSKPRC1oaCPqxDb1JWtgkpeiQvZhsr8W2xuy3GEMkzoArcAWTfJxYb6Wj8XNNDWEjfYKK4wGQXh3ZUXhDF2NcnsALpWTeSwarJt7Vc/1/*)"</span>;
-
- <span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(
- descriptor,
- <span class="prelude-val">Some</span>(change_descriptor),
- Network::Regtest,
- )
- .unwrap();
- <span class="kw">let </span>address = wallet.peek_address(KeychainKind::External, <span class="number">0</span>).address;
- <span class="kw">let </span>tx = Transaction {
- version: transaction::Version::ONE,
- lock_time: absolute::LockTime::ZERO,
- input: <span class="macro">vec!</span>[],
- output: <span class="macro">vec!</span>[TxOut {
- value: Amount::from_sat(<span class="number">500_000</span>),
- script_pubkey: address.script_pubkey(),
- }],
- };
- <span class="kw">let _ </span>= wallet.insert_checkpoint(BlockId { height: <span class="number">1_000</span>, hash: BlockHash::all_zeros() });
- <span class="kw">let _ </span>= wallet.insert_tx(tx.clone(), ConfirmationTime::Confirmed {
- height: <span class="number">500</span>,
- time: <span class="number">50_000
- </span>});
-
- wallet
- }}
-}
-</code></pre></div>
-</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Source of the Rust file `crates/bdk/src/wallet/signer.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>signer.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk/index.html">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
-<a href="#2" id="2">2</a>
-<a href="#3" id="3">3</a>
-<a href="#4" id="4">4</a>
-<a href="#5" id="5">5</a>
-<a href="#6" id="6">6</a>
-<a href="#7" id="7">7</a>
-<a href="#8" id="8">8</a>
-<a href="#9" id="9">9</a>
-<a href="#10" id="10">10</a>
-<a href="#11" id="11">11</a>
-<a href="#12" id="12">12</a>
-<a href="#13" id="13">13</a>
-<a href="#14" id="14">14</a>
-<a href="#15" id="15">15</a>
-<a href="#16" id="16">16</a>
-<a href="#17" id="17">17</a>
-<a href="#18" id="18">18</a>
-<a href="#19" id="19">19</a>
-<a href="#20" id="20">20</a>
-<a href="#21" id="21">21</a>
-<a href="#22" id="22">22</a>
-<a href="#23" id="23">23</a>
-<a href="#24" id="24">24</a>
-<a href="#25" id="25">25</a>
-<a href="#26" id="26">26</a>
-<a href="#27" id="27">27</a>
-<a href="#28" id="28">28</a>
-<a href="#29" id="29">29</a>
-<a href="#30" id="30">30</a>
-<a href="#31" id="31">31</a>
-<a href="#32" id="32">32</a>
-<a href="#33" id="33">33</a>
-<a href="#34" id="34">34</a>
-<a href="#35" id="35">35</a>
-<a href="#36" id="36">36</a>
-<a href="#37" id="37">37</a>
-<a href="#38" id="38">38</a>
-<a href="#39" id="39">39</a>
-<a href="#40" id="40">40</a>
-<a href="#41" id="41">41</a>
-<a href="#42" id="42">42</a>
-<a href="#43" id="43">43</a>
-<a href="#44" id="44">44</a>
-<a href="#45" id="45">45</a>
-<a href="#46" id="46">46</a>
-<a href="#47" id="47">47</a>
-<a href="#48" id="48">48</a>
-<a href="#49" id="49">49</a>
-<a href="#50" id="50">50</a>
-<a href="#51" id="51">51</a>
-<a href="#52" id="52">52</a>
-<a href="#53" id="53">53</a>
-<a href="#54" id="54">54</a>
-<a href="#55" id="55">55</a>
-<a href="#56" id="56">56</a>
-<a href="#57" id="57">57</a>
-<a href="#58" id="58">58</a>
-<a href="#59" id="59">59</a>
-<a href="#60" id="60">60</a>
-<a href="#61" id="61">61</a>
-<a href="#62" id="62">62</a>
-<a href="#63" id="63">63</a>
-<a href="#64" id="64">64</a>
-<a href="#65" id="65">65</a>
-<a href="#66" id="66">66</a>
-<a href="#67" id="67">67</a>
-<a href="#68" id="68">68</a>
-<a href="#69" id="69">69</a>
-<a href="#70" id="70">70</a>
-<a href="#71" id="71">71</a>
-<a href="#72" id="72">72</a>
-<a href="#73" id="73">73</a>
-<a href="#74" id="74">74</a>
-<a href="#75" id="75">75</a>
-<a href="#76" id="76">76</a>
-<a href="#77" id="77">77</a>
-<a href="#78" id="78">78</a>
-<a href="#79" id="79">79</a>
-<a href="#80" id="80">80</a>
-<a href="#81" id="81">81</a>
-<a href="#82" id="82">82</a>
-<a href="#83" id="83">83</a>
-<a href="#84" id="84">84</a>
-<a href="#85" id="85">85</a>
-<a href="#86" id="86">86</a>
-<a href="#87" id="87">87</a>
-<a href="#88" id="88">88</a>
-<a href="#89" id="89">89</a>
-<a href="#90" id="90">90</a>
-<a href="#91" id="91">91</a>
-<a href="#92" id="92">92</a>
-<a href="#93" id="93">93</a>
-<a href="#94" id="94">94</a>
-<a href="#95" id="95">95</a>
-<a href="#96" id="96">96</a>
-<a href="#97" id="97">97</a>
-<a href="#98" id="98">98</a>
-<a href="#99" id="99">99</a>
-<a href="#100" id="100">100</a>
-<a href="#101" id="101">101</a>
-<a href="#102" id="102">102</a>
-<a href="#103" id="103">103</a>
-<a href="#104" id="104">104</a>
-<a href="#105" id="105">105</a>
-<a href="#106" id="106">106</a>
-<a href="#107" id="107">107</a>
-<a href="#108" id="108">108</a>
-<a href="#109" id="109">109</a>
-<a href="#110" id="110">110</a>
-<a href="#111" id="111">111</a>
-<a href="#112" id="112">112</a>
-<a href="#113" id="113">113</a>
-<a href="#114" id="114">114</a>
-<a href="#115" id="115">115</a>
-<a href="#116" id="116">116</a>
-<a href="#117" id="117">117</a>
-<a href="#118" id="118">118</a>
-<a href="#119" id="119">119</a>
-<a href="#120" id="120">120</a>
-<a href="#121" id="121">121</a>
-<a href="#122" id="122">122</a>
-<a href="#123" id="123">123</a>
-<a href="#124" id="124">124</a>
-<a href="#125" id="125">125</a>
-<a href="#126" id="126">126</a>
-<a href="#127" id="127">127</a>
-<a href="#128" id="128">128</a>
-<a href="#129" id="129">129</a>
-<a href="#130" id="130">130</a>
-<a href="#131" id="131">131</a>
-<a href="#132" id="132">132</a>
-<a href="#133" id="133">133</a>
-<a href="#134" id="134">134</a>
-<a href="#135" id="135">135</a>
-<a href="#136" id="136">136</a>
-<a href="#137" id="137">137</a>
-<a href="#138" id="138">138</a>
-<a href="#139" id="139">139</a>
-<a href="#140" id="140">140</a>
-<a href="#141" id="141">141</a>
-<a href="#142" id="142">142</a>
-<a href="#143" id="143">143</a>
-<a href="#144" id="144">144</a>
-<a href="#145" id="145">145</a>
-<a href="#146" id="146">146</a>
-<a href="#147" id="147">147</a>
-<a href="#148" id="148">148</a>
-<a href="#149" id="149">149</a>
-<a href="#150" id="150">150</a>
-<a href="#151" id="151">151</a>
-<a href="#152" id="152">152</a>
-<a href="#153" id="153">153</a>
-<a href="#154" id="154">154</a>
-<a href="#155" id="155">155</a>
-<a href="#156" id="156">156</a>
-<a href="#157" id="157">157</a>
-<a href="#158" id="158">158</a>
-<a href="#159" id="159">159</a>
-<a href="#160" id="160">160</a>
-<a href="#161" id="161">161</a>
-<a href="#162" id="162">162</a>
-<a href="#163" id="163">163</a>
-<a href="#164" id="164">164</a>
-<a href="#165" id="165">165</a>
-<a href="#166" id="166">166</a>
-<a href="#167" id="167">167</a>
-<a href="#168" id="168">168</a>
-<a href="#169" id="169">169</a>
-<a href="#170" id="170">170</a>
-<a href="#171" id="171">171</a>
-<a href="#172" id="172">172</a>
-<a href="#173" id="173">173</a>
-<a href="#174" id="174">174</a>
-<a href="#175" id="175">175</a>
-<a href="#176" id="176">176</a>
-<a href="#177" id="177">177</a>
-<a href="#178" id="178">178</a>
-<a href="#179" id="179">179</a>
-<a href="#180" id="180">180</a>
-<a href="#181" id="181">181</a>
-<a href="#182" id="182">182</a>
-<a href="#183" id="183">183</a>
-<a href="#184" id="184">184</a>
-<a href="#185" id="185">185</a>
-<a href="#186" id="186">186</a>
-<a href="#187" id="187">187</a>
-<a href="#188" id="188">188</a>
-<a href="#189" id="189">189</a>
-<a href="#190" id="190">190</a>
-<a href="#191" id="191">191</a>
-<a href="#192" id="192">192</a>
-<a href="#193" id="193">193</a>
-<a href="#194" id="194">194</a>
-<a href="#195" id="195">195</a>
-<a href="#196" id="196">196</a>
-<a href="#197" id="197">197</a>
-<a href="#198" id="198">198</a>
-<a href="#199" id="199">199</a>
-<a href="#200" id="200">200</a>
-<a href="#201" id="201">201</a>
-<a href="#202" id="202">202</a>
-<a href="#203" id="203">203</a>
-<a href="#204" id="204">204</a>
-<a href="#205" id="205">205</a>
-<a href="#206" id="206">206</a>
-<a href="#207" id="207">207</a>
-<a href="#208" id="208">208</a>
-<a href="#209" id="209">209</a>
-<a href="#210" id="210">210</a>
-<a href="#211" id="211">211</a>
-<a href="#212" id="212">212</a>
-<a href="#213" id="213">213</a>
-<a href="#214" id="214">214</a>
-<a href="#215" id="215">215</a>
-<a href="#216" id="216">216</a>
-<a href="#217" id="217">217</a>
-<a href="#218" id="218">218</a>
-<a href="#219" id="219">219</a>
-<a href="#220" id="220">220</a>
-<a href="#221" id="221">221</a>
-<a href="#222" id="222">222</a>
-<a href="#223" id="223">223</a>
-<a href="#224" id="224">224</a>
-<a href="#225" id="225">225</a>
-<a href="#226" id="226">226</a>
-<a href="#227" id="227">227</a>
-<a href="#228" id="228">228</a>
-<a href="#229" id="229">229</a>
-<a href="#230" id="230">230</a>
-<a href="#231" id="231">231</a>
-<a href="#232" id="232">232</a>
-<a href="#233" id="233">233</a>
-<a href="#234" id="234">234</a>
-<a href="#235" id="235">235</a>
-<a href="#236" id="236">236</a>
-<a href="#237" id="237">237</a>
-<a href="#238" id="238">238</a>
-<a href="#239" id="239">239</a>
-<a href="#240" id="240">240</a>
-<a href="#241" id="241">241</a>
-<a href="#242" id="242">242</a>
-<a href="#243" id="243">243</a>
-<a href="#244" id="244">244</a>
-<a href="#245" id="245">245</a>
-<a href="#246" id="246">246</a>
-<a href="#247" id="247">247</a>
-<a href="#248" id="248">248</a>
-<a href="#249" id="249">249</a>
-<a href="#250" id="250">250</a>
-<a href="#251" id="251">251</a>
-<a href="#252" id="252">252</a>
-<a href="#253" id="253">253</a>
-<a href="#254" id="254">254</a>
-<a href="#255" id="255">255</a>
-<a href="#256" id="256">256</a>
-<a href="#257" id="257">257</a>
-<a href="#258" id="258">258</a>
-<a href="#259" id="259">259</a>
-<a href="#260" id="260">260</a>
-<a href="#261" id="261">261</a>
-<a href="#262" id="262">262</a>
-<a href="#263" id="263">263</a>
-<a href="#264" id="264">264</a>
-<a href="#265" id="265">265</a>
-<a href="#266" id="266">266</a>
-<a href="#267" id="267">267</a>
-<a href="#268" id="268">268</a>
-<a href="#269" id="269">269</a>
-<a href="#270" id="270">270</a>
-<a href="#271" id="271">271</a>
-<a href="#272" id="272">272</a>
-<a href="#273" id="273">273</a>
-<a href="#274" id="274">274</a>
-<a href="#275" id="275">275</a>
-<a href="#276" id="276">276</a>
-<a href="#277" id="277">277</a>
-<a href="#278" id="278">278</a>
-<a href="#279" id="279">279</a>
-<a href="#280" id="280">280</a>
-<a href="#281" id="281">281</a>
-<a href="#282" id="282">282</a>
-<a href="#283" id="283">283</a>
-<a href="#284" id="284">284</a>
-<a href="#285" id="285">285</a>
-<a href="#286" id="286">286</a>
-<a href="#287" id="287">287</a>
-<a href="#288" id="288">288</a>
-<a href="#289" id="289">289</a>
-<a href="#290" id="290">290</a>
-<a href="#291" id="291">291</a>
-<a href="#292" id="292">292</a>
-<a href="#293" id="293">293</a>
-<a href="#294" id="294">294</a>
-<a href="#295" id="295">295</a>
-<a href="#296" id="296">296</a>
-<a href="#297" id="297">297</a>
-<a href="#298" id="298">298</a>
-<a href="#299" id="299">299</a>
-<a href="#300" id="300">300</a>
-<a href="#301" id="301">301</a>
-<a href="#302" id="302">302</a>
-<a href="#303" id="303">303</a>
-<a href="#304" id="304">304</a>
-<a href="#305" id="305">305</a>
-<a href="#306" id="306">306</a>
-<a href="#307" id="307">307</a>
-<a href="#308" id="308">308</a>
-<a href="#309" id="309">309</a>
-<a href="#310" id="310">310</a>
-<a href="#311" id="311">311</a>
-<a href="#312" id="312">312</a>
-<a href="#313" id="313">313</a>
-<a href="#314" id="314">314</a>
-<a href="#315" id="315">315</a>
-<a href="#316" id="316">316</a>
-<a href="#317" id="317">317</a>
-<a href="#318" id="318">318</a>
-<a href="#319" id="319">319</a>
-<a href="#320" id="320">320</a>
-<a href="#321" id="321">321</a>
-<a href="#322" id="322">322</a>
-<a href="#323" id="323">323</a>
-<a href="#324" id="324">324</a>
-<a href="#325" id="325">325</a>
-<a href="#326" id="326">326</a>
-<a href="#327" id="327">327</a>
-<a href="#328" id="328">328</a>
-<a href="#329" id="329">329</a>
-<a href="#330" id="330">330</a>
-<a href="#331" id="331">331</a>
-<a href="#332" id="332">332</a>
-<a href="#333" id="333">333</a>
-<a href="#334" id="334">334</a>
-<a href="#335" id="335">335</a>
-<a href="#336" id="336">336</a>
-<a href="#337" id="337">337</a>
-<a href="#338" id="338">338</a>
-<a href="#339" id="339">339</a>
-<a href="#340" id="340">340</a>
-<a href="#341" id="341">341</a>
-<a href="#342" id="342">342</a>
-<a href="#343" id="343">343</a>
-<a href="#344" id="344">344</a>
-<a href="#345" id="345">345</a>
-<a href="#346" id="346">346</a>
-<a href="#347" id="347">347</a>
-<a href="#348" id="348">348</a>
-<a href="#349" id="349">349</a>
-<a href="#350" id="350">350</a>
-<a href="#351" id="351">351</a>
-<a href="#352" id="352">352</a>
-<a href="#353" id="353">353</a>
-<a href="#354" id="354">354</a>
-<a href="#355" id="355">355</a>
-<a href="#356" id="356">356</a>
-<a href="#357" id="357">357</a>
-<a href="#358" id="358">358</a>
-<a href="#359" id="359">359</a>
-<a href="#360" id="360">360</a>
-<a href="#361" id="361">361</a>
-<a href="#362" id="362">362</a>
-<a href="#363" id="363">363</a>
-<a href="#364" id="364">364</a>
-<a href="#365" id="365">365</a>
-<a href="#366" id="366">366</a>
-<a href="#367" id="367">367</a>
-<a href="#368" id="368">368</a>
-<a href="#369" id="369">369</a>
-<a href="#370" id="370">370</a>
-<a href="#371" id="371">371</a>
-<a href="#372" id="372">372</a>
-<a href="#373" id="373">373</a>
-<a href="#374" id="374">374</a>
-<a href="#375" id="375">375</a>
-<a href="#376" id="376">376</a>
-<a href="#377" id="377">377</a>
-<a href="#378" id="378">378</a>
-<a href="#379" id="379">379</a>
-<a href="#380" id="380">380</a>
-<a href="#381" id="381">381</a>
-<a href="#382" id="382">382</a>
-<a href="#383" id="383">383</a>
-<a href="#384" id="384">384</a>
-<a href="#385" id="385">385</a>
-<a href="#386" id="386">386</a>
-<a href="#387" id="387">387</a>
-<a href="#388" id="388">388</a>
-<a href="#389" id="389">389</a>
-<a href="#390" id="390">390</a>
-<a href="#391" id="391">391</a>
-<a href="#392" id="392">392</a>
-<a href="#393" id="393">393</a>
-<a href="#394" id="394">394</a>
-<a href="#395" id="395">395</a>
-<a href="#396" id="396">396</a>
-<a href="#397" id="397">397</a>
-<a href="#398" id="398">398</a>
-<a href="#399" id="399">399</a>
-<a href="#400" id="400">400</a>
-<a href="#401" id="401">401</a>
-<a href="#402" id="402">402</a>
-<a href="#403" id="403">403</a>
-<a href="#404" id="404">404</a>
-<a href="#405" id="405">405</a>
-<a href="#406" id="406">406</a>
-<a href="#407" id="407">407</a>
-<a href="#408" id="408">408</a>
-<a href="#409" id="409">409</a>
-<a href="#410" id="410">410</a>
-<a href="#411" id="411">411</a>
-<a href="#412" id="412">412</a>
-<a href="#413" id="413">413</a>
-<a href="#414" id="414">414</a>
-<a href="#415" id="415">415</a>
-<a href="#416" id="416">416</a>
-<a href="#417" id="417">417</a>
-<a href="#418" id="418">418</a>
-<a href="#419" id="419">419</a>
-<a href="#420" id="420">420</a>
-<a href="#421" id="421">421</a>
-<a href="#422" id="422">422</a>
-<a href="#423" id="423">423</a>
-<a href="#424" id="424">424</a>
-<a href="#425" id="425">425</a>
-<a href="#426" id="426">426</a>
-<a href="#427" id="427">427</a>
-<a href="#428" id="428">428</a>
-<a href="#429" id="429">429</a>
-<a href="#430" id="430">430</a>
-<a href="#431" id="431">431</a>
-<a href="#432" id="432">432</a>
-<a href="#433" id="433">433</a>
-<a href="#434" id="434">434</a>
-<a href="#435" id="435">435</a>
-<a href="#436" id="436">436</a>
-<a href="#437" id="437">437</a>
-<a href="#438" id="438">438</a>
-<a href="#439" id="439">439</a>
-<a href="#440" id="440">440</a>
-<a href="#441" id="441">441</a>
-<a href="#442" id="442">442</a>
-<a href="#443" id="443">443</a>
-<a href="#444" id="444">444</a>
-<a href="#445" id="445">445</a>
-<a href="#446" id="446">446</a>
-<a href="#447" id="447">447</a>
-<a href="#448" id="448">448</a>
-<a href="#449" id="449">449</a>
-<a href="#450" id="450">450</a>
-<a href="#451" id="451">451</a>
-<a href="#452" id="452">452</a>
-<a href="#453" id="453">453</a>
-<a href="#454" id="454">454</a>
-<a href="#455" id="455">455</a>
-<a href="#456" id="456">456</a>
-<a href="#457" id="457">457</a>
-<a href="#458" id="458">458</a>
-<a href="#459" id="459">459</a>
-<a href="#460" id="460">460</a>
-<a href="#461" id="461">461</a>
-<a href="#462" id="462">462</a>
-<a href="#463" id="463">463</a>
-<a href="#464" id="464">464</a>
-<a href="#465" id="465">465</a>
-<a href="#466" id="466">466</a>
-<a href="#467" id="467">467</a>
-<a href="#468" id="468">468</a>
-<a href="#469" id="469">469</a>
-<a href="#470" id="470">470</a>
-<a href="#471" id="471">471</a>
-<a href="#472" id="472">472</a>
-<a href="#473" id="473">473</a>
-<a href="#474" id="474">474</a>
-<a href="#475" id="475">475</a>
-<a href="#476" id="476">476</a>
-<a href="#477" id="477">477</a>
-<a href="#478" id="478">478</a>
-<a href="#479" id="479">479</a>
-<a href="#480" id="480">480</a>
-<a href="#481" id="481">481</a>
-<a href="#482" id="482">482</a>
-<a href="#483" id="483">483</a>
-<a href="#484" id="484">484</a>
-<a href="#485" id="485">485</a>
-<a href="#486" id="486">486</a>
-<a href="#487" id="487">487</a>
-<a href="#488" id="488">488</a>
-<a href="#489" id="489">489</a>
-<a href="#490" id="490">490</a>
-<a href="#491" id="491">491</a>
-<a href="#492" id="492">492</a>
-<a href="#493" id="493">493</a>
-<a href="#494" id="494">494</a>
-<a href="#495" id="495">495</a>
-<a href="#496" id="496">496</a>
-<a href="#497" id="497">497</a>
-<a href="#498" id="498">498</a>
-<a href="#499" id="499">499</a>
-<a href="#500" id="500">500</a>
-<a href="#501" id="501">501</a>
-<a href="#502" id="502">502</a>
-<a href="#503" id="503">503</a>
-<a href="#504" id="504">504</a>
-<a href="#505" id="505">505</a>
-<a href="#506" id="506">506</a>
-<a href="#507" id="507">507</a>
-<a href="#508" id="508">508</a>
-<a href="#509" id="509">509</a>
-<a href="#510" id="510">510</a>
-<a href="#511" id="511">511</a>
-<a href="#512" id="512">512</a>
-<a href="#513" id="513">513</a>
-<a href="#514" id="514">514</a>
-<a href="#515" id="515">515</a>
-<a href="#516" id="516">516</a>
-<a href="#517" id="517">517</a>
-<a href="#518" id="518">518</a>
-<a href="#519" id="519">519</a>
-<a href="#520" id="520">520</a>
-<a href="#521" id="521">521</a>
-<a href="#522" id="522">522</a>
-<a href="#523" id="523">523</a>
-<a href="#524" id="524">524</a>
-<a href="#525" id="525">525</a>
-<a href="#526" id="526">526</a>
-<a href="#527" id="527">527</a>
-<a href="#528" id="528">528</a>
-<a href="#529" id="529">529</a>
-<a href="#530" id="530">530</a>
-<a href="#531" id="531">531</a>
-<a href="#532" id="532">532</a>
-<a href="#533" id="533">533</a>
-<a href="#534" id="534">534</a>
-<a href="#535" id="535">535</a>
-<a href="#536" id="536">536</a>
-<a href="#537" id="537">537</a>
-<a href="#538" id="538">538</a>
-<a href="#539" id="539">539</a>
-<a href="#540" id="540">540</a>
-<a href="#541" id="541">541</a>
-<a href="#542" id="542">542</a>
-<a href="#543" id="543">543</a>
-<a href="#544" id="544">544</a>
-<a href="#545" id="545">545</a>
-<a href="#546" id="546">546</a>
-<a href="#547" id="547">547</a>
-<a href="#548" id="548">548</a>
-<a href="#549" id="549">549</a>
-<a href="#550" id="550">550</a>
-<a href="#551" id="551">551</a>
-<a href="#552" id="552">552</a>
-<a href="#553" id="553">553</a>
-<a href="#554" id="554">554</a>
-<a href="#555" id="555">555</a>
-<a href="#556" id="556">556</a>
-<a href="#557" id="557">557</a>
-<a href="#558" id="558">558</a>
-<a href="#559" id="559">559</a>
-<a href="#560" id="560">560</a>
-<a href="#561" id="561">561</a>
-<a href="#562" id="562">562</a>
-<a href="#563" id="563">563</a>
-<a href="#564" id="564">564</a>
-<a href="#565" id="565">565</a>
-<a href="#566" id="566">566</a>
-<a href="#567" id="567">567</a>
-<a href="#568" id="568">568</a>
-<a href="#569" id="569">569</a>
-<a href="#570" id="570">570</a>
-<a href="#571" id="571">571</a>
-<a href="#572" id="572">572</a>
-<a href="#573" id="573">573</a>
-<a href="#574" id="574">574</a>
-<a href="#575" id="575">575</a>
-<a href="#576" id="576">576</a>
-<a href="#577" id="577">577</a>
-<a href="#578" id="578">578</a>
-<a href="#579" id="579">579</a>
-<a href="#580" id="580">580</a>
-<a href="#581" id="581">581</a>
-<a href="#582" id="582">582</a>
-<a href="#583" id="583">583</a>
-<a href="#584" id="584">584</a>
-<a href="#585" id="585">585</a>
-<a href="#586" id="586">586</a>
-<a href="#587" id="587">587</a>
-<a href="#588" id="588">588</a>
-<a href="#589" id="589">589</a>
-<a href="#590" id="590">590</a>
-<a href="#591" id="591">591</a>
-<a href="#592" id="592">592</a>
-<a href="#593" id="593">593</a>
-<a href="#594" id="594">594</a>
-<a href="#595" id="595">595</a>
-<a href="#596" id="596">596</a>
-<a href="#597" id="597">597</a>
-<a href="#598" id="598">598</a>
-<a href="#599" id="599">599</a>
-<a href="#600" id="600">600</a>
-<a href="#601" id="601">601</a>
-<a href="#602" id="602">602</a>
-<a href="#603" id="603">603</a>
-<a href="#604" id="604">604</a>
-<a href="#605" id="605">605</a>
-<a href="#606" id="606">606</a>
-<a href="#607" id="607">607</a>
-<a href="#608" id="608">608</a>
-<a href="#609" id="609">609</a>
-<a href="#610" id="610">610</a>
-<a href="#611" id="611">611</a>
-<a href="#612" id="612">612</a>
-<a href="#613" id="613">613</a>
-<a href="#614" id="614">614</a>
-<a href="#615" id="615">615</a>
-<a href="#616" id="616">616</a>
-<a href="#617" id="617">617</a>
-<a href="#618" id="618">618</a>
-<a href="#619" id="619">619</a>
-<a href="#620" id="620">620</a>
-<a href="#621" id="621">621</a>
-<a href="#622" id="622">622</a>
-<a href="#623" id="623">623</a>
-<a href="#624" id="624">624</a>
-<a href="#625" id="625">625</a>
-<a href="#626" id="626">626</a>
-<a href="#627" id="627">627</a>
-<a href="#628" id="628">628</a>
-<a href="#629" id="629">629</a>
-<a href="#630" id="630">630</a>
-<a href="#631" id="631">631</a>
-<a href="#632" id="632">632</a>
-<a href="#633" id="633">633</a>
-<a href="#634" id="634">634</a>
-<a href="#635" id="635">635</a>
-<a href="#636" id="636">636</a>
-<a href="#637" id="637">637</a>
-<a href="#638" id="638">638</a>
-<a href="#639" id="639">639</a>
-<a href="#640" id="640">640</a>
-<a href="#641" id="641">641</a>
-<a href="#642" id="642">642</a>
-<a href="#643" id="643">643</a>
-<a href="#644" id="644">644</a>
-<a href="#645" id="645">645</a>
-<a href="#646" id="646">646</a>
-<a href="#647" id="647">647</a>
-<a href="#648" id="648">648</a>
-<a href="#649" id="649">649</a>
-<a href="#650" id="650">650</a>
-<a href="#651" id="651">651</a>
-<a href="#652" id="652">652</a>
-<a href="#653" id="653">653</a>
-<a href="#654" id="654">654</a>
-<a href="#655" id="655">655</a>
-<a href="#656" id="656">656</a>
-<a href="#657" id="657">657</a>
-<a href="#658" id="658">658</a>
-<a href="#659" id="659">659</a>
-<a href="#660" id="660">660</a>
-<a href="#661" id="661">661</a>
-<a href="#662" id="662">662</a>
-<a href="#663" id="663">663</a>
-<a href="#664" id="664">664</a>
-<a href="#665" id="665">665</a>
-<a href="#666" id="666">666</a>
-<a href="#667" id="667">667</a>
-<a href="#668" id="668">668</a>
-<a href="#669" id="669">669</a>
-<a href="#670" id="670">670</a>
-<a href="#671" id="671">671</a>
-<a href="#672" id="672">672</a>
-<a href="#673" id="673">673</a>
-<a href="#674" id="674">674</a>
-<a href="#675" id="675">675</a>
-<a href="#676" id="676">676</a>
-<a href="#677" id="677">677</a>
-<a href="#678" id="678">678</a>
-<a href="#679" id="679">679</a>
-<a href="#680" id="680">680</a>
-<a href="#681" id="681">681</a>
-<a href="#682" id="682">682</a>
-<a href="#683" id="683">683</a>
-<a href="#684" id="684">684</a>
-<a href="#685" id="685">685</a>
-<a href="#686" id="686">686</a>
-<a href="#687" id="687">687</a>
-<a href="#688" id="688">688</a>
-<a href="#689" id="689">689</a>
-<a href="#690" id="690">690</a>
-<a href="#691" id="691">691</a>
-<a href="#692" id="692">692</a>
-<a href="#693" id="693">693</a>
-<a href="#694" id="694">694</a>
-<a href="#695" id="695">695</a>
-<a href="#696" id="696">696</a>
-<a href="#697" id="697">697</a>
-<a href="#698" id="698">698</a>
-<a href="#699" id="699">699</a>
-<a href="#700" id="700">700</a>
-<a href="#701" id="701">701</a>
-<a href="#702" id="702">702</a>
-<a href="#703" id="703">703</a>
-<a href="#704" id="704">704</a>
-<a href="#705" id="705">705</a>
-<a href="#706" id="706">706</a>
-<a href="#707" id="707">707</a>
-<a href="#708" id="708">708</a>
-<a href="#709" id="709">709</a>
-<a href="#710" id="710">710</a>
-<a href="#711" id="711">711</a>
-<a href="#712" id="712">712</a>
-<a href="#713" id="713">713</a>
-<a href="#714" id="714">714</a>
-<a href="#715" id="715">715</a>
-<a href="#716" id="716">716</a>
-<a href="#717" id="717">717</a>
-<a href="#718" id="718">718</a>
-<a href="#719" id="719">719</a>
-<a href="#720" id="720">720</a>
-<a href="#721" id="721">721</a>
-<a href="#722" id="722">722</a>
-<a href="#723" id="723">723</a>
-<a href="#724" id="724">724</a>
-<a href="#725" id="725">725</a>
-<a href="#726" id="726">726</a>
-<a href="#727" id="727">727</a>
-<a href="#728" id="728">728</a>
-<a href="#729" id="729">729</a>
-<a href="#730" id="730">730</a>
-<a href="#731" id="731">731</a>
-<a href="#732" id="732">732</a>
-<a href="#733" id="733">733</a>
-<a href="#734" id="734">734</a>
-<a href="#735" id="735">735</a>
-<a href="#736" id="736">736</a>
-<a href="#737" id="737">737</a>
-<a href="#738" id="738">738</a>
-<a href="#739" id="739">739</a>
-<a href="#740" id="740">740</a>
-<a href="#741" id="741">741</a>
-<a href="#742" id="742">742</a>
-<a href="#743" id="743">743</a>
-<a href="#744" id="744">744</a>
-<a href="#745" id="745">745</a>
-<a href="#746" id="746">746</a>
-<a href="#747" id="747">747</a>
-<a href="#748" id="748">748</a>
-<a href="#749" id="749">749</a>
-<a href="#750" id="750">750</a>
-<a href="#751" id="751">751</a>
-<a href="#752" id="752">752</a>
-<a href="#753" id="753">753</a>
-<a href="#754" id="754">754</a>
-<a href="#755" id="755">755</a>
-<a href="#756" id="756">756</a>
-<a href="#757" id="757">757</a>
-<a href="#758" id="758">758</a>
-<a href="#759" id="759">759</a>
-<a href="#760" id="760">760</a>
-<a href="#761" id="761">761</a>
-<a href="#762" id="762">762</a>
-<a href="#763" id="763">763</a>
-<a href="#764" id="764">764</a>
-<a href="#765" id="765">765</a>
-<a href="#766" id="766">766</a>
-<a href="#767" id="767">767</a>
-<a href="#768" id="768">768</a>
-<a href="#769" id="769">769</a>
-<a href="#770" id="770">770</a>
-<a href="#771" id="771">771</a>
-<a href="#772" id="772">772</a>
-<a href="#773" id="773">773</a>
-<a href="#774" id="774">774</a>
-<a href="#775" id="775">775</a>
-<a href="#776" id="776">776</a>
-<a href="#777" id="777">777</a>
-<a href="#778" id="778">778</a>
-<a href="#779" id="779">779</a>
-<a href="#780" id="780">780</a>
-<a href="#781" id="781">781</a>
-<a href="#782" id="782">782</a>
-<a href="#783" id="783">783</a>
-<a href="#784" id="784">784</a>
-<a href="#785" id="785">785</a>
-<a href="#786" id="786">786</a>
-<a href="#787" id="787">787</a>
-<a href="#788" id="788">788</a>
-<a href="#789" id="789">789</a>
-<a href="#790" id="790">790</a>
-<a href="#791" id="791">791</a>
-<a href="#792" id="792">792</a>
-<a href="#793" id="793">793</a>
-<a href="#794" id="794">794</a>
-<a href="#795" id="795">795</a>
-<a href="#796" id="796">796</a>
-<a href="#797" id="797">797</a>
-<a href="#798" id="798">798</a>
-<a href="#799" id="799">799</a>
-<a href="#800" id="800">800</a>
-<a href="#801" id="801">801</a>
-<a href="#802" id="802">802</a>
-<a href="#803" id="803">803</a>
-<a href="#804" id="804">804</a>
-<a href="#805" id="805">805</a>
-<a href="#806" id="806">806</a>
-<a href="#807" id="807">807</a>
-<a href="#808" id="808">808</a>
-<a href="#809" id="809">809</a>
-<a href="#810" id="810">810</a>
-<a href="#811" id="811">811</a>
-<a href="#812" id="812">812</a>
-<a href="#813" id="813">813</a>
-<a href="#814" id="814">814</a>
-<a href="#815" id="815">815</a>
-<a href="#816" id="816">816</a>
-<a href="#817" id="817">817</a>
-<a href="#818" id="818">818</a>
-<a href="#819" id="819">819</a>
-<a href="#820" id="820">820</a>
-<a href="#821" id="821">821</a>
-<a href="#822" id="822">822</a>
-<a href="#823" id="823">823</a>
-<a href="#824" id="824">824</a>
-<a href="#825" id="825">825</a>
-<a href="#826" id="826">826</a>
-<a href="#827" id="827">827</a>
-<a href="#828" id="828">828</a>
-<a href="#829" id="829">829</a>
-<a href="#830" id="830">830</a>
-<a href="#831" id="831">831</a>
-<a href="#832" id="832">832</a>
-<a href="#833" id="833">833</a>
-<a href="#834" id="834">834</a>
-<a href="#835" id="835">835</a>
-<a href="#836" id="836">836</a>
-<a href="#837" id="837">837</a>
-<a href="#838" id="838">838</a>
-<a href="#839" id="839">839</a>
-<a href="#840" id="840">840</a>
-<a href="#841" id="841">841</a>
-<a href="#842" id="842">842</a>
-<a href="#843" id="843">843</a>
-<a href="#844" id="844">844</a>
-<a href="#845" id="845">845</a>
-<a href="#846" id="846">846</a>
-<a href="#847" id="847">847</a>
-<a href="#848" id="848">848</a>
-<a href="#849" id="849">849</a>
-<a href="#850" id="850">850</a>
-<a href="#851" id="851">851</a>
-<a href="#852" id="852">852</a>
-<a href="#853" id="853">853</a>
-<a href="#854" id="854">854</a>
-<a href="#855" id="855">855</a>
-<a href="#856" id="856">856</a>
-<a href="#857" id="857">857</a>
-<a href="#858" id="858">858</a>
-<a href="#859" id="859">859</a>
-<a href="#860" id="860">860</a>
-<a href="#861" id="861">861</a>
-<a href="#862" id="862">862</a>
-<a href="#863" id="863">863</a>
-<a href="#864" id="864">864</a>
-<a href="#865" id="865">865</a>
-<a href="#866" id="866">866</a>
-<a href="#867" id="867">867</a>
-<a href="#868" id="868">868</a>
-<a href="#869" id="869">869</a>
-<a href="#870" id="870">870</a>
-<a href="#871" id="871">871</a>
-<a href="#872" id="872">872</a>
-<a href="#873" id="873">873</a>
-<a href="#874" id="874">874</a>
-<a href="#875" id="875">875</a>
-<a href="#876" id="876">876</a>
-<a href="#877" id="877">877</a>
-<a href="#878" id="878">878</a>
-<a href="#879" id="879">879</a>
-<a href="#880" id="880">880</a>
-<a href="#881" id="881">881</a>
-<a href="#882" id="882">882</a>
-<a href="#883" id="883">883</a>
-<a href="#884" id="884">884</a>
-<a href="#885" id="885">885</a>
-<a href="#886" id="886">886</a>
-<a href="#887" id="887">887</a>
-<a href="#888" id="888">888</a>
-<a href="#889" id="889">889</a>
-<a href="#890" id="890">890</a>
-<a href="#891" id="891">891</a>
-<a href="#892" id="892">892</a>
-<a href="#893" id="893">893</a>
-<a href="#894" id="894">894</a>
-<a href="#895" id="895">895</a>
-<a href="#896" id="896">896</a>
-<a href="#897" id="897">897</a>
-<a href="#898" id="898">898</a>
-<a href="#899" id="899">899</a>
-<a href="#900" id="900">900</a>
-<a href="#901" id="901">901</a>
-<a href="#902" id="902">902</a>
-<a href="#903" id="903">903</a>
-<a href="#904" id="904">904</a>
-<a href="#905" id="905">905</a>
-<a href="#906" id="906">906</a>
-<a href="#907" id="907">907</a>
-<a href="#908" id="908">908</a>
-<a href="#909" id="909">909</a>
-<a href="#910" id="910">910</a>
-<a href="#911" id="911">911</a>
-<a href="#912" id="912">912</a>
-<a href="#913" id="913">913</a>
-<a href="#914" id="914">914</a>
-<a href="#915" id="915">915</a>
-<a href="#916" id="916">916</a>
-<a href="#917" id="917">917</a>
-<a href="#918" id="918">918</a>
-<a href="#919" id="919">919</a>
-<a href="#920" id="920">920</a>
-<a href="#921" id="921">921</a>
-<a href="#922" id="922">922</a>
-<a href="#923" id="923">923</a>
-<a href="#924" id="924">924</a>
-<a href="#925" id="925">925</a>
-<a href="#926" id="926">926</a>
-<a href="#927" id="927">927</a>
-<a href="#928" id="928">928</a>
-<a href="#929" id="929">929</a>
-<a href="#930" id="930">930</a>
-<a href="#931" id="931">931</a>
-<a href="#932" id="932">932</a>
-<a href="#933" id="933">933</a>
-<a href="#934" id="934">934</a>
-<a href="#935" id="935">935</a>
-<a href="#936" id="936">936</a>
-<a href="#937" id="937">937</a>
-<a href="#938" id="938">938</a>
-<a href="#939" id="939">939</a>
-<a href="#940" id="940">940</a>
-<a href="#941" id="941">941</a>
-<a href="#942" id="942">942</a>
-<a href="#943" id="943">943</a>
-<a href="#944" id="944">944</a>
-<a href="#945" id="945">945</a>
-<a href="#946" id="946">946</a>
-<a href="#947" id="947">947</a>
-<a href="#948" id="948">948</a>
-<a href="#949" id="949">949</a>
-<a href="#950" id="950">950</a>
-<a href="#951" id="951">951</a>
-<a href="#952" id="952">952</a>
-<a href="#953" id="953">953</a>
-<a href="#954" id="954">954</a>
-<a href="#955" id="955">955</a>
-<a href="#956" id="956">956</a>
-<a href="#957" id="957">957</a>
-<a href="#958" id="958">958</a>
-<a href="#959" id="959">959</a>
-<a href="#960" id="960">960</a>
-<a href="#961" id="961">961</a>
-<a href="#962" id="962">962</a>
-<a href="#963" id="963">963</a>
-<a href="#964" id="964">964</a>
-<a href="#965" id="965">965</a>
-<a href="#966" id="966">966</a>
-<a href="#967" id="967">967</a>
-<a href="#968" id="968">968</a>
-<a href="#969" id="969">969</a>
-<a href="#970" id="970">970</a>
-<a href="#971" id="971">971</a>
-<a href="#972" id="972">972</a>
-<a href="#973" id="973">973</a>
-<a href="#974" id="974">974</a>
-<a href="#975" id="975">975</a>
-<a href="#976" id="976">976</a>
-<a href="#977" id="977">977</a>
-<a href="#978" id="978">978</a>
-<a href="#979" id="979">979</a>
-<a href="#980" id="980">980</a>
-<a href="#981" id="981">981</a>
-<a href="#982" id="982">982</a>
-<a href="#983" id="983">983</a>
-<a href="#984" id="984">984</a>
-<a href="#985" id="985">985</a>
-<a href="#986" id="986">986</a>
-<a href="#987" id="987">987</a>
-<a href="#988" id="988">988</a>
-<a href="#989" id="989">989</a>
-<a href="#990" id="990">990</a>
-<a href="#991" id="991">991</a>
-<a href="#992" id="992">992</a>
-<a href="#993" id="993">993</a>
-<a href="#994" id="994">994</a>
-<a href="#995" id="995">995</a>
-<a href="#996" id="996">996</a>
-<a href="#997" id="997">997</a>
-<a href="#998" id="998">998</a>
-<a href="#999" id="999">999</a>
-<a href="#1000" id="1000">1000</a>
-<a href="#1001" id="1001">1001</a>
-<a href="#1002" id="1002">1002</a>
-<a href="#1003" id="1003">1003</a>
-<a href="#1004" id="1004">1004</a>
-<a href="#1005" id="1005">1005</a>
-<a href="#1006" id="1006">1006</a>
-<a href="#1007" id="1007">1007</a>
-<a href="#1008" id="1008">1008</a>
-<a href="#1009" id="1009">1009</a>
-<a href="#1010" id="1010">1010</a>
-<a href="#1011" id="1011">1011</a>
-<a href="#1012" id="1012">1012</a>
-<a href="#1013" id="1013">1013</a>
-<a href="#1014" id="1014">1014</a>
-<a href="#1015" id="1015">1015</a>
-<a href="#1016" id="1016">1016</a>
-<a href="#1017" id="1017">1017</a>
-<a href="#1018" id="1018">1018</a>
-<a href="#1019" id="1019">1019</a>
-<a href="#1020" id="1020">1020</a>
-<a href="#1021" id="1021">1021</a>
-<a href="#1022" id="1022">1022</a>
-<a href="#1023" id="1023">1023</a>
-<a href="#1024" id="1024">1024</a>
-<a href="#1025" id="1025">1025</a>
-<a href="#1026" id="1026">1026</a>
-<a href="#1027" id="1027">1027</a>
-<a href="#1028" id="1028">1028</a>
-<a href="#1029" id="1029">1029</a>
-<a href="#1030" id="1030">1030</a>
-<a href="#1031" id="1031">1031</a>
-<a href="#1032" id="1032">1032</a>
-<a href="#1033" id="1033">1033</a>
-<a href="#1034" id="1034">1034</a>
-<a href="#1035" id="1035">1035</a>
-<a href="#1036" id="1036">1036</a>
-<a href="#1037" id="1037">1037</a>
-<a href="#1038" id="1038">1038</a>
-<a href="#1039" id="1039">1039</a>
-<a href="#1040" id="1040">1040</a>
-<a href="#1041" id="1041">1041</a>
-<a href="#1042" id="1042">1042</a>
-<a href="#1043" id="1043">1043</a>
-<a href="#1044" id="1044">1044</a>
-<a href="#1045" id="1045">1045</a>
-<a href="#1046" id="1046">1046</a>
-<a href="#1047" id="1047">1047</a>
-<a href="#1048" id="1048">1048</a>
-<a href="#1049" id="1049">1049</a>
-<a href="#1050" id="1050">1050</a>
-<a href="#1051" id="1051">1051</a>
-<a href="#1052" id="1052">1052</a>
-<a href="#1053" id="1053">1053</a>
-<a href="#1054" id="1054">1054</a>
-<a href="#1055" id="1055">1055</a>
-<a href="#1056" id="1056">1056</a>
-<a href="#1057" id="1057">1057</a>
-<a href="#1058" id="1058">1058</a>
-<a href="#1059" id="1059">1059</a>
-<a href="#1060" id="1060">1060</a>
-<a href="#1061" id="1061">1061</a>
-<a href="#1062" id="1062">1062</a>
-<a href="#1063" id="1063">1063</a>
-<a href="#1064" id="1064">1064</a>
-<a href="#1065" id="1065">1065</a>
-<a href="#1066" id="1066">1066</a>
-<a href="#1067" id="1067">1067</a>
-<a href="#1068" id="1068">1068</a>
-<a href="#1069" id="1069">1069</a>
-<a href="#1070" id="1070">1070</a>
-<a href="#1071" id="1071">1071</a>
-<a href="#1072" id="1072">1072</a>
-<a href="#1073" id="1073">1073</a>
-<a href="#1074" id="1074">1074</a>
-<a href="#1075" id="1075">1075</a>
-<a href="#1076" id="1076">1076</a>
-<a href="#1077" id="1077">1077</a>
-<a href="#1078" id="1078">1078</a>
-<a href="#1079" id="1079">1079</a>
-<a href="#1080" id="1080">1080</a>
-<a href="#1081" id="1081">1081</a>
-<a href="#1082" id="1082">1082</a>
-<a href="#1083" id="1083">1083</a>
-<a href="#1084" id="1084">1084</a>
-<a href="#1085" id="1085">1085</a>
-<a href="#1086" id="1086">1086</a>
-<a href="#1087" id="1087">1087</a>
-<a href="#1088" id="1088">1088</a>
-<a href="#1089" id="1089">1089</a>
-<a href="#1090" id="1090">1090</a>
-<a href="#1091" id="1091">1091</a>
-<a href="#1092" id="1092">1092</a>
-<a href="#1093" id="1093">1093</a>
-<a href="#1094" id="1094">1094</a>
-<a href="#1095" id="1095">1095</a>
-<a href="#1096" id="1096">1096</a>
-<a href="#1097" id="1097">1097</a>
-<a href="#1098" id="1098">1098</a>
-<a href="#1099" id="1099">1099</a>
-<a href="#1100" id="1100">1100</a>
-<a href="#1101" id="1101">1101</a>
-<a href="#1102" id="1102">1102</a>
-<a href="#1103" id="1103">1103</a>
-<a href="#1104" id="1104">1104</a>
-<a href="#1105" id="1105">1105</a>
-<a href="#1106" id="1106">1106</a>
-<a href="#1107" id="1107">1107</a>
-<a href="#1108" id="1108">1108</a>
-<a href="#1109" id="1109">1109</a>
-<a href="#1110" id="1110">1110</a>
-<a href="#1111" id="1111">1111</a>
-<a href="#1112" id="1112">1112</a>
-<a href="#1113" id="1113">1113</a>
-<a href="#1114" id="1114">1114</a>
-<a href="#1115" id="1115">1115</a>
-<a href="#1116" id="1116">1116</a>
-<a href="#1117" id="1117">1117</a>
-<a href="#1118" id="1118">1118</a>
-<a href="#1119" id="1119">1119</a>
-<a href="#1120" id="1120">1120</a>
-<a href="#1121" id="1121">1121</a>
-<a href="#1122" id="1122">1122</a>
-<a href="#1123" id="1123">1123</a>
-<a href="#1124" id="1124">1124</a>
-<a href="#1125" id="1125">1125</a>
-<a href="#1126" id="1126">1126</a>
-<a href="#1127" id="1127">1127</a>
-<a href="#1128" id="1128">1128</a>
-<a href="#1129" id="1129">1129</a>
-<a href="#1130" id="1130">1130</a>
-<a href="#1131" id="1131">1131</a>
-<a href="#1132" id="1132">1132</a>
-<a href="#1133" id="1133">1133</a>
-<a href="#1134" id="1134">1134</a>
-<a href="#1135" id="1135">1135</a>
-<a href="#1136" id="1136">1136</a>
-<a href="#1137" id="1137">1137</a>
-<a href="#1138" id="1138">1138</a>
-<a href="#1139" id="1139">1139</a>
-<a href="#1140" id="1140">1140</a>
-<a href="#1141" id="1141">1141</a>
-<a href="#1142" id="1142">1142</a>
-<a href="#1143" id="1143">1143</a>
-<a href="#1144" id="1144">1144</a>
-<a href="#1145" id="1145">1145</a>
-<a href="#1146" id="1146">1146</a>
-<a href="#1147" id="1147">1147</a>
-<a href="#1148" id="1148">1148</a>
-<a href="#1149" id="1149">1149</a>
-<a href="#1150" id="1150">1150</a>
-<a href="#1151" id="1151">1151</a>
-<a href="#1152" id="1152">1152</a>
-<a href="#1153" id="1153">1153</a>
-<a href="#1154" id="1154">1154</a>
-<a href="#1155" id="1155">1155</a>
-<a href="#1156" id="1156">1156</a>
-<a href="#1157" id="1157">1157</a>
-<a href="#1158" id="1158">1158</a>
-<a href="#1159" id="1159">1159</a>
-<a href="#1160" id="1160">1160</a>
-<a href="#1161" id="1161">1161</a>
-<a href="#1162" id="1162">1162</a>
-<a href="#1163" id="1163">1163</a>
-<a href="#1164" id="1164">1164</a>
-<a href="#1165" id="1165">1165</a>
-<a href="#1166" id="1166">1166</a>
-<a href="#1167" id="1167">1167</a>
-<a href="#1168" id="1168">1168</a>
-<a href="#1169" id="1169">1169</a>
-<a href="#1170" id="1170">1170</a>
-<a href="#1171" id="1171">1171</a>
-<a href="#1172" id="1172">1172</a>
-<a href="#1173" id="1173">1173</a>
-<a href="#1174" id="1174">1174</a>
-<a href="#1175" id="1175">1175</a>
-<a href="#1176" id="1176">1176</a>
-<a href="#1177" id="1177">1177</a>
-<a href="#1178" id="1178">1178</a>
-<a href="#1179" id="1179">1179</a>
-<a href="#1180" id="1180">1180</a>
-<a href="#1181" id="1181">1181</a>
-<a href="#1182" id="1182">1182</a>
-<a href="#1183" id="1183">1183</a>
-<a href="#1184" id="1184">1184</a>
-<a href="#1185" id="1185">1185</a>
-<a href="#1186" id="1186">1186</a>
-<a href="#1187" id="1187">1187</a>
-<a href="#1188" id="1188">1188</a>
-<a href="#1189" id="1189">1189</a>
-<a href="#1190" id="1190">1190</a>
-<a href="#1191" id="1191">1191</a>
-<a href="#1192" id="1192">1192</a>
-<a href="#1193" id="1193">1193</a>
-</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-</span><span class="doccomment">//! Generalized signers
-//!
-//! This module provides the ability to add customized signers to a [`Wallet`](super::Wallet)
-//! through the [`Wallet::add_signer`](super::Wallet::add_signer) function.
-//!
-//! ```
-//! # use alloc::sync::Arc;
-//! # use core::str::FromStr;
-//! # use bitcoin::secp256k1::{Secp256k1, All};
-//! # use bitcoin::*;
-//! # use bdk::signer::*;
-//! # use bdk::*;
-//! # #[derive(Debug)]
-//! # struct CustomHSM;
-//! # impl CustomHSM {
-//! # fn hsm_sign_input(&self, _psbt: &mut Psbt, _input: usize) -> Result<(), SignerError> {
-//! # Ok(())
-//! # }
-//! # fn connect() -> Self {
-//! # CustomHSM
-//! # }
-//! # fn get_id(&self) -> SignerId {
-//! # SignerId::Dummy(0)
-//! # }
-//! # }
-//! #[derive(Debug)]
-//! struct CustomSigner {
-//! device: CustomHSM,
-//! }
-//!
-//! impl CustomSigner {
-//! fn connect() -> Self {
-//! CustomSigner { device: CustomHSM::connect() }
-//! }
-//! }
-//!
-//! impl SignerCommon for CustomSigner {
-//! fn id(&self, _secp: &Secp256k1<All>) -> SignerId {
-//! self.device.get_id()
-//! }
-//! }
-//!
-//! impl InputSigner for CustomSigner {
-//! fn sign_input(
-//! &self,
-//! psbt: &mut Psbt,
-//! input_index: usize,
-//! _sign_options: &SignOptions,
-//! _secp: &Secp256k1<All>,
-//! ) -> Result<(), SignerError> {
-//! self.device.hsm_sign_input(psbt, input_index)?;
-//!
-//! Ok(())
-//! }
-//! }
-//!
-//! let custom_signer = CustomSigner::connect();
-//!
-//! let descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/*)";
-//! let mut wallet = Wallet::new_no_persist(descriptor, None, Network::Testnet)?;
-//! wallet.add_signer(
-//! KeychainKind::External,
-//! SignerOrdering(200),
-//! Arc::new(custom_signer)
-//! );
-//!
-//! # Ok::<_, anyhow::Error>(())
-//! ```
-
-</span><span class="kw">use </span><span class="kw">crate</span>::collections::BTreeMap;
-<span class="kw">use </span>alloc::string::String;
-<span class="kw">use </span>alloc::sync::Arc;
-<span class="kw">use </span>alloc::vec::Vec;
-<span class="kw">use </span>core::cmp::Ordering;
-<span class="kw">use </span>core::fmt;
-<span class="kw">use </span>core::ops::{Bound::Included, Deref};
-
-<span class="kw">use </span>bitcoin::bip32::{ChildNumber, DerivationPath, Fingerprint, Xpriv};
-<span class="kw">use </span>bitcoin::hashes::hash160;
-<span class="kw">use </span>bitcoin::secp256k1::Message;
-<span class="kw">use </span>bitcoin::sighash::{EcdsaSighashType, TapSighash, TapSighashType};
-<span class="kw">use </span>bitcoin::{ecdsa, psbt, sighash, taproot};
-<span class="kw">use </span>bitcoin::{key::TapTweak, key::XOnlyPublicKey, secp256k1};
-<span class="kw">use </span>bitcoin::{PrivateKey, Psbt, PublicKey};
-
-<span class="kw">use </span>miniscript::descriptor::{
- Descriptor, DescriptorMultiXKey, DescriptorPublicKey, DescriptorSecretKey, DescriptorXKey,
- InnerXKey, KeyMap, SinglePriv, SinglePubKey,
-};
-<span class="kw">use </span>miniscript::{Legacy, Segwitv0, SigType, Tap, ToPublicKey};
-
-<span class="kw">use </span><span class="kw">super</span>::utils::SecpCtx;
-<span class="kw">use </span><span class="kw">crate</span>::descriptor::{DescriptorMeta, XKeyUtils};
-<span class="kw">use </span><span class="kw">crate</span>::psbt::PsbtUtils;
-<span class="kw">use </span><span class="kw">crate</span>::wallet::error::MiniscriptPsbtError;
-
-<span class="doccomment">/// Identifier of a signer in the `SignersContainers`. Used as a key to find the right signer among
-/// multiple of them
-</span><span class="attr">#[derive(Debug, Clone, Ord, PartialOrd, PartialEq, Eq, Hash)]
-</span><span class="kw">pub enum </span>SignerId {
- <span class="doccomment">/// Bitcoin HASH160 (RIPEMD160 after SHA256) hash of an ECDSA public key
- </span>PkHash(hash160::Hash),
- <span class="doccomment">/// The fingerprint of a BIP32 extended key
- </span>Fingerprint(Fingerprint),
- <span class="doccomment">/// Dummy identifier
- </span>Dummy(u64),
-}
-
-<span class="kw">impl </span>From<hash160::Hash> <span class="kw">for </span>SignerId {
- <span class="kw">fn </span>from(hash: hash160::Hash) -> SignerId {
- SignerId::PkHash(hash)
- }
-}
-
-<span class="kw">impl </span>From<Fingerprint> <span class="kw">for </span>SignerId {
- <span class="kw">fn </span>from(fing: Fingerprint) -> SignerId {
- SignerId::Fingerprint(fing)
- }
-}
-
-<span class="doccomment">/// Signing error
-</span><span class="attr">#[derive(Debug)]
-</span><span class="kw">pub enum </span>SignerError {
- <span class="doccomment">/// The private key is missing for the required public key
- </span>MissingKey,
- <span class="doccomment">/// The private key in use has the right fingerprint but derives differently than expected
- </span>InvalidKey,
- <span class="doccomment">/// The user canceled the operation
- </span>UserCanceled,
- <span class="doccomment">/// Input index is out of range
- </span>InputIndexOutOfRange,
- <span class="doccomment">/// The `non_witness_utxo` field of the transaction is required to sign this input
- </span>MissingNonWitnessUtxo,
- <span class="doccomment">/// The `non_witness_utxo` specified is invalid
- </span>InvalidNonWitnessUtxo,
- <span class="doccomment">/// The `witness_utxo` field of the transaction is required to sign this input
- </span>MissingWitnessUtxo,
- <span class="doccomment">/// The `witness_script` field of the transaction is required to sign this input
- </span>MissingWitnessScript,
- <span class="doccomment">/// The fingerprint and derivation path are missing from the psbt input
- </span>MissingHdKeypath,
- <span class="doccomment">/// The psbt contains a non-`SIGHASH_ALL` sighash in one of its input and the user hasn't
- /// explicitly allowed them
- ///
- /// To enable signing transactions with non-standard sighashes set
- /// [`SignOptions::allow_all_sighashes`] to `true`.
- </span>NonStandardSighash,
- <span class="doccomment">/// Invalid SIGHASH for the signing context in use
- </span>InvalidSighash,
- <span class="doccomment">/// Error while computing the hash to sign
- </span>SighashError(sighash::Error),
- <span class="doccomment">/// Miniscript PSBT error
- </span>MiniscriptPsbt(MiniscriptPsbtError),
- <span class="doccomment">/// To be used only by external libraries implementing [`InputSigner`] or
- /// [`TransactionSigner`], so that they can return their own custom errors, without having to
- /// modify [`SignerError`] in BDK.
- </span>External(String),
-}
-
-<span class="kw">impl </span>From<sighash::Error> <span class="kw">for </span>SignerError {
- <span class="kw">fn </span>from(e: sighash::Error) -> <span class="self">Self </span>{
- SignerError::SighashError(e)
- }
-}
-
-<span class="kw">impl </span>fmt::Display <span class="kw">for </span>SignerError {
- <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
- <span class="kw">match </span><span class="self">self </span>{
- <span class="self">Self</span>::MissingKey => <span class="macro">write!</span>(f, <span class="string">"Missing private key"</span>),
- <span class="self">Self</span>::InvalidKey => <span class="macro">write!</span>(f, <span class="string">"The private key in use has the right fingerprint but derives differently than expected"</span>),
- <span class="self">Self</span>::UserCanceled => <span class="macro">write!</span>(f, <span class="string">"The user canceled the operation"</span>),
- <span class="self">Self</span>::InputIndexOutOfRange => <span class="macro">write!</span>(f, <span class="string">"Input index out of range"</span>),
- <span class="self">Self</span>::MissingNonWitnessUtxo => <span class="macro">write!</span>(f, <span class="string">"Missing non-witness UTXO"</span>),
- <span class="self">Self</span>::InvalidNonWitnessUtxo => <span class="macro">write!</span>(f, <span class="string">"Invalid non-witness UTXO"</span>),
- <span class="self">Self</span>::MissingWitnessUtxo => <span class="macro">write!</span>(f, <span class="string">"Missing witness UTXO"</span>),
- <span class="self">Self</span>::MissingWitnessScript => <span class="macro">write!</span>(f, <span class="string">"Missing witness script"</span>),
- <span class="self">Self</span>::MissingHdKeypath => <span class="macro">write!</span>(f, <span class="string">"Missing fingerprint and derivation path"</span>),
- <span class="self">Self</span>::NonStandardSighash => <span class="macro">write!</span>(f, <span class="string">"The psbt contains a non standard sighash"</span>),
- <span class="self">Self</span>::InvalidSighash => <span class="macro">write!</span>(f, <span class="string">"Invalid SIGHASH for the signing context in use"</span>),
- <span class="self">Self</span>::SighashError(err) => <span class="macro">write!</span>(f, <span class="string">"Error while computing the hash to sign: {}"</span>, err),
- <span class="self">Self</span>::MiniscriptPsbt(err) => <span class="macro">write!</span>(f, <span class="string">"Miniscript PSBT error: {}"</span>, err),
- <span class="self">Self</span>::External(err) => <span class="macro">write!</span>(f, <span class="string">"{}"</span>, err),
- }
- }
-}
-
-<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
-</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>SignerError {}
-
-<span class="doccomment">/// Signing context
-///
-/// Used by our software signers to determine the type of signatures to make
-</span><span class="attr">#[derive(Debug, Clone, Copy, PartialEq, Eq)]
-</span><span class="kw">pub enum </span>SignerContext {
- <span class="doccomment">/// Legacy context
- </span>Legacy,
- <span class="doccomment">/// Segwit v0 context (BIP 143)
- </span>Segwitv0,
- <span class="doccomment">/// Taproot context (BIP 340)
- </span>Tap {
- <span class="doccomment">/// Whether the signer can sign for the internal key or not
- </span>is_internal_key: bool,
- },
-}
-
-<span class="doccomment">/// Wrapper to pair a signer with its context
-</span><span class="attr">#[derive(Debug, Clone)]
-</span><span class="kw">pub struct </span>SignerWrapper<S: Sized + fmt::Debug + Clone> {
- signer: S,
- ctx: SignerContext,
-}
-
-<span class="kw">impl</span><S: Sized + fmt::Debug + Clone> SignerWrapper<S> {
- <span class="doccomment">/// Create a wrapped signer from a signer and a context
- </span><span class="kw">pub fn </span>new(signer: S, ctx: SignerContext) -> <span class="self">Self </span>{
- SignerWrapper { signer, ctx }
- }
-}
-
-<span class="kw">impl</span><S: Sized + fmt::Debug + Clone> Deref <span class="kw">for </span>SignerWrapper<S> {
- <span class="kw">type </span>Target = S;
-
- <span class="kw">fn </span>deref(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span><span class="self">Self</span>::Target {
- <span class="kw-2">&</span><span class="self">self</span>.signer
- }
-}
-
-<span class="doccomment">/// Common signer methods
-</span><span class="kw">pub trait </span>SignerCommon: fmt::Debug + Send + Sync {
- <span class="doccomment">/// Return the [`SignerId`] for this signer
- ///
- /// The [`SignerId`] can be used to lookup a signer in the [`Wallet`](crate::Wallet)'s signers map or to
- /// compare two signers.
- </span><span class="kw">fn </span>id(<span class="kw-2">&</span><span class="self">self</span>, secp: <span class="kw-2">&</span>SecpCtx) -> SignerId;
-
- <span class="doccomment">/// Return the secret key for the signer
- ///
- /// This is used internally to reconstruct the original descriptor that may contain secrets.
- /// External signers that are meant to keep key isolated should just return `None` here (which
- /// is the default for this method, if not overridden).
- </span><span class="kw">fn </span>descriptor_secret_key(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Option</span><DescriptorSecretKey> {
- <span class="prelude-val">None
- </span>}
-}
-
-<span class="doccomment">/// PSBT Input signer
-///
-/// This trait can be implemented to provide custom signers to the wallet. If the signer supports signing
-/// individual inputs, this trait should be implemented and BDK will provide automatically an implementation
-/// for [`TransactionSigner`].
-</span><span class="kw">pub trait </span>InputSigner: SignerCommon {
- <span class="doccomment">/// Sign a single psbt input
- </span><span class="kw">fn </span>sign_input(
- <span class="kw-2">&</span><span class="self">self</span>,
- psbt: <span class="kw-2">&mut </span>Psbt,
- input_index: usize,
- sign_options: <span class="kw-2">&</span>SignOptions,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> <span class="prelude-ty">Result</span><(), SignerError>;
-}
-
-<span class="doccomment">/// PSBT signer
-///
-/// This trait can be implemented when the signer can't sign inputs individually, but signs the whole transaction
-/// at once.
-</span><span class="kw">pub trait </span>TransactionSigner: SignerCommon {
- <span class="doccomment">/// Sign all the inputs of the psbt
- </span><span class="kw">fn </span>sign_transaction(
- <span class="kw-2">&</span><span class="self">self</span>,
- psbt: <span class="kw-2">&mut </span>Psbt,
- sign_options: <span class="kw-2">&</span>SignOptions,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> <span class="prelude-ty">Result</span><(), SignerError>;
-}
-
-<span class="kw">impl</span><T: InputSigner> TransactionSigner <span class="kw">for </span>T {
- <span class="kw">fn </span>sign_transaction(
- <span class="kw-2">&</span><span class="self">self</span>,
- psbt: <span class="kw-2">&mut </span>Psbt,
- sign_options: <span class="kw-2">&</span>SignOptions,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> <span class="prelude-ty">Result</span><(), SignerError> {
- <span class="kw">for </span>input_index <span class="kw">in </span><span class="number">0</span>..psbt.inputs.len() {
- <span class="self">self</span>.sign_input(psbt, input_index, sign_options, secp)<span class="question-mark">?</span>;
- }
-
- <span class="prelude-val">Ok</span>(())
- }
-}
-
-<span class="kw">impl </span>SignerCommon <span class="kw">for </span>SignerWrapper<DescriptorXKey<Xpriv>> {
- <span class="kw">fn </span>id(<span class="kw-2">&</span><span class="self">self</span>, secp: <span class="kw-2">&</span>SecpCtx) -> SignerId {
- SignerId::from(<span class="self">self</span>.root_fingerprint(secp))
- }
-
- <span class="kw">fn </span>descriptor_secret_key(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Option</span><DescriptorSecretKey> {
- <span class="prelude-val">Some</span>(DescriptorSecretKey::XPrv(<span class="self">self</span>.signer.clone()))
- }
-}
-
-<span class="kw">impl </span>InputSigner <span class="kw">for </span>SignerWrapper<DescriptorXKey<Xpriv>> {
- <span class="kw">fn </span>sign_input(
- <span class="kw-2">&</span><span class="self">self</span>,
- psbt: <span class="kw-2">&mut </span>Psbt,
- input_index: usize,
- sign_options: <span class="kw-2">&</span>SignOptions,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> <span class="prelude-ty">Result</span><(), SignerError> {
- <span class="kw">if </span>input_index >= psbt.inputs.len() {
- <span class="kw">return </span><span class="prelude-val">Err</span>(SignerError::InputIndexOutOfRange);
- }
-
- <span class="kw">if </span>psbt.inputs[input_index].final_script_sig.is_some()
- || psbt.inputs[input_index].final_script_witness.is_some()
- {
- <span class="kw">return </span><span class="prelude-val">Ok</span>(());
- }
-
- <span class="kw">let </span>tap_key_origins = psbt.inputs[input_index]
- .tap_key_origins
- .iter()
- .map(|(pk, (<span class="kw">_</span>, keysource))| (SinglePubKey::XOnly(<span class="kw-2">*</span>pk), keysource));
- <span class="kw">let </span>(public_key, full_path) = <span class="kw">match </span>psbt.inputs[input_index]
- .bip32_derivation
- .iter()
- .map(|(pk, keysource)| (SinglePubKey::FullKey(PublicKey::new(<span class="kw-2">*</span>pk)), keysource))
- .chain(tap_key_origins)
- .find_map(|(pk, keysource)| {
- <span class="kw">if </span><span class="self">self</span>.matches(keysource, secp).is_some() {
- <span class="prelude-val">Some</span>((pk, keysource.<span class="number">1</span>.clone()))
- } <span class="kw">else </span>{
- <span class="prelude-val">None
- </span>}
- }) {
- <span class="prelude-val">Some</span>((pk, full_path)) => (pk, full_path),
- <span class="prelude-val">None </span>=> <span class="kw">return </span><span class="prelude-val">Ok</span>(()),
- };
-
- <span class="kw">let </span>derived_key = <span class="kw">match </span><span class="self">self</span>.origin.clone() {
- <span class="prelude-val">Some</span>((_fingerprint, origin_path)) => {
- <span class="kw">let </span>deriv_path = DerivationPath::from(
- <span class="kw-2">&</span>full_path.into_iter().cloned().collect::<Vec<ChildNumber>>()
- [origin_path.len()..],
- );
- <span class="self">self</span>.xkey.derive_priv(secp, <span class="kw-2">&</span>deriv_path).unwrap()
- }
- <span class="prelude-val">None </span>=> <span class="self">self</span>.xkey.derive_priv(secp, <span class="kw-2">&</span>full_path).unwrap(),
- };
-
- <span class="kw">let </span>computed_pk = secp256k1::PublicKey::from_secret_key(secp, <span class="kw-2">&</span>derived_key.private_key);
- <span class="kw">let </span>valid_key = <span class="kw">match </span>public_key {
- SinglePubKey::FullKey(pk) <span class="kw">if </span>pk.inner == computed_pk => <span class="bool-val">true</span>,
- SinglePubKey::XOnly(x_only) <span class="kw">if </span>XOnlyPublicKey::from(computed_pk) == x_only => <span class="bool-val">true</span>,
- <span class="kw">_ </span>=> <span class="bool-val">false</span>,
- };
- <span class="kw">if </span>!valid_key {
- <span class="prelude-val">Err</span>(SignerError::InvalidKey)
- } <span class="kw">else </span>{
- <span class="comment">// HD wallets imply compressed keys
- </span><span class="kw">let </span>priv_key = PrivateKey {
- compressed: <span class="bool-val">true</span>,
- network: <span class="self">self</span>.xkey.network,
- inner: derived_key.private_key,
- };
-
- SignerWrapper::new(priv_key, <span class="self">self</span>.ctx).sign_input(psbt, input_index, sign_options, secp)
- }
- }
-}
-
-<span class="kw">fn </span>multikey_to_xkeys<K: InnerXKey + Clone>(
- multikey: DescriptorMultiXKey<K>,
-) -> Vec<DescriptorXKey<K>> {
- multikey
- .derivation_paths
- .into_paths()
- .into_iter()
- .map(|derivation_path| DescriptorXKey {
- origin: multikey.origin.clone(),
- xkey: multikey.xkey.clone(),
- derivation_path,
- wildcard: multikey.wildcard,
- })
- .collect()
-}
-
-<span class="kw">impl </span>SignerCommon <span class="kw">for </span>SignerWrapper<DescriptorMultiXKey<Xpriv>> {
- <span class="kw">fn </span>id(<span class="kw-2">&</span><span class="self">self</span>, secp: <span class="kw-2">&</span>SecpCtx) -> SignerId {
- SignerId::from(<span class="self">self</span>.root_fingerprint(secp))
- }
-
- <span class="kw">fn </span>descriptor_secret_key(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Option</span><DescriptorSecretKey> {
- <span class="prelude-val">Some</span>(DescriptorSecretKey::MultiXPrv(<span class="self">self</span>.signer.clone()))
- }
-}
-
-<span class="kw">impl </span>InputSigner <span class="kw">for </span>SignerWrapper<DescriptorMultiXKey<Xpriv>> {
- <span class="kw">fn </span>sign_input(
- <span class="kw-2">&</span><span class="self">self</span>,
- psbt: <span class="kw-2">&mut </span>Psbt,
- input_index: usize,
- sign_options: <span class="kw-2">&</span>SignOptions,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> <span class="prelude-ty">Result</span><(), SignerError> {
- <span class="kw">let </span>xkeys = multikey_to_xkeys(<span class="self">self</span>.signer.clone());
- <span class="kw">for </span>xkey <span class="kw">in </span>xkeys {
- SignerWrapper::new(xkey, <span class="self">self</span>.ctx).sign_input(psbt, input_index, sign_options, secp)<span class="question-mark">?
- </span>}
- <span class="prelude-val">Ok</span>(())
- }
-}
-
-<span class="kw">impl </span>SignerCommon <span class="kw">for </span>SignerWrapper<PrivateKey> {
- <span class="kw">fn </span>id(<span class="kw-2">&</span><span class="self">self</span>, secp: <span class="kw-2">&</span>SecpCtx) -> SignerId {
- SignerId::from(<span class="self">self</span>.public_key(secp).to_pubkeyhash(SigType::Ecdsa))
- }
-
- <span class="kw">fn </span>descriptor_secret_key(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Option</span><DescriptorSecretKey> {
- <span class="prelude-val">Some</span>(DescriptorSecretKey::Single(SinglePriv {
- key: <span class="self">self</span>.signer,
- origin: <span class="prelude-val">None</span>,
- }))
- }
-}
-
-<span class="kw">impl </span>InputSigner <span class="kw">for </span>SignerWrapper<PrivateKey> {
- <span class="kw">fn </span>sign_input(
- <span class="kw-2">&</span><span class="self">self</span>,
- psbt: <span class="kw-2">&mut </span>Psbt,
- input_index: usize,
- sign_options: <span class="kw-2">&</span>SignOptions,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> <span class="prelude-ty">Result</span><(), SignerError> {
- <span class="kw">if </span>input_index >= psbt.inputs.len() || input_index >= psbt.unsigned_tx.input.len() {
- <span class="kw">return </span><span class="prelude-val">Err</span>(SignerError::InputIndexOutOfRange);
- }
-
- <span class="kw">if </span>psbt.inputs[input_index].final_script_sig.is_some()
- || psbt.inputs[input_index].final_script_witness.is_some()
- {
- <span class="kw">return </span><span class="prelude-val">Ok</span>(());
- }
-
- <span class="kw">let </span>pubkey = PublicKey::from_private_key(secp, <span class="self">self</span>);
- <span class="kw">let </span>x_only_pubkey = XOnlyPublicKey::from(pubkey.inner);
-
- <span class="kw">if let </span>SignerContext::Tap { is_internal_key } = <span class="self">self</span>.ctx {
- <span class="kw">if let </span><span class="prelude-val">Some</span>(psbt_internal_key) = psbt.inputs[input_index].tap_internal_key {
- <span class="kw">if </span>is_internal_key
- && psbt.inputs[input_index].tap_key_sig.is_none()
- && sign_options.sign_with_tap_internal_key
- && x_only_pubkey == psbt_internal_key
- {
- <span class="kw">let </span>(hash, hash_ty) = Tap::sighash(psbt, input_index, <span class="prelude-val">None</span>)<span class="question-mark">?</span>;
- sign_psbt_schnorr(
- <span class="kw-2">&</span><span class="self">self</span>.inner,
- x_only_pubkey,
- <span class="prelude-val">None</span>,
- <span class="kw-2">&mut </span>psbt.inputs[input_index],
- hash,
- hash_ty,
- secp,
- );
- }
- }
-
- <span class="kw">if let </span><span class="prelude-val">Some</span>((leaf_hashes, <span class="kw">_</span>)) =
- psbt.inputs[input_index].tap_key_origins.get(<span class="kw-2">&</span>x_only_pubkey)
- {
- <span class="kw">let </span>leaf_hashes = leaf_hashes
- .iter()
- .filter(|lh| {
- <span class="comment">// Removing the leaves we shouldn't sign for
- </span><span class="kw">let </span>should_sign = <span class="kw">match </span><span class="kw-2">&</span>sign_options.tap_leaves_options {
- TapLeavesOptions::All => <span class="bool-val">true</span>,
- TapLeavesOptions::Include(v) => v.contains(lh),
- TapLeavesOptions::Exclude(v) => !v.contains(lh),
- TapLeavesOptions::None => <span class="bool-val">false</span>,
- };
- <span class="comment">// Filtering out the leaves without our key
- </span>should_sign
- && !psbt.inputs[input_index]
- .tap_script_sigs
- .contains_key(<span class="kw-2">&</span>(x_only_pubkey, <span class="kw-2">**</span>lh))
- })
- .cloned()
- .collect::<Vec<<span class="kw">_</span>>>();
- <span class="kw">for </span>lh <span class="kw">in </span>leaf_hashes {
- <span class="kw">let </span>(hash, hash_ty) = Tap::sighash(psbt, input_index, <span class="prelude-val">Some</span>(lh))<span class="question-mark">?</span>;
- sign_psbt_schnorr(
- <span class="kw-2">&</span><span class="self">self</span>.inner,
- x_only_pubkey,
- <span class="prelude-val">Some</span>(lh),
- <span class="kw-2">&mut </span>psbt.inputs[input_index],
- hash,
- hash_ty,
- secp,
- );
- }
- }
-
- <span class="kw">return </span><span class="prelude-val">Ok</span>(());
- }
-
- <span class="kw">if </span>psbt.inputs[input_index].partial_sigs.contains_key(<span class="kw-2">&</span>pubkey) {
- <span class="kw">return </span><span class="prelude-val">Ok</span>(());
- }
-
- <span class="kw">let </span>(hash, hash_ty) = <span class="kw">match </span><span class="self">self</span>.ctx {
- SignerContext::Segwitv0 => {
- <span class="kw">let </span>(h, t) = Segwitv0::sighash(psbt, input_index, ())<span class="question-mark">?</span>;
- <span class="kw">let </span>h = h.to_raw_hash();
- (h, t)
- }
- SignerContext::Legacy => {
- <span class="kw">let </span>(h, t) = Legacy::sighash(psbt, input_index, ())<span class="question-mark">?</span>;
- <span class="kw">let </span>h = h.to_raw_hash();
- (h, t)
- }
- <span class="kw">_ </span>=> <span class="kw">return </span><span class="prelude-val">Ok</span>(()), <span class="comment">// handled above
- </span>};
- sign_psbt_ecdsa(
- <span class="kw-2">&</span><span class="self">self</span>.inner,
- pubkey,
- <span class="kw-2">&mut </span>psbt.inputs[input_index],
- hash,
- hash_ty,
- secp,
- sign_options.allow_grinding,
- );
-
- <span class="prelude-val">Ok</span>(())
- }
-}
-
-<span class="kw">fn </span>sign_psbt_ecdsa(
- secret_key: <span class="kw-2">&</span>secp256k1::SecretKey,
- pubkey: PublicKey,
- psbt_input: <span class="kw-2">&mut </span>psbt::Input,
- hash: <span class="kw">impl </span>bitcoin::hashes::Hash + bitcoin::secp256k1::ThirtyTwoByteHash,
- hash_ty: EcdsaSighashType,
- secp: <span class="kw-2">&</span>SecpCtx,
- allow_grinding: bool,
-) {
- <span class="kw">let </span>msg = <span class="kw-2">&</span>Message::from(hash);
- <span class="kw">let </span>sig = <span class="kw">if </span>allow_grinding {
- secp.sign_ecdsa_low_r(msg, secret_key)
- } <span class="kw">else </span>{
- secp.sign_ecdsa(msg, secret_key)
- };
- secp.verify_ecdsa(msg, <span class="kw-2">&</span>sig, <span class="kw-2">&</span>pubkey.inner)
- .expect(<span class="string">"invalid or corrupted ecdsa signature"</span>);
-
- <span class="kw">let </span>final_signature = ecdsa::Signature { sig, hash_ty };
- psbt_input.partial_sigs.insert(pubkey, final_signature);
-}
-
-<span class="comment">// Calling this with `leaf_hash` = `None` will sign for key-spend
-</span><span class="kw">fn </span>sign_psbt_schnorr(
- secret_key: <span class="kw-2">&</span>secp256k1::SecretKey,
- pubkey: XOnlyPublicKey,
- leaf_hash: <span class="prelude-ty">Option</span><taproot::TapLeafHash>,
- psbt_input: <span class="kw-2">&mut </span>psbt::Input,
- hash: TapSighash,
- hash_ty: TapSighashType,
- secp: <span class="kw-2">&</span>SecpCtx,
-) {
- <span class="kw">let </span>keypair = secp256k1::Keypair::from_seckey_slice(secp, secret_key.as_ref()).unwrap();
- <span class="kw">let </span>keypair = <span class="kw">match </span>leaf_hash {
- <span class="prelude-val">None </span>=> keypair
- .tap_tweak(secp, psbt_input.tap_merkle_root)
- .to_inner(),
- <span class="prelude-val">Some</span>(<span class="kw">_</span>) => keypair, <span class="comment">// no tweak for script spend
- </span>};
-
- <span class="kw">let </span>msg = <span class="kw-2">&</span>Message::from(hash);
- <span class="kw">let </span>sig = secp.sign_schnorr(msg, <span class="kw-2">&</span>keypair);
- secp.verify_schnorr(<span class="kw-2">&</span>sig, msg, <span class="kw-2">&</span>XOnlyPublicKey::from_keypair(<span class="kw-2">&</span>keypair).<span class="number">0</span>)
- .expect(<span class="string">"invalid or corrupted schnorr signature"</span>);
-
- <span class="kw">let </span>final_signature = taproot::Signature { sig, hash_ty };
-
- <span class="kw">if let </span><span class="prelude-val">Some</span>(lh) = leaf_hash {
- psbt_input
- .tap_script_sigs
- .insert((pubkey, lh), final_signature);
- } <span class="kw">else </span>{
- psbt_input.tap_key_sig = <span class="prelude-val">Some</span>(final_signature);
- }
-}
-
-<span class="doccomment">/// Defines the order in which signers are called
-///
-/// The default value is `100`. Signers with an ordering above that will be called later,
-/// and they will thus see the partial signatures added to the transaction once they get to sign
-/// themselves.
-</span><span class="attr">#[derive(Debug, Clone, PartialOrd, PartialEq, Ord, Eq)]
-</span><span class="kw">pub struct </span>SignerOrdering(<span class="kw">pub </span>usize);
-
-<span class="kw">impl </span>Default <span class="kw">for </span>SignerOrdering {
- <span class="kw">fn </span>default() -> <span class="self">Self </span>{
- SignerOrdering(<span class="number">100</span>)
- }
-}
-
-<span class="attr">#[derive(Debug, Clone)]
-</span><span class="kw">struct </span>SignersContainerKey {
- id: SignerId,
- ordering: SignerOrdering,
-}
-
-<span class="kw">impl </span>From<(SignerId, SignerOrdering)> <span class="kw">for </span>SignersContainerKey {
- <span class="kw">fn </span>from(tuple: (SignerId, SignerOrdering)) -> <span class="self">Self </span>{
- SignersContainerKey {
- id: tuple.<span class="number">0</span>,
- ordering: tuple.<span class="number">1</span>,
- }
- }
-}
-
-<span class="doccomment">/// Container for multiple signers
-</span><span class="attr">#[derive(Debug, Default, Clone)]
-</span><span class="kw">pub struct </span>SignersContainer(BTreeMap<SignersContainerKey, Arc<<span class="kw">dyn </span>TransactionSigner>>);
-
-<span class="kw">impl </span>SignersContainer {
- <span class="doccomment">/// Create a map of public keys to secret keys
- </span><span class="kw">pub fn </span>as_key_map(<span class="kw-2">&</span><span class="self">self</span>, secp: <span class="kw-2">&</span>SecpCtx) -> KeyMap {
- <span class="self">self</span>.<span class="number">0
- </span>.values()
- .filter_map(|signer| signer.descriptor_secret_key())
- .filter_map(|secret| secret.to_public(secp).ok().map(|public| (public, secret)))
- .collect()
- }
-
- <span class="doccomment">/// Build a new signer container from a [`KeyMap`]
- ///
- /// Also looks at the corresponding descriptor to determine the [`SignerContext`] to attach to
- /// the signers
- </span><span class="kw">pub fn </span>build(
- keymap: KeyMap,
- descriptor: <span class="kw-2">&</span>Descriptor<DescriptorPublicKey>,
- secp: <span class="kw-2">&</span>SecpCtx,
- ) -> SignersContainer {
- <span class="kw">let </span><span class="kw-2">mut </span>container = SignersContainer::new();
-
- <span class="kw">for </span>(pubkey, secret) <span class="kw">in </span>keymap {
- <span class="kw">let </span>ctx = <span class="kw">match </span>descriptor {
- Descriptor::Tr(tr) => SignerContext::Tap {
- is_internal_key: tr.internal_key() == <span class="kw-2">&</span>pubkey,
- },
- <span class="kw">_ if </span>descriptor.is_witness() => SignerContext::Segwitv0,
- <span class="kw">_ </span>=> SignerContext::Legacy,
- };
-
- <span class="kw">match </span>secret {
- DescriptorSecretKey::Single(private_key) => container.add_external(
- SignerId::from(
- private_key
- .key
- .public_key(secp)
- .to_pubkeyhash(SigType::Ecdsa),
- ),
- SignerOrdering::default(),
- Arc::new(SignerWrapper::new(private_key.key, ctx)),
- ),
- DescriptorSecretKey::XPrv(xprv) => container.add_external(
- SignerId::from(xprv.root_fingerprint(secp)),
- SignerOrdering::default(),
- Arc::new(SignerWrapper::new(xprv, ctx)),
- ),
- DescriptorSecretKey::MultiXPrv(xprv) => container.add_external(
- SignerId::from(xprv.root_fingerprint(secp)),
- SignerOrdering::default(),
- Arc::new(SignerWrapper::new(xprv, ctx)),
- ),
- };
- }
-
- container
- }
-}
-
-<span class="kw">impl </span>SignersContainer {
- <span class="doccomment">/// Default constructor
- </span><span class="kw">pub fn </span>new() -> <span class="self">Self </span>{
- SignersContainer(Default::default())
- }
-
- <span class="doccomment">/// Adds an external signer to the container for the specified id. Optionally returns the
- /// signer that was previously in the container, if any
- </span><span class="kw">pub fn </span>add_external(
- <span class="kw-2">&mut </span><span class="self">self</span>,
- id: SignerId,
- ordering: SignerOrdering,
- signer: Arc<<span class="kw">dyn </span>TransactionSigner>,
- ) -> <span class="prelude-ty">Option</span><Arc<<span class="kw">dyn </span>TransactionSigner>> {
- <span class="self">self</span>.<span class="number">0</span>.insert((id, ordering).into(), signer)
- }
-
- <span class="doccomment">/// Removes a signer from the container and returns it
- </span><span class="kw">pub fn </span>remove(
- <span class="kw-2">&mut </span><span class="self">self</span>,
- id: SignerId,
- ordering: SignerOrdering,
- ) -> <span class="prelude-ty">Option</span><Arc<<span class="kw">dyn </span>TransactionSigner>> {
- <span class="self">self</span>.<span class="number">0</span>.remove(<span class="kw-2">&</span>(id, ordering).into())
- }
-
- <span class="doccomment">/// Returns the list of identifiers of all the signers in the container
- </span><span class="kw">pub fn </span>ids(<span class="kw-2">&</span><span class="self">self</span>) -> Vec<<span class="kw-2">&</span>SignerId> {
- <span class="self">self</span>.<span class="number">0
- </span>.keys()
- .map(|SignersContainerKey { id, .. }| id)
- .collect()
- }
-
- <span class="doccomment">/// Returns the list of signers in the container, sorted by lowest to highest `ordering`
- </span><span class="kw">pub fn </span>signers(<span class="kw-2">&</span><span class="self">self</span>) -> Vec<<span class="kw-2">&</span>Arc<<span class="kw">dyn </span>TransactionSigner>> {
- <span class="self">self</span>.<span class="number">0</span>.values().collect()
- }
-
- <span class="doccomment">/// Finds the signer with lowest ordering for a given id in the container.
- </span><span class="kw">pub fn </span>find(<span class="kw-2">&</span><span class="self">self</span>, id: SignerId) -> <span class="prelude-ty">Option</span><<span class="kw-2">&</span>Arc<<span class="kw">dyn </span>TransactionSigner>> {
- <span class="self">self</span>.<span class="number">0
- </span>.range((
- Included(<span class="kw-2">&</span>(id.clone(), SignerOrdering(<span class="number">0</span>)).into()),
- Included(<span class="kw-2">&</span>(id.clone(), SignerOrdering(usize::MAX)).into()),
- ))
- .filter(|(k, <span class="kw">_</span>)| k.id == id)
- .map(|(<span class="kw">_</span>, v)| v)
- .next()
- }
-}
-
-<span class="doccomment">/// Options for a software signer
-///
-/// Adjust the behavior of our software signers and the way a transaction is finalized
-</span><span class="attr">#[derive(Debug, Clone)]
-</span><span class="kw">pub struct </span>SignOptions {
- <span class="doccomment">/// Whether the signer should trust the `witness_utxo`, if the `non_witness_utxo` hasn't been
- /// provided
- ///
- /// Defaults to `false` to mitigate the "SegWit bug" which should trick the wallet into
- /// paying a fee larger than expected.
- ///
- /// Some wallets, especially if relatively old, might not provide the `non_witness_utxo` for
- /// SegWit transactions in the PSBT they generate: in those cases setting this to `true`
- /// should correctly produce a signature, at the expense of an increased trust in the creator
- /// of the PSBT.
- ///
- /// For more details see: <https://blog.trezor.io/details-of-firmware-updates-for-trezor-one-version-1-9-1-and-trezor-model-t-version-2-3-1-1eba8f60f2dd>
- </span><span class="kw">pub </span>trust_witness_utxo: bool,
-
- <span class="doccomment">/// Whether the wallet should assume a specific height has been reached when trying to finalize
- /// a transaction
- ///
- /// The wallet will only "use" a timelock to satisfy the spending policy of an input if the
- /// timelock height has already been reached. This option allows overriding the "current height" to let the
- /// wallet use timelocks in the future to spend a coin.
- </span><span class="kw">pub </span>assume_height: <span class="prelude-ty">Option</span><u32>,
-
- <span class="doccomment">/// Whether the signer should use the `sighash_type` set in the PSBT when signing, no matter
- /// what its value is
- ///
- /// Defaults to `false` which will only allow signing using `SIGHASH_ALL`.
- </span><span class="kw">pub </span>allow_all_sighashes: bool,
-
- <span class="doccomment">/// Whether to remove partial signatures from the PSBT inputs while finalizing PSBT.
- ///
- /// Defaults to `true` which will remove partial signatures during finalization.
- </span><span class="kw">pub </span>remove_partial_sigs: bool,
-
- <span class="doccomment">/// Whether to remove taproot specific fields from the PSBT on finalization.
- ///
- /// For inputs this includes the taproot internal key, merkle root, and individual
- /// scripts and signatures. For both inputs and outputs it includes key origin info.
- ///
- /// Defaults to `true` which will remove all of the above mentioned fields when finalizing.
- ///
- /// See [`BIP371`](https://github.com/bitcoin/bips/blob/master/bip-0371.mediawiki) for details.
- </span><span class="kw">pub </span>remove_taproot_extras: bool,
-
- <span class="doccomment">/// Whether to try finalizing the PSBT after the inputs are signed.
- ///
- /// Defaults to `true` which will try finalizing PSBT after inputs are signed.
- </span><span class="kw">pub </span>try_finalize: bool,
-
- <span class="doccomment">/// Specifies which Taproot script-spend leaves we should sign for. This option is
- /// ignored if we're signing a non-taproot PSBT.
- ///
- /// Defaults to All, i.e., the wallet will sign all the leaves it has a key for.
- </span><span class="kw">pub </span>tap_leaves_options: TapLeavesOptions,
-
- <span class="doccomment">/// Whether we should try to sign a taproot transaction with the taproot internal key
- /// or not. This option is ignored if we're signing a non-taproot PSBT.
- ///
- /// Defaults to `true`, i.e., we always try to sign with the taproot internal key.
- </span><span class="kw">pub </span>sign_with_tap_internal_key: bool,
-
- <span class="doccomment">/// Whether we should grind ECDSA signature to ensure signing with low r
- /// or not.
- /// Defaults to `true`, i.e., we always grind ECDSA signature to sign with low r.
- </span><span class="kw">pub </span>allow_grinding: bool,
-}
-
-<span class="doccomment">/// Customize which taproot script-path leaves the signer should sign.
-</span><span class="attr">#[derive(Default, Debug, Clone, PartialEq, Eq)]
-</span><span class="kw">pub enum </span>TapLeavesOptions {
- <span class="doccomment">/// The signer will sign all the leaves it has a key for.
- </span><span class="attr">#[default]
- </span>All,
- <span class="doccomment">/// The signer won't sign leaves other than the ones specified. Note that it could still ignore
- /// some of the specified leaves, if it doesn't have the right key to sign them.
- </span>Include(Vec<taproot::TapLeafHash>),
- <span class="doccomment">/// The signer won't sign the specified leaves.
- </span>Exclude(Vec<taproot::TapLeafHash>),
- <span class="doccomment">/// The signer won't sign any leaf.
- </span><span class="prelude-val">None</span>,
-}
-
-<span class="kw">impl </span>Default <span class="kw">for </span>SignOptions {
- <span class="kw">fn </span>default() -> <span class="self">Self </span>{
- SignOptions {
- trust_witness_utxo: <span class="bool-val">false</span>,
- assume_height: <span class="prelude-val">None</span>,
- allow_all_sighashes: <span class="bool-val">false</span>,
- remove_partial_sigs: <span class="bool-val">true</span>,
- remove_taproot_extras: <span class="bool-val">true</span>,
- try_finalize: <span class="bool-val">true</span>,
- tap_leaves_options: TapLeavesOptions::default(),
- sign_with_tap_internal_key: <span class="bool-val">true</span>,
- allow_grinding: <span class="bool-val">true</span>,
- }
- }
-}
-
-<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">trait </span>ComputeSighash {
- <span class="kw">type </span>Extra;
- <span class="kw">type </span>Sighash;
- <span class="kw">type </span>SighashType;
-
- <span class="kw">fn </span>sighash(
- psbt: <span class="kw-2">&</span>Psbt,
- input_index: usize,
- extra: <span class="self">Self</span>::Extra,
- ) -> <span class="prelude-ty">Result</span><(<span class="self">Self</span>::Sighash, <span class="self">Self</span>::SighashType), SignerError>;
-}
-
-<span class="kw">impl </span>ComputeSighash <span class="kw">for </span>Legacy {
- <span class="kw">type </span>Extra = ();
- <span class="kw">type </span>Sighash = sighash::LegacySighash;
- <span class="kw">type </span>SighashType = EcdsaSighashType;
-
- <span class="kw">fn </span>sighash(
- psbt: <span class="kw-2">&</span>Psbt,
- input_index: usize,
- _extra: (),
- ) -> <span class="prelude-ty">Result</span><(<span class="self">Self</span>::Sighash, <span class="self">Self</span>::SighashType), SignerError> {
- <span class="kw">if </span>input_index >= psbt.inputs.len() || input_index >= psbt.unsigned_tx.input.len() {
- <span class="kw">return </span><span class="prelude-val">Err</span>(SignerError::InputIndexOutOfRange);
- }
-
- <span class="kw">let </span>psbt_input = <span class="kw-2">&</span>psbt.inputs[input_index];
- <span class="kw">let </span>tx_input = <span class="kw-2">&</span>psbt.unsigned_tx.input[input_index];
-
- <span class="kw">let </span>sighash = psbt_input
- .sighash_type
- .unwrap_or_else(|| EcdsaSighashType::All.into())
- .ecdsa_hash_ty()
- .map_err(|<span class="kw">_</span>| SignerError::InvalidSighash)<span class="question-mark">?</span>;
- <span class="kw">let </span>script = <span class="kw">match </span>psbt_input.redeem_script {
- <span class="prelude-val">Some</span>(<span class="kw-2">ref </span>redeem_script) => redeem_script.clone(),
- <span class="prelude-val">None </span>=> {
- <span class="kw">let </span>non_witness_utxo = psbt_input
- .non_witness_utxo
- .as_ref()
- .ok_or(SignerError::MissingNonWitnessUtxo)<span class="question-mark">?</span>;
- <span class="kw">let </span>prev_out = non_witness_utxo
- .output
- .get(tx_input.previous_output.vout <span class="kw">as </span>usize)
- .ok_or(SignerError::InvalidNonWitnessUtxo)<span class="question-mark">?</span>;
-
- prev_out.script_pubkey.clone()
- }
- };
-
- <span class="prelude-val">Ok</span>((
- sighash::SighashCache::new(<span class="kw-2">&</span>psbt.unsigned_tx).legacy_signature_hash(
- input_index,
- <span class="kw-2">&</span>script,
- sighash.to_u32(),
- )<span class="question-mark">?</span>,
- sighash,
- ))
- }
-}
-
-<span class="kw">impl </span>ComputeSighash <span class="kw">for </span>Segwitv0 {
- <span class="kw">type </span>Extra = ();
- <span class="kw">type </span>Sighash = sighash::SegwitV0Sighash;
- <span class="kw">type </span>SighashType = EcdsaSighashType;
-
- <span class="kw">fn </span>sighash(
- psbt: <span class="kw-2">&</span>Psbt,
- input_index: usize,
- _extra: (),
- ) -> <span class="prelude-ty">Result</span><(<span class="self">Self</span>::Sighash, <span class="self">Self</span>::SighashType), SignerError> {
- <span class="kw">if </span>input_index >= psbt.inputs.len() || input_index >= psbt.unsigned_tx.input.len() {
- <span class="kw">return </span><span class="prelude-val">Err</span>(SignerError::InputIndexOutOfRange);
- }
-
- <span class="kw">let </span>psbt_input = <span class="kw-2">&</span>psbt.inputs[input_index];
- <span class="kw">let </span>tx_input = <span class="kw-2">&</span>psbt.unsigned_tx.input[input_index];
-
- <span class="kw">let </span>sighash_type = psbt_input
- .sighash_type
- .unwrap_or_else(|| EcdsaSighashType::All.into())
- .ecdsa_hash_ty()
- .map_err(|<span class="kw">_</span>| SignerError::InvalidSighash)<span class="question-mark">?</span>;
-
- <span class="comment">// Always try first with the non-witness utxo
- </span><span class="kw">let </span>utxo = <span class="kw">if let </span><span class="prelude-val">Some</span>(prev_tx) = <span class="kw-2">&</span>psbt_input.non_witness_utxo {
- <span class="comment">// Check the provided prev-tx
- </span><span class="kw">if </span>prev_tx.txid() != tx_input.previous_output.txid {
- <span class="kw">return </span><span class="prelude-val">Err</span>(SignerError::InvalidNonWitnessUtxo);
- }
-
- <span class="comment">// The output should be present, if it's missing the `non_witness_utxo` is invalid
- </span>prev_tx
- .output
- .get(tx_input.previous_output.vout <span class="kw">as </span>usize)
- .ok_or(SignerError::InvalidNonWitnessUtxo)<span class="question-mark">?
- </span>} <span class="kw">else if let </span><span class="prelude-val">Some</span>(witness_utxo) = <span class="kw-2">&</span>psbt_input.witness_utxo {
- <span class="comment">// Fallback to the witness_utxo. If we aren't allowed to use it, signing should fail
- // before we get to this point
- </span>witness_utxo
- } <span class="kw">else </span>{
- <span class="comment">// Nothing has been provided
- </span><span class="kw">return </span><span class="prelude-val">Err</span>(SignerError::MissingNonWitnessUtxo);
- };
- <span class="kw">let </span>value = utxo.value;
-
- <span class="kw">let </span><span class="kw-2">mut </span>sighasher = sighash::SighashCache::new(<span class="kw-2">&</span>psbt.unsigned_tx);
-
- <span class="kw">let </span>sighash = <span class="kw">match </span>psbt_input.witness_script {
- <span class="prelude-val">Some</span>(<span class="kw-2">ref </span>witness_script) => {
- sighasher.p2wsh_signature_hash(input_index, witness_script, value, sighash_type)<span class="question-mark">?
- </span>}
- <span class="prelude-val">None </span>=> {
- <span class="kw">if </span>utxo.script_pubkey.is_p2wpkh() {
- sighasher.p2wpkh_signature_hash(
- input_index,
- <span class="kw-2">&</span>utxo.script_pubkey,
- value,
- sighash_type,
- )<span class="question-mark">?
- </span>} <span class="kw">else if </span>psbt_input
- .redeem_script
- .as_ref()
- .map(|s| s.is_p2wpkh())
- .unwrap_or(<span class="bool-val">false</span>)
- {
- <span class="kw">let </span>script_pubkey = psbt_input.redeem_script.as_ref().unwrap();
- sighasher.p2wpkh_signature_hash(
- input_index,
- script_pubkey,
- value,
- sighash_type,
- )<span class="question-mark">?
- </span>} <span class="kw">else </span>{
- <span class="kw">return </span><span class="prelude-val">Err</span>(SignerError::MissingWitnessScript);
- }
- }
- };
- <span class="prelude-val">Ok</span>((sighash, sighash_type))
- }
-}
-
-<span class="kw">impl </span>ComputeSighash <span class="kw">for </span>Tap {
- <span class="kw">type </span>Extra = <span class="prelude-ty">Option</span><taproot::TapLeafHash>;
- <span class="kw">type </span>Sighash = TapSighash;
- <span class="kw">type </span>SighashType = TapSighashType;
-
- <span class="kw">fn </span>sighash(
- psbt: <span class="kw-2">&</span>Psbt,
- input_index: usize,
- extra: <span class="self">Self</span>::Extra,
- ) -> <span class="prelude-ty">Result</span><(<span class="self">Self</span>::Sighash, TapSighashType), SignerError> {
- <span class="kw">if </span>input_index >= psbt.inputs.len() || input_index >= psbt.unsigned_tx.input.len() {
- <span class="kw">return </span><span class="prelude-val">Err</span>(SignerError::InputIndexOutOfRange);
- }
-
- <span class="kw">let </span>psbt_input = <span class="kw-2">&</span>psbt.inputs[input_index];
-
- <span class="kw">let </span>sighash_type = psbt_input
- .sighash_type
- .unwrap_or_else(|| TapSighashType::Default.into())
- .taproot_hash_ty()
- .map_err(|<span class="kw">_</span>| SignerError::InvalidSighash)<span class="question-mark">?</span>;
- <span class="kw">let </span>witness_utxos = (<span class="number">0</span>..psbt.inputs.len())
- .map(|i| psbt.get_utxo_for(i))
- .collect::<Vec<<span class="kw">_</span>>>();
- <span class="kw">let </span><span class="kw-2">mut </span>all_witness_utxos = <span class="macro">vec!</span>[];
-
- <span class="kw">let </span><span class="kw-2">mut </span>cache = sighash::SighashCache::new(<span class="kw-2">&</span>psbt.unsigned_tx);
- <span class="kw">let </span>is_anyone_can_pay = psbt::PsbtSighashType::from(sighash_type).to_u32() & <span class="number">0x80 </span>!= <span class="number">0</span>;
- <span class="kw">let </span>prevouts = <span class="kw">if </span>is_anyone_can_pay {
- sighash::Prevouts::One(
- input_index,
- witness_utxos[input_index]
- .as_ref()
- .ok_or(SignerError::MissingWitnessUtxo)<span class="question-mark">?</span>,
- )
- } <span class="kw">else if </span>witness_utxos.iter().all(Option::is_some) {
- all_witness_utxos.extend(witness_utxos.iter().filter_map(|x| x.as_ref()));
- sighash::Prevouts::All(<span class="kw-2">&</span>all_witness_utxos)
- } <span class="kw">else </span>{
- <span class="kw">return </span><span class="prelude-val">Err</span>(SignerError::MissingWitnessUtxo);
- };
-
- <span class="comment">// Assume no OP_CODESEPARATOR
- </span><span class="kw">let </span>extra = extra.map(|leaf_hash| (leaf_hash, <span class="number">0xFFFFFFFF</span>));
-
- <span class="prelude-val">Ok</span>((
- cache.taproot_signature_hash(input_index, <span class="kw-2">&</span>prevouts, <span class="prelude-val">None</span>, extra, sighash_type)<span class="question-mark">?</span>,
- sighash_type,
- ))
- }
-}
-
-<span class="kw">impl </span>PartialOrd <span class="kw">for </span>SignersContainerKey {
- <span class="kw">fn </span>partial_cmp(<span class="kw-2">&</span><span class="self">self</span>, other: <span class="kw-2">&</span><span class="self">Self</span>) -> <span class="prelude-ty">Option</span><Ordering> {
- <span class="prelude-val">Some</span>(<span class="self">self</span>.cmp(other))
- }
-}
-
-<span class="kw">impl </span>Ord <span class="kw">for </span>SignersContainerKey {
- <span class="kw">fn </span>cmp(<span class="kw-2">&</span><span class="self">self</span>, other: <span class="kw-2">&</span><span class="self">Self</span>) -> Ordering {
- <span class="self">self</span>.ordering
- .cmp(<span class="kw-2">&</span>other.ordering)
- .then(<span class="self">self</span>.id.cmp(<span class="kw-2">&</span>other.id))
- }
-}
-
-<span class="kw">impl </span>PartialEq <span class="kw">for </span>SignersContainerKey {
- <span class="kw">fn </span>eq(<span class="kw-2">&</span><span class="self">self</span>, other: <span class="kw-2">&</span><span class="self">Self</span>) -> bool {
- <span class="self">self</span>.id == other.id && <span class="self">self</span>.ordering == other.ordering
- }
-}
-
-<span class="kw">impl </span>Eq <span class="kw">for </span>SignersContainerKey {}
-
-<span class="attr">#[cfg(test)]
-</span><span class="kw">mod </span>signers_container_tests {
- <span class="kw">use super</span>::<span class="kw-2">*</span>;
- <span class="kw">use </span><span class="kw">crate</span>::descriptor;
- <span class="kw">use </span><span class="kw">crate</span>::descriptor::IntoWalletDescriptor;
- <span class="kw">use </span><span class="kw">crate</span>::keys::{DescriptorKey, IntoDescriptorKey};
- <span class="kw">use </span>assert_matches::assert_matches;
- <span class="kw">use </span>bitcoin::bip32;
- <span class="kw">use </span>bitcoin::secp256k1::{All, Secp256k1};
- <span class="kw">use </span>bitcoin::Network;
- <span class="kw">use </span>core::str::FromStr;
- <span class="kw">use </span>miniscript::ScriptContext;
-
- <span class="kw">fn </span>is_equal(this: <span class="kw-2">&</span>Arc<<span class="kw">dyn </span>TransactionSigner>, that: <span class="kw-2">&</span>Arc<DummySigner>) -> bool {
- <span class="kw">let </span>secp = Secp256k1::new();
- this.id(<span class="kw-2">&</span>secp) == that.id(<span class="kw-2">&</span>secp)
- }
-
- <span class="comment">// Signers added with the same ordering (like `Ordering::default`) created from `KeyMap`
- // should be preserved and not overwritten.
- // This happens usually when a set of signers is created from a descriptor with private keys.
- </span><span class="attr">#[test]
- </span><span class="kw">fn </span>signers_with_same_ordering() {
- <span class="kw">let </span>secp = Secp256k1::new();
-
- <span class="kw">let </span>(prvkey1, <span class="kw">_</span>, <span class="kw">_</span>) = setup_keys(TPRV0_STR);
- <span class="kw">let </span>(prvkey2, <span class="kw">_</span>, <span class="kw">_</span>) = setup_keys(TPRV1_STR);
- <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(sh(multi(<span class="number">2</span>, prvkey1, prvkey2))).unwrap();
- <span class="kw">let </span>(wallet_desc, keymap) = desc
- .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
- .unwrap();
-
- <span class="kw">let </span>signers = SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp);
- <span class="macro">assert_eq!</span>(signers.ids().len(), <span class="number">2</span>);
-
- <span class="kw">let </span>signers = signers.signers();
- <span class="macro">assert_eq!</span>(signers.len(), <span class="number">2</span>);
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>signers_sorted_by_ordering() {
- <span class="kw">let </span><span class="kw-2">mut </span>signers = SignersContainer::new();
- <span class="kw">let </span>signer1 = Arc::new(DummySigner { number: <span class="number">1 </span>});
- <span class="kw">let </span>signer2 = Arc::new(DummySigner { number: <span class="number">2 </span>});
- <span class="kw">let </span>signer3 = Arc::new(DummySigner { number: <span class="number">3 </span>});
-
- <span class="comment">// Mixed order insertions verifies we are not inserting at head or tail.
- </span>signers.add_external(SignerId::Dummy(<span class="number">2</span>), SignerOrdering(<span class="number">2</span>), signer2.clone());
- signers.add_external(SignerId::Dummy(<span class="number">1</span>), SignerOrdering(<span class="number">1</span>), signer1.clone());
- signers.add_external(SignerId::Dummy(<span class="number">3</span>), SignerOrdering(<span class="number">3</span>), signer3.clone());
-
- <span class="comment">// Check that signers are sorted from lowest to highest ordering
- </span><span class="kw">let </span>signers = signers.signers();
-
- <span class="macro">assert!</span>(is_equal(signers[<span class="number">0</span>], <span class="kw-2">&</span>signer1));
- <span class="macro">assert!</span>(is_equal(signers[<span class="number">1</span>], <span class="kw-2">&</span>signer2));
- <span class="macro">assert!</span>(is_equal(signers[<span class="number">2</span>], <span class="kw-2">&</span>signer3));
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>find_signer_by_id() {
- <span class="kw">let </span><span class="kw-2">mut </span>signers = SignersContainer::new();
- <span class="kw">let </span>signer1 = Arc::new(DummySigner { number: <span class="number">1 </span>});
- <span class="kw">let </span>signer2 = Arc::new(DummySigner { number: <span class="number">2 </span>});
- <span class="kw">let </span>signer3 = Arc::new(DummySigner { number: <span class="number">3 </span>});
- <span class="kw">let </span>signer4 = Arc::new(DummySigner { number: <span class="number">3 </span>}); <span class="comment">// Same ID as `signer3` but will use lower ordering.
-
- </span><span class="kw">let </span>id1 = SignerId::Dummy(<span class="number">1</span>);
- <span class="kw">let </span>id2 = SignerId::Dummy(<span class="number">2</span>);
- <span class="kw">let </span>id3 = SignerId::Dummy(<span class="number">3</span>);
- <span class="kw">let </span>id_nonexistent = SignerId::Dummy(<span class="number">999</span>);
-
- signers.add_external(id1.clone(), SignerOrdering(<span class="number">1</span>), signer1.clone());
- signers.add_external(id2.clone(), SignerOrdering(<span class="number">2</span>), signer2.clone());
- signers.add_external(id3.clone(), SignerOrdering(<span class="number">3</span>), signer3.clone());
-
- <span class="macro">assert_matches!</span>(signers.find(id1), <span class="prelude-val">Some</span>(signer) <span class="kw">if </span>is_equal(signer, <span class="kw-2">&</span>signer1));
- <span class="macro">assert_matches!</span>(signers.find(id2), <span class="prelude-val">Some</span>(signer) <span class="kw">if </span>is_equal(signer, <span class="kw-2">&</span>signer2));
- <span class="macro">assert_matches!</span>(signers.find(id3.clone()), <span class="prelude-val">Some</span>(signer) <span class="kw">if </span>is_equal(signer, <span class="kw-2">&</span>signer3));
-
- <span class="comment">// The `signer4` has the same ID as `signer3` but lower ordering.
- // It should be found by `id3` instead of `signer3`.
- </span>signers.add_external(id3.clone(), SignerOrdering(<span class="number">2</span>), signer4.clone());
- <span class="macro">assert_matches!</span>(signers.find(id3), <span class="prelude-val">Some</span>(signer) <span class="kw">if </span>is_equal(signer, <span class="kw-2">&</span>signer4));
-
- <span class="comment">// Can't find anything with ID that doesn't exist
- </span><span class="macro">assert_matches!</span>(signers.find(id_nonexistent), <span class="prelude-val">None</span>);
- }
-
- <span class="attr">#[derive(Debug, Clone, Copy)]
- </span><span class="kw">struct </span>DummySigner {
- number: u64,
- }
-
- <span class="kw">impl </span>SignerCommon <span class="kw">for </span>DummySigner {
- <span class="kw">fn </span>id(<span class="kw-2">&</span><span class="self">self</span>, _secp: <span class="kw-2">&</span>SecpCtx) -> SignerId {
- SignerId::Dummy(<span class="self">self</span>.number)
- }
- }
-
- <span class="kw">impl </span>TransactionSigner <span class="kw">for </span>DummySigner {
- <span class="kw">fn </span>sign_transaction(
- <span class="kw-2">&</span><span class="self">self</span>,
- _psbt: <span class="kw-2">&mut </span>Psbt,
- _sign_options: <span class="kw-2">&</span>SignOptions,
- _secp: <span class="kw-2">&</span>SecpCtx,
- ) -> <span class="prelude-ty">Result</span><(), SignerError> {
- <span class="prelude-val">Ok</span>(())
- }
- }
-
- <span class="kw">const </span>TPRV0_STR:<span class="kw-2">&</span>str = <span class="string">"tprv8ZgxMBicQKsPdZXrcHNLf5JAJWFAoJ2TrstMRdSKtEggz6PddbuSkvHKM9oKJyFgZV1B7rw8oChspxyYbtmEXYyg1AjfWbL3ho3XHDpHRZf"</span>;
- <span class="kw">const </span>TPRV1_STR:<span class="kw-2">&</span>str = <span class="string">"tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N"</span>;
-
- <span class="kw">const </span>PATH: <span class="kw-2">&</span>str = <span class="string">"m/44'/1'/0'/0"</span>;
-
- <span class="kw">fn </span>setup_keys<Ctx: ScriptContext>(
- tprv: <span class="kw-2">&</span>str,
- ) -> (DescriptorKey<Ctx>, DescriptorKey<Ctx>, Fingerprint) {
- <span class="kw">let </span>secp: Secp256k1<All> = Secp256k1::new();
- <span class="kw">let </span>path = bip32::DerivationPath::from_str(PATH).unwrap();
- <span class="kw">let </span>tprv = bip32::Xpriv::from_str(tprv).unwrap();
- <span class="kw">let </span>tpub = bip32::Xpub::from_priv(<span class="kw-2">&</span>secp, <span class="kw-2">&</span>tprv);
- <span class="kw">let </span>fingerprint = tprv.fingerprint(<span class="kw-2">&</span>secp);
- <span class="kw">let </span>prvkey = (tprv, path.clone()).into_descriptor_key().unwrap();
- <span class="kw">let </span>pubkey = (tpub, path).into_descriptor_key().unwrap();
-
- (prvkey, pubkey, fingerprint)
- }
-}
-</code></pre></div>
-</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Source of the Rust file `crates/bdk/src/wallet/tx_builder.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>tx_builder.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk/index.html">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
-<a href="#2" id="2">2</a>
-<a href="#3" id="3">3</a>
-<a href="#4" id="4">4</a>
-<a href="#5" id="5">5</a>
-<a href="#6" id="6">6</a>
-<a href="#7" id="7">7</a>
-<a href="#8" id="8">8</a>
-<a href="#9" id="9">9</a>
-<a href="#10" id="10">10</a>
-<a href="#11" id="11">11</a>
-<a href="#12" id="12">12</a>
-<a href="#13" id="13">13</a>
-<a href="#14" id="14">14</a>
-<a href="#15" id="15">15</a>
-<a href="#16" id="16">16</a>
-<a href="#17" id="17">17</a>
-<a href="#18" id="18">18</a>
-<a href="#19" id="19">19</a>
-<a href="#20" id="20">20</a>
-<a href="#21" id="21">21</a>
-<a href="#22" id="22">22</a>
-<a href="#23" id="23">23</a>
-<a href="#24" id="24">24</a>
-<a href="#25" id="25">25</a>
-<a href="#26" id="26">26</a>
-<a href="#27" id="27">27</a>
-<a href="#28" id="28">28</a>
-<a href="#29" id="29">29</a>
-<a href="#30" id="30">30</a>
-<a href="#31" id="31">31</a>
-<a href="#32" id="32">32</a>
-<a href="#33" id="33">33</a>
-<a href="#34" id="34">34</a>
-<a href="#35" id="35">35</a>
-<a href="#36" id="36">36</a>
-<a href="#37" id="37">37</a>
-<a href="#38" id="38">38</a>
-<a href="#39" id="39">39</a>
-<a href="#40" id="40">40</a>
-<a href="#41" id="41">41</a>
-<a href="#42" id="42">42</a>
-<a href="#43" id="43">43</a>
-<a href="#44" id="44">44</a>
-<a href="#45" id="45">45</a>
-<a href="#46" id="46">46</a>
-<a href="#47" id="47">47</a>
-<a href="#48" id="48">48</a>
-<a href="#49" id="49">49</a>
-<a href="#50" id="50">50</a>
-<a href="#51" id="51">51</a>
-<a href="#52" id="52">52</a>
-<a href="#53" id="53">53</a>
-<a href="#54" id="54">54</a>
-<a href="#55" id="55">55</a>
-<a href="#56" id="56">56</a>
-<a href="#57" id="57">57</a>
-<a href="#58" id="58">58</a>
-<a href="#59" id="59">59</a>
-<a href="#60" id="60">60</a>
-<a href="#61" id="61">61</a>
-<a href="#62" id="62">62</a>
-<a href="#63" id="63">63</a>
-<a href="#64" id="64">64</a>
-<a href="#65" id="65">65</a>
-<a href="#66" id="66">66</a>
-<a href="#67" id="67">67</a>
-<a href="#68" id="68">68</a>
-<a href="#69" id="69">69</a>
-<a href="#70" id="70">70</a>
-<a href="#71" id="71">71</a>
-<a href="#72" id="72">72</a>
-<a href="#73" id="73">73</a>
-<a href="#74" id="74">74</a>
-<a href="#75" id="75">75</a>
-<a href="#76" id="76">76</a>
-<a href="#77" id="77">77</a>
-<a href="#78" id="78">78</a>
-<a href="#79" id="79">79</a>
-<a href="#80" id="80">80</a>
-<a href="#81" id="81">81</a>
-<a href="#82" id="82">82</a>
-<a href="#83" id="83">83</a>
-<a href="#84" id="84">84</a>
-<a href="#85" id="85">85</a>
-<a href="#86" id="86">86</a>
-<a href="#87" id="87">87</a>
-<a href="#88" id="88">88</a>
-<a href="#89" id="89">89</a>
-<a href="#90" id="90">90</a>
-<a href="#91" id="91">91</a>
-<a href="#92" id="92">92</a>
-<a href="#93" id="93">93</a>
-<a href="#94" id="94">94</a>
-<a href="#95" id="95">95</a>
-<a href="#96" id="96">96</a>
-<a href="#97" id="97">97</a>
-<a href="#98" id="98">98</a>
-<a href="#99" id="99">99</a>
-<a href="#100" id="100">100</a>
-<a href="#101" id="101">101</a>
-<a href="#102" id="102">102</a>
-<a href="#103" id="103">103</a>
-<a href="#104" id="104">104</a>
-<a href="#105" id="105">105</a>
-<a href="#106" id="106">106</a>
-<a href="#107" id="107">107</a>
-<a href="#108" id="108">108</a>
-<a href="#109" id="109">109</a>
-<a href="#110" id="110">110</a>
-<a href="#111" id="111">111</a>
-<a href="#112" id="112">112</a>
-<a href="#113" id="113">113</a>
-<a href="#114" id="114">114</a>
-<a href="#115" id="115">115</a>
-<a href="#116" id="116">116</a>
-<a href="#117" id="117">117</a>
-<a href="#118" id="118">118</a>
-<a href="#119" id="119">119</a>
-<a href="#120" id="120">120</a>
-<a href="#121" id="121">121</a>
-<a href="#122" id="122">122</a>
-<a href="#123" id="123">123</a>
-<a href="#124" id="124">124</a>
-<a href="#125" id="125">125</a>
-<a href="#126" id="126">126</a>
-<a href="#127" id="127">127</a>
-<a href="#128" id="128">128</a>
-<a href="#129" id="129">129</a>
-<a href="#130" id="130">130</a>
-<a href="#131" id="131">131</a>
-<a href="#132" id="132">132</a>
-<a href="#133" id="133">133</a>
-<a href="#134" id="134">134</a>
-<a href="#135" id="135">135</a>
-<a href="#136" id="136">136</a>
-<a href="#137" id="137">137</a>
-<a href="#138" id="138">138</a>
-<a href="#139" id="139">139</a>
-<a href="#140" id="140">140</a>
-<a href="#141" id="141">141</a>
-<a href="#142" id="142">142</a>
-<a href="#143" id="143">143</a>
-<a href="#144" id="144">144</a>
-<a href="#145" id="145">145</a>
-<a href="#146" id="146">146</a>
-<a href="#147" id="147">147</a>
-<a href="#148" id="148">148</a>
-<a href="#149" id="149">149</a>
-<a href="#150" id="150">150</a>
-<a href="#151" id="151">151</a>
-<a href="#152" id="152">152</a>
-<a href="#153" id="153">153</a>
-<a href="#154" id="154">154</a>
-<a href="#155" id="155">155</a>
-<a href="#156" id="156">156</a>
-<a href="#157" id="157">157</a>
-<a href="#158" id="158">158</a>
-<a href="#159" id="159">159</a>
-<a href="#160" id="160">160</a>
-<a href="#161" id="161">161</a>
-<a href="#162" id="162">162</a>
-<a href="#163" id="163">163</a>
-<a href="#164" id="164">164</a>
-<a href="#165" id="165">165</a>
-<a href="#166" id="166">166</a>
-<a href="#167" id="167">167</a>
-<a href="#168" id="168">168</a>
-<a href="#169" id="169">169</a>
-<a href="#170" id="170">170</a>
-<a href="#171" id="171">171</a>
-<a href="#172" id="172">172</a>
-<a href="#173" id="173">173</a>
-<a href="#174" id="174">174</a>
-<a href="#175" id="175">175</a>
-<a href="#176" id="176">176</a>
-<a href="#177" id="177">177</a>
-<a href="#178" id="178">178</a>
-<a href="#179" id="179">179</a>
-<a href="#180" id="180">180</a>
-<a href="#181" id="181">181</a>
-<a href="#182" id="182">182</a>
-<a href="#183" id="183">183</a>
-<a href="#184" id="184">184</a>
-<a href="#185" id="185">185</a>
-<a href="#186" id="186">186</a>
-<a href="#187" id="187">187</a>
-<a href="#188" id="188">188</a>
-<a href="#189" id="189">189</a>
-<a href="#190" id="190">190</a>
-<a href="#191" id="191">191</a>
-<a href="#192" id="192">192</a>
-<a href="#193" id="193">193</a>
-<a href="#194" id="194">194</a>
-<a href="#195" id="195">195</a>
-<a href="#196" id="196">196</a>
-<a href="#197" id="197">197</a>
-<a href="#198" id="198">198</a>
-<a href="#199" id="199">199</a>
-<a href="#200" id="200">200</a>
-<a href="#201" id="201">201</a>
-<a href="#202" id="202">202</a>
-<a href="#203" id="203">203</a>
-<a href="#204" id="204">204</a>
-<a href="#205" id="205">205</a>
-<a href="#206" id="206">206</a>
-<a href="#207" id="207">207</a>
-<a href="#208" id="208">208</a>
-<a href="#209" id="209">209</a>
-<a href="#210" id="210">210</a>
-<a href="#211" id="211">211</a>
-<a href="#212" id="212">212</a>
-<a href="#213" id="213">213</a>
-<a href="#214" id="214">214</a>
-<a href="#215" id="215">215</a>
-<a href="#216" id="216">216</a>
-<a href="#217" id="217">217</a>
-<a href="#218" id="218">218</a>
-<a href="#219" id="219">219</a>
-<a href="#220" id="220">220</a>
-<a href="#221" id="221">221</a>
-<a href="#222" id="222">222</a>
-<a href="#223" id="223">223</a>
-<a href="#224" id="224">224</a>
-<a href="#225" id="225">225</a>
-<a href="#226" id="226">226</a>
-<a href="#227" id="227">227</a>
-<a href="#228" id="228">228</a>
-<a href="#229" id="229">229</a>
-<a href="#230" id="230">230</a>
-<a href="#231" id="231">231</a>
-<a href="#232" id="232">232</a>
-<a href="#233" id="233">233</a>
-<a href="#234" id="234">234</a>
-<a href="#235" id="235">235</a>
-<a href="#236" id="236">236</a>
-<a href="#237" id="237">237</a>
-<a href="#238" id="238">238</a>
-<a href="#239" id="239">239</a>
-<a href="#240" id="240">240</a>
-<a href="#241" id="241">241</a>
-<a href="#242" id="242">242</a>
-<a href="#243" id="243">243</a>
-<a href="#244" id="244">244</a>
-<a href="#245" id="245">245</a>
-<a href="#246" id="246">246</a>
-<a href="#247" id="247">247</a>
-<a href="#248" id="248">248</a>
-<a href="#249" id="249">249</a>
-<a href="#250" id="250">250</a>
-<a href="#251" id="251">251</a>
-<a href="#252" id="252">252</a>
-<a href="#253" id="253">253</a>
-<a href="#254" id="254">254</a>
-<a href="#255" id="255">255</a>
-<a href="#256" id="256">256</a>
-<a href="#257" id="257">257</a>
-<a href="#258" id="258">258</a>
-<a href="#259" id="259">259</a>
-<a href="#260" id="260">260</a>
-<a href="#261" id="261">261</a>
-<a href="#262" id="262">262</a>
-<a href="#263" id="263">263</a>
-<a href="#264" id="264">264</a>
-<a href="#265" id="265">265</a>
-<a href="#266" id="266">266</a>
-<a href="#267" id="267">267</a>
-<a href="#268" id="268">268</a>
-<a href="#269" id="269">269</a>
-<a href="#270" id="270">270</a>
-<a href="#271" id="271">271</a>
-<a href="#272" id="272">272</a>
-<a href="#273" id="273">273</a>
-<a href="#274" id="274">274</a>
-<a href="#275" id="275">275</a>
-<a href="#276" id="276">276</a>
-<a href="#277" id="277">277</a>
-<a href="#278" id="278">278</a>
-<a href="#279" id="279">279</a>
-<a href="#280" id="280">280</a>
-<a href="#281" id="281">281</a>
-<a href="#282" id="282">282</a>
-<a href="#283" id="283">283</a>
-<a href="#284" id="284">284</a>
-<a href="#285" id="285">285</a>
-<a href="#286" id="286">286</a>
-<a href="#287" id="287">287</a>
-<a href="#288" id="288">288</a>
-<a href="#289" id="289">289</a>
-<a href="#290" id="290">290</a>
-<a href="#291" id="291">291</a>
-<a href="#292" id="292">292</a>
-<a href="#293" id="293">293</a>
-<a href="#294" id="294">294</a>
-<a href="#295" id="295">295</a>
-<a href="#296" id="296">296</a>
-<a href="#297" id="297">297</a>
-<a href="#298" id="298">298</a>
-<a href="#299" id="299">299</a>
-<a href="#300" id="300">300</a>
-<a href="#301" id="301">301</a>
-<a href="#302" id="302">302</a>
-<a href="#303" id="303">303</a>
-<a href="#304" id="304">304</a>
-<a href="#305" id="305">305</a>
-<a href="#306" id="306">306</a>
-<a href="#307" id="307">307</a>
-<a href="#308" id="308">308</a>
-<a href="#309" id="309">309</a>
-<a href="#310" id="310">310</a>
-<a href="#311" id="311">311</a>
-<a href="#312" id="312">312</a>
-<a href="#313" id="313">313</a>
-<a href="#314" id="314">314</a>
-<a href="#315" id="315">315</a>
-<a href="#316" id="316">316</a>
-<a href="#317" id="317">317</a>
-<a href="#318" id="318">318</a>
-<a href="#319" id="319">319</a>
-<a href="#320" id="320">320</a>
-<a href="#321" id="321">321</a>
-<a href="#322" id="322">322</a>
-<a href="#323" id="323">323</a>
-<a href="#324" id="324">324</a>
-<a href="#325" id="325">325</a>
-<a href="#326" id="326">326</a>
-<a href="#327" id="327">327</a>
-<a href="#328" id="328">328</a>
-<a href="#329" id="329">329</a>
-<a href="#330" id="330">330</a>
-<a href="#331" id="331">331</a>
-<a href="#332" id="332">332</a>
-<a href="#333" id="333">333</a>
-<a href="#334" id="334">334</a>
-<a href="#335" id="335">335</a>
-<a href="#336" id="336">336</a>
-<a href="#337" id="337">337</a>
-<a href="#338" id="338">338</a>
-<a href="#339" id="339">339</a>
-<a href="#340" id="340">340</a>
-<a href="#341" id="341">341</a>
-<a href="#342" id="342">342</a>
-<a href="#343" id="343">343</a>
-<a href="#344" id="344">344</a>
-<a href="#345" id="345">345</a>
-<a href="#346" id="346">346</a>
-<a href="#347" id="347">347</a>
-<a href="#348" id="348">348</a>
-<a href="#349" id="349">349</a>
-<a href="#350" id="350">350</a>
-<a href="#351" id="351">351</a>
-<a href="#352" id="352">352</a>
-<a href="#353" id="353">353</a>
-<a href="#354" id="354">354</a>
-<a href="#355" id="355">355</a>
-<a href="#356" id="356">356</a>
-<a href="#357" id="357">357</a>
-<a href="#358" id="358">358</a>
-<a href="#359" id="359">359</a>
-<a href="#360" id="360">360</a>
-<a href="#361" id="361">361</a>
-<a href="#362" id="362">362</a>
-<a href="#363" id="363">363</a>
-<a href="#364" id="364">364</a>
-<a href="#365" id="365">365</a>
-<a href="#366" id="366">366</a>
-<a href="#367" id="367">367</a>
-<a href="#368" id="368">368</a>
-<a href="#369" id="369">369</a>
-<a href="#370" id="370">370</a>
-<a href="#371" id="371">371</a>
-<a href="#372" id="372">372</a>
-<a href="#373" id="373">373</a>
-<a href="#374" id="374">374</a>
-<a href="#375" id="375">375</a>
-<a href="#376" id="376">376</a>
-<a href="#377" id="377">377</a>
-<a href="#378" id="378">378</a>
-<a href="#379" id="379">379</a>
-<a href="#380" id="380">380</a>
-<a href="#381" id="381">381</a>
-<a href="#382" id="382">382</a>
-<a href="#383" id="383">383</a>
-<a href="#384" id="384">384</a>
-<a href="#385" id="385">385</a>
-<a href="#386" id="386">386</a>
-<a href="#387" id="387">387</a>
-<a href="#388" id="388">388</a>
-<a href="#389" id="389">389</a>
-<a href="#390" id="390">390</a>
-<a href="#391" id="391">391</a>
-<a href="#392" id="392">392</a>
-<a href="#393" id="393">393</a>
-<a href="#394" id="394">394</a>
-<a href="#395" id="395">395</a>
-<a href="#396" id="396">396</a>
-<a href="#397" id="397">397</a>
-<a href="#398" id="398">398</a>
-<a href="#399" id="399">399</a>
-<a href="#400" id="400">400</a>
-<a href="#401" id="401">401</a>
-<a href="#402" id="402">402</a>
-<a href="#403" id="403">403</a>
-<a href="#404" id="404">404</a>
-<a href="#405" id="405">405</a>
-<a href="#406" id="406">406</a>
-<a href="#407" id="407">407</a>
-<a href="#408" id="408">408</a>
-<a href="#409" id="409">409</a>
-<a href="#410" id="410">410</a>
-<a href="#411" id="411">411</a>
-<a href="#412" id="412">412</a>
-<a href="#413" id="413">413</a>
-<a href="#414" id="414">414</a>
-<a href="#415" id="415">415</a>
-<a href="#416" id="416">416</a>
-<a href="#417" id="417">417</a>
-<a href="#418" id="418">418</a>
-<a href="#419" id="419">419</a>
-<a href="#420" id="420">420</a>
-<a href="#421" id="421">421</a>
-<a href="#422" id="422">422</a>
-<a href="#423" id="423">423</a>
-<a href="#424" id="424">424</a>
-<a href="#425" id="425">425</a>
-<a href="#426" id="426">426</a>
-<a href="#427" id="427">427</a>
-<a href="#428" id="428">428</a>
-<a href="#429" id="429">429</a>
-<a href="#430" id="430">430</a>
-<a href="#431" id="431">431</a>
-<a href="#432" id="432">432</a>
-<a href="#433" id="433">433</a>
-<a href="#434" id="434">434</a>
-<a href="#435" id="435">435</a>
-<a href="#436" id="436">436</a>
-<a href="#437" id="437">437</a>
-<a href="#438" id="438">438</a>
-<a href="#439" id="439">439</a>
-<a href="#440" id="440">440</a>
-<a href="#441" id="441">441</a>
-<a href="#442" id="442">442</a>
-<a href="#443" id="443">443</a>
-<a href="#444" id="444">444</a>
-<a href="#445" id="445">445</a>
-<a href="#446" id="446">446</a>
-<a href="#447" id="447">447</a>
-<a href="#448" id="448">448</a>
-<a href="#449" id="449">449</a>
-<a href="#450" id="450">450</a>
-<a href="#451" id="451">451</a>
-<a href="#452" id="452">452</a>
-<a href="#453" id="453">453</a>
-<a href="#454" id="454">454</a>
-<a href="#455" id="455">455</a>
-<a href="#456" id="456">456</a>
-<a href="#457" id="457">457</a>
-<a href="#458" id="458">458</a>
-<a href="#459" id="459">459</a>
-<a href="#460" id="460">460</a>
-<a href="#461" id="461">461</a>
-<a href="#462" id="462">462</a>
-<a href="#463" id="463">463</a>
-<a href="#464" id="464">464</a>
-<a href="#465" id="465">465</a>
-<a href="#466" id="466">466</a>
-<a href="#467" id="467">467</a>
-<a href="#468" id="468">468</a>
-<a href="#469" id="469">469</a>
-<a href="#470" id="470">470</a>
-<a href="#471" id="471">471</a>
-<a href="#472" id="472">472</a>
-<a href="#473" id="473">473</a>
-<a href="#474" id="474">474</a>
-<a href="#475" id="475">475</a>
-<a href="#476" id="476">476</a>
-<a href="#477" id="477">477</a>
-<a href="#478" id="478">478</a>
-<a href="#479" id="479">479</a>
-<a href="#480" id="480">480</a>
-<a href="#481" id="481">481</a>
-<a href="#482" id="482">482</a>
-<a href="#483" id="483">483</a>
-<a href="#484" id="484">484</a>
-<a href="#485" id="485">485</a>
-<a href="#486" id="486">486</a>
-<a href="#487" id="487">487</a>
-<a href="#488" id="488">488</a>
-<a href="#489" id="489">489</a>
-<a href="#490" id="490">490</a>
-<a href="#491" id="491">491</a>
-<a href="#492" id="492">492</a>
-<a href="#493" id="493">493</a>
-<a href="#494" id="494">494</a>
-<a href="#495" id="495">495</a>
-<a href="#496" id="496">496</a>
-<a href="#497" id="497">497</a>
-<a href="#498" id="498">498</a>
-<a href="#499" id="499">499</a>
-<a href="#500" id="500">500</a>
-<a href="#501" id="501">501</a>
-<a href="#502" id="502">502</a>
-<a href="#503" id="503">503</a>
-<a href="#504" id="504">504</a>
-<a href="#505" id="505">505</a>
-<a href="#506" id="506">506</a>
-<a href="#507" id="507">507</a>
-<a href="#508" id="508">508</a>
-<a href="#509" id="509">509</a>
-<a href="#510" id="510">510</a>
-<a href="#511" id="511">511</a>
-<a href="#512" id="512">512</a>
-<a href="#513" id="513">513</a>
-<a href="#514" id="514">514</a>
-<a href="#515" id="515">515</a>
-<a href="#516" id="516">516</a>
-<a href="#517" id="517">517</a>
-<a href="#518" id="518">518</a>
-<a href="#519" id="519">519</a>
-<a href="#520" id="520">520</a>
-<a href="#521" id="521">521</a>
-<a href="#522" id="522">522</a>
-<a href="#523" id="523">523</a>
-<a href="#524" id="524">524</a>
-<a href="#525" id="525">525</a>
-<a href="#526" id="526">526</a>
-<a href="#527" id="527">527</a>
-<a href="#528" id="528">528</a>
-<a href="#529" id="529">529</a>
-<a href="#530" id="530">530</a>
-<a href="#531" id="531">531</a>
-<a href="#532" id="532">532</a>
-<a href="#533" id="533">533</a>
-<a href="#534" id="534">534</a>
-<a href="#535" id="535">535</a>
-<a href="#536" id="536">536</a>
-<a href="#537" id="537">537</a>
-<a href="#538" id="538">538</a>
-<a href="#539" id="539">539</a>
-<a href="#540" id="540">540</a>
-<a href="#541" id="541">541</a>
-<a href="#542" id="542">542</a>
-<a href="#543" id="543">543</a>
-<a href="#544" id="544">544</a>
-<a href="#545" id="545">545</a>
-<a href="#546" id="546">546</a>
-<a href="#547" id="547">547</a>
-<a href="#548" id="548">548</a>
-<a href="#549" id="549">549</a>
-<a href="#550" id="550">550</a>
-<a href="#551" id="551">551</a>
-<a href="#552" id="552">552</a>
-<a href="#553" id="553">553</a>
-<a href="#554" id="554">554</a>
-<a href="#555" id="555">555</a>
-<a href="#556" id="556">556</a>
-<a href="#557" id="557">557</a>
-<a href="#558" id="558">558</a>
-<a href="#559" id="559">559</a>
-<a href="#560" id="560">560</a>
-<a href="#561" id="561">561</a>
-<a href="#562" id="562">562</a>
-<a href="#563" id="563">563</a>
-<a href="#564" id="564">564</a>
-<a href="#565" id="565">565</a>
-<a href="#566" id="566">566</a>
-<a href="#567" id="567">567</a>
-<a href="#568" id="568">568</a>
-<a href="#569" id="569">569</a>
-<a href="#570" id="570">570</a>
-<a href="#571" id="571">571</a>
-<a href="#572" id="572">572</a>
-<a href="#573" id="573">573</a>
-<a href="#574" id="574">574</a>
-<a href="#575" id="575">575</a>
-<a href="#576" id="576">576</a>
-<a href="#577" id="577">577</a>
-<a href="#578" id="578">578</a>
-<a href="#579" id="579">579</a>
-<a href="#580" id="580">580</a>
-<a href="#581" id="581">581</a>
-<a href="#582" id="582">582</a>
-<a href="#583" id="583">583</a>
-<a href="#584" id="584">584</a>
-<a href="#585" id="585">585</a>
-<a href="#586" id="586">586</a>
-<a href="#587" id="587">587</a>
-<a href="#588" id="588">588</a>
-<a href="#589" id="589">589</a>
-<a href="#590" id="590">590</a>
-<a href="#591" id="591">591</a>
-<a href="#592" id="592">592</a>
-<a href="#593" id="593">593</a>
-<a href="#594" id="594">594</a>
-<a href="#595" id="595">595</a>
-<a href="#596" id="596">596</a>
-<a href="#597" id="597">597</a>
-<a href="#598" id="598">598</a>
-<a href="#599" id="599">599</a>
-<a href="#600" id="600">600</a>
-<a href="#601" id="601">601</a>
-<a href="#602" id="602">602</a>
-<a href="#603" id="603">603</a>
-<a href="#604" id="604">604</a>
-<a href="#605" id="605">605</a>
-<a href="#606" id="606">606</a>
-<a href="#607" id="607">607</a>
-<a href="#608" id="608">608</a>
-<a href="#609" id="609">609</a>
-<a href="#610" id="610">610</a>
-<a href="#611" id="611">611</a>
-<a href="#612" id="612">612</a>
-<a href="#613" id="613">613</a>
-<a href="#614" id="614">614</a>
-<a href="#615" id="615">615</a>
-<a href="#616" id="616">616</a>
-<a href="#617" id="617">617</a>
-<a href="#618" id="618">618</a>
-<a href="#619" id="619">619</a>
-<a href="#620" id="620">620</a>
-<a href="#621" id="621">621</a>
-<a href="#622" id="622">622</a>
-<a href="#623" id="623">623</a>
-<a href="#624" id="624">624</a>
-<a href="#625" id="625">625</a>
-<a href="#626" id="626">626</a>
-<a href="#627" id="627">627</a>
-<a href="#628" id="628">628</a>
-<a href="#629" id="629">629</a>
-<a href="#630" id="630">630</a>
-<a href="#631" id="631">631</a>
-<a href="#632" id="632">632</a>
-<a href="#633" id="633">633</a>
-<a href="#634" id="634">634</a>
-<a href="#635" id="635">635</a>
-<a href="#636" id="636">636</a>
-<a href="#637" id="637">637</a>
-<a href="#638" id="638">638</a>
-<a href="#639" id="639">639</a>
-<a href="#640" id="640">640</a>
-<a href="#641" id="641">641</a>
-<a href="#642" id="642">642</a>
-<a href="#643" id="643">643</a>
-<a href="#644" id="644">644</a>
-<a href="#645" id="645">645</a>
-<a href="#646" id="646">646</a>
-<a href="#647" id="647">647</a>
-<a href="#648" id="648">648</a>
-<a href="#649" id="649">649</a>
-<a href="#650" id="650">650</a>
-<a href="#651" id="651">651</a>
-<a href="#652" id="652">652</a>
-<a href="#653" id="653">653</a>
-<a href="#654" id="654">654</a>
-<a href="#655" id="655">655</a>
-<a href="#656" id="656">656</a>
-<a href="#657" id="657">657</a>
-<a href="#658" id="658">658</a>
-<a href="#659" id="659">659</a>
-<a href="#660" id="660">660</a>
-<a href="#661" id="661">661</a>
-<a href="#662" id="662">662</a>
-<a href="#663" id="663">663</a>
-<a href="#664" id="664">664</a>
-<a href="#665" id="665">665</a>
-<a href="#666" id="666">666</a>
-<a href="#667" id="667">667</a>
-<a href="#668" id="668">668</a>
-<a href="#669" id="669">669</a>
-<a href="#670" id="670">670</a>
-<a href="#671" id="671">671</a>
-<a href="#672" id="672">672</a>
-<a href="#673" id="673">673</a>
-<a href="#674" id="674">674</a>
-<a href="#675" id="675">675</a>
-<a href="#676" id="676">676</a>
-<a href="#677" id="677">677</a>
-<a href="#678" id="678">678</a>
-<a href="#679" id="679">679</a>
-<a href="#680" id="680">680</a>
-<a href="#681" id="681">681</a>
-<a href="#682" id="682">682</a>
-<a href="#683" id="683">683</a>
-<a href="#684" id="684">684</a>
-<a href="#685" id="685">685</a>
-<a href="#686" id="686">686</a>
-<a href="#687" id="687">687</a>
-<a href="#688" id="688">688</a>
-<a href="#689" id="689">689</a>
-<a href="#690" id="690">690</a>
-<a href="#691" id="691">691</a>
-<a href="#692" id="692">692</a>
-<a href="#693" id="693">693</a>
-<a href="#694" id="694">694</a>
-<a href="#695" id="695">695</a>
-<a href="#696" id="696">696</a>
-<a href="#697" id="697">697</a>
-<a href="#698" id="698">698</a>
-<a href="#699" id="699">699</a>
-<a href="#700" id="700">700</a>
-<a href="#701" id="701">701</a>
-<a href="#702" id="702">702</a>
-<a href="#703" id="703">703</a>
-<a href="#704" id="704">704</a>
-<a href="#705" id="705">705</a>
-<a href="#706" id="706">706</a>
-<a href="#707" id="707">707</a>
-<a href="#708" id="708">708</a>
-<a href="#709" id="709">709</a>
-<a href="#710" id="710">710</a>
-<a href="#711" id="711">711</a>
-<a href="#712" id="712">712</a>
-<a href="#713" id="713">713</a>
-<a href="#714" id="714">714</a>
-<a href="#715" id="715">715</a>
-<a href="#716" id="716">716</a>
-<a href="#717" id="717">717</a>
-<a href="#718" id="718">718</a>
-<a href="#719" id="719">719</a>
-<a href="#720" id="720">720</a>
-<a href="#721" id="721">721</a>
-<a href="#722" id="722">722</a>
-<a href="#723" id="723">723</a>
-<a href="#724" id="724">724</a>
-<a href="#725" id="725">725</a>
-<a href="#726" id="726">726</a>
-<a href="#727" id="727">727</a>
-<a href="#728" id="728">728</a>
-<a href="#729" id="729">729</a>
-<a href="#730" id="730">730</a>
-<a href="#731" id="731">731</a>
-<a href="#732" id="732">732</a>
-<a href="#733" id="733">733</a>
-<a href="#734" id="734">734</a>
-<a href="#735" id="735">735</a>
-<a href="#736" id="736">736</a>
-<a href="#737" id="737">737</a>
-<a href="#738" id="738">738</a>
-<a href="#739" id="739">739</a>
-<a href="#740" id="740">740</a>
-<a href="#741" id="741">741</a>
-<a href="#742" id="742">742</a>
-<a href="#743" id="743">743</a>
-<a href="#744" id="744">744</a>
-<a href="#745" id="745">745</a>
-<a href="#746" id="746">746</a>
-<a href="#747" id="747">747</a>
-<a href="#748" id="748">748</a>
-<a href="#749" id="749">749</a>
-<a href="#750" id="750">750</a>
-<a href="#751" id="751">751</a>
-<a href="#752" id="752">752</a>
-<a href="#753" id="753">753</a>
-<a href="#754" id="754">754</a>
-<a href="#755" id="755">755</a>
-<a href="#756" id="756">756</a>
-<a href="#757" id="757">757</a>
-<a href="#758" id="758">758</a>
-<a href="#759" id="759">759</a>
-<a href="#760" id="760">760</a>
-<a href="#761" id="761">761</a>
-<a href="#762" id="762">762</a>
-<a href="#763" id="763">763</a>
-<a href="#764" id="764">764</a>
-<a href="#765" id="765">765</a>
-<a href="#766" id="766">766</a>
-<a href="#767" id="767">767</a>
-<a href="#768" id="768">768</a>
-<a href="#769" id="769">769</a>
-<a href="#770" id="770">770</a>
-<a href="#771" id="771">771</a>
-<a href="#772" id="772">772</a>
-<a href="#773" id="773">773</a>
-<a href="#774" id="774">774</a>
-<a href="#775" id="775">775</a>
-<a href="#776" id="776">776</a>
-<a href="#777" id="777">777</a>
-<a href="#778" id="778">778</a>
-<a href="#779" id="779">779</a>
-<a href="#780" id="780">780</a>
-<a href="#781" id="781">781</a>
-<a href="#782" id="782">782</a>
-<a href="#783" id="783">783</a>
-<a href="#784" id="784">784</a>
-<a href="#785" id="785">785</a>
-<a href="#786" id="786">786</a>
-<a href="#787" id="787">787</a>
-<a href="#788" id="788">788</a>
-<a href="#789" id="789">789</a>
-<a href="#790" id="790">790</a>
-<a href="#791" id="791">791</a>
-<a href="#792" id="792">792</a>
-<a href="#793" id="793">793</a>
-<a href="#794" id="794">794</a>
-<a href="#795" id="795">795</a>
-<a href="#796" id="796">796</a>
-<a href="#797" id="797">797</a>
-<a href="#798" id="798">798</a>
-<a href="#799" id="799">799</a>
-<a href="#800" id="800">800</a>
-<a href="#801" id="801">801</a>
-<a href="#802" id="802">802</a>
-<a href="#803" id="803">803</a>
-<a href="#804" id="804">804</a>
-<a href="#805" id="805">805</a>
-<a href="#806" id="806">806</a>
-<a href="#807" id="807">807</a>
-<a href="#808" id="808">808</a>
-<a href="#809" id="809">809</a>
-<a href="#810" id="810">810</a>
-<a href="#811" id="811">811</a>
-<a href="#812" id="812">812</a>
-<a href="#813" id="813">813</a>
-<a href="#814" id="814">814</a>
-<a href="#815" id="815">815</a>
-<a href="#816" id="816">816</a>
-<a href="#817" id="817">817</a>
-<a href="#818" id="818">818</a>
-<a href="#819" id="819">819</a>
-<a href="#820" id="820">820</a>
-<a href="#821" id="821">821</a>
-<a href="#822" id="822">822</a>
-<a href="#823" id="823">823</a>
-<a href="#824" id="824">824</a>
-<a href="#825" id="825">825</a>
-<a href="#826" id="826">826</a>
-<a href="#827" id="827">827</a>
-<a href="#828" id="828">828</a>
-<a href="#829" id="829">829</a>
-<a href="#830" id="830">830</a>
-<a href="#831" id="831">831</a>
-<a href="#832" id="832">832</a>
-<a href="#833" id="833">833</a>
-<a href="#834" id="834">834</a>
-<a href="#835" id="835">835</a>
-<a href="#836" id="836">836</a>
-<a href="#837" id="837">837</a>
-<a href="#838" id="838">838</a>
-<a href="#839" id="839">839</a>
-<a href="#840" id="840">840</a>
-<a href="#841" id="841">841</a>
-<a href="#842" id="842">842</a>
-<a href="#843" id="843">843</a>
-<a href="#844" id="844">844</a>
-<a href="#845" id="845">845</a>
-<a href="#846" id="846">846</a>
-<a href="#847" id="847">847</a>
-<a href="#848" id="848">848</a>
-<a href="#849" id="849">849</a>
-<a href="#850" id="850">850</a>
-<a href="#851" id="851">851</a>
-<a href="#852" id="852">852</a>
-<a href="#853" id="853">853</a>
-<a href="#854" id="854">854</a>
-<a href="#855" id="855">855</a>
-<a href="#856" id="856">856</a>
-<a href="#857" id="857">857</a>
-<a href="#858" id="858">858</a>
-<a href="#859" id="859">859</a>
-<a href="#860" id="860">860</a>
-<a href="#861" id="861">861</a>
-<a href="#862" id="862">862</a>
-<a href="#863" id="863">863</a>
-<a href="#864" id="864">864</a>
-<a href="#865" id="865">865</a>
-<a href="#866" id="866">866</a>
-<a href="#867" id="867">867</a>
-<a href="#868" id="868">868</a>
-<a href="#869" id="869">869</a>
-<a href="#870" id="870">870</a>
-<a href="#871" id="871">871</a>
-<a href="#872" id="872">872</a>
-<a href="#873" id="873">873</a>
-<a href="#874" id="874">874</a>
-<a href="#875" id="875">875</a>
-<a href="#876" id="876">876</a>
-<a href="#877" id="877">877</a>
-<a href="#878" id="878">878</a>
-<a href="#879" id="879">879</a>
-<a href="#880" id="880">880</a>
-<a href="#881" id="881">881</a>
-<a href="#882" id="882">882</a>
-<a href="#883" id="883">883</a>
-<a href="#884" id="884">884</a>
-<a href="#885" id="885">885</a>
-<a href="#886" id="886">886</a>
-<a href="#887" id="887">887</a>
-<a href="#888" id="888">888</a>
-<a href="#889" id="889">889</a>
-<a href="#890" id="890">890</a>
-<a href="#891" id="891">891</a>
-<a href="#892" id="892">892</a>
-<a href="#893" id="893">893</a>
-<a href="#894" id="894">894</a>
-<a href="#895" id="895">895</a>
-<a href="#896" id="896">896</a>
-<a href="#897" id="897">897</a>
-<a href="#898" id="898">898</a>
-<a href="#899" id="899">899</a>
-<a href="#900" id="900">900</a>
-<a href="#901" id="901">901</a>
-<a href="#902" id="902">902</a>
-<a href="#903" id="903">903</a>
-<a href="#904" id="904">904</a>
-<a href="#905" id="905">905</a>
-<a href="#906" id="906">906</a>
-<a href="#907" id="907">907</a>
-<a href="#908" id="908">908</a>
-<a href="#909" id="909">909</a>
-<a href="#910" id="910">910</a>
-<a href="#911" id="911">911</a>
-<a href="#912" id="912">912</a>
-<a href="#913" id="913">913</a>
-<a href="#914" id="914">914</a>
-<a href="#915" id="915">915</a>
-<a href="#916" id="916">916</a>
-<a href="#917" id="917">917</a>
-<a href="#918" id="918">918</a>
-<a href="#919" id="919">919</a>
-<a href="#920" id="920">920</a>
-<a href="#921" id="921">921</a>
-<a href="#922" id="922">922</a>
-<a href="#923" id="923">923</a>
-<a href="#924" id="924">924</a>
-<a href="#925" id="925">925</a>
-<a href="#926" id="926">926</a>
-<a href="#927" id="927">927</a>
-<a href="#928" id="928">928</a>
-<a href="#929" id="929">929</a>
-<a href="#930" id="930">930</a>
-<a href="#931" id="931">931</a>
-<a href="#932" id="932">932</a>
-<a href="#933" id="933">933</a>
-<a href="#934" id="934">934</a>
-<a href="#935" id="935">935</a>
-<a href="#936" id="936">936</a>
-<a href="#937" id="937">937</a>
-<a href="#938" id="938">938</a>
-<a href="#939" id="939">939</a>
-<a href="#940" id="940">940</a>
-<a href="#941" id="941">941</a>
-<a href="#942" id="942">942</a>
-<a href="#943" id="943">943</a>
-<a href="#944" id="944">944</a>
-<a href="#945" id="945">945</a>
-<a href="#946" id="946">946</a>
-<a href="#947" id="947">947</a>
-<a href="#948" id="948">948</a>
-<a href="#949" id="949">949</a>
-<a href="#950" id="950">950</a>
-<a href="#951" id="951">951</a>
-<a href="#952" id="952">952</a>
-<a href="#953" id="953">953</a>
-<a href="#954" id="954">954</a>
-<a href="#955" id="955">955</a>
-<a href="#956" id="956">956</a>
-<a href="#957" id="957">957</a>
-<a href="#958" id="958">958</a>
-<a href="#959" id="959">959</a>
-<a href="#960" id="960">960</a>
-<a href="#961" id="961">961</a>
-<a href="#962" id="962">962</a>
-<a href="#963" id="963">963</a>
-<a href="#964" id="964">964</a>
-<a href="#965" id="965">965</a>
-<a href="#966" id="966">966</a>
-<a href="#967" id="967">967</a>
-<a href="#968" id="968">968</a>
-<a href="#969" id="969">969</a>
-<a href="#970" id="970">970</a>
-<a href="#971" id="971">971</a>
-<a href="#972" id="972">972</a>
-<a href="#973" id="973">973</a>
-<a href="#974" id="974">974</a>
-<a href="#975" id="975">975</a>
-<a href="#976" id="976">976</a>
-<a href="#977" id="977">977</a>
-<a href="#978" id="978">978</a>
-<a href="#979" id="979">979</a>
-<a href="#980" id="980">980</a>
-<a href="#981" id="981">981</a>
-<a href="#982" id="982">982</a>
-<a href="#983" id="983">983</a>
-<a href="#984" id="984">984</a>
-<a href="#985" id="985">985</a>
-<a href="#986" id="986">986</a>
-<a href="#987" id="987">987</a>
-<a href="#988" id="988">988</a>
-<a href="#989" id="989">989</a>
-<a href="#990" id="990">990</a>
-<a href="#991" id="991">991</a>
-<a href="#992" id="992">992</a>
-<a href="#993" id="993">993</a>
-<a href="#994" id="994">994</a>
-<a href="#995" id="995">995</a>
-<a href="#996" id="996">996</a>
-<a href="#997" id="997">997</a>
-<a href="#998" id="998">998</a>
-<a href="#999" id="999">999</a>
-<a href="#1000" id="1000">1000</a>
-<a href="#1001" id="1001">1001</a>
-<a href="#1002" id="1002">1002</a>
-<a href="#1003" id="1003">1003</a>
-<a href="#1004" id="1004">1004</a>
-<a href="#1005" id="1005">1005</a>
-<a href="#1006" id="1006">1006</a>
-<a href="#1007" id="1007">1007</a>
-<a href="#1008" id="1008">1008</a>
-<a href="#1009" id="1009">1009</a>
-<a href="#1010" id="1010">1010</a>
-<a href="#1011" id="1011">1011</a>
-<a href="#1012" id="1012">1012</a>
-<a href="#1013" id="1013">1013</a>
-<a href="#1014" id="1014">1014</a>
-<a href="#1015" id="1015">1015</a>
-<a href="#1016" id="1016">1016</a>
-<a href="#1017" id="1017">1017</a>
-<a href="#1018" id="1018">1018</a>
-<a href="#1019" id="1019">1019</a>
-<a href="#1020" id="1020">1020</a>
-<a href="#1021" id="1021">1021</a>
-<a href="#1022" id="1022">1022</a>
-<a href="#1023" id="1023">1023</a>
-<a href="#1024" id="1024">1024</a>
-<a href="#1025" id="1025">1025</a>
-<a href="#1026" id="1026">1026</a>
-<a href="#1027" id="1027">1027</a>
-<a href="#1028" id="1028">1028</a>
-<a href="#1029" id="1029">1029</a>
-<a href="#1030" id="1030">1030</a>
-<a href="#1031" id="1031">1031</a>
-<a href="#1032" id="1032">1032</a>
-<a href="#1033" id="1033">1033</a>
-<a href="#1034" id="1034">1034</a>
-<a href="#1035" id="1035">1035</a>
-<a href="#1036" id="1036">1036</a>
-<a href="#1037" id="1037">1037</a>
-<a href="#1038" id="1038">1038</a>
-<a href="#1039" id="1039">1039</a>
-<a href="#1040" id="1040">1040</a>
-<a href="#1041" id="1041">1041</a>
-<a href="#1042" id="1042">1042</a>
-<a href="#1043" id="1043">1043</a>
-<a href="#1044" id="1044">1044</a>
-<a href="#1045" id="1045">1045</a>
-<a href="#1046" id="1046">1046</a>
-<a href="#1047" id="1047">1047</a>
-<a href="#1048" id="1048">1048</a>
-<a href="#1049" id="1049">1049</a>
-<a href="#1050" id="1050">1050</a>
-<a href="#1051" id="1051">1051</a>
-<a href="#1052" id="1052">1052</a>
-<a href="#1053" id="1053">1053</a>
-<a href="#1054" id="1054">1054</a>
-<a href="#1055" id="1055">1055</a>
-<a href="#1056" id="1056">1056</a>
-<a href="#1057" id="1057">1057</a>
-<a href="#1058" id="1058">1058</a>
-<a href="#1059" id="1059">1059</a>
-<a href="#1060" id="1060">1060</a>
-<a href="#1061" id="1061">1061</a>
-<a href="#1062" id="1062">1062</a>
-<a href="#1063" id="1063">1063</a>
-<a href="#1064" id="1064">1064</a>
-<a href="#1065" id="1065">1065</a>
-<a href="#1066" id="1066">1066</a>
-<a href="#1067" id="1067">1067</a>
-<a href="#1068" id="1068">1068</a>
-<a href="#1069" id="1069">1069</a>
-<a href="#1070" id="1070">1070</a>
-<a href="#1071" id="1071">1071</a>
-<a href="#1072" id="1072">1072</a>
-<a href="#1073" id="1073">1073</a>
-<a href="#1074" id="1074">1074</a>
-<a href="#1075" id="1075">1075</a>
-<a href="#1076" id="1076">1076</a>
-<a href="#1077" id="1077">1077</a>
-<a href="#1078" id="1078">1078</a>
-<a href="#1079" id="1079">1079</a>
-<a href="#1080" id="1080">1080</a>
-<a href="#1081" id="1081">1081</a>
-<a href="#1082" id="1082">1082</a>
-<a href="#1083" id="1083">1083</a>
-</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-</span><span class="doccomment">//! Transaction builder
-//!
-//! ## Example
-//!
-//! ```
-//! # use std::str::FromStr;
-//! # use bitcoin::*;
-//! # use bdk::*;
-//! # use bdk::wallet::ChangeSet;
-//! # use bdk::wallet::error::CreateTxError;
-//! # use bdk::wallet::tx_builder::CreateTx;
-//! # use bdk_persist::PersistBackend;
-//! # use anyhow::Error;
-//! # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap().assume_checked();
-//! # let mut wallet = doctest_wallet!();
-//! // create a TxBuilder from a wallet
-//! let mut tx_builder = wallet.build_tx();
-//!
-//! tx_builder
-//! // Create a transaction with one output to `to_address` of 50_000 satoshi
-//! .add_recipient(to_address.script_pubkey(), Amount::from_sat(50_000))
-//! // With a custom fee rate of 5.0 satoshi/vbyte
-//! .fee_rate(FeeRate::from_sat_per_vb(5).expect("valid feerate"))
-//! // Only spend non-change outputs
-//! .do_not_spend_change()
-//! // Turn on RBF signaling
-//! .enable_rbf();
-//! let psbt = tx_builder.finish()?;
-//! # Ok::<(), anyhow::Error>(())
-//! ```
-
-</span><span class="kw">use </span>alloc::{boxed::Box, rc::Rc, string::String, vec::Vec};
-<span class="kw">use </span>core::cell::RefCell;
-<span class="kw">use </span>core::fmt;
-<span class="kw">use </span>core::marker::PhantomData;
-
-<span class="kw">use </span>bitcoin::psbt::{<span class="self">self</span>, Psbt};
-<span class="kw">use </span>bitcoin::script::PushBytes;
-<span class="kw">use </span>bitcoin::{absolute, Amount, FeeRate, OutPoint, ScriptBuf, Sequence, Transaction, Txid};
-
-<span class="kw">use </span><span class="kw">super</span>::coin_selection::{CoinSelectionAlgorithm, DefaultCoinSelectionAlgorithm};
-<span class="kw">use super</span>::{CreateTxError, Wallet};
-<span class="kw">use </span><span class="kw">crate</span>::collections::{BTreeMap, HashSet};
-<span class="kw">use crate</span>::{KeychainKind, LocalOutput, Utxo, WeightedUtxo};
-
-<span class="doccomment">/// Context in which the [`TxBuilder`] is valid
-</span><span class="kw">pub trait </span>TxBuilderContext: core::fmt::Debug + Default + Clone {}
-
-<span class="doccomment">/// Marker type to indicate the [`TxBuilder`] is being used to create a new transaction (as opposed
-/// to bumping the fee of an existing one).
-</span><span class="attr">#[derive(Debug, Default, Clone)]
-</span><span class="kw">pub struct </span>CreateTx;
-<span class="kw">impl </span>TxBuilderContext <span class="kw">for </span>CreateTx {}
-
-<span class="doccomment">/// Marker type to indicate the [`TxBuilder`] is being used to bump the fee of an existing transaction.
-</span><span class="attr">#[derive(Debug, Default, Clone)]
-</span><span class="kw">pub struct </span>BumpFee;
-<span class="kw">impl </span>TxBuilderContext <span class="kw">for </span>BumpFee {}
-
-<span class="doccomment">/// A transaction builder
-///
-/// A `TxBuilder` is created by calling [`build_tx`] or [`build_fee_bump`] on a wallet. After
-/// assigning it, you set options on it until finally calling [`finish`] to consume the builder and
-/// generate the transaction.
-///
-/// Each option setting method on `TxBuilder` takes and returns `&mut self` so you can chain calls
-/// as in the following example:
-///
-/// ```
-/// # use bdk::*;
-/// # use bdk::wallet::tx_builder::*;
-/// # use bitcoin::*;
-/// # use core::str::FromStr;
-/// # use bdk::wallet::ChangeSet;
-/// # use bdk::wallet::error::CreateTxError;
-/// # use bdk_persist::PersistBackend;
-/// # use anyhow::Error;
-/// # let mut wallet = doctest_wallet!();
-/// # let addr1 = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap().assume_checked();
-/// # let addr2 = addr1.clone();
-/// // chaining
-/// let psbt1 = {
-/// let mut builder = wallet.build_tx();
-/// builder
-/// .ordering(TxOrdering::Untouched)
-/// .add_recipient(addr1.script_pubkey(), Amount::from_sat(50_000))
-/// .add_recipient(addr2.script_pubkey(), Amount::from_sat(50_000));
-/// builder.finish()?
-/// };
-///
-/// // non-chaining
-/// let psbt2 = {
-/// let mut builder = wallet.build_tx();
-/// builder.ordering(TxOrdering::Untouched);
-/// for addr in &[addr1, addr2] {
-/// builder.add_recipient(addr.script_pubkey(), Amount::from_sat(50_000));
-/// }
-/// builder.finish()?
-/// };
-///
-/// assert_eq!(psbt1.unsigned_tx.output[..2], psbt2.unsigned_tx.output[..2]);
-/// # Ok::<(), anyhow::Error>(())
-/// ```
-///
-/// At the moment [`coin_selection`] is an exception to the rule as it consumes `self`.
-/// This means it is usually best to call [`coin_selection`] on the return value of `build_tx` before assigning it.
-///
-/// For further examples see [this module](super::tx_builder)'s documentation;
-///
-/// [`build_tx`]: Wallet::build_tx
-/// [`build_fee_bump`]: Wallet::build_fee_bump
-/// [`finish`]: Self::finish
-/// [`coin_selection`]: Self::coin_selection
-</span><span class="attr">#[derive(Debug)]
-</span><span class="kw">pub struct </span>TxBuilder<<span class="lifetime">'a</span>, Cs, Ctx> {
- <span class="kw">pub</span>(<span class="kw">crate</span>) wallet: Rc<RefCell<<span class="kw-2">&</span><span class="lifetime">'a </span><span class="kw-2">mut </span>Wallet>>,
- <span class="kw">pub</span>(<span class="kw">crate</span>) params: TxParams,
- <span class="kw">pub</span>(<span class="kw">crate</span>) coin_selection: Cs,
- <span class="kw">pub</span>(<span class="kw">crate</span>) phantom: PhantomData<Ctx>,
-}
-
-<span class="doccomment">/// The parameters for transaction creation sans coin selection algorithm.
-</span><span class="comment">//TODO: TxParams should eventually be exposed publicly.
-</span><span class="attr">#[derive(Default, Debug, Clone)]
-</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">struct </span>TxParams {
- <span class="kw">pub</span>(<span class="kw">crate</span>) recipients: Vec<(ScriptBuf, u64)>,
- <span class="kw">pub</span>(<span class="kw">crate</span>) drain_wallet: bool,
- <span class="kw">pub</span>(<span class="kw">crate</span>) drain_to: <span class="prelude-ty">Option</span><ScriptBuf>,
- <span class="kw">pub</span>(<span class="kw">crate</span>) fee_policy: <span class="prelude-ty">Option</span><FeePolicy>,
- <span class="kw">pub</span>(<span class="kw">crate</span>) internal_policy_path: <span class="prelude-ty">Option</span><BTreeMap<String, Vec<usize>>>,
- <span class="kw">pub</span>(<span class="kw">crate</span>) external_policy_path: <span class="prelude-ty">Option</span><BTreeMap<String, Vec<usize>>>,
- <span class="kw">pub</span>(<span class="kw">crate</span>) utxos: Vec<WeightedUtxo>,
- <span class="kw">pub</span>(<span class="kw">crate</span>) unspendable: HashSet<OutPoint>,
- <span class="kw">pub</span>(<span class="kw">crate</span>) manually_selected_only: bool,
- <span class="kw">pub</span>(<span class="kw">crate</span>) sighash: <span class="prelude-ty">Option</span><psbt::PsbtSighashType>,
- <span class="kw">pub</span>(<span class="kw">crate</span>) ordering: TxOrdering,
- <span class="kw">pub</span>(<span class="kw">crate</span>) locktime: <span class="prelude-ty">Option</span><absolute::LockTime>,
- <span class="kw">pub</span>(<span class="kw">crate</span>) rbf: <span class="prelude-ty">Option</span><RbfValue>,
- <span class="kw">pub</span>(<span class="kw">crate</span>) version: <span class="prelude-ty">Option</span><Version>,
- <span class="kw">pub</span>(<span class="kw">crate</span>) change_policy: ChangeSpendPolicy,
- <span class="kw">pub</span>(<span class="kw">crate</span>) only_witness_utxo: bool,
- <span class="kw">pub</span>(<span class="kw">crate</span>) add_global_xpubs: bool,
- <span class="kw">pub</span>(<span class="kw">crate</span>) include_output_redeem_witness_script: bool,
- <span class="kw">pub</span>(<span class="kw">crate</span>) bumping_fee: <span class="prelude-ty">Option</span><PreviousFee>,
- <span class="kw">pub</span>(<span class="kw">crate</span>) current_height: <span class="prelude-ty">Option</span><absolute::LockTime>,
- <span class="kw">pub</span>(<span class="kw">crate</span>) allow_dust: bool,
-}
-
-<span class="attr">#[derive(Clone, Copy, Debug)]
-</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">struct </span>PreviousFee {
- <span class="kw">pub </span>absolute: u64,
- <span class="kw">pub </span>rate: FeeRate,
-}
-
-<span class="attr">#[derive(Debug, Clone, Copy)]
-</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">enum </span>FeePolicy {
- FeeRate(FeeRate),
- FeeAmount(u64),
-}
-
-<span class="kw">impl </span>Default <span class="kw">for </span>FeePolicy {
- <span class="kw">fn </span>default() -> <span class="self">Self </span>{
- FeePolicy::FeeRate(FeeRate::BROADCAST_MIN)
- }
-}
-
-<span class="kw">impl</span><<span class="lifetime">'a</span>, Cs: Clone, Ctx> Clone <span class="kw">for </span>TxBuilder<<span class="lifetime">'a</span>, Cs, Ctx> {
- <span class="kw">fn </span>clone(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="self">Self </span>{
- TxBuilder {
- wallet: <span class="self">self</span>.wallet.clone(),
- params: <span class="self">self</span>.params.clone(),
- coin_selection: <span class="self">self</span>.coin_selection.clone(),
- phantom: PhantomData,
- }
- }
-}
-
-<span class="comment">// methods supported by both contexts, for any CoinSelectionAlgorithm
-</span><span class="kw">impl</span><<span class="lifetime">'a</span>, Cs, Ctx> TxBuilder<<span class="lifetime">'a</span>, Cs, Ctx> {
- <span class="doccomment">/// Set a custom fee rate.
- ///
- /// This method sets the mining fee paid by the transaction as a rate on its size.
- /// This means that the total fee paid is equal to `fee_rate` times the size
- /// of the transaction. Default is 1 sat/vB in accordance with Bitcoin Core's default
- /// relay policy.
- ///
- /// Note that this is really a minimum feerate -- it's possible to
- /// overshoot it slightly since adding a change output to drain the remaining
- /// excess might not be viable.
- </span><span class="kw">pub fn </span>fee_rate(<span class="kw-2">&mut </span><span class="self">self</span>, fee_rate: FeeRate) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="self">self</span>.params.fee_policy = <span class="prelude-val">Some</span>(FeePolicy::FeeRate(fee_rate));
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Set an absolute fee
- /// The fee_absolute method refers to the absolute transaction fee in satoshis (sats).
- /// If anyone sets both the fee_absolute method and the fee_rate method,
- /// the FeePolicy enum will be set by whichever method was called last,
- /// as the FeeRate and FeeAmount are mutually exclusive.
- ///
- /// Note that this is really a minimum absolute fee -- it's possible to
- /// overshoot it slightly since adding a change output to drain the remaining
- /// excess might not be viable.
- </span><span class="kw">pub fn </span>fee_absolute(<span class="kw-2">&mut </span><span class="self">self</span>, fee_amount: u64) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="self">self</span>.params.fee_policy = <span class="prelude-val">Some</span>(FeePolicy::FeeAmount(fee_amount));
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Set the policy path to use while creating the transaction for a given keychain.
- ///
- /// This method accepts a map where the key is the policy node id (see
- /// [`Policy::id`](crate::descriptor::Policy::id)) and the value is the list of the indexes of
- /// the items that are intended to be satisfied from the policy node (see
- /// [`SatisfiableItem::Thresh::items`](crate::descriptor::policy::SatisfiableItem::Thresh::items)).
- ///
- /// ## Example
- ///
- /// An example of when the policy path is needed is the following descriptor:
- /// `wsh(thresh(2,pk(A),sj:and_v(v:pk(B),n:older(6)),snj:and_v(v:pk(C),after(630000))))`,
- /// derived from the miniscript policy `thresh(2,pk(A),and(pk(B),older(6)),and(pk(C),after(630000)))`.
- /// It declares three descriptor fragments, and at the top level it uses `thresh()` to
- /// ensure that at least two of them are satisfied. The individual fragments are:
- ///
- /// 1. `pk(A)`
- /// 2. `and(pk(B),older(6))`
- /// 3. `and(pk(C),after(630000))`
- ///
- /// When those conditions are combined in pairs, it's clear that the transaction needs to be created
- /// differently depending on how the user intends to satisfy the policy afterwards:
- ///
- /// * If fragments `1` and `2` are used, the transaction will need to use a specific
- /// `n_sequence` in order to spend an `OP_CSV` branch.
- /// * If fragments `1` and `3` are used, the transaction will need to use a specific `locktime`
- /// in order to spend an `OP_CLTV` branch.
- /// * If fragments `2` and `3` are used, the transaction will need both.
- ///
- /// When the spending policy is represented as a tree (see
- /// [`Wallet::policies`](super::Wallet::policies)), every node
- /// is assigned a unique identifier that can be used in the policy path to specify which of
- /// the node's children the user intends to satisfy: for instance, assuming the `thresh()`
- /// root node of this example has an id of `aabbccdd`, the policy path map would look like:
- ///
- /// `{ "aabbccdd" => [0, 1] }`
- ///
- /// where the key is the node's id, and the value is a list of the children that should be
- /// used, in no particular order.
- ///
- /// If a particularly complex descriptor has multiple ambiguous thresholds in its structure,
- /// multiple entries can be added to the map, one for each node that requires an explicit path.
- ///
- /// ```
- /// # use std::str::FromStr;
- /// # use std::collections::BTreeMap;
- /// # use bitcoin::*;
- /// # use bdk::*;
- /// # let to_address =
- /// Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt")
- /// .unwrap()
- /// .assume_checked();
- /// # let mut wallet = doctest_wallet!();
- /// let mut path = BTreeMap::new();
- /// path.insert("aabbccdd".to_string(), vec![0, 1]);
- ///
- /// let builder = wallet
- /// .build_tx()
- /// .add_recipient(to_address.script_pubkey(), Amount::from_sat(50_000))
- /// .policy_path(path, KeychainKind::External);
- ///
- /// # Ok::<(), anyhow::Error>(())
- /// ```
- </span><span class="kw">pub fn </span>policy_path(
- <span class="kw-2">&mut </span><span class="self">self</span>,
- policy_path: BTreeMap<String, Vec<usize>>,
- keychain: KeychainKind,
- ) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="kw">let </span>to_update = <span class="kw">match </span>keychain {
- KeychainKind::Internal => <span class="kw-2">&mut </span><span class="self">self</span>.params.internal_policy_path,
- KeychainKind::External => <span class="kw-2">&mut </span><span class="self">self</span>.params.external_policy_path,
- };
-
- <span class="kw-2">*</span>to_update = <span class="prelude-val">Some</span>(policy_path);
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Add the list of outpoints to the internal list of UTXOs that **must** be spent.
- ///
- /// If an error occurs while adding any of the UTXOs then none of them are added and the error is returned.
- ///
- /// These have priority over the "unspendable" utxos, meaning that if a utxo is present both in
- /// the "utxos" and the "unspendable" list, it will be spent.
- </span><span class="kw">pub fn </span>add_utxos(<span class="kw-2">&mut </span><span class="self">self</span>, outpoints: <span class="kw-2">&</span>[OutPoint]) -> <span class="prelude-ty">Result</span><<span class="kw-2">&mut </span><span class="self">Self</span>, AddUtxoError> {
- {
- <span class="kw">let </span>wallet = <span class="self">self</span>.wallet.borrow();
- <span class="kw">let </span>utxos = outpoints
- .iter()
- .map(|outpoint| {
- wallet
- .get_utxo(<span class="kw-2">*</span>outpoint)
- .ok_or(AddUtxoError::UnknownUtxo(<span class="kw-2">*</span>outpoint))
- })
- .collect::<<span class="prelude-ty">Result</span><Vec<<span class="kw">_</span>>, <span class="kw">_</span>>>()<span class="question-mark">?</span>;
-
- <span class="kw">for </span>utxo <span class="kw">in </span>utxos {
- <span class="kw">let </span>descriptor = wallet.get_descriptor_for_keychain(utxo.keychain);
- <span class="kw">let </span>satisfaction_weight = descriptor.max_weight_to_satisfy().unwrap();
- <span class="self">self</span>.params.utxos.push(WeightedUtxo {
- satisfaction_weight,
- utxo: Utxo::Local(utxo),
- });
- }
- }
-
- <span class="prelude-val">Ok</span>(<span class="self">self</span>)
- }
-
- <span class="doccomment">/// Add a utxo to the internal list of utxos that **must** be spent
- ///
- /// These have priority over the "unspendable" utxos, meaning that if a utxo is present both in
- /// the "utxos" and the "unspendable" list, it will be spent.
- </span><span class="kw">pub fn </span>add_utxo(<span class="kw-2">&mut </span><span class="self">self</span>, outpoint: OutPoint) -> <span class="prelude-ty">Result</span><<span class="kw-2">&mut </span><span class="self">Self</span>, AddUtxoError> {
- <span class="self">self</span>.add_utxos(<span class="kw-2">&</span>[outpoint])
- }
-
- <span class="doccomment">/// Add a foreign UTXO i.e. a UTXO not owned by this wallet.
- ///
- /// At a minimum to add a foreign UTXO we need:
- ///
- /// 1. `outpoint`: To add it to the raw transaction.
- /// 2. `psbt_input`: To know the value.
- /// 3. `satisfaction_weight`: To know how much weight/vbytes the input will add to the transaction for fee calculation.
- ///
- /// There are several security concerns about adding foreign UTXOs that application
- /// developers should consider. First, how do you know the value of the input is correct? If a
- /// `non_witness_utxo` is provided in the `psbt_input` then this method implicitly verifies the
- /// value by checking it against the transaction. If only a `witness_utxo` is provided then this
- /// method doesn't verify the value but just takes it as a given -- it is up to you to check
- /// that whoever sent you the `input_psbt` was not lying!
- ///
- /// Secondly, you must somehow provide `satisfaction_weight` of the input. Depending on your
- /// application it may be important that this be known precisely. If not, a malicious
- /// counterparty may fool you into putting in a value that is too low, giving the transaction a
- /// lower than expected feerate. They could also fool you into putting a value that is too high
- /// causing you to pay a fee that is too high. The party who is broadcasting the transaction can
- /// of course check the real input weight matches the expected weight prior to broadcasting.
- ///
- /// To guarantee the `max_weight_to_satisfy` is correct, you can require the party providing the
- /// `psbt_input` provide a miniscript descriptor for the input so you can check it against the
- /// `script_pubkey` and then ask it for the [`max_weight_to_satisfy`].
- ///
- /// This is an **EXPERIMENTAL** feature, API and other major changes are expected.
- ///
- /// In order to use [`Wallet::calculate_fee`] or [`Wallet::calculate_fee_rate`] for a transaction
- /// created with foreign UTXO(s) you must manually insert the corresponding TxOut(s) into the tx
- /// graph using the [`Wallet::insert_txout`] function.
- ///
- /// # Errors
- ///
- /// This method returns errors in the following circumstances:
- ///
- /// 1. The `psbt_input` does not contain a `witness_utxo` or `non_witness_utxo`.
- /// 2. The data in `non_witness_utxo` does not match what is in `outpoint`.
- ///
- /// Note unless you set [`only_witness_utxo`] any non-taproot `psbt_input` you pass to this
- /// method must have `non_witness_utxo` set otherwise you will get an error when [`finish`]
- /// is called.
- ///
- /// [`only_witness_utxo`]: Self::only_witness_utxo
- /// [`finish`]: Self::finish
- /// [`max_weight_to_satisfy`]: miniscript::Descriptor::max_weight_to_satisfy
- </span><span class="kw">pub fn </span>add_foreign_utxo(
- <span class="kw-2">&mut </span><span class="self">self</span>,
- outpoint: OutPoint,
- psbt_input: psbt::Input,
- satisfaction_weight: usize,
- ) -> <span class="prelude-ty">Result</span><<span class="kw-2">&mut </span><span class="self">Self</span>, AddForeignUtxoError> {
- <span class="self">self</span>.add_foreign_utxo_with_sequence(
- outpoint,
- psbt_input,
- satisfaction_weight,
- Sequence::MAX,
- )
- }
-
- <span class="doccomment">/// Same as [add_foreign_utxo](TxBuilder::add_foreign_utxo) but allows to set the nSequence value.
- </span><span class="kw">pub fn </span>add_foreign_utxo_with_sequence(
- <span class="kw-2">&mut </span><span class="self">self</span>,
- outpoint: OutPoint,
- psbt_input: psbt::Input,
- satisfaction_weight: usize,
- sequence: Sequence,
- ) -> <span class="prelude-ty">Result</span><<span class="kw-2">&mut </span><span class="self">Self</span>, AddForeignUtxoError> {
- <span class="kw">if </span>psbt_input.witness_utxo.is_none() {
- <span class="kw">match </span>psbt_input.non_witness_utxo.as_ref() {
- <span class="prelude-val">Some</span>(tx) => {
- <span class="kw">if </span>tx.txid() != outpoint.txid {
- <span class="kw">return </span><span class="prelude-val">Err</span>(AddForeignUtxoError::InvalidTxid {
- input_txid: tx.txid(),
- foreign_utxo: outpoint,
- });
- }
- <span class="kw">if </span>tx.output.len() <= outpoint.vout <span class="kw">as </span>usize {
- <span class="kw">return </span><span class="prelude-val">Err</span>(AddForeignUtxoError::InvalidOutpoint(outpoint));
- }
- }
- <span class="prelude-val">None </span>=> {
- <span class="kw">return </span><span class="prelude-val">Err</span>(AddForeignUtxoError::MissingUtxo);
- }
- }
- }
-
- <span class="self">self</span>.params.utxos.push(WeightedUtxo {
- satisfaction_weight,
- utxo: Utxo::Foreign {
- outpoint,
- sequence: <span class="prelude-val">Some</span>(sequence),
- psbt_input: Box::new(psbt_input),
- },
- });
-
- <span class="prelude-val">Ok</span>(<span class="self">self</span>)
- }
-
- <span class="doccomment">/// Only spend utxos added by [`add_utxo`].
- ///
- /// The wallet will **not** add additional utxos to the transaction even if they are needed to
- /// make the transaction valid.
- ///
- /// [`add_utxo`]: Self::add_utxo
- </span><span class="kw">pub fn </span>manually_selected_only(<span class="kw-2">&mut </span><span class="self">self</span>) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="self">self</span>.params.manually_selected_only = <span class="bool-val">true</span>;
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Replace the internal list of unspendable utxos with a new list
- ///
- /// It's important to note that the "must-be-spent" utxos added with [`TxBuilder::add_utxo`]
- /// have priority over these. See the docs of the two linked methods for more details.
- </span><span class="kw">pub fn </span>unspendable(<span class="kw-2">&mut </span><span class="self">self</span>, unspendable: Vec<OutPoint>) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="self">self</span>.params.unspendable = unspendable.into_iter().collect();
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Add a utxo to the internal list of unspendable utxos
- ///
- /// It's important to note that the "must-be-spent" utxos added with [`TxBuilder::add_utxo`]
- /// have priority over this. See the docs of the two linked methods for more details.
- </span><span class="kw">pub fn </span>add_unspendable(<span class="kw-2">&mut </span><span class="self">self</span>, unspendable: OutPoint) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="self">self</span>.params.unspendable.insert(unspendable);
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Sign with a specific sig hash
- ///
- /// **Use this option very carefully**
- </span><span class="kw">pub fn </span>sighash(<span class="kw-2">&mut </span><span class="self">self</span>, sighash: psbt::PsbtSighashType) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="self">self</span>.params.sighash = <span class="prelude-val">Some</span>(sighash);
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Choose the ordering for inputs and outputs of the transaction
- </span><span class="kw">pub fn </span>ordering(<span class="kw-2">&mut </span><span class="self">self</span>, ordering: TxOrdering) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="self">self</span>.params.ordering = ordering;
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Use a specific nLockTime while creating the transaction
- ///
- /// This can cause conflicts if the wallet's descriptors contain an "after" (OP_CLTV) operator.
- </span><span class="kw">pub fn </span>nlocktime(<span class="kw-2">&mut </span><span class="self">self</span>, locktime: absolute::LockTime) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="self">self</span>.params.locktime = <span class="prelude-val">Some</span>(locktime);
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Build a transaction with a specific version
- ///
- /// The `version` should always be greater than `0` and greater than `1` if the wallet's
- /// descriptors contain an "older" (OP_CSV) operator.
- </span><span class="kw">pub fn </span>version(<span class="kw-2">&mut </span><span class="self">self</span>, version: i32) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="self">self</span>.params.version = <span class="prelude-val">Some</span>(Version(version));
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Do not spend change outputs
- ///
- /// This effectively adds all the change outputs to the "unspendable" list. See
- /// [`TxBuilder::unspendable`].
- </span><span class="kw">pub fn </span>do_not_spend_change(<span class="kw-2">&mut </span><span class="self">self</span>) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="self">self</span>.params.change_policy = ChangeSpendPolicy::ChangeForbidden;
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Only spend change outputs
- ///
- /// This effectively adds all the non-change outputs to the "unspendable" list. See
- /// [`TxBuilder::unspendable`].
- </span><span class="kw">pub fn </span>only_spend_change(<span class="kw-2">&mut </span><span class="self">self</span>) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="self">self</span>.params.change_policy = ChangeSpendPolicy::OnlyChange;
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Set a specific [`ChangeSpendPolicy`]. See [`TxBuilder::do_not_spend_change`] and
- /// [`TxBuilder::only_spend_change`] for some shortcuts.
- </span><span class="kw">pub fn </span>change_policy(<span class="kw-2">&mut </span><span class="self">self</span>, change_policy: ChangeSpendPolicy) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="self">self</span>.params.change_policy = change_policy;
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Only Fill-in the [`psbt::Input::witness_utxo`](bitcoin::psbt::Input::witness_utxo) field when spending from
- /// SegWit descriptors.
- ///
- /// This reduces the size of the PSBT, but some signers might reject them due to the lack of
- /// the `non_witness_utxo`.
- </span><span class="kw">pub fn </span>only_witness_utxo(<span class="kw-2">&mut </span><span class="self">self</span>) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="self">self</span>.params.only_witness_utxo = <span class="bool-val">true</span>;
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Fill-in the [`psbt::Output::redeem_script`](bitcoin::psbt::Output::redeem_script) and
- /// [`psbt::Output::witness_script`](bitcoin::psbt::Output::witness_script) fields.
- ///
- /// This is useful for signers which always require it, like ColdCard hardware wallets.
- </span><span class="kw">pub fn </span>include_output_redeem_witness_script(<span class="kw-2">&mut </span><span class="self">self</span>) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="self">self</span>.params.include_output_redeem_witness_script = <span class="bool-val">true</span>;
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Fill-in the `PSBT_GLOBAL_XPUB` field with the extended keys contained in both the external
- /// and internal descriptors
- ///
- /// This is useful for offline signers that take part to a multisig. Some hardware wallets like
- /// BitBox and ColdCard are known to require this.
- </span><span class="kw">pub fn </span>add_global_xpubs(<span class="kw-2">&mut </span><span class="self">self</span>) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="self">self</span>.params.add_global_xpubs = <span class="bool-val">true</span>;
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Spend all the available inputs. This respects filters like [`TxBuilder::unspendable`] and the change policy.
- </span><span class="kw">pub fn </span>drain_wallet(<span class="kw-2">&mut </span><span class="self">self</span>) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="self">self</span>.params.drain_wallet = <span class="bool-val">true</span>;
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Choose the coin selection algorithm
- ///
- /// Overrides the [`DefaultCoinSelectionAlgorithm`].
- ///
- /// Note that this function consumes the builder and returns it so it is usually best to put this as the first call on the builder.
- </span><span class="kw">pub fn </span>coin_selection<P: CoinSelectionAlgorithm>(
- <span class="self">self</span>,
- coin_selection: P,
- ) -> TxBuilder<<span class="lifetime">'a</span>, P, Ctx> {
- TxBuilder {
- wallet: <span class="self">self</span>.wallet,
- params: <span class="self">self</span>.params,
- coin_selection,
- phantom: PhantomData,
- }
- }
-
- <span class="doccomment">/// Enable signaling RBF
- ///
- /// This will use the default nSequence value of `0xFFFFFFFD`.
- </span><span class="kw">pub fn </span>enable_rbf(<span class="kw-2">&mut </span><span class="self">self</span>) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="self">self</span>.params.rbf = <span class="prelude-val">Some</span>(RbfValue::Default);
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Enable signaling RBF with a specific nSequence value
- ///
- /// This can cause conflicts if the wallet's descriptors contain an "older" (OP_CSV) operator
- /// and the given `nsequence` is lower than the CSV value.
- ///
- /// If the `nsequence` is higher than `0xFFFFFFFD` an error will be thrown, since it would not
- /// be a valid nSequence to signal RBF.
- </span><span class="kw">pub fn </span>enable_rbf_with_sequence(<span class="kw-2">&mut </span><span class="self">self</span>, nsequence: Sequence) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="self">self</span>.params.rbf = <span class="prelude-val">Some</span>(RbfValue::Value(nsequence));
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Set the current blockchain height.
- ///
- /// This will be used to:
- /// 1. Set the nLockTime for preventing fee sniping.
- /// **Note**: This will be ignored if you manually specify a nlocktime using [`TxBuilder::nlocktime`].
- /// 2. Decide whether coinbase outputs are mature or not. If the coinbase outputs are not
- /// mature at `current_height`, we ignore them in the coin selection.
- /// If you want to create a transaction that spends immature coinbase inputs, manually
- /// add them using [`TxBuilder::add_utxos`].
- ///
- /// In both cases, if you don't provide a current height, we use the last sync height.
- </span><span class="kw">pub fn </span>current_height(<span class="kw-2">&mut </span><span class="self">self</span>, height: u32) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="self">self</span>.params.current_height =
- <span class="prelude-val">Some</span>(absolute::LockTime::from_height(height).expect(<span class="string">"Invalid height"</span>));
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Set whether or not the dust limit is checked.
- ///
- /// **Note**: by avoiding a dust limit check you may end up with a transaction that is non-standard.
- </span><span class="kw">pub fn </span>allow_dust(<span class="kw-2">&mut </span><span class="self">self</span>, allow_dust: bool) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="self">self</span>.params.allow_dust = allow_dust;
- <span class="self">self
- </span>}
-}
-
-<span class="kw">impl</span><<span class="lifetime">'a</span>, Cs: CoinSelectionAlgorithm, Ctx> TxBuilder<<span class="lifetime">'a</span>, Cs, Ctx> {
- <span class="doccomment">/// Finish building the transaction.
- ///
- /// Returns a new [`Psbt`] per [`BIP174`].
- ///
- /// [`BIP174`]: https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki
- </span><span class="kw">pub fn </span>finish(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><Psbt, CreateTxError> {
- <span class="self">self</span>.wallet
- .borrow_mut()
- .create_tx(<span class="self">self</span>.coin_selection, <span class="self">self</span>.params)
- }
-}
-
-<span class="attr">#[derive(Debug)]
-</span><span class="doccomment">/// Error returned from [`TxBuilder::add_utxo`] and [`TxBuilder::add_utxos`]
-</span><span class="kw">pub enum </span>AddUtxoError {
- <span class="doccomment">/// Happens when trying to spend an UTXO that is not in the internal database
- </span>UnknownUtxo(OutPoint),
-}
-
-<span class="kw">impl </span>fmt::Display <span class="kw">for </span>AddUtxoError {
- <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
- <span class="kw">match </span><span class="self">self </span>{
- <span class="self">Self</span>::UnknownUtxo(outpoint) => <span class="macro">write!</span>(
- f,
- <span class="string">"UTXO not found in the internal database for txid: {} with vout: {}"</span>,
- outpoint.txid, outpoint.vout
- ),
- }
- }
-}
-
-<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
-</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>AddUtxoError {}
-
-<span class="attr">#[derive(Debug)]
-</span><span class="doccomment">/// Error returned from [`TxBuilder::add_foreign_utxo`].
-</span><span class="kw">pub enum </span>AddForeignUtxoError {
- <span class="doccomment">/// Foreign utxo outpoint txid does not match PSBT input txid
- </span>InvalidTxid {
- <span class="doccomment">/// PSBT input txid
- </span>input_txid: Txid,
- <span class="doccomment">/// Foreign UTXO outpoint
- </span>foreign_utxo: OutPoint,
- },
- <span class="doccomment">/// Requested outpoint doesn't exist in the tx (vout greater than available outputs)
- </span>InvalidOutpoint(OutPoint),
- <span class="doccomment">/// Foreign utxo missing witness_utxo or non_witness_utxo
- </span>MissingUtxo,
-}
-
-<span class="kw">impl </span>fmt::Display <span class="kw">for </span>AddForeignUtxoError {
- <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
- <span class="kw">match </span><span class="self">self </span>{
- <span class="self">Self</span>::InvalidTxid {
- input_txid,
- foreign_utxo,
- } => <span class="macro">write!</span>(
- f,
- <span class="string">"Foreign UTXO outpoint txid: {} does not match PSBT input txid: {}"</span>,
- foreign_utxo.txid, input_txid,
- ),
- <span class="self">Self</span>::InvalidOutpoint(outpoint) => <span class="macro">write!</span>(
- f,
- <span class="string">"Requested outpoint doesn't exist for txid: {} with vout: {}"</span>,
- outpoint.txid, outpoint.vout,
- ),
- <span class="self">Self</span>::MissingUtxo => <span class="macro">write!</span>(f, <span class="string">"Foreign utxo missing witness_utxo or non_witness_utxo"</span>),
- }
- }
-}
-
-<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
-</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>AddForeignUtxoError {}
-
-<span class="attr">#[derive(Debug)]
-</span><span class="doccomment">/// Error returned from [`TxBuilder::allow_shrinking`]
-</span><span class="kw">pub enum </span>AllowShrinkingError {
- <span class="doccomment">/// Script/PubKey was not in the original transaction
- </span>MissingScriptPubKey(ScriptBuf),
-}
-
-<span class="kw">impl </span>fmt::Display <span class="kw">for </span>AllowShrinkingError {
- <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
- <span class="kw">match </span><span class="self">self </span>{
- <span class="self">Self</span>::MissingScriptPubKey(script_buf) => <span class="macro">write!</span>(
- f,
- <span class="string">"Script/PubKey was not in the original transaction: {}"</span>,
- script_buf,
- ),
- }
- }
-}
-
-<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
-</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>AllowShrinkingError {}
-
-<span class="kw">impl</span><<span class="lifetime">'a</span>, Cs: CoinSelectionAlgorithm> TxBuilder<<span class="lifetime">'a</span>, Cs, CreateTx> {
- <span class="doccomment">/// Replace the recipients already added with a new list
- </span><span class="kw">pub fn </span>set_recipients(<span class="kw-2">&mut </span><span class="self">self</span>, recipients: Vec<(ScriptBuf, Amount)>) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="self">self</span>.params.recipients = recipients
- .into_iter()
- .map(|(script, amount)| (script, amount.to_sat()))
- .collect();
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Add a recipient to the internal list
- </span><span class="kw">pub fn </span>add_recipient(<span class="kw-2">&mut </span><span class="self">self</span>, script_pubkey: ScriptBuf, amount: Amount) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="self">self</span>.params
- .recipients
- .push((script_pubkey, amount.to_sat()));
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Add data as an output, using OP_RETURN
- </span><span class="kw">pub fn </span>add_data<T: AsRef<PushBytes>>(<span class="kw-2">&mut </span><span class="self">self</span>, data: <span class="kw-2">&</span>T) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="kw">let </span>script = ScriptBuf::new_op_return(data);
- <span class="self">self</span>.add_recipient(script, Amount::ZERO);
- <span class="self">self
- </span>}
-
- <span class="doccomment">/// Sets the address to *drain* excess coins to.
- ///
- /// Usually, when there are excess coins they are sent to a change address generated by the
- /// wallet. This option replaces the usual change address with an arbitrary `script_pubkey` of
- /// your choosing. Just as with a change output, if the drain output is not needed (the excess
- /// coins are too small) it will not be included in the resulting transaction. The only
- /// difference is that it is valid to use `drain_to` without setting any ordinary recipients
- /// with [`add_recipient`] (but it is perfectly fine to add recipients as well).
- ///
- /// If you choose not to set any recipients, you should either provide the utxos that the
- /// transaction should spend via [`add_utxos`], or set [`drain_wallet`] to spend all of them.
- ///
- /// When bumping the fees of a transaction made with this option, you probably want to
- /// use [`allow_shrinking`] to allow this output to be reduced to pay for the extra fees.
- ///
- /// # Example
- ///
- /// `drain_to` is very useful for draining all the coins in a wallet with [`drain_wallet`] to a
- /// single address.
- ///
- /// ```
- /// # use std::str::FromStr;
- /// # use bitcoin::*;
- /// # use bdk::*;
- /// # use bdk::wallet::ChangeSet;
- /// # use bdk::wallet::error::CreateTxError;
- /// # use bdk::wallet::tx_builder::CreateTx;
- /// # use bdk_persist::PersistBackend;
- /// # use anyhow::Error;
- /// # let to_address =
- /// Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt")
- /// .unwrap()
- /// .assume_checked();
- /// # let mut wallet = doctest_wallet!();
- /// let mut tx_builder = wallet.build_tx();
- ///
- /// tx_builder
- /// // Spend all outputs in this wallet.
- /// .drain_wallet()
- /// // Send the excess (which is all the coins minus the fee) to this address.
- /// .drain_to(to_address.script_pubkey())
- /// .fee_rate(FeeRate::from_sat_per_vb(5).expect("valid feerate"))
- /// .enable_rbf();
- /// let psbt = tx_builder.finish()?;
- /// # Ok::<(), anyhow::Error>(())
- /// ```
- ///
- /// [`allow_shrinking`]: Self::allow_shrinking
- /// [`add_recipient`]: Self::add_recipient
- /// [`add_utxos`]: Self::add_utxos
- /// [`drain_wallet`]: Self::drain_wallet
- </span><span class="kw">pub fn </span>drain_to(<span class="kw-2">&mut </span><span class="self">self</span>, script_pubkey: ScriptBuf) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
- <span class="self">self</span>.params.drain_to = <span class="prelude-val">Some</span>(script_pubkey);
- <span class="self">self
- </span>}
-}
-
-<span class="comment">// methods supported only by bump_fee
-</span><span class="kw">impl</span><<span class="lifetime">'a</span>> TxBuilder<<span class="lifetime">'a</span>, DefaultCoinSelectionAlgorithm, BumpFee> {
- <span class="doccomment">/// Explicitly tells the wallet that it is allowed to reduce the amount of the output matching this
- /// `script_pubkey` in order to bump the transaction fee. Without specifying this the wallet
- /// will attempt to find a change output to shrink instead.
- ///
- /// **Note** that the output may shrink to below the dust limit and therefore be removed. If it is
- /// preserved then it is currently not guaranteed to be in the same position as it was
- /// originally.
- ///
- /// Returns an `Err` if `script_pubkey` can't be found among the recipients of the
- /// transaction we are bumping.
- </span><span class="kw">pub fn </span>allow_shrinking(
- <span class="kw-2">&mut </span><span class="self">self</span>,
- script_pubkey: ScriptBuf,
- ) -> <span class="prelude-ty">Result</span><<span class="kw-2">&mut </span><span class="self">Self</span>, AllowShrinkingError> {
- <span class="kw">match </span><span class="self">self
- </span>.params
- .recipients
- .iter()
- .position(|(recipient_script, <span class="kw">_</span>)| <span class="kw-2">*</span>recipient_script == script_pubkey)
- {
- <span class="prelude-val">Some</span>(position) => {
- <span class="self">self</span>.params.recipients.remove(position);
- <span class="self">self</span>.params.drain_to = <span class="prelude-val">Some</span>(script_pubkey);
- <span class="prelude-val">Ok</span>(<span class="self">self</span>)
- }
- <span class="prelude-val">None </span>=> <span class="prelude-val">Err</span>(AllowShrinkingError::MissingScriptPubKey(script_pubkey)),
- }
- }
-}
-
-<span class="doccomment">/// Ordering of the transaction's inputs and outputs
-</span><span class="attr">#[derive(Default, Debug, Ord, PartialOrd, Eq, PartialEq, Hash, Clone, Copy)]
-</span><span class="kw">pub enum </span>TxOrdering {
- <span class="doccomment">/// Randomized (default)
- </span><span class="attr">#[default]
- </span>Shuffle,
- <span class="doccomment">/// Unchanged
- </span>Untouched,
- <span class="doccomment">/// BIP69 / Lexicographic
- </span>Bip69Lexicographic,
-}
-
-<span class="kw">impl </span>TxOrdering {
- <span class="doccomment">/// Sort transaction inputs and outputs by [`TxOrdering`] variant
- </span><span class="kw">pub fn </span>sort_tx(<span class="kw-2">&</span><span class="self">self</span>, tx: <span class="kw-2">&mut </span>Transaction) {
- <span class="kw">match </span><span class="self">self </span>{
- TxOrdering::Untouched => {}
- TxOrdering::Shuffle => {
- <span class="kw">use </span>rand::seq::SliceRandom;
- <span class="kw">let </span><span class="kw-2">mut </span>rng = rand::thread_rng();
- tx.input.shuffle(<span class="kw-2">&mut </span>rng);
- tx.output.shuffle(<span class="kw-2">&mut </span>rng);
- }
- TxOrdering::Bip69Lexicographic => {
- tx.input.sort_unstable_by_key(|txin| {
- (txin.previous_output.txid, txin.previous_output.vout)
- });
- tx.output
- .sort_unstable_by_key(|txout| (txout.value, txout.script_pubkey.clone()));
- }
- }
- }
-}
-
-<span class="doccomment">/// Transaction version
-///
-/// Has a default value of `1`
-</span><span class="attr">#[derive(Debug, Ord, PartialOrd, Eq, PartialEq, Hash, Clone, Copy)]
-</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">struct </span>Version(<span class="kw">pub</span>(<span class="kw">crate</span>) i32);
-
-<span class="kw">impl </span>Default <span class="kw">for </span>Version {
- <span class="kw">fn </span>default() -> <span class="self">Self </span>{
- Version(<span class="number">1</span>)
- }
-}
-
-<span class="doccomment">/// RBF nSequence value
-///
-/// Has a default value of `0xFFFFFFFD`
-</span><span class="attr">#[derive(Debug, Ord, PartialOrd, Eq, PartialEq, Hash, Clone, Copy)]
-</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">enum </span>RbfValue {
- Default,
- Value(Sequence),
-}
-
-<span class="kw">impl </span>RbfValue {
- <span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>get_value(<span class="kw-2">&</span><span class="self">self</span>) -> Sequence {
- <span class="kw">match </span><span class="self">self </span>{
- RbfValue::Default => Sequence::ENABLE_RBF_NO_LOCKTIME,
- RbfValue::Value(v) => <span class="kw-2">*</span>v,
- }
- }
-}
-
-<span class="doccomment">/// Policy regarding the use of change outputs when creating a transaction
-</span><span class="attr">#[derive(Default, Debug, Ord, PartialOrd, Eq, PartialEq, Hash, Clone, Copy)]
-</span><span class="kw">pub enum </span>ChangeSpendPolicy {
- <span class="doccomment">/// Use both change and non-change outputs (default)
- </span><span class="attr">#[default]
- </span>ChangeAllowed,
- <span class="doccomment">/// Only use change outputs (see [`TxBuilder::only_spend_change`])
- </span>OnlyChange,
- <span class="doccomment">/// Only use non-change outputs (see [`TxBuilder::do_not_spend_change`])
- </span>ChangeForbidden,
-}
-
-<span class="kw">impl </span>ChangeSpendPolicy {
- <span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>is_satisfied_by(<span class="kw-2">&</span><span class="self">self</span>, utxo: <span class="kw-2">&</span>LocalOutput) -> bool {
- <span class="kw">match </span><span class="self">self </span>{
- ChangeSpendPolicy::ChangeAllowed => <span class="bool-val">true</span>,
- ChangeSpendPolicy::OnlyChange => utxo.keychain == KeychainKind::Internal,
- ChangeSpendPolicy::ChangeForbidden => utxo.keychain == KeychainKind::External,
- }
- }
-}
-
-<span class="attr">#[cfg(test)]
-</span><span class="kw">mod </span>test {
- <span class="kw">const </span>ORDERING_TEST_TX: <span class="kw-2">&</span>str = <span class="string">"0200000003c26f3eb7932f7acddc5ddd26602b77e7516079b03090a16e2c2f54\
- 85d1fd600f0100000000ffffffffc26f3eb7932f7acddc5ddd26602b77e75160\
- 79b03090a16e2c2f5485d1fd600f0000000000ffffffff571fb3e02278217852\
- dd5d299947e2b7354a639adc32ec1fa7b82cfb5dec530e0500000000ffffffff\
- 03e80300000000000002aaeee80300000000000001aa200300000000000001ff\
- 00000000"</span>;
- <span class="macro">macro_rules! </span>ordering_test_tx {
- () => {
- deserialize::<bitcoin::Transaction>(<span class="kw-2">&</span>Vec::<u8>::from_hex(ORDERING_TEST_TX).unwrap())
- .unwrap()
- };
- }
-
- <span class="kw">use </span>bdk_chain::ConfirmationTime;
- <span class="kw">use </span>bitcoin::consensus::deserialize;
- <span class="kw">use </span>bitcoin::hex::FromHex;
- <span class="kw">use </span>bitcoin::TxOut;
-
- <span class="kw">use super</span>::<span class="kw-2">*</span>;
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_output_ordering_default_shuffle() {
- <span class="macro">assert_eq!</span>(TxOrdering::default(), TxOrdering::Shuffle);
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_output_ordering_untouched() {
- <span class="kw">let </span>original_tx = <span class="macro">ordering_test_tx!</span>();
- <span class="kw">let </span><span class="kw-2">mut </span>tx = original_tx.clone();
-
- TxOrdering::Untouched.sort_tx(<span class="kw-2">&mut </span>tx);
-
- <span class="macro">assert_eq!</span>(original_tx, tx);
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_output_ordering_shuffle() {
- <span class="kw">let </span>original_tx = <span class="macro">ordering_test_tx!</span>();
- <span class="kw">let </span><span class="kw-2">mut </span>tx = original_tx.clone();
-
- (<span class="number">0</span>..<span class="number">40</span>)
- .find(|<span class="kw">_</span>| {
- TxOrdering::Shuffle.sort_tx(<span class="kw-2">&mut </span>tx);
- original_tx.input != tx.input
- })
- .expect(<span class="string">"it should have moved the inputs at least once"</span>);
-
- <span class="kw">let </span><span class="kw-2">mut </span>tx = original_tx.clone();
- (<span class="number">0</span>..<span class="number">40</span>)
- .find(|<span class="kw">_</span>| {
- TxOrdering::Shuffle.sort_tx(<span class="kw-2">&mut </span>tx);
- original_tx.output != tx.output
- })
- .expect(<span class="string">"it should have moved the outputs at least once"</span>);
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_output_ordering_bip69() {
- <span class="kw">use </span>core::str::FromStr;
-
- <span class="kw">let </span>original_tx = <span class="macro">ordering_test_tx!</span>();
- <span class="kw">let </span><span class="kw-2">mut </span>tx = original_tx;
-
- TxOrdering::Bip69Lexicographic.sort_tx(<span class="kw-2">&mut </span>tx);
-
- <span class="macro">assert_eq!</span>(
- tx.input[<span class="number">0</span>].previous_output,
- bitcoin::OutPoint::from_str(
- <span class="string">"0e53ec5dfb2cb8a71fec32dc9a634a35b7e24799295ddd5278217822e0b31f57:5"
- </span>)
- .unwrap()
- );
- <span class="macro">assert_eq!</span>(
- tx.input[<span class="number">1</span>].previous_output,
- bitcoin::OutPoint::from_str(
- <span class="string">"0f60fdd185542f2c6ea19030b0796051e7772b6026dd5ddccd7a2f93b73e6fc2:0"
- </span>)
- .unwrap()
- );
- <span class="macro">assert_eq!</span>(
- tx.input[<span class="number">2</span>].previous_output,
- bitcoin::OutPoint::from_str(
- <span class="string">"0f60fdd185542f2c6ea19030b0796051e7772b6026dd5ddccd7a2f93b73e6fc2:1"
- </span>)
- .unwrap()
- );
-
- <span class="macro">assert_eq!</span>(tx.output[<span class="number">0</span>].value.to_sat(), <span class="number">800</span>);
- <span class="macro">assert_eq!</span>(tx.output[<span class="number">1</span>].script_pubkey, ScriptBuf::from(<span class="macro">vec!</span>[<span class="number">0xAA</span>]));
- <span class="macro">assert_eq!</span>(
- tx.output[<span class="number">2</span>].script_pubkey,
- ScriptBuf::from(<span class="macro">vec!</span>[<span class="number">0xAA</span>, <span class="number">0xEE</span>])
- );
- }
-
- <span class="kw">fn </span>get_test_utxos() -> Vec<LocalOutput> {
- <span class="kw">use </span>bitcoin::hashes::Hash;
-
- <span class="macro">vec!</span>[
- LocalOutput {
- outpoint: OutPoint {
- txid: bitcoin::Txid::from_slice(<span class="kw-2">&</span>[<span class="number">0</span>; <span class="number">32</span>]).unwrap(),
- vout: <span class="number">0</span>,
- },
- txout: TxOut::NULL,
- keychain: KeychainKind::External,
- is_spent: <span class="bool-val">false</span>,
- confirmation_time: ConfirmationTime::Unconfirmed { last_seen: <span class="number">0 </span>},
- derivation_index: <span class="number">0</span>,
- },
- LocalOutput {
- outpoint: OutPoint {
- txid: bitcoin::Txid::from_slice(<span class="kw-2">&</span>[<span class="number">0</span>; <span class="number">32</span>]).unwrap(),
- vout: <span class="number">1</span>,
- },
- txout: TxOut::NULL,
- keychain: KeychainKind::Internal,
- is_spent: <span class="bool-val">false</span>,
- confirmation_time: ConfirmationTime::Confirmed {
- height: <span class="number">32</span>,
- time: <span class="number">42</span>,
- },
- derivation_index: <span class="number">1</span>,
- },
- ]
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_change_spend_policy_default() {
- <span class="kw">let </span>change_spend_policy = ChangeSpendPolicy::default();
- <span class="kw">let </span>filtered = get_test_utxos()
- .into_iter()
- .filter(|u| change_spend_policy.is_satisfied_by(u))
- .count();
-
- <span class="macro">assert_eq!</span>(filtered, <span class="number">2</span>);
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_change_spend_policy_no_internal() {
- <span class="kw">let </span>change_spend_policy = ChangeSpendPolicy::ChangeForbidden;
- <span class="kw">let </span>filtered = get_test_utxos()
- .into_iter()
- .filter(|u| change_spend_policy.is_satisfied_by(u))
- .collect::<Vec<<span class="kw">_</span>>>();
-
- <span class="macro">assert_eq!</span>(filtered.len(), <span class="number">1</span>);
- <span class="macro">assert_eq!</span>(filtered[<span class="number">0</span>].keychain, KeychainKind::External);
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_change_spend_policy_only_internal() {
- <span class="kw">let </span>change_spend_policy = ChangeSpendPolicy::OnlyChange;
- <span class="kw">let </span>filtered = get_test_utxos()
- .into_iter()
- .filter(|u| change_spend_policy.is_satisfied_by(u))
- .collect::<Vec<<span class="kw">_</span>>>();
-
- <span class="macro">assert_eq!</span>(filtered.len(), <span class="number">1</span>);
- <span class="macro">assert_eq!</span>(filtered[<span class="number">0</span>].keychain, KeychainKind::Internal);
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_default_tx_version_1() {
- <span class="kw">let </span>version = Version::default();
- <span class="macro">assert_eq!</span>(version.<span class="number">0</span>, <span class="number">1</span>);
- }
-}
-</code></pre></div>
-</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+++ /dev/null
-<!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="Source of the Rust file `crates/bdk/src/wallet/utils.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>utils.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk/index.html">
- <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
-<a href="#2" id="2">2</a>
-<a href="#3" id="3">3</a>
-<a href="#4" id="4">4</a>
-<a href="#5" id="5">5</a>
-<a href="#6" id="6">6</a>
-<a href="#7" id="7">7</a>
-<a href="#8" id="8">8</a>
-<a href="#9" id="9">9</a>
-<a href="#10" id="10">10</a>
-<a href="#11" id="11">11</a>
-<a href="#12" id="12">12</a>
-<a href="#13" id="13">13</a>
-<a href="#14" id="14">14</a>
-<a href="#15" id="15">15</a>
-<a href="#16" id="16">16</a>
-<a href="#17" id="17">17</a>
-<a href="#18" id="18">18</a>
-<a href="#19" id="19">19</a>
-<a href="#20" id="20">20</a>
-<a href="#21" id="21">21</a>
-<a href="#22" id="22">22</a>
-<a href="#23" id="23">23</a>
-<a href="#24" id="24">24</a>
-<a href="#25" id="25">25</a>
-<a href="#26" id="26">26</a>
-<a href="#27" id="27">27</a>
-<a href="#28" id="28">28</a>
-<a href="#29" id="29">29</a>
-<a href="#30" id="30">30</a>
-<a href="#31" id="31">31</a>
-<a href="#32" id="32">32</a>
-<a href="#33" id="33">33</a>
-<a href="#34" id="34">34</a>
-<a href="#35" id="35">35</a>
-<a href="#36" id="36">36</a>
-<a href="#37" id="37">37</a>
-<a href="#38" id="38">38</a>
-<a href="#39" id="39">39</a>
-<a href="#40" id="40">40</a>
-<a href="#41" id="41">41</a>
-<a href="#42" id="42">42</a>
-<a href="#43" id="43">43</a>
-<a href="#44" id="44">44</a>
-<a href="#45" id="45">45</a>
-<a href="#46" id="46">46</a>
-<a href="#47" id="47">47</a>
-<a href="#48" id="48">48</a>
-<a href="#49" id="49">49</a>
-<a href="#50" id="50">50</a>
-<a href="#51" id="51">51</a>
-<a href="#52" id="52">52</a>
-<a href="#53" id="53">53</a>
-<a href="#54" id="54">54</a>
-<a href="#55" id="55">55</a>
-<a href="#56" id="56">56</a>
-<a href="#57" id="57">57</a>
-<a href="#58" id="58">58</a>
-<a href="#59" id="59">59</a>
-<a href="#60" id="60">60</a>
-<a href="#61" id="61">61</a>
-<a href="#62" id="62">62</a>
-<a href="#63" id="63">63</a>
-<a href="#64" id="64">64</a>
-<a href="#65" id="65">65</a>
-<a href="#66" id="66">66</a>
-<a href="#67" id="67">67</a>
-<a href="#68" id="68">68</a>
-<a href="#69" id="69">69</a>
-<a href="#70" id="70">70</a>
-<a href="#71" id="71">71</a>
-<a href="#72" id="72">72</a>
-<a href="#73" id="73">73</a>
-<a href="#74" id="74">74</a>
-<a href="#75" id="75">75</a>
-<a href="#76" id="76">76</a>
-<a href="#77" id="77">77</a>
-<a href="#78" id="78">78</a>
-<a href="#79" id="79">79</a>
-<a href="#80" id="80">80</a>
-<a href="#81" id="81">81</a>
-<a href="#82" id="82">82</a>
-<a href="#83" id="83">83</a>
-<a href="#84" id="84">84</a>
-<a href="#85" id="85">85</a>
-<a href="#86" id="86">86</a>
-<a href="#87" id="87">87</a>
-<a href="#88" id="88">88</a>
-<a href="#89" id="89">89</a>
-<a href="#90" id="90">90</a>
-<a href="#91" id="91">91</a>
-<a href="#92" id="92">92</a>
-<a href="#93" id="93">93</a>
-<a href="#94" id="94">94</a>
-<a href="#95" id="95">95</a>
-<a href="#96" id="96">96</a>
-<a href="#97" id="97">97</a>
-<a href="#98" id="98">98</a>
-<a href="#99" id="99">99</a>
-<a href="#100" id="100">100</a>
-<a href="#101" id="101">101</a>
-<a href="#102" id="102">102</a>
-<a href="#103" id="103">103</a>
-<a href="#104" id="104">104</a>
-<a href="#105" id="105">105</a>
-<a href="#106" id="106">106</a>
-<a href="#107" id="107">107</a>
-<a href="#108" id="108">108</a>
-<a href="#109" id="109">109</a>
-<a href="#110" id="110">110</a>
-<a href="#111" id="111">111</a>
-<a href="#112" id="112">112</a>
-<a href="#113" id="113">113</a>
-<a href="#114" id="114">114</a>
-<a href="#115" id="115">115</a>
-<a href="#116" id="116">116</a>
-<a href="#117" id="117">117</a>
-<a href="#118" id="118">118</a>
-<a href="#119" id="119">119</a>
-<a href="#120" id="120">120</a>
-<a href="#121" id="121">121</a>
-<a href="#122" id="122">122</a>
-<a href="#123" id="123">123</a>
-<a href="#124" id="124">124</a>
-<a href="#125" id="125">125</a>
-<a href="#126" id="126">126</a>
-<a href="#127" id="127">127</a>
-<a href="#128" id="128">128</a>
-<a href="#129" id="129">129</a>
-<a href="#130" id="130">130</a>
-<a href="#131" id="131">131</a>
-<a href="#132" id="132">132</a>
-<a href="#133" id="133">133</a>
-<a href="#134" id="134">134</a>
-<a href="#135" id="135">135</a>
-<a href="#136" id="136">136</a>
-<a href="#137" id="137">137</a>
-<a href="#138" id="138">138</a>
-<a href="#139" id="139">139</a>
-<a href="#140" id="140">140</a>
-<a href="#141" id="141">141</a>
-<a href="#142" id="142">142</a>
-<a href="#143" id="143">143</a>
-<a href="#144" id="144">144</a>
-<a href="#145" id="145">145</a>
-<a href="#146" id="146">146</a>
-<a href="#147" id="147">147</a>
-<a href="#148" id="148">148</a>
-<a href="#149" id="149">149</a>
-<a href="#150" id="150">150</a>
-<a href="#151" id="151">151</a>
-<a href="#152" id="152">152</a>
-<a href="#153" id="153">153</a>
-<a href="#154" id="154">154</a>
-<a href="#155" id="155">155</a>
-<a href="#156" id="156">156</a>
-<a href="#157" id="157">157</a>
-<a href="#158" id="158">158</a>
-<a href="#159" id="159">159</a>
-<a href="#160" id="160">160</a>
-<a href="#161" id="161">161</a>
-<a href="#162" id="162">162</a>
-<a href="#163" id="163">163</a>
-<a href="#164" id="164">164</a>
-<a href="#165" id="165">165</a>
-<a href="#166" id="166">166</a>
-<a href="#167" id="167">167</a>
-<a href="#168" id="168">168</a>
-<a href="#169" id="169">169</a>
-<a href="#170" id="170">170</a>
-<a href="#171" id="171">171</a>
-<a href="#172" id="172">172</a>
-<a href="#173" id="173">173</a>
-<a href="#174" id="174">174</a>
-<a href="#175" id="175">175</a>
-<a href="#176" id="176">176</a>
-<a href="#177" id="177">177</a>
-<a href="#178" id="178">178</a>
-<a href="#179" id="179">179</a>
-<a href="#180" id="180">180</a>
-<a href="#181" id="181">181</a>
-<a href="#182" id="182">182</a>
-<a href="#183" id="183">183</a>
-<a href="#184" id="184">184</a>
-<a href="#185" id="185">185</a>
-</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
-// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
-//
-// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
-//
-// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
-// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
-// You may not use this file except in accordance with one or both of these
-// licenses.
-
-</span><span class="kw">use </span>bitcoin::secp256k1::{All, Secp256k1};
-<span class="kw">use </span>bitcoin::{absolute, Script, Sequence};
-
-<span class="kw">use </span>miniscript::{MiniscriptKey, Satisfier, ToPublicKey};
-
-<span class="doccomment">/// Trait to check if a value is below the dust limit.
-/// We are performing dust value calculation for a given script public key using rust-bitcoin to
-/// keep it compatible with network dust rate
-</span><span class="comment">// we implement this trait to make sure we don't mess up the comparison with off-by-one like a <
-// instead of a <= etc.
-</span><span class="kw">pub trait </span>IsDust {
- <span class="doccomment">/// Check whether or not a value is below dust limit
- </span><span class="kw">fn </span>is_dust(<span class="kw-2">&</span><span class="self">self</span>, script: <span class="kw-2">&</span>Script) -> bool;
-}
-
-<span class="kw">impl </span>IsDust <span class="kw">for </span>u64 {
- <span class="kw">fn </span>is_dust(<span class="kw-2">&</span><span class="self">self</span>, script: <span class="kw-2">&</span>Script) -> bool {
- <span class="kw-2">*</span><span class="self">self </span>< script.dust_value().to_sat()
- }
-}
-
-<span class="kw">pub struct </span>After {
- <span class="kw">pub </span>current_height: <span class="prelude-ty">Option</span><u32>,
- <span class="kw">pub </span>assume_height_reached: bool,
-}
-
-<span class="kw">impl </span>After {
- <span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>new(current_height: <span class="prelude-ty">Option</span><u32>, assume_height_reached: bool) -> After {
- After {
- current_height,
- assume_height_reached,
- }
- }
-}
-
-<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>check_nsequence_rbf(rbf: Sequence, csv: Sequence) -> bool {
- <span class="comment">// The RBF value must enable relative timelocks
- </span><span class="kw">if </span>!rbf.is_relative_lock_time() {
- <span class="kw">return </span><span class="bool-val">false</span>;
- }
-
- <span class="comment">// Both values should be represented in the same unit (either time-based or
- // block-height based)
- </span><span class="kw">if </span>rbf.is_time_locked() != csv.is_time_locked() {
- <span class="kw">return </span><span class="bool-val">false</span>;
- }
-
- <span class="comment">// The value should be at least `csv`
- </span><span class="kw">if </span>rbf < csv {
- <span class="kw">return </span><span class="bool-val">false</span>;
- }
-
- <span class="bool-val">true
-</span>}
-
-<span class="kw">impl</span><Pk: MiniscriptKey + ToPublicKey> Satisfier<Pk> <span class="kw">for </span>After {
- <span class="kw">fn </span>check_after(<span class="kw-2">&</span><span class="self">self</span>, n: absolute::LockTime) -> bool {
- <span class="kw">if let </span><span class="prelude-val">Some</span>(current_height) = <span class="self">self</span>.current_height {
- current_height >= n.to_consensus_u32()
- } <span class="kw">else </span>{
- <span class="self">self</span>.assume_height_reached
- }
- }
-}
-
-<span class="kw">pub struct </span>Older {
- <span class="kw">pub </span>current_height: <span class="prelude-ty">Option</span><u32>,
- <span class="kw">pub </span>create_height: <span class="prelude-ty">Option</span><u32>,
- <span class="kw">pub </span>assume_height_reached: bool,
-}
-
-<span class="kw">impl </span>Older {
- <span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>new(
- current_height: <span class="prelude-ty">Option</span><u32>,
- create_height: <span class="prelude-ty">Option</span><u32>,
- assume_height_reached: bool,
- ) -> Older {
- Older {
- current_height,
- create_height,
- assume_height_reached,
- }
- }
-}
-
-<span class="kw">impl</span><Pk: MiniscriptKey + ToPublicKey> Satisfier<Pk> <span class="kw">for </span>Older {
- <span class="kw">fn </span>check_older(<span class="kw-2">&</span><span class="self">self</span>, n: Sequence) -> bool {
- <span class="kw">if let </span><span class="prelude-val">Some</span>(current_height) = <span class="self">self</span>.current_height {
- <span class="comment">// TODO: test >= / >
- </span>current_height
- >= <span class="self">self
- </span>.create_height
- .unwrap_or(<span class="number">0</span>)
- .checked_add(n.to_consensus_u32())
- .expect(<span class="string">"Overflowing addition"</span>)
- } <span class="kw">else </span>{
- <span class="self">self</span>.assume_height_reached
- }
- }
-}
-
-<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">type </span>SecpCtx = Secp256k1<All>;
-
-<span class="attr">#[cfg(test)]
-</span><span class="kw">mod </span>test {
- <span class="comment">// When nSequence is lower than this flag the timelock is interpreted as block-height-based,
- // otherwise it's time-based
- </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">const </span>SEQUENCE_LOCKTIME_TYPE_FLAG: u32 = <span class="number">1 </span><< <span class="number">22</span>;
-
- <span class="kw">use super</span>::{check_nsequence_rbf, IsDust};
- <span class="kw">use </span><span class="kw">crate</span>::bitcoin::{Address, Network, Sequence};
- <span class="kw">use </span>core::str::FromStr;
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_is_dust() {
- <span class="kw">let </span>script_p2pkh = Address::from_str(<span class="string">"1GNgwA8JfG7Kc8akJ8opdNWJUihqUztfPe"</span>)
- .unwrap()
- .require_network(Network::Bitcoin)
- .unwrap()
- .script_pubkey();
- <span class="macro">assert!</span>(script_p2pkh.is_p2pkh());
- <span class="macro">assert!</span>(<span class="number">545</span>.is_dust(<span class="kw-2">&</span>script_p2pkh));
- <span class="macro">assert!</span>(!<span class="number">546</span>.is_dust(<span class="kw-2">&</span>script_p2pkh));
-
- <span class="kw">let </span>script_p2wpkh = Address::from_str(<span class="string">"bc1qxlh2mnc0yqwas76gqq665qkggee5m98t8yskd8"</span>)
- .unwrap()
- .require_network(Network::Bitcoin)
- .unwrap()
- .script_pubkey();
- <span class="macro">assert!</span>(script_p2wpkh.is_p2wpkh());
- <span class="macro">assert!</span>(<span class="number">293</span>.is_dust(<span class="kw-2">&</span>script_p2wpkh));
- <span class="macro">assert!</span>(!<span class="number">294</span>.is_dust(<span class="kw-2">&</span>script_p2wpkh));
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_check_nsequence_rbf_msb_set() {
- <span class="kw">let </span>result = check_nsequence_rbf(Sequence(<span class="number">0x80000000</span>), Sequence(<span class="number">5000</span>));
- <span class="macro">assert!</span>(!result);
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_check_nsequence_rbf_lt_csv() {
- <span class="kw">let </span>result = check_nsequence_rbf(Sequence(<span class="number">4000</span>), Sequence(<span class="number">5000</span>));
- <span class="macro">assert!</span>(!result);
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_check_nsequence_rbf_different_unit() {
- <span class="kw">let </span>result =
- check_nsequence_rbf(Sequence(SEQUENCE_LOCKTIME_TYPE_FLAG + <span class="number">5000</span>), Sequence(<span class="number">5000</span>));
- <span class="macro">assert!</span>(!result);
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_check_nsequence_rbf_mask() {
- <span class="kw">let </span>result = check_nsequence_rbf(Sequence(<span class="number">0x3f </span>+ <span class="number">10_000</span>), Sequence(<span class="number">5000</span>));
- <span class="macro">assert!</span>(result);
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_check_nsequence_rbf_same_unit_blocks() {
- <span class="kw">let </span>result = check_nsequence_rbf(Sequence(<span class="number">10_000</span>), Sequence(<span class="number">5000</span>));
- <span class="macro">assert!</span>(result);
- }
-
- <span class="attr">#[test]
- </span><span class="kw">fn </span>test_check_nsequence_rbf_same_unit_time() {
- <span class="kw">let </span>result = check_nsequence_rbf(
- Sequence(SEQUENCE_LOCKTIME_TYPE_FLAG + <span class="number">10_000</span>),
- Sequence(SEQUENCE_LOCKTIME_TYPE_FLAG + <span class="number">5000</span>),
- );
- <span class="macro">assert!</span>(result);
- }
-}
-</code></pre></div>
-</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
//! This crate contains HWISigner, an implementation of a [`TransactionSigner`] to be
//! used with hardware wallets.
//! ```no_run
-//! # use bdk::bitcoin::Network;
-//! # use bdk::signer::SignerOrdering;
+//! # use bdk_wallet::bitcoin::Network;
+//! # use bdk_wallet::signer::SignerOrdering;
//! # use bdk_hwi::HWISigner;
-//! # use bdk::{KeychainKind, SignOptions, Wallet};
+//! # use bdk_wallet::{KeychainKind, SignOptions, Wallet};
//! # use hwi::HWIClient;
//! # use std::sync::Arc;
//! #
//! # }
//! ```
//!
-//! [`TransactionSigner`]: bdk::wallet::signer::TransactionSigner
+//! [`TransactionSigner`]: bdk_wallet::wallet::signer::TransactionSigner
</span><span class="kw">mod </span>signer;
<span class="kw">pub use </span>signer::<span class="kw-2">*</span>;
<a href="#92" id="92">92</a>
<a href="#93" id="93">93</a>
<a href="#94" id="94">94</a>
-</pre><pre class="rust"><code><span class="kw">use </span>bdk::bitcoin::bip32::Fingerprint;
-<span class="kw">use </span>bdk::bitcoin::secp256k1::{All, Secp256k1};
-<span class="kw">use </span>bdk::bitcoin::Psbt;
+</pre><pre class="rust"><code><span class="kw">use </span>bdk_wallet::bitcoin::bip32::Fingerprint;
+<span class="kw">use </span>bdk_wallet::bitcoin::secp256k1::{All, Secp256k1};
+<span class="kw">use </span>bdk_wallet::bitcoin::Psbt;
<span class="kw">use </span>hwi::error::Error;
<span class="kw">use </span>hwi::types::{HWIChain, HWIDevice};
<span class="kw">use </span>hwi::HWIClient;
-<span class="kw">use </span>bdk::signer::{SignerCommon, SignerError, SignerId, TransactionSigner};
+<span class="kw">use </span>bdk_wallet::signer::{SignerCommon, SignerError, SignerId, TransactionSigner};
<span class="attr">#[derive(Debug)]
</span><span class="doccomment">/// Custom signer for Hardware Wallets
<span class="kw">fn </span>sign_transaction(
<span class="kw-2">&</span><span class="self">self</span>,
psbt: <span class="kw-2">&mut </span>Psbt,
- _sign_options: <span class="kw-2">&</span>bdk::SignOptions,
+ _sign_options: <span class="kw-2">&</span>bdk_wallet::SignOptions,
_secp: <span class="kw-2">&</span>Secp256k1<All>,
) -> <span class="prelude-ty">Result</span><(), SignerError> {
psbt.combine(
// fn test_hardware_signer() {
// use std::sync::Arc;
//
-// use bdk::tests::get_funded_wallet;
-// use bdk::signer::SignerOrdering;
-// use bdk::bitcoin::Network;
+// use bdk_wallet::tests::get_funded_wallet;
+// use bdk_wallet::signer::SignerOrdering;
+// use bdk_wallet::bitcoin::Network;
// use crate::HWISigner;
// use hwi::HWIClient;
//
//
// let (mut wallet, _) = get_funded_wallet(&descriptors.internal[0]);
// wallet.add_signer(
-// bdk::KeychainKind::External,
+// bdk_wallet::KeychainKind::External,
// SignerOrdering(200),
// Arc::new(custom_signer),
// );
//
-// let addr = wallet.get_address(bdk::wallet::AddressIndex::LastUnused);
+// let addr = wallet.get_address(bdk_wallet::wallet::AddressIndex::LastUnused);
// let mut builder = wallet.build_tx();
// builder.drain_to(addr.script_pubkey()).drain_wallet();
// let (mut psbt, _) = builder.finish().unwrap();
--- /dev/null
+<!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="Source of the Rust file `crates/wallet/src/descriptor/checksum.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>checksum.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk_wallet/index.html">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
+<a href="#2" id="2">2</a>
+<a href="#3" id="3">3</a>
+<a href="#4" id="4">4</a>
+<a href="#5" id="5">5</a>
+<a href="#6" id="6">6</a>
+<a href="#7" id="7">7</a>
+<a href="#8" id="8">8</a>
+<a href="#9" id="9">9</a>
+<a href="#10" id="10">10</a>
+<a href="#11" id="11">11</a>
+<a href="#12" id="12">12</a>
+<a href="#13" id="13">13</a>
+<a href="#14" id="14">14</a>
+<a href="#15" id="15">15</a>
+<a href="#16" id="16">16</a>
+<a href="#17" id="17">17</a>
+<a href="#18" id="18">18</a>
+<a href="#19" id="19">19</a>
+<a href="#20" id="20">20</a>
+<a href="#21" id="21">21</a>
+<a href="#22" id="22">22</a>
+<a href="#23" id="23">23</a>
+<a href="#24" id="24">24</a>
+<a href="#25" id="25">25</a>
+<a href="#26" id="26">26</a>
+<a href="#27" id="27">27</a>
+<a href="#28" id="28">28</a>
+<a href="#29" id="29">29</a>
+<a href="#30" id="30">30</a>
+<a href="#31" id="31">31</a>
+<a href="#32" id="32">32</a>
+<a href="#33" id="33">33</a>
+<a href="#34" id="34">34</a>
+<a href="#35" id="35">35</a>
+<a href="#36" id="36">36</a>
+<a href="#37" id="37">37</a>
+<a href="#38" id="38">38</a>
+<a href="#39" id="39">39</a>
+<a href="#40" id="40">40</a>
+<a href="#41" id="41">41</a>
+<a href="#42" id="42">42</a>
+<a href="#43" id="43">43</a>
+<a href="#44" id="44">44</a>
+<a href="#45" id="45">45</a>
+<a href="#46" id="46">46</a>
+<a href="#47" id="47">47</a>
+<a href="#48" id="48">48</a>
+<a href="#49" id="49">49</a>
+<a href="#50" id="50">50</a>
+<a href="#51" id="51">51</a>
+<a href="#52" id="52">52</a>
+<a href="#53" id="53">53</a>
+<a href="#54" id="54">54</a>
+<a href="#55" id="55">55</a>
+<a href="#56" id="56">56</a>
+<a href="#57" id="57">57</a>
+<a href="#58" id="58">58</a>
+<a href="#59" id="59">59</a>
+<a href="#60" id="60">60</a>
+<a href="#61" id="61">61</a>
+<a href="#62" id="62">62</a>
+<a href="#63" id="63">63</a>
+<a href="#64" id="64">64</a>
+<a href="#65" id="65">65</a>
+<a href="#66" id="66">66</a>
+<a href="#67" id="67">67</a>
+<a href="#68" id="68">68</a>
+<a href="#69" id="69">69</a>
+<a href="#70" id="70">70</a>
+<a href="#71" id="71">71</a>
+<a href="#72" id="72">72</a>
+<a href="#73" id="73">73</a>
+<a href="#74" id="74">74</a>
+<a href="#75" id="75">75</a>
+<a href="#76" id="76">76</a>
+<a href="#77" id="77">77</a>
+<a href="#78" id="78">78</a>
+<a href="#79" id="79">79</a>
+<a href="#80" id="80">80</a>
+<a href="#81" id="81">81</a>
+<a href="#82" id="82">82</a>
+<a href="#83" id="83">83</a>
+<a href="#84" id="84">84</a>
+<a href="#85" id="85">85</a>
+<a href="#86" id="86">86</a>
+<a href="#87" id="87">87</a>
+<a href="#88" id="88">88</a>
+<a href="#89" id="89">89</a>
+<a href="#90" id="90">90</a>
+<a href="#91" id="91">91</a>
+<a href="#92" id="92">92</a>
+<a href="#93" id="93">93</a>
+<a href="#94" id="94">94</a>
+<a href="#95" id="95">95</a>
+<a href="#96" id="96">96</a>
+<a href="#97" id="97">97</a>
+<a href="#98" id="98">98</a>
+<a href="#99" id="99">99</a>
+<a href="#100" id="100">100</a>
+<a href="#101" id="101">101</a>
+<a href="#102" id="102">102</a>
+<a href="#103" id="103">103</a>
+<a href="#104" id="104">104</a>
+<a href="#105" id="105">105</a>
+<a href="#106" id="106">106</a>
+<a href="#107" id="107">107</a>
+<a href="#108" id="108">108</a>
+<a href="#109" id="109">109</a>
+<a href="#110" id="110">110</a>
+<a href="#111" id="111">111</a>
+<a href="#112" id="112">112</a>
+<a href="#113" id="113">113</a>
+<a href="#114" id="114">114</a>
+<a href="#115" id="115">115</a>
+<a href="#116" id="116">116</a>
+<a href="#117" id="117">117</a>
+<a href="#118" id="118">118</a>
+<a href="#119" id="119">119</a>
+<a href="#120" id="120">120</a>
+<a href="#121" id="121">121</a>
+<a href="#122" id="122">122</a>
+<a href="#123" id="123">123</a>
+<a href="#124" id="124">124</a>
+<a href="#125" id="125">125</a>
+<a href="#126" id="126">126</a>
+<a href="#127" id="127">127</a>
+<a href="#128" id="128">128</a>
+<a href="#129" id="129">129</a>
+<a href="#130" id="130">130</a>
+<a href="#131" id="131">131</a>
+<a href="#132" id="132">132</a>
+<a href="#133" id="133">133</a>
+<a href="#134" id="134">134</a>
+<a href="#135" id="135">135</a>
+<a href="#136" id="136">136</a>
+<a href="#137" id="137">137</a>
+<a href="#138" id="138">138</a>
+<a href="#139" id="139">139</a>
+<a href="#140" id="140">140</a>
+<a href="#141" id="141">141</a>
+<a href="#142" id="142">142</a>
+<a href="#143" id="143">143</a>
+<a href="#144" id="144">144</a>
+<a href="#145" id="145">145</a>
+<a href="#146" id="146">146</a>
+<a href="#147" id="147">147</a>
+</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
+// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
+//
+// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
+//
+// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
+// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// You may not use this file except in accordance with one or both of these
+// licenses.
+
+</span><span class="doccomment">//! Descriptor checksum
+//!
+//! This module contains a re-implementation of the function used by Bitcoin Core to calculate the
+//! checksum of a descriptor
+
+</span><span class="kw">use </span><span class="kw">crate</span>::descriptor::DescriptorError;
+<span class="kw">use </span>alloc::string::String;
+
+<span class="kw">const </span>INPUT_CHARSET: <span class="kw-2">&</span>[u8] = <span class="string">b"0123456789()[],'/*abcdefgh@:$%{}IJKLMNOPQRSTUVWXYZ&+-.;<=>?!^_|~ijklmnopqrstuvwxyzABCDEFGH`#\"\\ "</span>;
+<span class="kw">const </span>CHECKSUM_CHARSET: <span class="kw-2">&</span>[u8] = <span class="string">b"qpzry9x8gf2tvdw0s3jn54khce6mua7l"</span>;
+
+<span class="kw">fn </span>poly_mod(<span class="kw-2">mut </span>c: u64, val: u64) -> u64 {
+ <span class="kw">let </span>c0 = c >> <span class="number">35</span>;
+ c = ((c & <span class="number">0x7ffffffff</span>) << <span class="number">5</span>) ^ val;
+ <span class="kw">if </span>c0 & <span class="number">1 </span>> <span class="number">0 </span>{
+ c ^= <span class="number">0xf5dee51989
+ </span>};
+ <span class="kw">if </span>c0 & <span class="number">2 </span>> <span class="number">0 </span>{
+ c ^= <span class="number">0xa9fdca3312
+ </span>};
+ <span class="kw">if </span>c0 & <span class="number">4 </span>> <span class="number">0 </span>{
+ c ^= <span class="number">0x1bab10e32d
+ </span>};
+ <span class="kw">if </span>c0 & <span class="number">8 </span>> <span class="number">0 </span>{
+ c ^= <span class="number">0x3706b1677a
+ </span>};
+ <span class="kw">if </span>c0 & <span class="number">16 </span>> <span class="number">0 </span>{
+ c ^= <span class="number">0x644d626ffd
+ </span>};
+
+ c
+}
+
+<span class="doccomment">/// Compute the checksum bytes of a descriptor, excludes any existing checksum in the descriptor string from the calculation
+</span><span class="kw">pub fn </span>calc_checksum_bytes(<span class="kw-2">mut </span>desc: <span class="kw-2">&</span>str) -> <span class="prelude-ty">Result</span><[u8; <span class="number">8</span>], DescriptorError> {
+ <span class="kw">let </span><span class="kw-2">mut </span>c = <span class="number">1</span>;
+ <span class="kw">let </span><span class="kw-2">mut </span>cls = <span class="number">0</span>;
+ <span class="kw">let </span><span class="kw-2">mut </span>clscount = <span class="number">0</span>;
+
+ <span class="kw">let </span><span class="kw-2">mut </span>original_checksum = <span class="prelude-val">None</span>;
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(split) = desc.split_once(<span class="string">'#'</span>) {
+ desc = split.<span class="number">0</span>;
+ original_checksum = <span class="prelude-val">Some</span>(split.<span class="number">1</span>);
+ }
+
+ <span class="kw">for </span>ch <span class="kw">in </span>desc.as_bytes() {
+ <span class="kw">let </span>pos = INPUT_CHARSET
+ .iter()
+ .position(|b| b == ch)
+ .ok_or(DescriptorError::InvalidDescriptorCharacter(<span class="kw-2">*</span>ch))<span class="question-mark">? </span><span class="kw">as </span>u64;
+ c = poly_mod(c, pos & <span class="number">31</span>);
+ cls = cls * <span class="number">3 </span>+ (pos >> <span class="number">5</span>);
+ clscount += <span class="number">1</span>;
+ <span class="kw">if </span>clscount == <span class="number">3 </span>{
+ c = poly_mod(c, cls);
+ cls = <span class="number">0</span>;
+ clscount = <span class="number">0</span>;
+ }
+ }
+ <span class="kw">if </span>clscount > <span class="number">0 </span>{
+ c = poly_mod(c, cls);
+ }
+ (<span class="number">0</span>..<span class="number">8</span>).for_each(|<span class="kw">_</span>| c = poly_mod(c, <span class="number">0</span>));
+ c ^= <span class="number">1</span>;
+
+ <span class="kw">let </span><span class="kw-2">mut </span>checksum = [<span class="number">0_u8</span>; <span class="number">8</span>];
+ <span class="kw">for </span>j <span class="kw">in </span><span class="number">0</span>..<span class="number">8 </span>{
+ checksum[j] = CHECKSUM_CHARSET[((c >> (<span class="number">5 </span>* (<span class="number">7 </span>- j))) & <span class="number">31</span>) <span class="kw">as </span>usize];
+ }
+
+ <span class="comment">// if input data already had a checksum, check calculated checksum against original checksum
+ </span><span class="kw">if let </span><span class="prelude-val">Some</span>(original_checksum) = original_checksum {
+ <span class="kw">if </span>original_checksum.as_bytes() != checksum {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(DescriptorError::InvalidDescriptorChecksum);
+ }
+ }
+
+ <span class="prelude-val">Ok</span>(checksum)
+}
+
+<span class="doccomment">/// Compute the checksum of a descriptor, excludes any existing checksum in the descriptor string from the calculation
+</span><span class="kw">pub fn </span>calc_checksum(desc: <span class="kw-2">&</span>str) -> <span class="prelude-ty">Result</span><String, DescriptorError> {
+ <span class="comment">// unsafe is okay here as the checksum only uses bytes in `CHECKSUM_CHARSET`
+ </span>calc_checksum_bytes(desc).map(|b| <span class="kw">unsafe </span>{ String::from_utf8_unchecked(b.to_vec()) })
+}
+
+<span class="attr">#[cfg(test)]
+</span><span class="kw">mod </span>test {
+ <span class="kw">use super</span>::<span class="kw-2">*</span>;
+ <span class="kw">use </span><span class="kw">crate</span>::descriptor::calc_checksum;
+ <span class="kw">use </span>assert_matches::assert_matches;
+
+ <span class="comment">// test calc_checksum() function; it should return the same value as Bitcoin Core
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_calc_checksum() {
+ <span class="kw">let </span>desc = <span class="string">"wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)"</span>;
+ <span class="macro">assert_eq!</span>(calc_checksum(desc).unwrap(), <span class="string">"tqz0nc62"</span>);
+
+ <span class="kw">let </span>desc = <span class="string">"pkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/44'/1'/0'/0/*)"</span>;
+ <span class="macro">assert_eq!</span>(calc_checksum(desc).unwrap(), <span class="string">"lasegmfs"</span>);
+ }
+
+ <span class="comment">// test calc_checksum() function; it should return the same value as Bitcoin Core even if the
+ // descriptor string includes a checksum hash
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_calc_checksum_with_checksum_hash() {
+ <span class="kw">let </span>desc = <span class="string">"wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)#tqz0nc62"</span>;
+ <span class="macro">assert_eq!</span>(calc_checksum(desc).unwrap(), <span class="string">"tqz0nc62"</span>);
+
+ <span class="kw">let </span>desc = <span class="string">"pkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/44'/1'/0'/0/*)#lasegmfs"</span>;
+ <span class="macro">assert_eq!</span>(calc_checksum(desc).unwrap(), <span class="string">"lasegmfs"</span>);
+
+ <span class="kw">let </span>desc = <span class="string">"wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)#tqz0nc26"</span>;
+ <span class="macro">assert_matches!</span>(
+ calc_checksum(desc),
+ <span class="prelude-val">Err</span>(DescriptorError::InvalidDescriptorChecksum)
+ );
+
+ <span class="kw">let </span>desc = <span class="string">"pkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/44'/1'/0'/0/*)#lasegmsf"</span>;
+ <span class="macro">assert_matches!</span>(
+ calc_checksum(desc),
+ <span class="prelude-val">Err</span>(DescriptorError::InvalidDescriptorChecksum)
+ );
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_calc_checksum_invalid_character() {
+ <span class="kw">let </span>sparkle_heart = <span class="kw">unsafe </span>{ core::str::from_utf8_unchecked(<span class="kw-2">&</span>[<span class="number">240</span>, <span class="number">159</span>, <span class="number">146</span>, <span class="number">150</span>]) };
+ <span class="kw">let </span>invalid_desc = <span class="macro">format!</span>(<span class="string">"wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcL{}fjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)"</span>, sparkle_heart);
+
+ <span class="macro">assert_matches!</span>(
+ calc_checksum(<span class="kw-2">&</span>invalid_desc),
+ <span class="prelude-val">Err</span>(DescriptorError::InvalidDescriptorCharacter(invalid_char)) <span class="kw">if </span>invalid_char == sparkle_heart.as_bytes()[<span class="number">0</span>]
+ );
+ }
+}
+</code></pre></div>
+</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Source of the Rust file `crates/wallet/src/descriptor/dsl.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>dsl.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk_wallet/index.html">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
+<a href="#2" id="2">2</a>
+<a href="#3" id="3">3</a>
+<a href="#4" id="4">4</a>
+<a href="#5" id="5">5</a>
+<a href="#6" id="6">6</a>
+<a href="#7" id="7">7</a>
+<a href="#8" id="8">8</a>
+<a href="#9" id="9">9</a>
+<a href="#10" id="10">10</a>
+<a href="#11" id="11">11</a>
+<a href="#12" id="12">12</a>
+<a href="#13" id="13">13</a>
+<a href="#14" id="14">14</a>
+<a href="#15" id="15">15</a>
+<a href="#16" id="16">16</a>
+<a href="#17" id="17">17</a>
+<a href="#18" id="18">18</a>
+<a href="#19" id="19">19</a>
+<a href="#20" id="20">20</a>
+<a href="#21" id="21">21</a>
+<a href="#22" id="22">22</a>
+<a href="#23" id="23">23</a>
+<a href="#24" id="24">24</a>
+<a href="#25" id="25">25</a>
+<a href="#26" id="26">26</a>
+<a href="#27" id="27">27</a>
+<a href="#28" id="28">28</a>
+<a href="#29" id="29">29</a>
+<a href="#30" id="30">30</a>
+<a href="#31" id="31">31</a>
+<a href="#32" id="32">32</a>
+<a href="#33" id="33">33</a>
+<a href="#34" id="34">34</a>
+<a href="#35" id="35">35</a>
+<a href="#36" id="36">36</a>
+<a href="#37" id="37">37</a>
+<a href="#38" id="38">38</a>
+<a href="#39" id="39">39</a>
+<a href="#40" id="40">40</a>
+<a href="#41" id="41">41</a>
+<a href="#42" id="42">42</a>
+<a href="#43" id="43">43</a>
+<a href="#44" id="44">44</a>
+<a href="#45" id="45">45</a>
+<a href="#46" id="46">46</a>
+<a href="#47" id="47">47</a>
+<a href="#48" id="48">48</a>
+<a href="#49" id="49">49</a>
+<a href="#50" id="50">50</a>
+<a href="#51" id="51">51</a>
+<a href="#52" id="52">52</a>
+<a href="#53" id="53">53</a>
+<a href="#54" id="54">54</a>
+<a href="#55" id="55">55</a>
+<a href="#56" id="56">56</a>
+<a href="#57" id="57">57</a>
+<a href="#58" id="58">58</a>
+<a href="#59" id="59">59</a>
+<a href="#60" id="60">60</a>
+<a href="#61" id="61">61</a>
+<a href="#62" id="62">62</a>
+<a href="#63" id="63">63</a>
+<a href="#64" id="64">64</a>
+<a href="#65" id="65">65</a>
+<a href="#66" id="66">66</a>
+<a href="#67" id="67">67</a>
+<a href="#68" id="68">68</a>
+<a href="#69" id="69">69</a>
+<a href="#70" id="70">70</a>
+<a href="#71" id="71">71</a>
+<a href="#72" id="72">72</a>
+<a href="#73" id="73">73</a>
+<a href="#74" id="74">74</a>
+<a href="#75" id="75">75</a>
+<a href="#76" id="76">76</a>
+<a href="#77" id="77">77</a>
+<a href="#78" id="78">78</a>
+<a href="#79" id="79">79</a>
+<a href="#80" id="80">80</a>
+<a href="#81" id="81">81</a>
+<a href="#82" id="82">82</a>
+<a href="#83" id="83">83</a>
+<a href="#84" id="84">84</a>
+<a href="#85" id="85">85</a>
+<a href="#86" id="86">86</a>
+<a href="#87" id="87">87</a>
+<a href="#88" id="88">88</a>
+<a href="#89" id="89">89</a>
+<a href="#90" id="90">90</a>
+<a href="#91" id="91">91</a>
+<a href="#92" id="92">92</a>
+<a href="#93" id="93">93</a>
+<a href="#94" id="94">94</a>
+<a href="#95" id="95">95</a>
+<a href="#96" id="96">96</a>
+<a href="#97" id="97">97</a>
+<a href="#98" id="98">98</a>
+<a href="#99" id="99">99</a>
+<a href="#100" id="100">100</a>
+<a href="#101" id="101">101</a>
+<a href="#102" id="102">102</a>
+<a href="#103" id="103">103</a>
+<a href="#104" id="104">104</a>
+<a href="#105" id="105">105</a>
+<a href="#106" id="106">106</a>
+<a href="#107" id="107">107</a>
+<a href="#108" id="108">108</a>
+<a href="#109" id="109">109</a>
+<a href="#110" id="110">110</a>
+<a href="#111" id="111">111</a>
+<a href="#112" id="112">112</a>
+<a href="#113" id="113">113</a>
+<a href="#114" id="114">114</a>
+<a href="#115" id="115">115</a>
+<a href="#116" id="116">116</a>
+<a href="#117" id="117">117</a>
+<a href="#118" id="118">118</a>
+<a href="#119" id="119">119</a>
+<a href="#120" id="120">120</a>
+<a href="#121" id="121">121</a>
+<a href="#122" id="122">122</a>
+<a href="#123" id="123">123</a>
+<a href="#124" id="124">124</a>
+<a href="#125" id="125">125</a>
+<a href="#126" id="126">126</a>
+<a href="#127" id="127">127</a>
+<a href="#128" id="128">128</a>
+<a href="#129" id="129">129</a>
+<a href="#130" id="130">130</a>
+<a href="#131" id="131">131</a>
+<a href="#132" id="132">132</a>
+<a href="#133" id="133">133</a>
+<a href="#134" id="134">134</a>
+<a href="#135" id="135">135</a>
+<a href="#136" id="136">136</a>
+<a href="#137" id="137">137</a>
+<a href="#138" id="138">138</a>
+<a href="#139" id="139">139</a>
+<a href="#140" id="140">140</a>
+<a href="#141" id="141">141</a>
+<a href="#142" id="142">142</a>
+<a href="#143" id="143">143</a>
+<a href="#144" id="144">144</a>
+<a href="#145" id="145">145</a>
+<a href="#146" id="146">146</a>
+<a href="#147" id="147">147</a>
+<a href="#148" id="148">148</a>
+<a href="#149" id="149">149</a>
+<a href="#150" id="150">150</a>
+<a href="#151" id="151">151</a>
+<a href="#152" id="152">152</a>
+<a href="#153" id="153">153</a>
+<a href="#154" id="154">154</a>
+<a href="#155" id="155">155</a>
+<a href="#156" id="156">156</a>
+<a href="#157" id="157">157</a>
+<a href="#158" id="158">158</a>
+<a href="#159" id="159">159</a>
+<a href="#160" id="160">160</a>
+<a href="#161" id="161">161</a>
+<a href="#162" id="162">162</a>
+<a href="#163" id="163">163</a>
+<a href="#164" id="164">164</a>
+<a href="#165" id="165">165</a>
+<a href="#166" id="166">166</a>
+<a href="#167" id="167">167</a>
+<a href="#168" id="168">168</a>
+<a href="#169" id="169">169</a>
+<a href="#170" id="170">170</a>
+<a href="#171" id="171">171</a>
+<a href="#172" id="172">172</a>
+<a href="#173" id="173">173</a>
+<a href="#174" id="174">174</a>
+<a href="#175" id="175">175</a>
+<a href="#176" id="176">176</a>
+<a href="#177" id="177">177</a>
+<a href="#178" id="178">178</a>
+<a href="#179" id="179">179</a>
+<a href="#180" id="180">180</a>
+<a href="#181" id="181">181</a>
+<a href="#182" id="182">182</a>
+<a href="#183" id="183">183</a>
+<a href="#184" id="184">184</a>
+<a href="#185" id="185">185</a>
+<a href="#186" id="186">186</a>
+<a href="#187" id="187">187</a>
+<a href="#188" id="188">188</a>
+<a href="#189" id="189">189</a>
+<a href="#190" id="190">190</a>
+<a href="#191" id="191">191</a>
+<a href="#192" id="192">192</a>
+<a href="#193" id="193">193</a>
+<a href="#194" id="194">194</a>
+<a href="#195" id="195">195</a>
+<a href="#196" id="196">196</a>
+<a href="#197" id="197">197</a>
+<a href="#198" id="198">198</a>
+<a href="#199" id="199">199</a>
+<a href="#200" id="200">200</a>
+<a href="#201" id="201">201</a>
+<a href="#202" id="202">202</a>
+<a href="#203" id="203">203</a>
+<a href="#204" id="204">204</a>
+<a href="#205" id="205">205</a>
+<a href="#206" id="206">206</a>
+<a href="#207" id="207">207</a>
+<a href="#208" id="208">208</a>
+<a href="#209" id="209">209</a>
+<a href="#210" id="210">210</a>
+<a href="#211" id="211">211</a>
+<a href="#212" id="212">212</a>
+<a href="#213" id="213">213</a>
+<a href="#214" id="214">214</a>
+<a href="#215" id="215">215</a>
+<a href="#216" id="216">216</a>
+<a href="#217" id="217">217</a>
+<a href="#218" id="218">218</a>
+<a href="#219" id="219">219</a>
+<a href="#220" id="220">220</a>
+<a href="#221" id="221">221</a>
+<a href="#222" id="222">222</a>
+<a href="#223" id="223">223</a>
+<a href="#224" id="224">224</a>
+<a href="#225" id="225">225</a>
+<a href="#226" id="226">226</a>
+<a href="#227" id="227">227</a>
+<a href="#228" id="228">228</a>
+<a href="#229" id="229">229</a>
+<a href="#230" id="230">230</a>
+<a href="#231" id="231">231</a>
+<a href="#232" id="232">232</a>
+<a href="#233" id="233">233</a>
+<a href="#234" id="234">234</a>
+<a href="#235" id="235">235</a>
+<a href="#236" id="236">236</a>
+<a href="#237" id="237">237</a>
+<a href="#238" id="238">238</a>
+<a href="#239" id="239">239</a>
+<a href="#240" id="240">240</a>
+<a href="#241" id="241">241</a>
+<a href="#242" id="242">242</a>
+<a href="#243" id="243">243</a>
+<a href="#244" id="244">244</a>
+<a href="#245" id="245">245</a>
+<a href="#246" id="246">246</a>
+<a href="#247" id="247">247</a>
+<a href="#248" id="248">248</a>
+<a href="#249" id="249">249</a>
+<a href="#250" id="250">250</a>
+<a href="#251" id="251">251</a>
+<a href="#252" id="252">252</a>
+<a href="#253" id="253">253</a>
+<a href="#254" id="254">254</a>
+<a href="#255" id="255">255</a>
+<a href="#256" id="256">256</a>
+<a href="#257" id="257">257</a>
+<a href="#258" id="258">258</a>
+<a href="#259" id="259">259</a>
+<a href="#260" id="260">260</a>
+<a href="#261" id="261">261</a>
+<a href="#262" id="262">262</a>
+<a href="#263" id="263">263</a>
+<a href="#264" id="264">264</a>
+<a href="#265" id="265">265</a>
+<a href="#266" id="266">266</a>
+<a href="#267" id="267">267</a>
+<a href="#268" id="268">268</a>
+<a href="#269" id="269">269</a>
+<a href="#270" id="270">270</a>
+<a href="#271" id="271">271</a>
+<a href="#272" id="272">272</a>
+<a href="#273" id="273">273</a>
+<a href="#274" id="274">274</a>
+<a href="#275" id="275">275</a>
+<a href="#276" id="276">276</a>
+<a href="#277" id="277">277</a>
+<a href="#278" id="278">278</a>
+<a href="#279" id="279">279</a>
+<a href="#280" id="280">280</a>
+<a href="#281" id="281">281</a>
+<a href="#282" id="282">282</a>
+<a href="#283" id="283">283</a>
+<a href="#284" id="284">284</a>
+<a href="#285" id="285">285</a>
+<a href="#286" id="286">286</a>
+<a href="#287" id="287">287</a>
+<a href="#288" id="288">288</a>
+<a href="#289" id="289">289</a>
+<a href="#290" id="290">290</a>
+<a href="#291" id="291">291</a>
+<a href="#292" id="292">292</a>
+<a href="#293" id="293">293</a>
+<a href="#294" id="294">294</a>
+<a href="#295" id="295">295</a>
+<a href="#296" id="296">296</a>
+<a href="#297" id="297">297</a>
+<a href="#298" id="298">298</a>
+<a href="#299" id="299">299</a>
+<a href="#300" id="300">300</a>
+<a href="#301" id="301">301</a>
+<a href="#302" id="302">302</a>
+<a href="#303" id="303">303</a>
+<a href="#304" id="304">304</a>
+<a href="#305" id="305">305</a>
+<a href="#306" id="306">306</a>
+<a href="#307" id="307">307</a>
+<a href="#308" id="308">308</a>
+<a href="#309" id="309">309</a>
+<a href="#310" id="310">310</a>
+<a href="#311" id="311">311</a>
+<a href="#312" id="312">312</a>
+<a href="#313" id="313">313</a>
+<a href="#314" id="314">314</a>
+<a href="#315" id="315">315</a>
+<a href="#316" id="316">316</a>
+<a href="#317" id="317">317</a>
+<a href="#318" id="318">318</a>
+<a href="#319" id="319">319</a>
+<a href="#320" id="320">320</a>
+<a href="#321" id="321">321</a>
+<a href="#322" id="322">322</a>
+<a href="#323" id="323">323</a>
+<a href="#324" id="324">324</a>
+<a href="#325" id="325">325</a>
+<a href="#326" id="326">326</a>
+<a href="#327" id="327">327</a>
+<a href="#328" id="328">328</a>
+<a href="#329" id="329">329</a>
+<a href="#330" id="330">330</a>
+<a href="#331" id="331">331</a>
+<a href="#332" id="332">332</a>
+<a href="#333" id="333">333</a>
+<a href="#334" id="334">334</a>
+<a href="#335" id="335">335</a>
+<a href="#336" id="336">336</a>
+<a href="#337" id="337">337</a>
+<a href="#338" id="338">338</a>
+<a href="#339" id="339">339</a>
+<a href="#340" id="340">340</a>
+<a href="#341" id="341">341</a>
+<a href="#342" id="342">342</a>
+<a href="#343" id="343">343</a>
+<a href="#344" id="344">344</a>
+<a href="#345" id="345">345</a>
+<a href="#346" id="346">346</a>
+<a href="#347" id="347">347</a>
+<a href="#348" id="348">348</a>
+<a href="#349" id="349">349</a>
+<a href="#350" id="350">350</a>
+<a href="#351" id="351">351</a>
+<a href="#352" id="352">352</a>
+<a href="#353" id="353">353</a>
+<a href="#354" id="354">354</a>
+<a href="#355" id="355">355</a>
+<a href="#356" id="356">356</a>
+<a href="#357" id="357">357</a>
+<a href="#358" id="358">358</a>
+<a href="#359" id="359">359</a>
+<a href="#360" id="360">360</a>
+<a href="#361" id="361">361</a>
+<a href="#362" id="362">362</a>
+<a href="#363" id="363">363</a>
+<a href="#364" id="364">364</a>
+<a href="#365" id="365">365</a>
+<a href="#366" id="366">366</a>
+<a href="#367" id="367">367</a>
+<a href="#368" id="368">368</a>
+<a href="#369" id="369">369</a>
+<a href="#370" id="370">370</a>
+<a href="#371" id="371">371</a>
+<a href="#372" id="372">372</a>
+<a href="#373" id="373">373</a>
+<a href="#374" id="374">374</a>
+<a href="#375" id="375">375</a>
+<a href="#376" id="376">376</a>
+<a href="#377" id="377">377</a>
+<a href="#378" id="378">378</a>
+<a href="#379" id="379">379</a>
+<a href="#380" id="380">380</a>
+<a href="#381" id="381">381</a>
+<a href="#382" id="382">382</a>
+<a href="#383" id="383">383</a>
+<a href="#384" id="384">384</a>
+<a href="#385" id="385">385</a>
+<a href="#386" id="386">386</a>
+<a href="#387" id="387">387</a>
+<a href="#388" id="388">388</a>
+<a href="#389" id="389">389</a>
+<a href="#390" id="390">390</a>
+<a href="#391" id="391">391</a>
+<a href="#392" id="392">392</a>
+<a href="#393" id="393">393</a>
+<a href="#394" id="394">394</a>
+<a href="#395" id="395">395</a>
+<a href="#396" id="396">396</a>
+<a href="#397" id="397">397</a>
+<a href="#398" id="398">398</a>
+<a href="#399" id="399">399</a>
+<a href="#400" id="400">400</a>
+<a href="#401" id="401">401</a>
+<a href="#402" id="402">402</a>
+<a href="#403" id="403">403</a>
+<a href="#404" id="404">404</a>
+<a href="#405" id="405">405</a>
+<a href="#406" id="406">406</a>
+<a href="#407" id="407">407</a>
+<a href="#408" id="408">408</a>
+<a href="#409" id="409">409</a>
+<a href="#410" id="410">410</a>
+<a href="#411" id="411">411</a>
+<a href="#412" id="412">412</a>
+<a href="#413" id="413">413</a>
+<a href="#414" id="414">414</a>
+<a href="#415" id="415">415</a>
+<a href="#416" id="416">416</a>
+<a href="#417" id="417">417</a>
+<a href="#418" id="418">418</a>
+<a href="#419" id="419">419</a>
+<a href="#420" id="420">420</a>
+<a href="#421" id="421">421</a>
+<a href="#422" id="422">422</a>
+<a href="#423" id="423">423</a>
+<a href="#424" id="424">424</a>
+<a href="#425" id="425">425</a>
+<a href="#426" id="426">426</a>
+<a href="#427" id="427">427</a>
+<a href="#428" id="428">428</a>
+<a href="#429" id="429">429</a>
+<a href="#430" id="430">430</a>
+<a href="#431" id="431">431</a>
+<a href="#432" id="432">432</a>
+<a href="#433" id="433">433</a>
+<a href="#434" id="434">434</a>
+<a href="#435" id="435">435</a>
+<a href="#436" id="436">436</a>
+<a href="#437" id="437">437</a>
+<a href="#438" id="438">438</a>
+<a href="#439" id="439">439</a>
+<a href="#440" id="440">440</a>
+<a href="#441" id="441">441</a>
+<a href="#442" id="442">442</a>
+<a href="#443" id="443">443</a>
+<a href="#444" id="444">444</a>
+<a href="#445" id="445">445</a>
+<a href="#446" id="446">446</a>
+<a href="#447" id="447">447</a>
+<a href="#448" id="448">448</a>
+<a href="#449" id="449">449</a>
+<a href="#450" id="450">450</a>
+<a href="#451" id="451">451</a>
+<a href="#452" id="452">452</a>
+<a href="#453" id="453">453</a>
+<a href="#454" id="454">454</a>
+<a href="#455" id="455">455</a>
+<a href="#456" id="456">456</a>
+<a href="#457" id="457">457</a>
+<a href="#458" id="458">458</a>
+<a href="#459" id="459">459</a>
+<a href="#460" id="460">460</a>
+<a href="#461" id="461">461</a>
+<a href="#462" id="462">462</a>
+<a href="#463" id="463">463</a>
+<a href="#464" id="464">464</a>
+<a href="#465" id="465">465</a>
+<a href="#466" id="466">466</a>
+<a href="#467" id="467">467</a>
+<a href="#468" id="468">468</a>
+<a href="#469" id="469">469</a>
+<a href="#470" id="470">470</a>
+<a href="#471" id="471">471</a>
+<a href="#472" id="472">472</a>
+<a href="#473" id="473">473</a>
+<a href="#474" id="474">474</a>
+<a href="#475" id="475">475</a>
+<a href="#476" id="476">476</a>
+<a href="#477" id="477">477</a>
+<a href="#478" id="478">478</a>
+<a href="#479" id="479">479</a>
+<a href="#480" id="480">480</a>
+<a href="#481" id="481">481</a>
+<a href="#482" id="482">482</a>
+<a href="#483" id="483">483</a>
+<a href="#484" id="484">484</a>
+<a href="#485" id="485">485</a>
+<a href="#486" id="486">486</a>
+<a href="#487" id="487">487</a>
+<a href="#488" id="488">488</a>
+<a href="#489" id="489">489</a>
+<a href="#490" id="490">490</a>
+<a href="#491" id="491">491</a>
+<a href="#492" id="492">492</a>
+<a href="#493" id="493">493</a>
+<a href="#494" id="494">494</a>
+<a href="#495" id="495">495</a>
+<a href="#496" id="496">496</a>
+<a href="#497" id="497">497</a>
+<a href="#498" id="498">498</a>
+<a href="#499" id="499">499</a>
+<a href="#500" id="500">500</a>
+<a href="#501" id="501">501</a>
+<a href="#502" id="502">502</a>
+<a href="#503" id="503">503</a>
+<a href="#504" id="504">504</a>
+<a href="#505" id="505">505</a>
+<a href="#506" id="506">506</a>
+<a href="#507" id="507">507</a>
+<a href="#508" id="508">508</a>
+<a href="#509" id="509">509</a>
+<a href="#510" id="510">510</a>
+<a href="#511" id="511">511</a>
+<a href="#512" id="512">512</a>
+<a href="#513" id="513">513</a>
+<a href="#514" id="514">514</a>
+<a href="#515" id="515">515</a>
+<a href="#516" id="516">516</a>
+<a href="#517" id="517">517</a>
+<a href="#518" id="518">518</a>
+<a href="#519" id="519">519</a>
+<a href="#520" id="520">520</a>
+<a href="#521" id="521">521</a>
+<a href="#522" id="522">522</a>
+<a href="#523" id="523">523</a>
+<a href="#524" id="524">524</a>
+<a href="#525" id="525">525</a>
+<a href="#526" id="526">526</a>
+<a href="#527" id="527">527</a>
+<a href="#528" id="528">528</a>
+<a href="#529" id="529">529</a>
+<a href="#530" id="530">530</a>
+<a href="#531" id="531">531</a>
+<a href="#532" id="532">532</a>
+<a href="#533" id="533">533</a>
+<a href="#534" id="534">534</a>
+<a href="#535" id="535">535</a>
+<a href="#536" id="536">536</a>
+<a href="#537" id="537">537</a>
+<a href="#538" id="538">538</a>
+<a href="#539" id="539">539</a>
+<a href="#540" id="540">540</a>
+<a href="#541" id="541">541</a>
+<a href="#542" id="542">542</a>
+<a href="#543" id="543">543</a>
+<a href="#544" id="544">544</a>
+<a href="#545" id="545">545</a>
+<a href="#546" id="546">546</a>
+<a href="#547" id="547">547</a>
+<a href="#548" id="548">548</a>
+<a href="#549" id="549">549</a>
+<a href="#550" id="550">550</a>
+<a href="#551" id="551">551</a>
+<a href="#552" id="552">552</a>
+<a href="#553" id="553">553</a>
+<a href="#554" id="554">554</a>
+<a href="#555" id="555">555</a>
+<a href="#556" id="556">556</a>
+<a href="#557" id="557">557</a>
+<a href="#558" id="558">558</a>
+<a href="#559" id="559">559</a>
+<a href="#560" id="560">560</a>
+<a href="#561" id="561">561</a>
+<a href="#562" id="562">562</a>
+<a href="#563" id="563">563</a>
+<a href="#564" id="564">564</a>
+<a href="#565" id="565">565</a>
+<a href="#566" id="566">566</a>
+<a href="#567" id="567">567</a>
+<a href="#568" id="568">568</a>
+<a href="#569" id="569">569</a>
+<a href="#570" id="570">570</a>
+<a href="#571" id="571">571</a>
+<a href="#572" id="572">572</a>
+<a href="#573" id="573">573</a>
+<a href="#574" id="574">574</a>
+<a href="#575" id="575">575</a>
+<a href="#576" id="576">576</a>
+<a href="#577" id="577">577</a>
+<a href="#578" id="578">578</a>
+<a href="#579" id="579">579</a>
+<a href="#580" id="580">580</a>
+<a href="#581" id="581">581</a>
+<a href="#582" id="582">582</a>
+<a href="#583" id="583">583</a>
+<a href="#584" id="584">584</a>
+<a href="#585" id="585">585</a>
+<a href="#586" id="586">586</a>
+<a href="#587" id="587">587</a>
+<a href="#588" id="588">588</a>
+<a href="#589" id="589">589</a>
+<a href="#590" id="590">590</a>
+<a href="#591" id="591">591</a>
+<a href="#592" id="592">592</a>
+<a href="#593" id="593">593</a>
+<a href="#594" id="594">594</a>
+<a href="#595" id="595">595</a>
+<a href="#596" id="596">596</a>
+<a href="#597" id="597">597</a>
+<a href="#598" id="598">598</a>
+<a href="#599" id="599">599</a>
+<a href="#600" id="600">600</a>
+<a href="#601" id="601">601</a>
+<a href="#602" id="602">602</a>
+<a href="#603" id="603">603</a>
+<a href="#604" id="604">604</a>
+<a href="#605" id="605">605</a>
+<a href="#606" id="606">606</a>
+<a href="#607" id="607">607</a>
+<a href="#608" id="608">608</a>
+<a href="#609" id="609">609</a>
+<a href="#610" id="610">610</a>
+<a href="#611" id="611">611</a>
+<a href="#612" id="612">612</a>
+<a href="#613" id="613">613</a>
+<a href="#614" id="614">614</a>
+<a href="#615" id="615">615</a>
+<a href="#616" id="616">616</a>
+<a href="#617" id="617">617</a>
+<a href="#618" id="618">618</a>
+<a href="#619" id="619">619</a>
+<a href="#620" id="620">620</a>
+<a href="#621" id="621">621</a>
+<a href="#622" id="622">622</a>
+<a href="#623" id="623">623</a>
+<a href="#624" id="624">624</a>
+<a href="#625" id="625">625</a>
+<a href="#626" id="626">626</a>
+<a href="#627" id="627">627</a>
+<a href="#628" id="628">628</a>
+<a href="#629" id="629">629</a>
+<a href="#630" id="630">630</a>
+<a href="#631" id="631">631</a>
+<a href="#632" id="632">632</a>
+<a href="#633" id="633">633</a>
+<a href="#634" id="634">634</a>
+<a href="#635" id="635">635</a>
+<a href="#636" id="636">636</a>
+<a href="#637" id="637">637</a>
+<a href="#638" id="638">638</a>
+<a href="#639" id="639">639</a>
+<a href="#640" id="640">640</a>
+<a href="#641" id="641">641</a>
+<a href="#642" id="642">642</a>
+<a href="#643" id="643">643</a>
+<a href="#644" id="644">644</a>
+<a href="#645" id="645">645</a>
+<a href="#646" id="646">646</a>
+<a href="#647" id="647">647</a>
+<a href="#648" id="648">648</a>
+<a href="#649" id="649">649</a>
+<a href="#650" id="650">650</a>
+<a href="#651" id="651">651</a>
+<a href="#652" id="652">652</a>
+<a href="#653" id="653">653</a>
+<a href="#654" id="654">654</a>
+<a href="#655" id="655">655</a>
+<a href="#656" id="656">656</a>
+<a href="#657" id="657">657</a>
+<a href="#658" id="658">658</a>
+<a href="#659" id="659">659</a>
+<a href="#660" id="660">660</a>
+<a href="#661" id="661">661</a>
+<a href="#662" id="662">662</a>
+<a href="#663" id="663">663</a>
+<a href="#664" id="664">664</a>
+<a href="#665" id="665">665</a>
+<a href="#666" id="666">666</a>
+<a href="#667" id="667">667</a>
+<a href="#668" id="668">668</a>
+<a href="#669" id="669">669</a>
+<a href="#670" id="670">670</a>
+<a href="#671" id="671">671</a>
+<a href="#672" id="672">672</a>
+<a href="#673" id="673">673</a>
+<a href="#674" id="674">674</a>
+<a href="#675" id="675">675</a>
+<a href="#676" id="676">676</a>
+<a href="#677" id="677">677</a>
+<a href="#678" id="678">678</a>
+<a href="#679" id="679">679</a>
+<a href="#680" id="680">680</a>
+<a href="#681" id="681">681</a>
+<a href="#682" id="682">682</a>
+<a href="#683" id="683">683</a>
+<a href="#684" id="684">684</a>
+<a href="#685" id="685">685</a>
+<a href="#686" id="686">686</a>
+<a href="#687" id="687">687</a>
+<a href="#688" id="688">688</a>
+<a href="#689" id="689">689</a>
+<a href="#690" id="690">690</a>
+<a href="#691" id="691">691</a>
+<a href="#692" id="692">692</a>
+<a href="#693" id="693">693</a>
+<a href="#694" id="694">694</a>
+<a href="#695" id="695">695</a>
+<a href="#696" id="696">696</a>
+<a href="#697" id="697">697</a>
+<a href="#698" id="698">698</a>
+<a href="#699" id="699">699</a>
+<a href="#700" id="700">700</a>
+<a href="#701" id="701">701</a>
+<a href="#702" id="702">702</a>
+<a href="#703" id="703">703</a>
+<a href="#704" id="704">704</a>
+<a href="#705" id="705">705</a>
+<a href="#706" id="706">706</a>
+<a href="#707" id="707">707</a>
+<a href="#708" id="708">708</a>
+<a href="#709" id="709">709</a>
+<a href="#710" id="710">710</a>
+<a href="#711" id="711">711</a>
+<a href="#712" id="712">712</a>
+<a href="#713" id="713">713</a>
+<a href="#714" id="714">714</a>
+<a href="#715" id="715">715</a>
+<a href="#716" id="716">716</a>
+<a href="#717" id="717">717</a>
+<a href="#718" id="718">718</a>
+<a href="#719" id="719">719</a>
+<a href="#720" id="720">720</a>
+<a href="#721" id="721">721</a>
+<a href="#722" id="722">722</a>
+<a href="#723" id="723">723</a>
+<a href="#724" id="724">724</a>
+<a href="#725" id="725">725</a>
+<a href="#726" id="726">726</a>
+<a href="#727" id="727">727</a>
+<a href="#728" id="728">728</a>
+<a href="#729" id="729">729</a>
+<a href="#730" id="730">730</a>
+<a href="#731" id="731">731</a>
+<a href="#732" id="732">732</a>
+<a href="#733" id="733">733</a>
+<a href="#734" id="734">734</a>
+<a href="#735" id="735">735</a>
+<a href="#736" id="736">736</a>
+<a href="#737" id="737">737</a>
+<a href="#738" id="738">738</a>
+<a href="#739" id="739">739</a>
+<a href="#740" id="740">740</a>
+<a href="#741" id="741">741</a>
+<a href="#742" id="742">742</a>
+<a href="#743" id="743">743</a>
+<a href="#744" id="744">744</a>
+<a href="#745" id="745">745</a>
+<a href="#746" id="746">746</a>
+<a href="#747" id="747">747</a>
+<a href="#748" id="748">748</a>
+<a href="#749" id="749">749</a>
+<a href="#750" id="750">750</a>
+<a href="#751" id="751">751</a>
+<a href="#752" id="752">752</a>
+<a href="#753" id="753">753</a>
+<a href="#754" id="754">754</a>
+<a href="#755" id="755">755</a>
+<a href="#756" id="756">756</a>
+<a href="#757" id="757">757</a>
+<a href="#758" id="758">758</a>
+<a href="#759" id="759">759</a>
+<a href="#760" id="760">760</a>
+<a href="#761" id="761">761</a>
+<a href="#762" id="762">762</a>
+<a href="#763" id="763">763</a>
+<a href="#764" id="764">764</a>
+<a href="#765" id="765">765</a>
+<a href="#766" id="766">766</a>
+<a href="#767" id="767">767</a>
+<a href="#768" id="768">768</a>
+<a href="#769" id="769">769</a>
+<a href="#770" id="770">770</a>
+<a href="#771" id="771">771</a>
+<a href="#772" id="772">772</a>
+<a href="#773" id="773">773</a>
+<a href="#774" id="774">774</a>
+<a href="#775" id="775">775</a>
+<a href="#776" id="776">776</a>
+<a href="#777" id="777">777</a>
+<a href="#778" id="778">778</a>
+<a href="#779" id="779">779</a>
+<a href="#780" id="780">780</a>
+<a href="#781" id="781">781</a>
+<a href="#782" id="782">782</a>
+<a href="#783" id="783">783</a>
+<a href="#784" id="784">784</a>
+<a href="#785" id="785">785</a>
+<a href="#786" id="786">786</a>
+<a href="#787" id="787">787</a>
+<a href="#788" id="788">788</a>
+<a href="#789" id="789">789</a>
+<a href="#790" id="790">790</a>
+<a href="#791" id="791">791</a>
+<a href="#792" id="792">792</a>
+<a href="#793" id="793">793</a>
+<a href="#794" id="794">794</a>
+<a href="#795" id="795">795</a>
+<a href="#796" id="796">796</a>
+<a href="#797" id="797">797</a>
+<a href="#798" id="798">798</a>
+<a href="#799" id="799">799</a>
+<a href="#800" id="800">800</a>
+<a href="#801" id="801">801</a>
+<a href="#802" id="802">802</a>
+<a href="#803" id="803">803</a>
+<a href="#804" id="804">804</a>
+<a href="#805" id="805">805</a>
+<a href="#806" id="806">806</a>
+<a href="#807" id="807">807</a>
+<a href="#808" id="808">808</a>
+<a href="#809" id="809">809</a>
+<a href="#810" id="810">810</a>
+<a href="#811" id="811">811</a>
+<a href="#812" id="812">812</a>
+<a href="#813" id="813">813</a>
+<a href="#814" id="814">814</a>
+<a href="#815" id="815">815</a>
+<a href="#816" id="816">816</a>
+<a href="#817" id="817">817</a>
+<a href="#818" id="818">818</a>
+<a href="#819" id="819">819</a>
+<a href="#820" id="820">820</a>
+<a href="#821" id="821">821</a>
+<a href="#822" id="822">822</a>
+<a href="#823" id="823">823</a>
+<a href="#824" id="824">824</a>
+<a href="#825" id="825">825</a>
+<a href="#826" id="826">826</a>
+<a href="#827" id="827">827</a>
+<a href="#828" id="828">828</a>
+<a href="#829" id="829">829</a>
+<a href="#830" id="830">830</a>
+<a href="#831" id="831">831</a>
+<a href="#832" id="832">832</a>
+<a href="#833" id="833">833</a>
+<a href="#834" id="834">834</a>
+<a href="#835" id="835">835</a>
+<a href="#836" id="836">836</a>
+<a href="#837" id="837">837</a>
+<a href="#838" id="838">838</a>
+<a href="#839" id="839">839</a>
+<a href="#840" id="840">840</a>
+<a href="#841" id="841">841</a>
+<a href="#842" id="842">842</a>
+<a href="#843" id="843">843</a>
+<a href="#844" id="844">844</a>
+<a href="#845" id="845">845</a>
+<a href="#846" id="846">846</a>
+<a href="#847" id="847">847</a>
+<a href="#848" id="848">848</a>
+<a href="#849" id="849">849</a>
+<a href="#850" id="850">850</a>
+<a href="#851" id="851">851</a>
+<a href="#852" id="852">852</a>
+<a href="#853" id="853">853</a>
+<a href="#854" id="854">854</a>
+<a href="#855" id="855">855</a>
+<a href="#856" id="856">856</a>
+<a href="#857" id="857">857</a>
+<a href="#858" id="858">858</a>
+<a href="#859" id="859">859</a>
+<a href="#860" id="860">860</a>
+<a href="#861" id="861">861</a>
+<a href="#862" id="862">862</a>
+<a href="#863" id="863">863</a>
+<a href="#864" id="864">864</a>
+<a href="#865" id="865">865</a>
+<a href="#866" id="866">866</a>
+<a href="#867" id="867">867</a>
+<a href="#868" id="868">868</a>
+<a href="#869" id="869">869</a>
+<a href="#870" id="870">870</a>
+<a href="#871" id="871">871</a>
+<a href="#872" id="872">872</a>
+<a href="#873" id="873">873</a>
+<a href="#874" id="874">874</a>
+<a href="#875" id="875">875</a>
+<a href="#876" id="876">876</a>
+<a href="#877" id="877">877</a>
+<a href="#878" id="878">878</a>
+<a href="#879" id="879">879</a>
+<a href="#880" id="880">880</a>
+<a href="#881" id="881">881</a>
+<a href="#882" id="882">882</a>
+<a href="#883" id="883">883</a>
+<a href="#884" id="884">884</a>
+<a href="#885" id="885">885</a>
+<a href="#886" id="886">886</a>
+<a href="#887" id="887">887</a>
+<a href="#888" id="888">888</a>
+<a href="#889" id="889">889</a>
+<a href="#890" id="890">890</a>
+<a href="#891" id="891">891</a>
+<a href="#892" id="892">892</a>
+<a href="#893" id="893">893</a>
+<a href="#894" id="894">894</a>
+<a href="#895" id="895">895</a>
+<a href="#896" id="896">896</a>
+<a href="#897" id="897">897</a>
+<a href="#898" id="898">898</a>
+<a href="#899" id="899">899</a>
+<a href="#900" id="900">900</a>
+<a href="#901" id="901">901</a>
+<a href="#902" id="902">902</a>
+<a href="#903" id="903">903</a>
+<a href="#904" id="904">904</a>
+<a href="#905" id="905">905</a>
+<a href="#906" id="906">906</a>
+<a href="#907" id="907">907</a>
+<a href="#908" id="908">908</a>
+<a href="#909" id="909">909</a>
+<a href="#910" id="910">910</a>
+<a href="#911" id="911">911</a>
+<a href="#912" id="912">912</a>
+<a href="#913" id="913">913</a>
+<a href="#914" id="914">914</a>
+<a href="#915" id="915">915</a>
+<a href="#916" id="916">916</a>
+<a href="#917" id="917">917</a>
+<a href="#918" id="918">918</a>
+<a href="#919" id="919">919</a>
+<a href="#920" id="920">920</a>
+<a href="#921" id="921">921</a>
+<a href="#922" id="922">922</a>
+<a href="#923" id="923">923</a>
+<a href="#924" id="924">924</a>
+<a href="#925" id="925">925</a>
+<a href="#926" id="926">926</a>
+<a href="#927" id="927">927</a>
+<a href="#928" id="928">928</a>
+<a href="#929" id="929">929</a>
+<a href="#930" id="930">930</a>
+<a href="#931" id="931">931</a>
+<a href="#932" id="932">932</a>
+<a href="#933" id="933">933</a>
+<a href="#934" id="934">934</a>
+<a href="#935" id="935">935</a>
+<a href="#936" id="936">936</a>
+<a href="#937" id="937">937</a>
+<a href="#938" id="938">938</a>
+<a href="#939" id="939">939</a>
+<a href="#940" id="940">940</a>
+<a href="#941" id="941">941</a>
+<a href="#942" id="942">942</a>
+<a href="#943" id="943">943</a>
+<a href="#944" id="944">944</a>
+<a href="#945" id="945">945</a>
+<a href="#946" id="946">946</a>
+<a href="#947" id="947">947</a>
+<a href="#948" id="948">948</a>
+<a href="#949" id="949">949</a>
+<a href="#950" id="950">950</a>
+<a href="#951" id="951">951</a>
+<a href="#952" id="952">952</a>
+<a href="#953" id="953">953</a>
+<a href="#954" id="954">954</a>
+<a href="#955" id="955">955</a>
+<a href="#956" id="956">956</a>
+<a href="#957" id="957">957</a>
+<a href="#958" id="958">958</a>
+<a href="#959" id="959">959</a>
+<a href="#960" id="960">960</a>
+<a href="#961" id="961">961</a>
+<a href="#962" id="962">962</a>
+<a href="#963" id="963">963</a>
+<a href="#964" id="964">964</a>
+<a href="#965" id="965">965</a>
+<a href="#966" id="966">966</a>
+<a href="#967" id="967">967</a>
+<a href="#968" id="968">968</a>
+<a href="#969" id="969">969</a>
+<a href="#970" id="970">970</a>
+<a href="#971" id="971">971</a>
+<a href="#972" id="972">972</a>
+<a href="#973" id="973">973</a>
+<a href="#974" id="974">974</a>
+<a href="#975" id="975">975</a>
+<a href="#976" id="976">976</a>
+<a href="#977" id="977">977</a>
+<a href="#978" id="978">978</a>
+<a href="#979" id="979">979</a>
+<a href="#980" id="980">980</a>
+<a href="#981" id="981">981</a>
+<a href="#982" id="982">982</a>
+<a href="#983" id="983">983</a>
+<a href="#984" id="984">984</a>
+<a href="#985" id="985">985</a>
+<a href="#986" id="986">986</a>
+<a href="#987" id="987">987</a>
+<a href="#988" id="988">988</a>
+<a href="#989" id="989">989</a>
+<a href="#990" id="990">990</a>
+<a href="#991" id="991">991</a>
+<a href="#992" id="992">992</a>
+<a href="#993" id="993">993</a>
+<a href="#994" id="994">994</a>
+<a href="#995" id="995">995</a>
+<a href="#996" id="996">996</a>
+<a href="#997" id="997">997</a>
+<a href="#998" id="998">998</a>
+<a href="#999" id="999">999</a>
+<a href="#1000" id="1000">1000</a>
+<a href="#1001" id="1001">1001</a>
+<a href="#1002" id="1002">1002</a>
+<a href="#1003" id="1003">1003</a>
+<a href="#1004" id="1004">1004</a>
+<a href="#1005" id="1005">1005</a>
+<a href="#1006" id="1006">1006</a>
+<a href="#1007" id="1007">1007</a>
+<a href="#1008" id="1008">1008</a>
+<a href="#1009" id="1009">1009</a>
+<a href="#1010" id="1010">1010</a>
+<a href="#1011" id="1011">1011</a>
+<a href="#1012" id="1012">1012</a>
+<a href="#1013" id="1013">1013</a>
+<a href="#1014" id="1014">1014</a>
+<a href="#1015" id="1015">1015</a>
+<a href="#1016" id="1016">1016</a>
+<a href="#1017" id="1017">1017</a>
+<a href="#1018" id="1018">1018</a>
+<a href="#1019" id="1019">1019</a>
+<a href="#1020" id="1020">1020</a>
+<a href="#1021" id="1021">1021</a>
+<a href="#1022" id="1022">1022</a>
+<a href="#1023" id="1023">1023</a>
+<a href="#1024" id="1024">1024</a>
+<a href="#1025" id="1025">1025</a>
+<a href="#1026" id="1026">1026</a>
+<a href="#1027" id="1027">1027</a>
+<a href="#1028" id="1028">1028</a>
+<a href="#1029" id="1029">1029</a>
+<a href="#1030" id="1030">1030</a>
+<a href="#1031" id="1031">1031</a>
+<a href="#1032" id="1032">1032</a>
+<a href="#1033" id="1033">1033</a>
+<a href="#1034" id="1034">1034</a>
+<a href="#1035" id="1035">1035</a>
+<a href="#1036" id="1036">1036</a>
+<a href="#1037" id="1037">1037</a>
+<a href="#1038" id="1038">1038</a>
+<a href="#1039" id="1039">1039</a>
+<a href="#1040" id="1040">1040</a>
+<a href="#1041" id="1041">1041</a>
+<a href="#1042" id="1042">1042</a>
+<a href="#1043" id="1043">1043</a>
+<a href="#1044" id="1044">1044</a>
+<a href="#1045" id="1045">1045</a>
+<a href="#1046" id="1046">1046</a>
+<a href="#1047" id="1047">1047</a>
+<a href="#1048" id="1048">1048</a>
+<a href="#1049" id="1049">1049</a>
+<a href="#1050" id="1050">1050</a>
+<a href="#1051" id="1051">1051</a>
+<a href="#1052" id="1052">1052</a>
+<a href="#1053" id="1053">1053</a>
+<a href="#1054" id="1054">1054</a>
+<a href="#1055" id="1055">1055</a>
+<a href="#1056" id="1056">1056</a>
+<a href="#1057" id="1057">1057</a>
+<a href="#1058" id="1058">1058</a>
+<a href="#1059" id="1059">1059</a>
+<a href="#1060" id="1060">1060</a>
+<a href="#1061" id="1061">1061</a>
+<a href="#1062" id="1062">1062</a>
+<a href="#1063" id="1063">1063</a>
+<a href="#1064" id="1064">1064</a>
+<a href="#1065" id="1065">1065</a>
+<a href="#1066" id="1066">1066</a>
+<a href="#1067" id="1067">1067</a>
+<a href="#1068" id="1068">1068</a>
+<a href="#1069" id="1069">1069</a>
+<a href="#1070" id="1070">1070</a>
+<a href="#1071" id="1071">1071</a>
+<a href="#1072" id="1072">1072</a>
+<a href="#1073" id="1073">1073</a>
+<a href="#1074" id="1074">1074</a>
+<a href="#1075" id="1075">1075</a>
+<a href="#1076" id="1076">1076</a>
+<a href="#1077" id="1077">1077</a>
+<a href="#1078" id="1078">1078</a>
+<a href="#1079" id="1079">1079</a>
+<a href="#1080" id="1080">1080</a>
+<a href="#1081" id="1081">1081</a>
+<a href="#1082" id="1082">1082</a>
+<a href="#1083" id="1083">1083</a>
+<a href="#1084" id="1084">1084</a>
+<a href="#1085" id="1085">1085</a>
+<a href="#1086" id="1086">1086</a>
+<a href="#1087" id="1087">1087</a>
+<a href="#1088" id="1088">1088</a>
+<a href="#1089" id="1089">1089</a>
+<a href="#1090" id="1090">1090</a>
+<a href="#1091" id="1091">1091</a>
+<a href="#1092" id="1092">1092</a>
+<a href="#1093" id="1093">1093</a>
+<a href="#1094" id="1094">1094</a>
+<a href="#1095" id="1095">1095</a>
+<a href="#1096" id="1096">1096</a>
+<a href="#1097" id="1097">1097</a>
+<a href="#1098" id="1098">1098</a>
+<a href="#1099" id="1099">1099</a>
+<a href="#1100" id="1100">1100</a>
+<a href="#1101" id="1101">1101</a>
+<a href="#1102" id="1102">1102</a>
+<a href="#1103" id="1103">1103</a>
+<a href="#1104" id="1104">1104</a>
+<a href="#1105" id="1105">1105</a>
+<a href="#1106" id="1106">1106</a>
+<a href="#1107" id="1107">1107</a>
+<a href="#1108" id="1108">1108</a>
+<a href="#1109" id="1109">1109</a>
+<a href="#1110" id="1110">1110</a>
+<a href="#1111" id="1111">1111</a>
+<a href="#1112" id="1112">1112</a>
+<a href="#1113" id="1113">1113</a>
+<a href="#1114" id="1114">1114</a>
+<a href="#1115" id="1115">1115</a>
+<a href="#1116" id="1116">1116</a>
+<a href="#1117" id="1117">1117</a>
+<a href="#1118" id="1118">1118</a>
+<a href="#1119" id="1119">1119</a>
+<a href="#1120" id="1120">1120</a>
+<a href="#1121" id="1121">1121</a>
+<a href="#1122" id="1122">1122</a>
+<a href="#1123" id="1123">1123</a>
+<a href="#1124" id="1124">1124</a>
+<a href="#1125" id="1125">1125</a>
+<a href="#1126" id="1126">1126</a>
+<a href="#1127" id="1127">1127</a>
+<a href="#1128" id="1128">1128</a>
+<a href="#1129" id="1129">1129</a>
+<a href="#1130" id="1130">1130</a>
+<a href="#1131" id="1131">1131</a>
+<a href="#1132" id="1132">1132</a>
+<a href="#1133" id="1133">1133</a>
+<a href="#1134" id="1134">1134</a>
+<a href="#1135" id="1135">1135</a>
+<a href="#1136" id="1136">1136</a>
+<a href="#1137" id="1137">1137</a>
+<a href="#1138" id="1138">1138</a>
+<a href="#1139" id="1139">1139</a>
+<a href="#1140" id="1140">1140</a>
+<a href="#1141" id="1141">1141</a>
+<a href="#1142" id="1142">1142</a>
+<a href="#1143" id="1143">1143</a>
+<a href="#1144" id="1144">1144</a>
+<a href="#1145" id="1145">1145</a>
+<a href="#1146" id="1146">1146</a>
+<a href="#1147" id="1147">1147</a>
+<a href="#1148" id="1148">1148</a>
+<a href="#1149" id="1149">1149</a>
+<a href="#1150" id="1150">1150</a>
+<a href="#1151" id="1151">1151</a>
+<a href="#1152" id="1152">1152</a>
+<a href="#1153" id="1153">1153</a>
+<a href="#1154" id="1154">1154</a>
+<a href="#1155" id="1155">1155</a>
+<a href="#1156" id="1156">1156</a>
+<a href="#1157" id="1157">1157</a>
+<a href="#1158" id="1158">1158</a>
+<a href="#1159" id="1159">1159</a>
+<a href="#1160" id="1160">1160</a>
+<a href="#1161" id="1161">1161</a>
+<a href="#1162" id="1162">1162</a>
+<a href="#1163" id="1163">1163</a>
+<a href="#1164" id="1164">1164</a>
+<a href="#1165" id="1165">1165</a>
+<a href="#1166" id="1166">1166</a>
+<a href="#1167" id="1167">1167</a>
+<a href="#1168" id="1168">1168</a>
+<a href="#1169" id="1169">1169</a>
+<a href="#1170" id="1170">1170</a>
+<a href="#1171" id="1171">1171</a>
+<a href="#1172" id="1172">1172</a>
+<a href="#1173" id="1173">1173</a>
+<a href="#1174" id="1174">1174</a>
+<a href="#1175" id="1175">1175</a>
+<a href="#1176" id="1176">1176</a>
+<a href="#1177" id="1177">1177</a>
+<a href="#1178" id="1178">1178</a>
+<a href="#1179" id="1179">1179</a>
+<a href="#1180" id="1180">1180</a>
+<a href="#1181" id="1181">1181</a>
+<a href="#1182" id="1182">1182</a>
+<a href="#1183" id="1183">1183</a>
+<a href="#1184" id="1184">1184</a>
+<a href="#1185" id="1185">1185</a>
+<a href="#1186" id="1186">1186</a>
+<a href="#1187" id="1187">1187</a>
+<a href="#1188" id="1188">1188</a>
+<a href="#1189" id="1189">1189</a>
+<a href="#1190" id="1190">1190</a>
+<a href="#1191" id="1191">1191</a>
+<a href="#1192" id="1192">1192</a>
+<a href="#1193" id="1193">1193</a>
+<a href="#1194" id="1194">1194</a>
+<a href="#1195" id="1195">1195</a>
+<a href="#1196" id="1196">1196</a>
+<a href="#1197" id="1197">1197</a>
+<a href="#1198" id="1198">1198</a>
+<a href="#1199" id="1199">1199</a>
+<a href="#1200" id="1200">1200</a>
+<a href="#1201" id="1201">1201</a>
+<a href="#1202" id="1202">1202</a>
+<a href="#1203" id="1203">1203</a>
+<a href="#1204" id="1204">1204</a>
+<a href="#1205" id="1205">1205</a>
+<a href="#1206" id="1206">1206</a>
+<a href="#1207" id="1207">1207</a>
+<a href="#1208" id="1208">1208</a>
+<a href="#1209" id="1209">1209</a>
+<a href="#1210" id="1210">1210</a>
+<a href="#1211" id="1211">1211</a>
+<a href="#1212" id="1212">1212</a>
+<a href="#1213" id="1213">1213</a>
+<a href="#1214" id="1214">1214</a>
+<a href="#1215" id="1215">1215</a>
+<a href="#1216" id="1216">1216</a>
+<a href="#1217" id="1217">1217</a>
+</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
+// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
+//
+// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
+//
+// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
+// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// You may not use this file except in accordance with one or both of these
+// licenses.
+
+</span><span class="doccomment">//! Descriptors DSL
+
+</span><span class="attr">#[doc(hidden)]
+#[macro_export]
+</span><span class="macro">macro_rules! </span>impl_top_level_sh {
+ <span class="comment">// disallow `sortedmulti` in `bare()`
+ </span>( Bare, new, new, Legacy, sortedmulti $( <span class="macro-nonterminal">$inner</span>:tt )* ) => {
+ <span class="macro">compile_error!</span>(<span class="string">"`bare()` descriptors can't contain any `sortedmulti()` operands"</span>);
+ };
+ ( Bare, new, new, Legacy, sortedmulti_vec $( <span class="macro-nonterminal">$inner</span>:tt )* ) => {
+ <span class="macro">compile_error!</span>(<span class="string">"`bare()` descriptors can't contain any `sortedmulti_vec()` operands"</span>);
+ };
+
+ ( <span class="macro-nonterminal">$inner_struct</span>:ident, <span class="macro-nonterminal">$constructor</span>:ident, <span class="macro-nonterminal">$sortedmulti_constructor</span>:ident, <span class="macro-nonterminal">$ctx</span>:ident, sortedmulti $( <span class="macro-nonterminal">$inner</span>:tt )* ) => {{
+ <span class="kw">use </span>core::marker::PhantomData;
+
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::descriptor</span>::{<span class="macro-nonterminal">$inner_struct</span>, Descriptor, DescriptorPublicKey};
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript</span>::<span class="macro-nonterminal">$ctx</span>;
+
+ <span class="kw">let </span>build_desc = |k, pks| {
+ <span class="prelude-val">Ok</span>((Descriptor::<DescriptorPublicKey>::<span class="macro-nonterminal">$inner_struct</span>(<span class="macro-nonterminal">$inner_struct</span>::<span class="macro-nonterminal">$sortedmulti_constructor</span>(k, pks)<span class="question-mark">?</span>), PhantomData::<<span class="macro-nonterminal">$ctx</span>>))
+ };
+
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_sortedmulti!</span>(<span class="macro-nonterminal">build_desc</span>, sortedmulti $( <span class="macro-nonterminal">$inner </span>)<span class="kw-2">*</span>)
+ }};
+ ( <span class="macro-nonterminal">$inner_struct</span>:ident, <span class="macro-nonterminal">$constructor</span>:ident, <span class="macro-nonterminal">$sortedmulti_constructor</span>:ident, <span class="macro-nonterminal">$ctx</span>:ident, sortedmulti_vec $( <span class="macro-nonterminal">$inner</span>:tt )* ) => {{
+ <span class="kw">use </span>core::marker::PhantomData;
+
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::descriptor</span>::{<span class="macro-nonterminal">$inner_struct</span>, Descriptor, DescriptorPublicKey};
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript</span>::<span class="macro-nonterminal">$ctx</span>;
+
+ <span class="kw">let </span>build_desc = |k, pks| {
+ <span class="prelude-val">Ok</span>((Descriptor::<DescriptorPublicKey>::<span class="macro-nonterminal">$inner_struct</span>(<span class="macro-nonterminal">$inner_struct</span>::<span class="macro-nonterminal">$sortedmulti_constructor</span>(k, pks)<span class="question-mark">?</span>), PhantomData::<<span class="macro-nonterminal">$ctx</span>>))
+ };
+
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_sortedmulti!</span>(<span class="macro-nonterminal">build_desc</span>, sortedmulti_vec $( <span class="macro-nonterminal">$inner </span>)<span class="kw-2">*</span>)
+ }};
+
+ ( <span class="macro-nonterminal">$inner_struct</span>:ident, <span class="macro-nonterminal">$constructor</span>:ident, <span class="macro-nonterminal">$sortedmulti_constructor</span>:ident, <span class="macro-nonterminal">$ctx</span>:ident, $( <span class="macro-nonterminal">$minisc</span>:tt )* ) => {{
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::descriptor</span>::{<span class="macro-nonterminal">$inner_struct</span>, Descriptor, DescriptorPublicKey};
+
+ <span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>($( <span class="macro-nonterminal">$minisc </span>)<span class="kw-2">*</span>)
+ .and_then(|(minisc, keymap, networks)| <span class="prelude-val">Ok</span>((<span class="macro-nonterminal">$inner_struct</span>::<span class="macro-nonterminal">$constructor</span>(minisc)<span class="question-mark">?</span>, keymap, networks)))
+ .and_then(|(inner, key_map, valid_networks)| <span class="prelude-val">Ok</span>((Descriptor::<DescriptorPublicKey>::<span class="macro-nonterminal">$inner_struct</span>(inner), key_map, valid_networks)))
+ }};
+}
+
+<span class="attr">#[doc(hidden)]
+#[macro_export]
+</span><span class="macro">macro_rules! </span>impl_top_level_pk {
+ ( <span class="macro-nonterminal">$inner_type</span>:ident, <span class="macro-nonterminal">$ctx</span>:ty, <span class="macro-nonterminal">$key</span>:expr ) => {{
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::descriptor</span>::<span class="macro-nonterminal">$inner_type</span>;
+
+ <span class="attr">#[allow(unused_imports)]
+ </span><span class="kw">use </span><span class="macro-nonterminal">$crate::keys</span>::{DescriptorKey, IntoDescriptorKey};
+ <span class="kw">let </span>secp = <span class="macro-nonterminal">$crate::bitcoin::secp256k1::Secp256k1::new</span>();
+
+ <span class="macro-nonterminal">$key</span>.into_descriptor_key()
+ .and_then(|key: DescriptorKey<<span class="macro-nonterminal">$ctx</span>>| key.extract(<span class="kw-2">&</span>secp))
+ .map_err(<span class="macro-nonterminal">$crate::descriptor::DescriptorError::Key</span>)
+ .map(|(pk, key_map, valid_networks)| (<span class="macro-nonterminal">$inner_type::new</span>(pk), key_map, valid_networks))
+ }};
+}
+
+<span class="attr">#[doc(hidden)]
+#[macro_export]
+</span><span class="macro">macro_rules! </span>impl_top_level_tr {
+ ( <span class="macro-nonterminal">$internal_key</span>:expr, <span class="macro-nonterminal">$tap_tree</span>:expr ) => {{
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::descriptor</span>::{
+ Descriptor, DescriptorPublicKey, KeyMap, TapTree, Tr,
+ };
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::Tap</span>;
+
+ <span class="attr">#[allow(unused_imports)]
+ </span><span class="kw">use </span><span class="macro-nonterminal">$crate::keys</span>::{DescriptorKey, IntoDescriptorKey, ValidNetworks};
+
+ <span class="kw">let </span>secp = <span class="macro-nonterminal">$crate::bitcoin::secp256k1::Secp256k1::new</span>();
+
+ <span class="macro-nonterminal">$internal_key
+ </span>.into_descriptor_key()
+ .and_then(|key: DescriptorKey<Tap>| key.extract(<span class="kw-2">&</span>secp))
+ .map_err(<span class="macro-nonterminal">$crate::descriptor::DescriptorError::Key</span>)
+ .and_then(|(pk, <span class="kw-2">mut </span>key_map, <span class="kw-2">mut </span>valid_networks)| {
+ <span class="kw">let </span>tap_tree = <span class="macro-nonterminal">$tap_tree</span>.map(
+ |(tap_tree, tree_keymap, tree_networks): (
+ TapTree<DescriptorPublicKey>,
+ KeyMap,
+ ValidNetworks,
+ )| {
+ key_map.extend(tree_keymap.into_iter());
+ valid_networks =
+ <span class="macro-nonterminal">$crate::keys::merge_networks</span>(<span class="kw-2">&</span>valid_networks, <span class="kw-2">&</span>tree_networks);
+
+ tap_tree
+ },
+ );
+
+ <span class="prelude-val">Ok</span>((
+ Descriptor::<DescriptorPublicKey>::Tr(Tr::new(pk, tap_tree)<span class="question-mark">?</span>),
+ key_map,
+ valid_networks,
+ ))
+ })
+ }};
+}
+
+<span class="attr">#[doc(hidden)]
+#[macro_export]
+</span><span class="macro">macro_rules! </span>impl_leaf_opcode {
+ ( <span class="macro-nonterminal">$terminal_variant</span>:ident ) => {{
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::descriptor::CheckMiniscript</span>;
+
+ <span class="macro-nonterminal">$crate::miniscript::Miniscript::from_ast</span>(
+ <span class="macro-nonterminal">$crate::miniscript::miniscript::decode::Terminal</span>::<span class="macro-nonterminal">$terminal_variant</span>,
+ )
+ .map_err(<span class="macro-nonterminal">$crate::descriptor::DescriptorError::Miniscript</span>)
+ .and_then(|minisc| {
+ minisc.check_miniscript()<span class="question-mark">?</span>;
+ <span class="prelude-val">Ok</span>(minisc)
+ })
+ .map(|minisc| {
+ (
+ minisc,
+ <span class="macro-nonterminal">$crate::miniscript::descriptor::KeyMap::default</span>(),
+ <span class="macro-nonterminal">$crate::keys::any_network</span>(),
+ )
+ })
+ }};
+}
+
+<span class="attr">#[doc(hidden)]
+#[macro_export]
+</span><span class="macro">macro_rules! </span>impl_leaf_opcode_value {
+ ( <span class="macro-nonterminal">$terminal_variant</span>:ident, <span class="macro-nonterminal">$value</span>:expr ) => {{
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::descriptor::CheckMiniscript</span>;
+
+ <span class="macro-nonterminal">$crate::miniscript::Miniscript::from_ast</span>(
+ <span class="macro-nonterminal">$crate::miniscript::miniscript::decode::Terminal</span>::<span class="macro-nonterminal">$terminal_variant</span>(<span class="macro-nonterminal">$value</span>),
+ )
+ .map_err(<span class="macro-nonterminal">$crate::descriptor::DescriptorError::Miniscript</span>)
+ .and_then(|minisc| {
+ minisc.check_miniscript()<span class="question-mark">?</span>;
+ <span class="prelude-val">Ok</span>(minisc)
+ })
+ .map(|minisc| {
+ (
+ minisc,
+ <span class="macro-nonterminal">$crate::miniscript::descriptor::KeyMap::default</span>(),
+ <span class="macro-nonterminal">$crate::keys::any_network</span>(),
+ )
+ })
+ }};
+}
+
+<span class="attr">#[doc(hidden)]
+#[macro_export]
+</span><span class="macro">macro_rules! </span>impl_leaf_opcode_value_two {
+ ( <span class="macro-nonterminal">$terminal_variant</span>:ident, <span class="macro-nonterminal">$one</span>:expr, <span class="macro-nonterminal">$two</span>:expr ) => {{
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::descriptor::CheckMiniscript</span>;
+
+ <span class="macro-nonterminal">$crate::miniscript::Miniscript::from_ast</span>(
+ <span class="macro-nonterminal">$crate::miniscript::miniscript::decode::Terminal</span>::<span class="macro-nonterminal">$terminal_variant</span>(<span class="macro-nonterminal">$one</span>, <span class="macro-nonterminal">$two</span>),
+ )
+ .map_err(<span class="macro-nonterminal">$crate::descriptor::DescriptorError::Miniscript</span>)
+ .and_then(|minisc| {
+ minisc.check_miniscript()<span class="question-mark">?</span>;
+ <span class="prelude-val">Ok</span>(minisc)
+ })
+ .map(|minisc| {
+ (
+ minisc,
+ <span class="macro-nonterminal">$crate::miniscript::descriptor::KeyMap::default</span>(),
+ <span class="macro-nonterminal">$crate::keys::any_network</span>(),
+ )
+ })
+ }};
+}
+
+<span class="attr">#[doc(hidden)]
+#[macro_export]
+</span><span class="macro">macro_rules! </span>impl_node_opcode_two {
+ ( <span class="macro-nonterminal">$terminal_variant</span>:ident, $( <span class="macro-nonterminal">$inner</span>:tt )* ) => ({
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::descriptor::CheckMiniscript</span>;
+
+ <span class="kw">let </span>inner = <span class="macro-nonterminal">$</span><span class="macro">crate::fragment_internal!</span>( @<span class="macro-nonterminal">t </span>$( <span class="macro-nonterminal">$inner </span>)* );
+ <span class="kw">let </span>(a, b) = <span class="macro-nonterminal">$crate::descriptor::dsl::TupleTwo::from</span>(inner).flattened();
+
+ a
+ .and_then(|a| <span class="prelude-val">Ok</span>((a, b<span class="question-mark">?</span>)))
+ .and_then(|((a_minisc, <span class="kw-2">mut </span>a_keymap, a_networks), (b_minisc, b_keymap, b_networks))| {
+ <span class="comment">// join key_maps
+ </span>a_keymap.extend(b_keymap.into_iter());
+
+ <span class="kw">let </span>minisc = <span class="macro-nonterminal">$crate::miniscript::Miniscript::from_ast</span>(<span class="macro-nonterminal">$crate::miniscript::miniscript::decode::Terminal</span>::<span class="macro-nonterminal">$terminal_variant</span>(
+ <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(a_minisc),
+ <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(b_minisc),
+ ))<span class="question-mark">?</span>;
+
+ minisc.check_miniscript()<span class="question-mark">?</span>;
+
+ <span class="prelude-val">Ok</span>((minisc, a_keymap, <span class="macro-nonterminal">$crate::keys::merge_networks</span>(<span class="kw-2">&</span>a_networks, <span class="kw-2">&</span>b_networks)))
+ })
+ });
+}
+
+<span class="attr">#[doc(hidden)]
+#[macro_export]
+</span><span class="macro">macro_rules! </span>impl_node_opcode_three {
+ ( <span class="macro-nonterminal">$terminal_variant</span>:ident, $( <span class="macro-nonterminal">$inner</span>:tt )* ) => ({
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::descriptor::CheckMiniscript</span>;
+
+ <span class="kw">let </span>inner = <span class="macro-nonterminal">$</span><span class="macro">crate::fragment_internal!</span>( @<span class="macro-nonterminal">t </span>$( <span class="macro-nonterminal">$inner </span>)* );
+ <span class="kw">let </span>(a, b, c) = <span class="macro-nonterminal">$crate::descriptor::dsl::TupleThree::from</span>(inner).flattened();
+
+ a
+ .and_then(|a| <span class="prelude-val">Ok</span>((a, b<span class="question-mark">?</span>, c<span class="question-mark">?</span>)))
+ .and_then(|((a_minisc, <span class="kw-2">mut </span>a_keymap, a_networks), (b_minisc, b_keymap, b_networks), (c_minisc, c_keymap, c_networks))| {
+ <span class="comment">// join key_maps
+ </span>a_keymap.extend(b_keymap.into_iter());
+ a_keymap.extend(c_keymap.into_iter());
+
+ <span class="kw">let </span>networks = <span class="macro-nonterminal">$crate::keys::merge_networks</span>(<span class="kw-2">&</span>a_networks, <span class="kw-2">&</span>b_networks);
+ <span class="kw">let </span>networks = <span class="macro-nonterminal">$crate::keys::merge_networks</span>(<span class="kw-2">&</span>networks, <span class="kw-2">&</span>c_networks);
+
+ <span class="kw">let </span>minisc = <span class="macro-nonterminal">$crate::miniscript::Miniscript::from_ast</span>(<span class="macro-nonterminal">$crate::miniscript::miniscript::decode::Terminal</span>::<span class="macro-nonterminal">$terminal_variant</span>(
+ <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(a_minisc),
+ <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(b_minisc),
+ <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(c_minisc),
+ ))<span class="question-mark">?</span>;
+
+ minisc.check_miniscript()<span class="question-mark">?</span>;
+
+ <span class="prelude-val">Ok</span>((minisc, a_keymap, networks))
+ })
+ });
+}
+
+<span class="attr">#[doc(hidden)]
+#[macro_export]
+</span><span class="macro">macro_rules! </span>impl_sortedmulti {
+ ( <span class="macro-nonterminal">$build_desc</span>:expr, sortedmulti_vec ( <span class="macro-nonterminal">$thresh</span>:expr, <span class="macro-nonterminal">$keys</span>:expr ) ) => ({
+ <span class="kw">let </span>secp = <span class="macro-nonterminal">$crate::bitcoin::secp256k1::Secp256k1::new</span>();
+ <span class="macro-nonterminal">$crate::keys::make_sortedmulti</span>(<span class="macro-nonterminal">$thresh</span>, <span class="macro-nonterminal">$keys</span>, <span class="macro-nonterminal">$build_desc</span>, <span class="kw-2">&</span>secp)
+ });
+ ( <span class="macro-nonterminal">$build_desc</span>:expr, sortedmulti ( <span class="macro-nonterminal">$thresh</span>:expr $(, <span class="macro-nonterminal">$key</span>:expr )+ ) ) => ({
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::keys::IntoDescriptorKey</span>;
+ <span class="kw">let </span>secp = <span class="macro-nonterminal">$crate::bitcoin::secp256k1::Secp256k1::new</span>();
+
+ <span class="kw">let </span>keys = <span class="macro">vec!</span>[
+ $(
+ <span class="macro-nonterminal">$key</span>.into_descriptor_key(),
+ )*
+ ];
+
+ keys.into_iter().collect::<<span class="prelude-ty">Result</span><<span class="macro-nonterminal">$crate::alloc::vec::Vec</span><<span class="kw">_</span>>, <span class="kw">_</span>>>()
+ .map_err(<span class="macro-nonterminal">$crate::descriptor::DescriptorError::Key</span>)
+ .and_then(|keys| <span class="macro-nonterminal">$crate::keys::make_sortedmulti</span>(<span class="macro-nonterminal">$thresh</span>, keys, <span class="macro-nonterminal">$build_desc</span>, <span class="kw-2">&</span>secp))
+ });
+
+}
+
+<span class="attr">#[doc(hidden)]
+#[macro_export]
+</span><span class="macro">macro_rules! </span>parse_tap_tree {
+ ( @merge <span class="macro-nonterminal">$tree_a</span>:expr, <span class="macro-nonterminal">$tree_b</span>:expr) => {{
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::descriptor::TapTree</span>;
+
+ <span class="macro-nonterminal">$tree_a
+ </span>.and_then(|tree_a| <span class="prelude-val">Ok</span>((tree_a, <span class="macro-nonterminal">$tree_b</span><span class="question-mark">?</span>)))
+ .and_then(|((a_tree, <span class="kw-2">mut </span>a_keymap, a_networks), (b_tree, b_keymap, b_networks))| {
+ a_keymap.extend(b_keymap.into_iter());
+ <span class="prelude-val">Ok</span>((TapTree::combine(a_tree, b_tree), a_keymap, <span class="macro-nonterminal">$crate::keys::merge_networks</span>(<span class="kw-2">&</span>a_networks, <span class="kw-2">&</span>b_networks)))
+ })
+
+ }};
+
+ <span class="comment">// Two sub-trees
+ </span>( { { $( <span class="macro-nonterminal">$tree_a</span>:tt )* }, { $( <span class="macro-nonterminal">$tree_b</span>:tt )* } } ) => {{
+ <span class="kw">let </span>tree_a = <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>( { $( <span class="macro-nonterminal">$tree_a </span>)* } );
+ <span class="kw">let </span>tree_b = <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>( { $( <span class="macro-nonterminal">$tree_b </span>)* } );
+
+ <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>(@<span class="macro-nonterminal">merge </span>tree_a, tree_b)
+ }};
+
+ <span class="comment">// One leaf and a sub-tree
+ </span>( { <span class="macro-nonterminal">$op_a</span>:ident ( $( <span class="macro-nonterminal">$minisc_a</span>:tt )* ), { $( <span class="macro-nonterminal">$tree_b</span>:tt )* } } ) => {{
+ <span class="kw">let </span>tree_a = <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>( <span class="macro-nonterminal">$op_a </span>( $( <span class="macro-nonterminal">$minisc_a </span>)* ) );
+ <span class="kw">let </span>tree_b = <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>( { $( <span class="macro-nonterminal">$tree_b </span>)* } );
+
+ <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>(@<span class="macro-nonterminal">merge </span>tree_a, tree_b)
+ }};
+ ( { { $( <span class="macro-nonterminal">$tree_a</span>:tt )* }, <span class="macro-nonterminal">$op_b</span>:ident ( $( <span class="macro-nonterminal">$minisc_b</span>:tt )* ) } ) => {{
+ <span class="kw">let </span>tree_a = <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>( { $( <span class="macro-nonterminal">$tree_a </span>)* } );
+ <span class="kw">let </span>tree_b = <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>( <span class="macro-nonterminal">$op_b </span>( $( <span class="macro-nonterminal">$minisc_b </span>)* ) );
+
+ <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>(@<span class="macro-nonterminal">merge </span>tree_a, tree_b)
+ }};
+
+ <span class="comment">// Two leaves
+ </span>( { <span class="macro-nonterminal">$op_a</span>:ident ( $( <span class="macro-nonterminal">$minisc_a</span>:tt )* ), <span class="macro-nonterminal">$op_b</span>:ident ( $( <span class="macro-nonterminal">$minisc_b</span>:tt )* ) } ) => {{
+ <span class="kw">let </span>tree_a = <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>( <span class="macro-nonterminal">$op_a </span>( $( <span class="macro-nonterminal">$minisc_a </span>)* ) );
+ <span class="kw">let </span>tree_b = <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>( <span class="macro-nonterminal">$op_b </span>( $( <span class="macro-nonterminal">$minisc_b </span>)* ) );
+
+ <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>(@<span class="macro-nonterminal">merge </span>tree_a, tree_b)
+ }};
+
+ <span class="comment">// Single leaf
+ </span>( <span class="macro-nonterminal">$op</span>:ident ( $( <span class="macro-nonterminal">$minisc</span>:tt )* ) ) => {{
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::alloc::sync::Arc</span>;
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::descriptor::TapTree</span>;
+
+ <span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>( <span class="macro-nonterminal">$op </span>( $( <span class="macro-nonterminal">$minisc </span>)* ) )
+ .map(|(a_minisc, a_keymap, a_networks)| (TapTree::Leaf(Arc::new(a_minisc)), a_keymap, a_networks))
+ }};
+}
+
+<span class="attr">#[doc(hidden)]
+#[macro_export]
+</span><span class="macro">macro_rules! </span>apply_modifier {
+ ( <span class="macro-nonterminal">$terminal_variant</span>:ident, <span class="macro-nonterminal">$inner</span>:expr ) => {{
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::descriptor::CheckMiniscript</span>;
+
+ <span class="macro-nonterminal">$inner
+ </span>.map_err(|e| -> <span class="macro-nonterminal">$crate::descriptor::DescriptorError </span>{ e.into() })
+ .and_then(|(minisc, keymap, networks)| {
+ <span class="kw">let </span>minisc = <span class="macro-nonterminal">$crate::miniscript::Miniscript::from_ast</span>(
+ <span class="macro-nonterminal">$crate::miniscript::miniscript::decode::Terminal</span>::<span class="macro-nonterminal">$terminal_variant</span>(
+ <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(minisc),
+ ),
+ )<span class="question-mark">?</span>;
+
+ minisc.check_miniscript()<span class="question-mark">?</span>;
+
+ <span class="prelude-val">Ok</span>((minisc, keymap, networks))
+ })
+ }};
+
+ ( a: <span class="macro-nonterminal">$inner</span>:expr ) => {{
+ <span class="macro-nonterminal">$</span><span class="macro">crate::apply_modifier!</span>(<span class="macro-nonterminal">Alt</span>, <span class="macro-nonterminal">$inner</span>)
+ }};
+ ( s: <span class="macro-nonterminal">$inner</span>:expr ) => {{
+ <span class="macro-nonterminal">$</span><span class="macro">crate::apply_modifier!</span>(<span class="macro-nonterminal">Swap</span>, <span class="macro-nonterminal">$inner</span>)
+ }};
+ ( c: <span class="macro-nonterminal">$inner</span>:expr ) => {{
+ <span class="macro-nonterminal">$</span><span class="macro">crate::apply_modifier!</span>(<span class="macro-nonterminal">Check</span>, <span class="macro-nonterminal">$inner</span>)
+ }};
+ ( d: <span class="macro-nonterminal">$inner</span>:expr ) => {{
+ <span class="macro-nonterminal">$</span><span class="macro">crate::apply_modifier!</span>(<span class="macro-nonterminal">DupIf</span>, <span class="macro-nonterminal">$inner</span>)
+ }};
+ ( v: <span class="macro-nonterminal">$inner</span>:expr ) => {{
+ <span class="macro-nonterminal">$</span><span class="macro">crate::apply_modifier!</span>(<span class="macro-nonterminal">Verify</span>, <span class="macro-nonterminal">$inner</span>)
+ }};
+ ( j: <span class="macro-nonterminal">$inner</span>:expr ) => {{
+ <span class="macro-nonterminal">$</span><span class="macro">crate::apply_modifier!</span>(<span class="macro-nonterminal">NonZero</span>, <span class="macro-nonterminal">$inner</span>)
+ }};
+ ( n: <span class="macro-nonterminal">$inner</span>:expr ) => {{
+ <span class="macro-nonterminal">$</span><span class="macro">crate::apply_modifier!</span>(<span class="macro-nonterminal">ZeroNotEqual</span>, <span class="macro-nonterminal">$inner</span>)
+ }};
+
+ <span class="comment">// Modifiers expanded to other operators
+ </span>( t: <span class="macro-nonterminal">$inner</span>:expr ) => {{
+ <span class="macro-nonterminal">$inner</span>.and_then(|(a_minisc, a_keymap, a_networks)| {
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode_value_two!</span>(
+ <span class="macro-nonterminal">AndV</span>,
+ <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(a_minisc),
+ <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(<span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>(<span class="bool-val">true</span>).<span class="macro-nonterminal">unwrap</span>().<span class="number">0</span>)
+ )
+ .map(|(minisc, <span class="kw">_</span>, <span class="kw">_</span>)| (minisc, a_keymap, a_networks))
+ })
+ }};
+ ( l: <span class="macro-nonterminal">$inner</span>:expr ) => {{
+ <span class="macro-nonterminal">$inner</span>.and_then(|(a_minisc, a_keymap, a_networks)| {
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode_value_two!</span>(
+ <span class="macro-nonterminal">OrI</span>,
+ <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(<span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>(<span class="bool-val">false</span>).<span class="macro-nonterminal">unwrap</span>().<span class="number">0</span>),
+ <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(a_minisc)
+ )
+ .map(|(minisc, <span class="kw">_</span>, <span class="kw">_</span>)| (minisc, a_keymap, a_networks))
+ })
+ }};
+ ( u: <span class="macro-nonterminal">$inner</span>:expr ) => {{
+ <span class="macro-nonterminal">$inner</span>.and_then(|(a_minisc, a_keymap, a_networks)| {
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode_value_two!</span>(
+ <span class="macro-nonterminal">OrI</span>,
+ <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(a_minisc),
+ <span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>(<span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>(<span class="bool-val">false</span>).<span class="macro-nonterminal">unwrap</span>().<span class="number">0</span>)
+ )
+ .map(|(minisc, <span class="kw">_</span>, <span class="kw">_</span>)| (minisc, a_keymap, a_networks))
+ })
+ }};
+}
+
+<span class="doccomment">/// Macro to write full descriptors with code
+///
+/// This macro expands to a `Result` of
+/// [`DescriptorTemplateOut`](super::template::DescriptorTemplateOut) and [`DescriptorError`](crate::descriptor::DescriptorError)
+///
+/// The syntax is very similar to the normal descriptor syntax, with the exception that modifiers
+/// cannot be grouped together. For instance, a descriptor fragment like `sdv:older(144)` has to be
+/// broken up to `s:d:v:older(144)`.
+///
+/// The `pk()`, `pk_k()` and `pk_h()` operands can take as argument any type that implements
+/// [`IntoDescriptorKey`]. This means that keys can also be written inline as strings, but in that
+/// case they must be wrapped in quotes, which is another difference compared to the standard
+/// descriptor syntax.
+///
+/// [`IntoDescriptorKey`]: crate::keys::IntoDescriptorKey
+///
+/// ## Example
+///
+/// Signature plus timelock descriptor:
+///
+/// ```
+/// # use std::str::FromStr;
+/// let (my_descriptor, my_keys_map, networks) = bdk_wallet::descriptor!(sh(wsh(and_v(v:pk("cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy"),older(50)))))?;
+/// # Ok::<(), Box<dyn std::error::Error>>(())
+/// ```
+///
+/// -------
+///
+/// 2-of-3 that becomes a 1-of-3 after a timelock has expired. Both `descriptor_a` and `descriptor_b` are equivalent: the first
+/// syntax is more suitable for a fixed number of items known at compile time, while the other accepts a
+/// [`Vec`] of items, which makes it more suitable for writing dynamic descriptors.
+///
+/// They both produce the descriptor: `wsh(thresh(2,pk(...),s:pk(...),sndv:older(...)))`
+///
+/// ```
+/// # use std::str::FromStr;
+/// let my_key_1 = bitcoin::PublicKey::from_str(
+/// "02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c",
+/// )?;
+/// let my_key_2 =
+/// bitcoin::PrivateKey::from_wif("cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy")?;
+/// let my_timelock = 50;
+///
+/// let (descriptor_a, key_map_a, networks) = bdk_wallet::descriptor! {
+/// wsh (
+/// thresh(2, pk(my_key_1), s:pk(my_key_2), s:n:d:v:older(my_timelock))
+/// )
+/// }?;
+///
+/// #[rustfmt::skip]
+/// let b_items = vec![
+/// bdk_wallet::fragment!(pk(my_key_1))?,
+/// bdk_wallet::fragment!(s:pk(my_key_2))?,
+/// bdk_wallet::fragment!(s:n:d:v:older(my_timelock))?,
+/// ];
+/// let (descriptor_b, mut key_map_b, networks) =
+/// bdk_wallet::descriptor!(wsh(thresh_vec(2, b_items)))?;
+///
+/// assert_eq!(descriptor_a, descriptor_b);
+/// assert_eq!(key_map_a.len(), key_map_b.len());
+/// # Ok::<(), Box<dyn std::error::Error>>(())
+/// ```
+///
+/// ------
+///
+/// Simple 2-of-2 multi-signature, equivalent to: `wsh(multi(2, ...))`
+///
+/// ```
+/// # use std::str::FromStr;
+/// let my_key_1 = bitcoin::PublicKey::from_str(
+/// "02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c",
+/// )?;
+/// let my_key_2 =
+/// bitcoin::PrivateKey::from_wif("cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy")?;
+///
+/// let (descriptor, key_map, networks) = bdk_wallet::descriptor! {
+/// wsh (
+/// multi(2, my_key_1, my_key_2)
+/// )
+/// }?;
+/// # Ok::<(), Box<dyn std::error::Error>>(())
+/// ```
+///
+/// ------
+///
+/// Native-Segwit single-sig, equivalent to: `wpkh(...)`
+///
+/// ```
+/// let my_key =
+/// bitcoin::PrivateKey::from_wif("cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy")?;
+///
+/// let (descriptor, key_map, networks) = bdk_wallet::descriptor!(wpkh(my_key))?;
+/// # Ok::<(), Box<dyn std::error::Error>>(())
+/// ```
+///
+/// [`Vec`]: alloc::vec::Vec
+</span><span class="attr">#[macro_export]
+</span><span class="macro">macro_rules! </span>descriptor {
+ ( bare ( $( <span class="macro-nonterminal">$minisc</span>:tt )* ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_top_level_sh!</span>(<span class="macro-nonterminal">Bare</span>, new, new, Legacy, $( <span class="macro-nonterminal">$minisc </span>)<span class="kw-2">*</span>)
+ });
+ ( sh ( wsh ( $( <span class="macro-nonterminal">$minisc</span>:tt )* ) ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::descriptor!</span>(<span class="macro-nonterminal">shwsh </span>($( <span class="macro-nonterminal">$minisc </span>)<span class="kw-2">*</span>))
+ });
+ ( shwsh ( $( <span class="macro-nonterminal">$minisc</span>:tt )* ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_top_level_sh!</span>(<span class="macro-nonterminal">Sh</span>, new_wsh, new_wsh_sortedmulti, Segwitv0, $( <span class="macro-nonterminal">$minisc </span>)<span class="kw-2">*</span>)
+ });
+ ( pk ( <span class="macro-nonterminal">$key</span>:expr ) ) => ({
+ <span class="comment">// `pk()` is actually implemented as `bare(pk())`
+ </span><span class="macro-nonterminal">$</span><span class="macro">crate::descriptor!</span>( <span class="macro-nonterminal">bare </span>( pk ( <span class="macro-nonterminal">$key </span>) ) )
+ });
+ ( pkh ( <span class="macro-nonterminal">$key</span>:expr ) ) => ({
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::descriptor</span>::{Descriptor, DescriptorPublicKey};
+
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_top_level_pk!</span>(<span class="macro-nonterminal">Pkh</span>, <span class="macro-nonterminal">$crate::miniscript::Legacy</span>, <span class="macro-nonterminal">$key</span>)
+ .and_then(|(a, b, c)| <span class="prelude-val">Ok</span>((a.map_err(|e| miniscript::Error::from(e))<span class="question-mark">?</span>, b, c)))
+ .map(|(a, b, c)| (Descriptor::<DescriptorPublicKey>::Pkh(a), b, c))
+ });
+ ( wpkh ( <span class="macro-nonterminal">$key</span>:expr ) ) => ({
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::descriptor</span>::{Descriptor, DescriptorPublicKey};
+
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_top_level_pk!</span>(<span class="macro-nonterminal">Wpkh</span>, <span class="macro-nonterminal">$crate::miniscript::Segwitv0</span>, <span class="macro-nonterminal">$key</span>)
+ .and_then(|(a, b, c)| <span class="prelude-val">Ok</span>((a.map_err(|e| miniscript::Error::from(e))<span class="question-mark">?</span>, b, c)))
+ .map(|(a, b, c)| (Descriptor::<DescriptorPublicKey>::Wpkh(a), b, c))
+ });
+ ( sh ( wpkh ( <span class="macro-nonterminal">$key</span>:expr ) ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::descriptor!</span>(<span class="macro-nonterminal">shwpkh </span>( <span class="macro-nonterminal">$key </span>))
+ });
+ ( shwpkh ( <span class="macro-nonterminal">$key</span>:expr ) ) => ({
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::descriptor</span>::{Descriptor, DescriptorPublicKey, Sh};
+
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_top_level_pk!</span>(<span class="macro-nonterminal">Wpkh</span>, <span class="macro-nonterminal">$crate::miniscript::Segwitv0</span>, <span class="macro-nonterminal">$key</span>)
+ .and_then(|(a, b, c)| <span class="prelude-val">Ok</span>((a.map_err(|e| miniscript::Error::from(e))<span class="question-mark">?</span>, b, c)))
+ .and_then(|(a, b, c)| <span class="prelude-val">Ok</span>((Descriptor::<DescriptorPublicKey>::Sh(Sh::new_wpkh(a.into_inner())<span class="question-mark">?</span>), b, c)))
+ });
+ ( sh ( $( <span class="macro-nonterminal">$minisc</span>:tt )* ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_top_level_sh!</span>(<span class="macro-nonterminal">Sh</span>, new, new_sortedmulti, Legacy, $( <span class="macro-nonterminal">$minisc </span>)<span class="kw-2">*</span>)
+ });
+ ( wsh ( $( <span class="macro-nonterminal">$minisc</span>:tt )* ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_top_level_sh!</span>(<span class="macro-nonterminal">Wsh</span>, new, new_sortedmulti, Segwitv0, $( <span class="macro-nonterminal">$minisc </span>)<span class="kw-2">*</span>)
+ });
+
+ ( tr ( <span class="macro-nonterminal">$internal_key</span>:expr ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_top_level_tr!</span>(<span class="macro-nonterminal">$internal_key</span>, <span class="prelude-val">None</span>)
+ });
+ ( tr ( <span class="macro-nonterminal">$internal_key</span>:expr, $( <span class="macro-nonterminal">$taptree</span>:tt )* ) ) => ({
+ <span class="kw">let </span>tap_tree = <span class="macro-nonterminal">$</span><span class="macro">crate::parse_tap_tree!</span>( $( <span class="macro-nonterminal">$taptree </span>)* );
+ tap_tree
+ .and_then(|tap_tree| <span class="macro-nonterminal">$</span><span class="macro">crate::impl_top_level_tr!</span>(<span class="macro-nonterminal">$internal_key</span>, <span class="prelude-val">Some</span>(tap_tree)))
+ });
+}
+
+<span class="attr">#[doc(hidden)]
+</span><span class="kw">pub struct </span>TupleTwo<A, B> {
+ <span class="kw">pub </span>a: A,
+ <span class="kw">pub </span>b: B,
+}
+
+<span class="kw">impl</span><A, B> TupleTwo<A, B> {
+ <span class="kw">pub fn </span>flattened(<span class="self">self</span>) -> (A, B) {
+ (<span class="self">self</span>.a, <span class="self">self</span>.b)
+ }
+}
+
+<span class="kw">impl</span><A, B> From<(A, (B, ()))> <span class="kw">for </span>TupleTwo<A, B> {
+ <span class="kw">fn </span>from((a, (b, <span class="kw">_</span>)): (A, (B, ()))) -> <span class="self">Self </span>{
+ TupleTwo { a, b }
+ }
+}
+
+<span class="attr">#[doc(hidden)]
+</span><span class="kw">pub struct </span>TupleThree<A, B, C> {
+ <span class="kw">pub </span>a: A,
+ <span class="kw">pub </span>b: B,
+ <span class="kw">pub </span>c: C,
+}
+
+<span class="kw">impl</span><A, B, C> TupleThree<A, B, C> {
+ <span class="kw">pub fn </span>flattened(<span class="self">self</span>) -> (A, B, C) {
+ (<span class="self">self</span>.a, <span class="self">self</span>.b, <span class="self">self</span>.c)
+ }
+}
+
+<span class="kw">impl</span><A, B, C> From<(A, (B, (C, ())))> <span class="kw">for </span>TupleThree<A, B, C> {
+ <span class="kw">fn </span>from((a, (b, (c, <span class="kw">_</span>))): (A, (B, (C, ())))) -> <span class="self">Self </span>{
+ TupleThree { a, b, c }
+ }
+}
+
+<span class="attr">#[doc(hidden)]
+#[macro_export]
+</span><span class="macro">macro_rules! </span>group_multi_keys {
+ ( $( <span class="macro-nonterminal">$key</span>:expr ),+ ) => {{
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::keys::IntoDescriptorKey</span>;
+
+ <span class="kw">let </span>keys = <span class="macro">vec!</span>[
+ $(
+ <span class="macro-nonterminal">$key</span>.into_descriptor_key(),
+ )*
+ ];
+
+ keys.into_iter().collect::<<span class="prelude-ty">Result</span><<span class="macro-nonterminal">$crate::alloc::vec::Vec</span><<span class="kw">_</span>>, <span class="kw">_</span>>>()
+ .map_err(<span class="macro-nonterminal">$crate::descriptor::DescriptorError::Key</span>)
+ }};
+}
+
+<span class="attr">#[doc(hidden)]
+#[macro_export]
+</span><span class="macro">macro_rules! </span>fragment_internal {
+ <span class="comment">// The @v prefix is used to parse a sequence of operands and return them in a vector. This is
+ // used by operands that take a variable number of arguments, like `thresh()` and `multi()`.
+ </span>( @v <span class="macro-nonterminal">$op</span>:ident ( $( <span class="macro-nonterminal">$args</span>:tt )* ) $( <span class="macro-nonterminal">$tail</span>:tt )* ) => ({
+ <span class="kw">let </span><span class="kw-2">mut </span>v = <span class="macro">vec!</span>[<span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>( <span class="macro-nonterminal">$op </span>( $( <span class="macro-nonterminal">$args </span>)* ) )];
+ v.append(<span class="kw-2">&mut </span><span class="macro-nonterminal">$</span><span class="macro">crate::fragment_internal!</span>( @<span class="macro-nonterminal">v </span>$( <span class="macro-nonterminal">$tail </span>)* ));
+
+ v
+ });
+ <span class="comment">// Match modifiers
+ </span>( @v <span class="macro-nonterminal">$modif</span>:tt : $( <span class="macro-nonterminal">$tail</span>:tt )* ) => ({
+ <span class="kw">let </span><span class="kw-2">mut </span>v = <span class="macro-nonterminal">$</span><span class="macro">crate::fragment_internal!</span>( @<span class="macro-nonterminal">v </span>$( <span class="macro-nonterminal">$tail </span>)* );
+ <span class="kw">let </span>first = v.drain(..<span class="number">1</span>).next().unwrap();
+
+ <span class="kw">let </span>first = <span class="macro-nonterminal">$</span><span class="macro">crate::apply_modifier!</span>(<span class="macro-nonterminal">$modif</span>:first);
+
+ <span class="kw">let </span><span class="kw-2">mut </span>v_final = <span class="macro">vec!</span>[first];
+ v_final.append(<span class="kw-2">&mut </span>v);
+
+ v_final
+ });
+ <span class="comment">// Remove commas between operands
+ </span>( @v , $( <span class="macro-nonterminal">$tail</span>:tt )* ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::fragment_internal!</span>( @<span class="macro-nonterminal">v </span>$( <span class="macro-nonterminal">$tail </span>)* )
+ });
+ ( @v ) => ({
+ <span class="macro">vec!</span>[]
+ });
+
+ <span class="comment">// The @t prefix is used to parse a sequence of operands and return them in a tuple. This
+ // allows checking at compile-time the number of arguments passed to an operand. For this
+ // reason it's used by `and_*()`, `or_*()`, etc.
+ //
+ // Unfortunately, due to the fact that concatenating tuples is pretty hard, the final result
+ // adds in the first spot the parsed operand and in the second spot the result of parsing
+ // all the following ones. For two operands the type then corresponds to: (X, (X, ())). For
+ // three operands it's (X, (X, (X, ()))), etc.
+ //
+ // To check that the right number of arguments has been passed we can "cast" those tuples to
+ // more convenient structures like `TupleTwo`. If the conversion succeeds, the right number of
+ // args was passed. Otherwise the compilation fails entirely.
+ </span>( @t <span class="macro-nonterminal">$op</span>:ident ( $( <span class="macro-nonterminal">$args</span>:tt )* ) $( <span class="macro-nonterminal">$tail</span>:tt )* ) => ({
+ (<span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>( <span class="macro-nonterminal">$op </span>( $( <span class="macro-nonterminal">$args </span>)* ) ), <span class="macro-nonterminal">$</span><span class="macro">crate::fragment_internal!</span>( @<span class="macro-nonterminal">t </span>$( <span class="macro-nonterminal">$tail </span>)* ))
+ });
+ <span class="comment">// Match modifiers
+ </span>( @t <span class="macro-nonterminal">$modif</span>:tt : $( <span class="macro-nonterminal">$tail</span>:tt )* ) => ({
+ <span class="kw">let </span>(first, tail) = <span class="macro-nonterminal">$</span><span class="macro">crate::fragment_internal!</span>( @<span class="macro-nonterminal">t </span>$( <span class="macro-nonterminal">$tail </span>)* );
+ (<span class="macro-nonterminal">$</span><span class="macro">crate::apply_modifier!</span>(<span class="macro-nonterminal">$modif</span>:first), tail)
+ });
+ <span class="comment">// Remove commas between operands
+ </span>( @t , $( <span class="macro-nonterminal">$tail</span>:tt )* ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::fragment_internal!</span>( @<span class="macro-nonterminal">t </span>$( <span class="macro-nonterminal">$tail </span>)* )
+ });
+ ( @t ) => ({});
+
+ <span class="comment">// Fallback to calling `fragment!()`
+ </span>( $( <span class="macro-nonterminal">$tokens</span>:tt )* ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>($( <span class="macro-nonterminal">$tokens </span>)<span class="kw-2">*</span>)
+ });
+}
+
+<span class="doccomment">/// Macro to write descriptor fragments with code
+///
+/// This macro will be expanded to an object of type `Result<(Miniscript<DescriptorPublicKey, _>, KeyMap, ValidNetworks), DescriptorError>`. It allows writing
+/// fragments of larger descriptors that can be pieced together using `fragment!(thresh_vec(m, ...))`.
+///
+/// The syntax to write macro fragment is the same as documented for the [`descriptor`] macro.
+</span><span class="attr">#[macro_export]
+</span><span class="macro">macro_rules! </span>fragment {
+ <span class="comment">// Modifiers
+ </span>( <span class="macro-nonterminal">$modif</span>:tt : $( <span class="macro-nonterminal">$tail</span>:tt )* ) => ({
+ <span class="kw">let </span>op = <span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>( $( <span class="macro-nonterminal">$tail </span>)* );
+ <span class="macro-nonterminal">$</span><span class="macro">crate::apply_modifier!</span>(<span class="macro-nonterminal">$modif</span>:op)
+ });
+
+ <span class="comment">// Miniscript
+ </span>( <span class="bool-val">true </span>) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode!</span>(<span class="macro-nonterminal">True</span>)
+ });
+ ( <span class="bool-val">false </span>) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode!</span>(<span class="macro-nonterminal">False</span>)
+ });
+ ( pk_k ( <span class="macro-nonterminal">$key</span>:expr ) ) => ({
+ <span class="kw">let </span>secp = <span class="macro-nonterminal">$crate::bitcoin::secp256k1::Secp256k1::new</span>();
+ <span class="macro-nonterminal">$crate::keys::make_pk</span>(<span class="macro-nonterminal">$key</span>, <span class="kw-2">&</span>secp)
+ });
+ ( pk ( <span class="macro-nonterminal">$key</span>:expr ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>(<span class="macro-nonterminal">c</span>:pk_k ( <span class="macro-nonterminal">$key </span>))
+ });
+ ( pk_h ( <span class="macro-nonterminal">$key</span>:expr ) ) => ({
+ <span class="kw">let </span>secp = <span class="macro-nonterminal">$crate::bitcoin::secp256k1::Secp256k1::new</span>();
+ <span class="macro-nonterminal">$crate::keys::make_pkh</span>(<span class="macro-nonterminal">$key</span>, <span class="kw-2">&</span>secp)
+ });
+ ( after ( <span class="macro-nonterminal">$value</span>:expr ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode_value!</span>(<span class="macro-nonterminal">After</span>, <span class="macro-nonterminal">$crate::miniscript::AbsLockTime::from_consensus</span>(<span class="macro-nonterminal">$value</span>))
+ });
+ ( older ( <span class="macro-nonterminal">$value</span>:expr ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode_value!</span>(<span class="macro-nonterminal">Older</span>, <span class="macro-nonterminal">$crate::bitcoin::Sequence</span>(<span class="macro-nonterminal">$value</span>)) <span class="comment">// TODO!!
+ </span>});
+ ( sha256 ( <span class="macro-nonterminal">$hash</span>:expr ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode_value!</span>(<span class="macro-nonterminal">Sha256</span>, <span class="macro-nonterminal">$hash</span>)
+ });
+ ( hash256 ( <span class="macro-nonterminal">$hash</span>:expr ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode_value!</span>(<span class="macro-nonterminal">Hash256</span>, <span class="macro-nonterminal">$hash</span>)
+ });
+ ( ripemd160 ( <span class="macro-nonterminal">$hash</span>:expr ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode_value!</span>(<span class="macro-nonterminal">Ripemd160</span>, <span class="macro-nonterminal">$hash</span>)
+ });
+ ( hash160 ( <span class="macro-nonterminal">$hash</span>:expr ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode_value!</span>(<span class="macro-nonterminal">Hash160</span>, <span class="macro-nonterminal">$hash</span>)
+ });
+ ( and_v ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_node_opcode_two!</span>(<span class="macro-nonterminal">AndV</span>, $( <span class="macro-nonterminal">$inner </span>)<span class="kw-2">*</span>)
+ });
+ ( and_b ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_node_opcode_two!</span>(<span class="macro-nonterminal">AndB</span>, $( <span class="macro-nonterminal">$inner </span>)<span class="kw-2">*</span>)
+ });
+ ( and_or ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_node_opcode_three!</span>(<span class="macro-nonterminal">AndOr</span>, $( <span class="macro-nonterminal">$inner </span>)<span class="kw-2">*</span>)
+ });
+ ( andor ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_node_opcode_three!</span>(<span class="macro-nonterminal">AndOr</span>, $( <span class="macro-nonterminal">$inner </span>)<span class="kw-2">*</span>)
+ });
+ ( or_b ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_node_opcode_two!</span>(<span class="macro-nonterminal">OrB</span>, $( <span class="macro-nonterminal">$inner </span>)<span class="kw-2">*</span>)
+ });
+ ( or_d ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_node_opcode_two!</span>(<span class="macro-nonterminal">OrD</span>, $( <span class="macro-nonterminal">$inner </span>)<span class="kw-2">*</span>)
+ });
+ ( or_c ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_node_opcode_two!</span>(<span class="macro-nonterminal">OrC</span>, $( <span class="macro-nonterminal">$inner </span>)<span class="kw-2">*</span>)
+ });
+ ( or_i ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_node_opcode_two!</span>(<span class="macro-nonterminal">OrI</span>, $( <span class="macro-nonterminal">$inner </span>)<span class="kw-2">*</span>)
+ });
+ ( thresh_vec ( <span class="macro-nonterminal">$thresh</span>:expr, <span class="macro-nonterminal">$items</span>:expr ) ) => ({
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::miniscript::descriptor::KeyMap</span>;
+
+ <span class="kw">let </span>(items, key_maps_networks): (<span class="macro-nonterminal">$crate::alloc::vec::Vec</span><<span class="kw">_</span>>, <span class="macro-nonterminal">$crate::alloc::vec::Vec</span><<span class="kw">_</span>>) = <span class="macro-nonterminal">$items</span>.into_iter().map(|(a, b, c)| (a, (b, c))).unzip();
+ <span class="kw">let </span>items = items.into_iter().map(<span class="macro-nonterminal">$crate::alloc::sync::Arc::new</span>).collect();
+
+ <span class="kw">let </span>(key_maps, valid_networks) = key_maps_networks.into_iter().fold((KeyMap::default(), <span class="macro-nonterminal">$crate::keys::any_network</span>()), |(<span class="kw-2">mut </span>keys_acc, net_acc), (key, net)| {
+ keys_acc.extend(key.into_iter());
+ <span class="kw">let </span>net_acc = <span class="macro-nonterminal">$crate::keys::merge_networks</span>(<span class="kw-2">&</span>net_acc, <span class="kw-2">&</span>net);
+
+ (keys_acc, net_acc)
+ });
+
+ <span class="macro-nonterminal">$</span><span class="macro">crate::impl_leaf_opcode_value_two!</span>(<span class="macro-nonterminal">Thresh</span>, <span class="macro-nonterminal">$thresh</span>, items)
+ .map(|(minisc, <span class="kw">_</span>, <span class="kw">_</span>)| (minisc, key_maps, valid_networks))
+ });
+ ( thresh ( <span class="macro-nonterminal">$thresh</span>:expr, $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => ({
+ <span class="kw">let </span>items = <span class="macro-nonterminal">$</span><span class="macro">crate::fragment_internal!</span>( @<span class="macro-nonterminal">v </span>$( <span class="macro-nonterminal">$inner </span>)* );
+
+ items.into_iter().collect::<<span class="prelude-ty">Result</span><<span class="macro-nonterminal">$crate::alloc::vec::Vec</span><<span class="kw">_</span>>, <span class="kw">_</span>>>()
+ .and_then(|items| <span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>(<span class="macro-nonterminal">thresh_vec</span>(<span class="macro-nonterminal">$thresh</span>, items)))
+ });
+ ( multi_vec ( <span class="macro-nonterminal">$thresh</span>:expr, <span class="macro-nonterminal">$keys</span>:expr ) ) => ({
+ <span class="kw">let </span>secp = <span class="macro-nonterminal">$crate::bitcoin::secp256k1::Secp256k1::new</span>();
+
+ <span class="macro-nonterminal">$crate::keys::make_multi</span>(<span class="macro-nonterminal">$thresh</span>, <span class="macro-nonterminal">$crate::miniscript::Terminal::Multi</span>, <span class="macro-nonterminal">$keys</span>, <span class="kw-2">&</span>secp)
+ });
+ ( multi ( <span class="macro-nonterminal">$thresh</span>:expr $(, <span class="macro-nonterminal">$key</span>:expr )+ ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::group_multi_keys!</span>( $( <span class="macro-nonterminal">$key </span>),* )
+ .and_then(|keys| <span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>( <span class="macro-nonterminal">multi_vec </span>( <span class="macro-nonterminal">$thresh</span>, keys ) ))
+ });
+ ( multi_a_vec ( <span class="macro-nonterminal">$thresh</span>:expr, <span class="macro-nonterminal">$keys</span>:expr ) ) => ({
+ <span class="kw">let </span>secp = <span class="macro-nonterminal">$crate::bitcoin::secp256k1::Secp256k1::new</span>();
+
+ <span class="macro-nonterminal">$crate::keys::make_multi</span>(<span class="macro-nonterminal">$thresh</span>, <span class="macro-nonterminal">$crate::miniscript::Terminal::MultiA</span>, <span class="macro-nonterminal">$keys</span>, <span class="kw-2">&</span>secp)
+ });
+ ( multi_a ( <span class="macro-nonterminal">$thresh</span>:expr $(, <span class="macro-nonterminal">$key</span>:expr )+ ) ) => ({
+ <span class="macro-nonterminal">$</span><span class="macro">crate::group_multi_keys!</span>( $( <span class="macro-nonterminal">$key </span>),* )
+ .and_then(|keys| <span class="macro-nonterminal">$</span><span class="macro">crate::fragment!</span>( <span class="macro-nonterminal">multi_a_vec </span>( <span class="macro-nonterminal">$thresh</span>, keys ) ))
+ });
+
+ <span class="comment">// `sortedmulti()` is handled separately
+ </span>( sortedmulti ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => ({
+ <span class="macro">compile_error!</span>(<span class="string">"`sortedmulti` can only be used as the root operand of a descriptor"</span>);
+ });
+ ( sortedmulti_vec ( $( <span class="macro-nonterminal">$inner</span>:tt )* ) ) => ({
+ <span class="macro">compile_error!</span>(<span class="string">"`sortedmulti_vec` can only be used as the root operand of a descriptor"</span>);
+ });
+}
+
+<span class="attr">#[cfg(test)]
+</span><span class="kw">mod </span>test {
+ <span class="kw">use </span>alloc::string::ToString;
+ <span class="kw">use </span>bitcoin::secp256k1::Secp256k1;
+ <span class="kw">use </span>miniscript::descriptor::{DescriptorPublicKey, KeyMap};
+ <span class="kw">use </span>miniscript::{Descriptor, Legacy, Segwitv0};
+
+ <span class="kw">use </span>core::str::FromStr;
+
+ <span class="kw">use </span><span class="kw">crate</span>::descriptor::{DescriptorError, DescriptorMeta};
+ <span class="kw">use </span><span class="kw">crate</span>::keys::{DescriptorKey, IntoDescriptorKey, ValidNetworks};
+ <span class="kw">use </span>bitcoin::bip32;
+ <span class="kw">use </span>bitcoin::Network::{Bitcoin, Regtest, Signet, Testnet};
+ <span class="kw">use </span>bitcoin::PrivateKey;
+
+ <span class="comment">// test the descriptor!() macro
+
+ // verify descriptor generates expected script(s) (if bare or pk) or address(es)
+ </span><span class="kw">fn </span>check(
+ desc: <span class="prelude-ty">Result</span><(Descriptor<DescriptorPublicKey>, KeyMap, ValidNetworks), DescriptorError>,
+ is_witness: bool,
+ is_fixed: bool,
+ expected: <span class="kw-2">&</span>[<span class="kw-2">&</span>str],
+ ) {
+ <span class="kw">let </span>(desc, _key_map, _networks) = desc.unwrap();
+ <span class="macro">assert_eq!</span>(desc.is_witness(), is_witness);
+ <span class="macro">assert_eq!</span>(!desc.has_wildcard(), is_fixed);
+ <span class="kw">for </span>i <span class="kw">in </span><span class="number">0</span>..expected.len() {
+ <span class="kw">let </span>child_desc = desc
+ .at_derivation_index(i <span class="kw">as </span>u32)
+ .expect(<span class="string">"i is not hardened"</span>);
+ <span class="kw">let </span>address = child_desc.address(Regtest);
+ <span class="kw">if let </span><span class="prelude-val">Ok</span>(address) = address {
+ <span class="macro">assert_eq!</span>(address.to_string(), <span class="kw-2">*</span>expected.get(i).unwrap());
+ } <span class="kw">else </span>{
+ <span class="kw">let </span>script = child_desc.script_pubkey();
+ <span class="macro">assert_eq!</span>(script.to_hex_string(), <span class="kw-2">*</span>expected.get(i).unwrap());
+ }
+ }
+ }
+
+ <span class="comment">// - at least one of each "type" of operator; i.e. one modifier, one leaf_opcode, one leaf_opcode_value, etc.
+ // - mixing up key types that implement IntoDescriptorKey in multi() or thresh()
+
+ // expected script for pk and bare manually created
+ // expected addresses created with `bitcoin-cli getdescriptorinfo` (for hash) and `bitcoin-cli deriveaddresses`
+
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_fixed_legacy_descriptors() {
+ <span class="kw">let </span>pubkey1 = bitcoin::PublicKey::from_str(
+ <span class="string">"03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd"</span>,
+ )
+ .unwrap();
+ <span class="kw">let </span>pubkey2 = bitcoin::PublicKey::from_str(
+ <span class="string">"032e58afe51f9ed8ad3cc7897f634d881fdbe49a81564629ded8156bebd2ffd1af"</span>,
+ )
+ .unwrap();
+
+ check(
+ <span class="macro">descriptor!</span>(bare(multi(<span class="number">1</span>,pubkey1,pubkey2))),
+ <span class="bool-val">false</span>,
+ <span class="bool-val">true</span>,
+ <span class="kw-2">&</span>[<span class="string">"512103a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd21032e58afe51f9ed8ad3cc7897f634d881fdbe49a81564629ded8156bebd2ffd1af52ae"</span>],
+ );
+ check(
+ <span class="macro">descriptor!</span>(pk(pubkey1)),
+ <span class="bool-val">false</span>,
+ <span class="bool-val">true</span>,
+ <span class="kw-2">&</span>[<span class="string">"2103a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bdac"</span>],
+ );
+ check(
+ <span class="macro">descriptor!</span>(pkh(pubkey1)),
+ <span class="bool-val">false</span>,
+ <span class="bool-val">true</span>,
+ <span class="kw-2">&</span>[<span class="string">"muZpTpBYhxmRFuCjLc7C6BBDF32C8XVJUi"</span>],
+ );
+ check(
+ <span class="macro">descriptor!</span>(sh(multi(<span class="number">1</span>, pubkey1, pubkey2))),
+ <span class="bool-val">false</span>,
+ <span class="bool-val">true</span>,
+ <span class="kw-2">&</span>[<span class="string">"2MymURoV1bzuMnWMGiXzyomDkeuxXY7Suey"</span>],
+ );
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_fixed_segwitv0_descriptors() {
+ <span class="kw">let </span>pubkey1 = bitcoin::PublicKey::from_str(
+ <span class="string">"03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd"</span>,
+ )
+ .unwrap();
+ <span class="kw">let </span>pubkey2 = bitcoin::PublicKey::from_str(
+ <span class="string">"032e58afe51f9ed8ad3cc7897f634d881fdbe49a81564629ded8156bebd2ffd1af"</span>,
+ )
+ .unwrap();
+
+ check(
+ <span class="macro">descriptor!</span>(wpkh(pubkey1)),
+ <span class="bool-val">true</span>,
+ <span class="bool-val">true</span>,
+ <span class="kw-2">&</span>[<span class="string">"bcrt1qngw83fg8dz0k749cg7k3emc7v98wy0c7azaa6h"</span>],
+ );
+ check(
+ <span class="macro">descriptor!</span>(sh(wpkh(pubkey1))),
+ <span class="bool-val">true</span>,
+ <span class="bool-val">true</span>,
+ <span class="kw-2">&</span>[<span class="string">"2N5LiC3CqzxDamRTPG1kiNv1FpNJQ7x28sb"</span>],
+ );
+ check(
+ <span class="macro">descriptor!</span>(wsh(multi(<span class="number">1</span>, pubkey1, pubkey2))),
+ <span class="bool-val">true</span>,
+ <span class="bool-val">true</span>,
+ <span class="kw-2">&</span>[<span class="string">"bcrt1qgw8jvv2hsrvjfa6q66rk6har7d32lrqm5unnf5cl63q9phxfvgps5fyfqe"</span>],
+ );
+ check(
+ <span class="macro">descriptor!</span>(sh(wsh(multi(<span class="number">1</span>, pubkey1, pubkey2)))),
+ <span class="bool-val">true</span>,
+ <span class="bool-val">true</span>,
+ <span class="kw-2">&</span>[<span class="string">"2NCidRJysy7apkmE6JF5mLLaJFkrN3Ub9iy"</span>],
+ );
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_fixed_threeop_descriptors() {
+ <span class="kw">let </span>redeem_key = bitcoin::PublicKey::from_str(
+ <span class="string">"03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd"</span>,
+ )
+ .unwrap();
+ <span class="kw">let </span>move_key = bitcoin::PublicKey::from_str(
+ <span class="string">"032e58afe51f9ed8ad3cc7897f634d881fdbe49a81564629ded8156bebd2ffd1af"</span>,
+ )
+ .unwrap();
+
+ check(
+ <span class="macro">descriptor!</span>(sh(wsh(and_or(pk(redeem_key), older(<span class="number">1000</span>), pk(move_key))))),
+ <span class="bool-val">true</span>,
+ <span class="bool-val">true</span>,
+ <span class="kw-2">&</span>[<span class="string">"2MypGwr5eQWAWWJtiJgUEToVxc4zuokjQRe"</span>],
+ );
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_bip32_legacy_descriptors() {
+ <span class="kw">let </span>xprv = bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy"</span>).unwrap();
+
+ <span class="kw">let </span>path = bip32::DerivationPath::from_str(<span class="string">"m/0"</span>).unwrap();
+ <span class="kw">let </span>desc_key = (xprv, path.clone()).into_descriptor_key().unwrap();
+ check(
+ <span class="macro">descriptor!</span>(pk(desc_key)),
+ <span class="bool-val">false</span>,
+ <span class="bool-val">false</span>,
+ <span class="kw-2">&</span>[
+ <span class="string">"2102363ad03c10024e1b597a5b01b9982807fb638e00b06f3b2d4a89707de3b93c37ac"</span>,
+ <span class="string">"2102063a21fd780df370ed2fc8c4b86aa5ea642630609c203009df631feb7b480dd2ac"</span>,
+ <span class="string">"2102ba2685ad1fa5891cb100f1656b2ce3801822ccb9bac0336734a6f8c1b93ebbc0ac"</span>,
+ ],
+ );
+
+ <span class="kw">let </span>desc_key = (xprv, path.clone()).into_descriptor_key().unwrap();
+ check(
+ <span class="macro">descriptor!</span>(pkh(desc_key)),
+ <span class="bool-val">false</span>,
+ <span class="bool-val">false</span>,
+ <span class="kw-2">&</span>[
+ <span class="string">"muvBdsVpJxpFuTHMKA47htJPdCvdt4F9DP"</span>,
+ <span class="string">"mxQSHK7DL2t1DN3xFxov1janCoXSSkrSPj"</span>,
+ <span class="string">"mfz43r15GiWo4nizmyzMNubsnkDpByFFAn"</span>,
+ ],
+ );
+
+ <span class="kw">let </span>path2 = bip32::DerivationPath::from_str(<span class="string">"m/2147483647'/0"</span>).unwrap();
+ <span class="kw">let </span>desc_key1 = (xprv, path).into_descriptor_key().unwrap();
+ <span class="kw">let </span>desc_key2 = (xprv, path2).into_descriptor_key().unwrap();
+
+ check(
+ <span class="macro">descriptor!</span>(sh(multi(<span class="number">1</span>, desc_key1, desc_key2))),
+ <span class="bool-val">false</span>,
+ <span class="bool-val">false</span>,
+ <span class="kw-2">&</span>[
+ <span class="string">"2MtMDXsfwefZkEEhVViEPidvcKRUtJamJJ8"</span>,
+ <span class="string">"2MwAUZ1NYyWjhVvGTethFL6n7nZhS8WE6At"</span>,
+ <span class="string">"2MuT6Bj66HLwZd7s4SoD8XbK4GwriKEA6Gr"</span>,
+ ],
+ );
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_bip32_segwitv0_descriptors() {
+ <span class="kw">let </span>xprv = bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy"</span>).unwrap();
+
+ <span class="kw">let </span>path = bip32::DerivationPath::from_str(<span class="string">"m/0"</span>).unwrap();
+ <span class="kw">let </span>desc_key = (xprv, path.clone()).into_descriptor_key().unwrap();
+ check(
+ <span class="macro">descriptor!</span>(wpkh(desc_key)),
+ <span class="bool-val">true</span>,
+ <span class="bool-val">false</span>,
+ <span class="kw-2">&</span>[
+ <span class="string">"bcrt1qnhm8w9fhc8cxzgqsmqdf9fyjccyvc0gltnymu0"</span>,
+ <span class="string">"bcrt1qhylfd55rn75w9fj06zspctad5w4hz33rf0ttad"</span>,
+ <span class="string">"bcrt1qq5sq3a6k9av9d8cne0k9wcldy4nqey5yt6889r"</span>,
+ ],
+ );
+
+ <span class="kw">let </span>desc_key = (xprv, path.clone()).into_descriptor_key().unwrap();
+ check(
+ <span class="macro">descriptor!</span>(sh(wpkh(desc_key))),
+ <span class="bool-val">true</span>,
+ <span class="bool-val">false</span>,
+ <span class="kw-2">&</span>[
+ <span class="string">"2MxvjQCaLqZ5QxZ7XotZDQ63hZw3NPss763"</span>,
+ <span class="string">"2NDUoevN4QMzhvHDMGhKuiT2fN9HXbFRMwn"</span>,
+ <span class="string">"2NF4BEAY2jF1Fu8vqfN3NVKoFtom77pUxrx"</span>,
+ ],
+ );
+
+ <span class="kw">let </span>path2 = bip32::DerivationPath::from_str(<span class="string">"m/2147483647'/0"</span>).unwrap();
+ <span class="kw">let </span>desc_key1 = (xprv, path.clone()).into_descriptor_key().unwrap();
+ <span class="kw">let </span>desc_key2 = (xprv, path2.clone()).into_descriptor_key().unwrap();
+ check(
+ <span class="macro">descriptor!</span>(wsh(multi(<span class="number">1</span>, desc_key1, desc_key2))),
+ <span class="bool-val">true</span>,
+ <span class="bool-val">false</span>,
+ <span class="kw-2">&</span>[
+ <span class="string">"bcrt1qfxv8mxmlv5sz8q2mnuyaqdfe9jr4vvmx0csjhn092p6f4qfygfkq2hng49"</span>,
+ <span class="string">"bcrt1qerj85g243e6jlcdxpmn9spk0gefcwvu7nw7ee059d5ydzpdhkm2qwfkf5k"</span>,
+ <span class="string">"bcrt1qxkl2qss3k58q9ktc8e89pwr4gnptfpw4hju4xstxcjc0hkcae3jstluty7"</span>,
+ ],
+ );
+
+ <span class="kw">let </span>desc_key1 = (xprv, path).into_descriptor_key().unwrap();
+ <span class="kw">let </span>desc_key2 = (xprv, path2).into_descriptor_key().unwrap();
+ check(
+ <span class="macro">descriptor!</span>(sh(wsh(multi(<span class="number">1</span>, desc_key1, desc_key2)))),
+ <span class="bool-val">true</span>,
+ <span class="bool-val">false</span>,
+ <span class="kw-2">&</span>[
+ <span class="string">"2NFCtXvx9q4ci2kvKub17iSTgvRXGctCGhz"</span>,
+ <span class="string">"2NB2PrFPv5NxWCpygas8tPrGJG2ZFgeuwJw"</span>,
+ <span class="string">"2N79ZAGo5cMi5Jt7Wo9L5YmF5GkEw7sjWdC"</span>,
+ ],
+ );
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_dsl_sortedmulti() {
+ <span class="kw">let </span>key_1 = bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy"</span>).unwrap();
+ <span class="kw">let </span>path_1 = bip32::DerivationPath::from_str(<span class="string">"m/0"</span>).unwrap();
+
+ <span class="kw">let </span>key_2 = bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPegBHHnq7YEgM815dG24M2Jk5RVqipgDxF1HJ1tsnT815X5Fd5FRfMVUs8NZs9XCb6y9an8hRPThnhfwfXJ36intaekySHGF"</span>).unwrap();
+ <span class="kw">let </span>path_2 = bip32::DerivationPath::from_str(<span class="string">"m/1"</span>).unwrap();
+
+ <span class="kw">let </span>desc_key1 = (key_1, path_1);
+ <span class="kw">let </span>desc_key2 = (key_2, path_2);
+
+ check(
+ <span class="macro">descriptor!</span>(sh(sortedmulti(<span class="number">1</span>, desc_key1.clone(), desc_key2.clone()))),
+ <span class="bool-val">false</span>,
+ <span class="bool-val">false</span>,
+ <span class="kw-2">&</span>[
+ <span class="string">"2MsxzPEJDBzpGffJXPaDpfXZAUNnZhaMh2N"</span>,
+ <span class="string">"2My3x3DLPK3UbGWGpxrXr1RnbD8MNC4FpgS"</span>,
+ <span class="string">"2NByEuiQT7YLqHCTNxL5KwYjvtuCYcXNBSC"</span>,
+ <span class="string">"2N1TGbP81kj2VUKTSWgrwxoMfuWjvfUdyu7"</span>,
+ <span class="string">"2N3Bomq2fpAcLRNfZnD3bCWK9quan28CxCR"</span>,
+ <span class="string">"2N9nrZaEzEFDqEAU9RPvDnXGT6AVwBDKAQb"</span>,
+ ],
+ );
+
+ check(
+ <span class="macro">descriptor!</span>(sh(wsh(sortedmulti(
+ <span class="number">1</span>,
+ desc_key1.clone(),
+ desc_key2.clone()
+ )))),
+ <span class="bool-val">true</span>,
+ <span class="bool-val">false</span>,
+ <span class="kw-2">&</span>[
+ <span class="string">"2NCogc5YyM4N6ruv1hUa7WLMW1BPeCK7N9B"</span>,
+ <span class="string">"2N6mkSAKi1V2oaBXby7XHdvBMKEDRQcFpNe"</span>,
+ <span class="string">"2NFmTSttm9v6bXeoWaBvpMcgfPQcZhNn3Eh"</span>,
+ <span class="string">"2Mvib87RBPUHXNEpX5S5Kv1qqrhBfgBGsJM"</span>,
+ <span class="string">"2MtMv5mcK2EjcLsH8Txpx2JxLLzHr4ttczL"</span>,
+ <span class="string">"2MsWCB56rb4T6yPv8QudZGHERTwNgesE4f6"</span>,
+ ],
+ );
+
+ check(
+ <span class="macro">descriptor!</span>(wsh(sortedmulti_vec(<span class="number">1</span>, <span class="macro">vec!</span>[desc_key1, desc_key2]))),
+ <span class="bool-val">true</span>,
+ <span class="bool-val">false</span>,
+ <span class="kw-2">&</span>[
+ <span class="string">"bcrt1qcvq0lg8q7a47ytrd7zk5y7uls7mulrenjgvflwylpppgwf8029es4vhpnj"</span>,
+ <span class="string">"bcrt1q80yn8sdt6l7pjvkz25lglyaqctlmsq9ugk80rmxt8yu0npdsj97sc7l4de"</span>,
+ <span class="string">"bcrt1qrvf6024v9s50qhffe3t2fr2q9ckdhx2g6jz32chm2pp24ymgtr5qfrdmct"</span>,
+ <span class="string">"bcrt1q6srfmra0ynypym35c7jvsxt2u4yrugeajq95kg2ps7lk6h2gaunsq9lzxn"</span>,
+ <span class="string">"bcrt1qhl8rrzzcdpu7tcup3lcg7tge52sqvwy5fcv4k78v6kxtwmqf3v6qpvyjza"</span>,
+ <span class="string">"bcrt1ql2elz9mhm9ll27ddpewhxs732xyl2fk2kpkqz9gdyh33wgcun4vstrd49k"</span>,
+ ],
+ );
+ }
+
+ <span class="comment">// - verify the valid_networks returned is correctly computed based on the keys present in the descriptor
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_valid_networks() {
+ <span class="kw">let </span>xprv = bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy"</span>).unwrap();
+ <span class="kw">let </span>path = bip32::DerivationPath::from_str(<span class="string">"m/0"</span>).unwrap();
+ <span class="kw">let </span>desc_key = (xprv, path).into_descriptor_key().unwrap();
+
+ <span class="kw">let </span>(_desc, _key_map, valid_networks) = <span class="macro">descriptor!</span>(pkh(desc_key)).unwrap();
+ <span class="macro">assert_eq!</span>(
+ valid_networks,
+ [Testnet, Regtest, Signet].iter().cloned().collect()
+ );
+
+ <span class="kw">let </span>xprv = bip32::Xpriv::from_str(<span class="string">"xprv9s21ZrQH143K3QTDL4LXw2F7HEK3wJUD2nW2nRk4stbPy6cq3jPPqjiChkVvvNKmPGJxWUtg6LnF5kejMRNNU3TGtRBeJgk33yuGBxrMPHi"</span>).unwrap();
+ <span class="kw">let </span>path = bip32::DerivationPath::from_str(<span class="string">"m/10/20/30/40"</span>).unwrap();
+ <span class="kw">let </span>desc_key = (xprv, path).into_descriptor_key().unwrap();
+
+ <span class="kw">let </span>(_desc, _key_map, valid_networks) = <span class="macro">descriptor!</span>(wpkh(desc_key)).unwrap();
+ <span class="macro">assert_eq!</span>(valid_networks, [Bitcoin].iter().cloned().collect());
+ }
+
+ <span class="comment">// - verify the key_maps are correctly merged together
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_key_maps_merged() {
+ <span class="kw">let </span>secp = Secp256k1::new();
+
+ <span class="kw">let </span>xprv1 = bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy"</span>).unwrap();
+ <span class="kw">let </span>path1 = bip32::DerivationPath::from_str(<span class="string">"m/0"</span>).unwrap();
+ <span class="kw">let </span>desc_key1 = (xprv1, path1.clone()).into_descriptor_key().unwrap();
+
+ <span class="kw">let </span>xprv2 = bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPegBHHnq7YEgM815dG24M2Jk5RVqipgDxF1HJ1tsnT815X5Fd5FRfMVUs8NZs9XCb6y9an8hRPThnhfwfXJ36intaekySHGF"</span>).unwrap();
+ <span class="kw">let </span>path2 = bip32::DerivationPath::from_str(<span class="string">"m/2147483647'/0"</span>).unwrap();
+ <span class="kw">let </span>desc_key2 = (xprv2, path2.clone()).into_descriptor_key().unwrap();
+
+ <span class="kw">let </span>xprv3 = bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPdZXrcHNLf5JAJWFAoJ2TrstMRdSKtEggz6PddbuSkvHKM9oKJyFgZV1B7rw8oChspxyYbtmEXYyg1AjfWbL3ho3XHDpHRZf"</span>).unwrap();
+ <span class="kw">let </span>path3 = bip32::DerivationPath::from_str(<span class="string">"m/10/20/30/40"</span>).unwrap();
+ <span class="kw">let </span>desc_key3 = (xprv3, path3.clone()).into_descriptor_key().unwrap();
+
+ <span class="kw">let </span>(_desc, key_map, _valid_networks) =
+ <span class="macro">descriptor!</span>(sh(wsh(multi(<span class="number">2</span>, desc_key1, desc_key2, desc_key3)))).unwrap();
+ <span class="macro">assert_eq!</span>(key_map.len(), <span class="number">3</span>);
+
+ <span class="kw">let </span>desc_key1: DescriptorKey<Segwitv0> = (xprv1, path1).into_descriptor_key().unwrap();
+ <span class="kw">let </span>desc_key2: DescriptorKey<Segwitv0> = (xprv2, path2).into_descriptor_key().unwrap();
+ <span class="kw">let </span>desc_key3: DescriptorKey<Segwitv0> = (xprv3, path3).into_descriptor_key().unwrap();
+
+ <span class="kw">let </span>(key1, _key_map, _valid_networks) = desc_key1.extract(<span class="kw-2">&</span>secp).unwrap();
+ <span class="kw">let </span>(key2, _key_map, _valid_networks) = desc_key2.extract(<span class="kw-2">&</span>secp).unwrap();
+ <span class="kw">let </span>(key3, _key_map, _valid_networks) = desc_key3.extract(<span class="kw-2">&</span>secp).unwrap();
+ <span class="macro">assert_eq!</span>(key_map.get(<span class="kw-2">&</span>key1).unwrap().to_string(), <span class="string">"tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy/0/*"</span>);
+ <span class="macro">assert_eq!</span>(key_map.get(<span class="kw-2">&</span>key2).unwrap().to_string(), <span class="string">"tprv8ZgxMBicQKsPegBHHnq7YEgM815dG24M2Jk5RVqipgDxF1HJ1tsnT815X5Fd5FRfMVUs8NZs9XCb6y9an8hRPThnhfwfXJ36intaekySHGF/2147483647'/0/*"</span>);
+ <span class="macro">assert_eq!</span>(key_map.get(<span class="kw-2">&</span>key3).unwrap().to_string(), <span class="string">"tprv8ZgxMBicQKsPdZXrcHNLf5JAJWFAoJ2TrstMRdSKtEggz6PddbuSkvHKM9oKJyFgZV1B7rw8oChspxyYbtmEXYyg1AjfWbL3ho3XHDpHRZf/10/20/30/40/*"</span>);
+ }
+
+ <span class="comment">// - verify the ScriptContext is correctly validated (i.e. passing a type that only impl IntoDescriptorKey<Segwitv0> to a pkh() descriptor should throw a compilation error
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_script_context_validation() {
+ <span class="comment">// this compiles
+ </span><span class="kw">let </span>xprv = bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy"</span>).unwrap();
+ <span class="kw">let </span>path = bip32::DerivationPath::from_str(<span class="string">"m/0"</span>).unwrap();
+ <span class="kw">let </span>desc_key: DescriptorKey<Legacy> = (xprv, path).into_descriptor_key().unwrap();
+
+ <span class="kw">let </span>(desc, _key_map, _valid_networks) = <span class="macro">descriptor!</span>(pkh(desc_key)).unwrap();
+ <span class="macro">assert_eq!</span>(desc.to_string(), <span class="string">"pkh(tpubD6NzVbkrYhZ4WR7a4vY1VT3khMJMeAxVsfq9TBJyJWrNk247zCJtV7AWf6UJP7rAVsn8NNKdJi3gFyKPTmWZS9iukb91xbn2HbFSMQm2igY/0/*)#yrnz9pp2"</span>);
+
+ <span class="comment">// as expected this does not compile due to invalid context
+ //let desc_key:DescriptorKey<Segwitv0> = (xprv, path.clone()).into_descriptor_key().unwrap();
+ //let (desc, _key_map, _valid_networks) = descriptor!(pkh(desc_key)).unwrap();
+ </span>}
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_dsl_modifiers() {
+ <span class="kw">let </span>private_key =
+ PrivateKey::from_wif(<span class="string">"cSQPHDBwXGjVzWRqAHm6zfvQhaTuj1f2bFH58h55ghbjtFwvmeXR"</span>).unwrap();
+ <span class="kw">let </span>(descriptor, <span class="kw">_</span>, <span class="kw">_</span>) =
+ <span class="macro">descriptor!</span>(wsh(thresh(<span class="number">2</span>,n:d:v:older(<span class="number">1</span>),s:pk(private_key),s:pk(private_key)))).unwrap();
+
+ <span class="macro">assert_eq!</span>(descriptor.to_string(), <span class="string">"wsh(thresh(2,ndv:older(1),s:pk(02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c),s:pk(02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c)))#zzk3ux8g"</span>)
+ }
+
+ <span class="attr">#[test]
+ #[should_panic(expected = <span class="string">"Miniscript(ContextError(UncompressedKeysNotAllowed))"</span>)]
+ </span><span class="kw">fn </span>test_dsl_miniscript_checks() {
+ <span class="kw">let </span><span class="kw-2">mut </span>uncompressed_pk =
+ PrivateKey::from_wif(<span class="string">"L5EZftvrYaSudiozVRzTqLcHLNDoVn7H5HSfM9BAN6tMJX8oTWz6"</span>).unwrap();
+ uncompressed_pk.compressed = <span class="bool-val">false</span>;
+
+ <span class="macro">descriptor!</span>(wsh(v: pk(uncompressed_pk))).unwrap();
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_dsl_tr_only_key() {
+ <span class="kw">let </span>private_key =
+ PrivateKey::from_wif(<span class="string">"cSQPHDBwXGjVzWRqAHm6zfvQhaTuj1f2bFH58h55ghbjtFwvmeXR"</span>).unwrap();
+ <span class="kw">let </span>(descriptor, <span class="kw">_</span>, <span class="kw">_</span>) = <span class="macro">descriptor!</span>(tr(private_key)).unwrap();
+
+ <span class="macro">assert_eq!</span>(
+ descriptor.to_string(),
+ <span class="string">"tr(02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c)#heq9m95v"
+ </span>)
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_dsl_tr_simple_tree() {
+ <span class="kw">let </span>private_key =
+ PrivateKey::from_wif(<span class="string">"cSQPHDBwXGjVzWRqAHm6zfvQhaTuj1f2bFH58h55ghbjtFwvmeXR"</span>).unwrap();
+ <span class="kw">let </span>(descriptor, <span class="kw">_</span>, <span class="kw">_</span>) =
+ <span class="macro">descriptor!</span>(tr(private_key, { pk(private_key), pk(private_key) })).unwrap();
+
+ <span class="macro">assert_eq!</span>(descriptor.to_string(), <span class="string">"tr(02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c,{pk(02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c),pk(02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c)})#xy5fjw6d"</span>)
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_dsl_tr_single_leaf() {
+ <span class="kw">let </span>private_key =
+ PrivateKey::from_wif(<span class="string">"cSQPHDBwXGjVzWRqAHm6zfvQhaTuj1f2bFH58h55ghbjtFwvmeXR"</span>).unwrap();
+ <span class="kw">let </span>(descriptor, <span class="kw">_</span>, <span class="kw">_</span>) = <span class="macro">descriptor!</span>(tr(private_key, pk(private_key))).unwrap();
+
+ <span class="macro">assert_eq!</span>(descriptor.to_string(), <span class="string">"tr(02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c,pk(02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c))#lzl2vmc7"</span>)
+ }
+}
+</code></pre></div>
+</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Source of the Rust file `crates/wallet/src/descriptor/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk_wallet/index.html">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
+<a href="#2" id="2">2</a>
+<a href="#3" id="3">3</a>
+<a href="#4" id="4">4</a>
+<a href="#5" id="5">5</a>
+<a href="#6" id="6">6</a>
+<a href="#7" id="7">7</a>
+<a href="#8" id="8">8</a>
+<a href="#9" id="9">9</a>
+<a href="#10" id="10">10</a>
+<a href="#11" id="11">11</a>
+<a href="#12" id="12">12</a>
+<a href="#13" id="13">13</a>
+<a href="#14" id="14">14</a>
+<a href="#15" id="15">15</a>
+<a href="#16" id="16">16</a>
+<a href="#17" id="17">17</a>
+<a href="#18" id="18">18</a>
+<a href="#19" id="19">19</a>
+<a href="#20" id="20">20</a>
+<a href="#21" id="21">21</a>
+<a href="#22" id="22">22</a>
+<a href="#23" id="23">23</a>
+<a href="#24" id="24">24</a>
+<a href="#25" id="25">25</a>
+<a href="#26" id="26">26</a>
+<a href="#27" id="27">27</a>
+<a href="#28" id="28">28</a>
+<a href="#29" id="29">29</a>
+<a href="#30" id="30">30</a>
+<a href="#31" id="31">31</a>
+<a href="#32" id="32">32</a>
+<a href="#33" id="33">33</a>
+<a href="#34" id="34">34</a>
+<a href="#35" id="35">35</a>
+<a href="#36" id="36">36</a>
+<a href="#37" id="37">37</a>
+<a href="#38" id="38">38</a>
+<a href="#39" id="39">39</a>
+<a href="#40" id="40">40</a>
+<a href="#41" id="41">41</a>
+<a href="#42" id="42">42</a>
+<a href="#43" id="43">43</a>
+<a href="#44" id="44">44</a>
+<a href="#45" id="45">45</a>
+<a href="#46" id="46">46</a>
+<a href="#47" id="47">47</a>
+<a href="#48" id="48">48</a>
+<a href="#49" id="49">49</a>
+<a href="#50" id="50">50</a>
+<a href="#51" id="51">51</a>
+<a href="#52" id="52">52</a>
+<a href="#53" id="53">53</a>
+<a href="#54" id="54">54</a>
+<a href="#55" id="55">55</a>
+<a href="#56" id="56">56</a>
+<a href="#57" id="57">57</a>
+<a href="#58" id="58">58</a>
+<a href="#59" id="59">59</a>
+<a href="#60" id="60">60</a>
+<a href="#61" id="61">61</a>
+<a href="#62" id="62">62</a>
+<a href="#63" id="63">63</a>
+<a href="#64" id="64">64</a>
+<a href="#65" id="65">65</a>
+<a href="#66" id="66">66</a>
+<a href="#67" id="67">67</a>
+<a href="#68" id="68">68</a>
+<a href="#69" id="69">69</a>
+<a href="#70" id="70">70</a>
+<a href="#71" id="71">71</a>
+<a href="#72" id="72">72</a>
+<a href="#73" id="73">73</a>
+<a href="#74" id="74">74</a>
+<a href="#75" id="75">75</a>
+<a href="#76" id="76">76</a>
+<a href="#77" id="77">77</a>
+<a href="#78" id="78">78</a>
+<a href="#79" id="79">79</a>
+<a href="#80" id="80">80</a>
+<a href="#81" id="81">81</a>
+<a href="#82" id="82">82</a>
+<a href="#83" id="83">83</a>
+<a href="#84" id="84">84</a>
+<a href="#85" id="85">85</a>
+<a href="#86" id="86">86</a>
+<a href="#87" id="87">87</a>
+<a href="#88" id="88">88</a>
+<a href="#89" id="89">89</a>
+<a href="#90" id="90">90</a>
+<a href="#91" id="91">91</a>
+<a href="#92" id="92">92</a>
+<a href="#93" id="93">93</a>
+<a href="#94" id="94">94</a>
+<a href="#95" id="95">95</a>
+<a href="#96" id="96">96</a>
+<a href="#97" id="97">97</a>
+<a href="#98" id="98">98</a>
+<a href="#99" id="99">99</a>
+<a href="#100" id="100">100</a>
+<a href="#101" id="101">101</a>
+<a href="#102" id="102">102</a>
+<a href="#103" id="103">103</a>
+<a href="#104" id="104">104</a>
+<a href="#105" id="105">105</a>
+<a href="#106" id="106">106</a>
+<a href="#107" id="107">107</a>
+<a href="#108" id="108">108</a>
+<a href="#109" id="109">109</a>
+<a href="#110" id="110">110</a>
+<a href="#111" id="111">111</a>
+<a href="#112" id="112">112</a>
+<a href="#113" id="113">113</a>
+<a href="#114" id="114">114</a>
+<a href="#115" id="115">115</a>
+<a href="#116" id="116">116</a>
+<a href="#117" id="117">117</a>
+<a href="#118" id="118">118</a>
+<a href="#119" id="119">119</a>
+<a href="#120" id="120">120</a>
+<a href="#121" id="121">121</a>
+<a href="#122" id="122">122</a>
+<a href="#123" id="123">123</a>
+</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
+// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
+//
+// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
+//
+// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
+// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// You may not use this file except in accordance with one or both of these
+// licenses.
+
+</span><span class="doccomment">//! Descriptor errors
+</span><span class="kw">use </span>core::fmt;
+
+<span class="doccomment">/// Errors related to the parsing and usage of descriptors
+</span><span class="attr">#[derive(Debug)]
+</span><span class="kw">pub enum </span>Error {
+ <span class="doccomment">/// Invalid HD Key path, such as having a wildcard but a length != 1
+ </span>InvalidHdKeyPath,
+ <span class="doccomment">/// The provided descriptor doesn't match its checksum
+ </span>InvalidDescriptorChecksum,
+ <span class="doccomment">/// The descriptor contains hardened derivation steps on public extended keys
+ </span>HardenedDerivationXpub,
+ <span class="doccomment">/// The descriptor contains multipath keys
+ </span>MultiPath,
+
+ <span class="doccomment">/// Error thrown while working with [`keys`](crate::keys)
+ </span>Key(<span class="kw">crate</span>::keys::KeyError),
+ <span class="doccomment">/// Error while extracting and manipulating policies
+ </span>Policy(<span class="kw">crate</span>::descriptor::policy::PolicyError),
+
+ <span class="doccomment">/// Invalid byte found in the descriptor checksum
+ </span>InvalidDescriptorCharacter(u8),
+
+ <span class="doccomment">/// BIP32 error
+ </span>Bip32(bitcoin::bip32::Error),
+ <span class="doccomment">/// Error during base58 decoding
+ </span>Base58(bitcoin::base58::Error),
+ <span class="doccomment">/// Key-related error
+ </span>Pk(bitcoin::key::Error),
+ <span class="doccomment">/// Miniscript error
+ </span>Miniscript(miniscript::Error),
+ <span class="doccomment">/// Hex decoding error
+ </span>Hex(bitcoin::hex::HexToBytesError),
+}
+
+<span class="kw">impl </span>From<<span class="kw">crate</span>::keys::KeyError> <span class="kw">for </span>Error {
+ <span class="kw">fn </span>from(key_error: <span class="kw">crate</span>::keys::KeyError) -> Error {
+ <span class="kw">match </span>key_error {
+ <span class="kw">crate</span>::keys::KeyError::Miniscript(inner) => Error::Miniscript(inner),
+ <span class="kw">crate</span>::keys::KeyError::Bip32(inner) => Error::Bip32(inner),
+ e => Error::Key(e),
+ }
+ }
+}
+
+<span class="kw">impl </span>fmt::Display <span class="kw">for </span>Error {
+ <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
+ <span class="kw">match </span><span class="self">self </span>{
+ <span class="self">Self</span>::InvalidHdKeyPath => <span class="macro">write!</span>(f, <span class="string">"Invalid HD key path"</span>),
+ <span class="self">Self</span>::InvalidDescriptorChecksum => {
+ <span class="macro">write!</span>(f, <span class="string">"The provided descriptor doesn't match its checksum"</span>)
+ }
+ <span class="self">Self</span>::HardenedDerivationXpub => <span class="macro">write!</span>(
+ f,
+ <span class="string">"The descriptor contains hardened derivation steps on public extended keys"
+ </span>),
+ <span class="self">Self</span>::MultiPath => <span class="macro">write!</span>(
+ f,
+ <span class="string">"The descriptor contains multipath keys, which are not supported yet"
+ </span>),
+ <span class="self">Self</span>::Key(err) => <span class="macro">write!</span>(f, <span class="string">"Key error: {}"</span>, err),
+ <span class="self">Self</span>::Policy(err) => <span class="macro">write!</span>(f, <span class="string">"Policy error: {}"</span>, err),
+ <span class="self">Self</span>::InvalidDescriptorCharacter(char) => {
+ <span class="macro">write!</span>(f, <span class="string">"Invalid descriptor character: {}"</span>, char)
+ }
+ <span class="self">Self</span>::Bip32(err) => <span class="macro">write!</span>(f, <span class="string">"BIP32 error: {}"</span>, err),
+ <span class="self">Self</span>::Base58(err) => <span class="macro">write!</span>(f, <span class="string">"Base58 error: {}"</span>, err),
+ <span class="self">Self</span>::Pk(err) => <span class="macro">write!</span>(f, <span class="string">"Key-related error: {}"</span>, err),
+ <span class="self">Self</span>::Miniscript(err) => <span class="macro">write!</span>(f, <span class="string">"Miniscript error: {}"</span>, err),
+ <span class="self">Self</span>::Hex(err) => <span class="macro">write!</span>(f, <span class="string">"Hex decoding error: {}"</span>, err),
+ }
+ }
+}
+
+<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
+</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>Error {}
+
+<span class="kw">impl </span>From<bitcoin::bip32::Error> <span class="kw">for </span>Error {
+ <span class="kw">fn </span>from(err: bitcoin::bip32::Error) -> <span class="self">Self </span>{
+ Error::Bip32(err)
+ }
+}
+
+<span class="kw">impl </span>From<bitcoin::base58::Error> <span class="kw">for </span>Error {
+ <span class="kw">fn </span>from(err: bitcoin::base58::Error) -> <span class="self">Self </span>{
+ Error::Base58(err)
+ }
+}
+
+<span class="kw">impl </span>From<bitcoin::key::Error> <span class="kw">for </span>Error {
+ <span class="kw">fn </span>from(err: bitcoin::key::Error) -> <span class="self">Self </span>{
+ Error::Pk(err)
+ }
+}
+
+<span class="kw">impl </span>From<miniscript::Error> <span class="kw">for </span>Error {
+ <span class="kw">fn </span>from(err: miniscript::Error) -> <span class="self">Self </span>{
+ Error::Miniscript(err)
+ }
+}
+
+<span class="kw">impl </span>From<bitcoin::hex::HexToBytesError> <span class="kw">for </span>Error {
+ <span class="kw">fn </span>from(err: bitcoin::hex::HexToBytesError) -> <span class="self">Self </span>{
+ Error::Hex(err)
+ }
+}
+
+<span class="kw">impl </span>From<<span class="kw">crate</span>::descriptor::policy::PolicyError> <span class="kw">for </span>Error {
+ <span class="kw">fn </span>from(err: <span class="kw">crate</span>::descriptor::policy::PolicyError) -> <span class="self">Self </span>{
+ Error::Policy(err)
+ }
+}
+</code></pre></div>
+</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Source of the Rust file `crates/wallet/src/descriptor/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk_wallet/index.html">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
+<a href="#2" id="2">2</a>
+<a href="#3" id="3">3</a>
+<a href="#4" id="4">4</a>
+<a href="#5" id="5">5</a>
+<a href="#6" id="6">6</a>
+<a href="#7" id="7">7</a>
+<a href="#8" id="8">8</a>
+<a href="#9" id="9">9</a>
+<a href="#10" id="10">10</a>
+<a href="#11" id="11">11</a>
+<a href="#12" id="12">12</a>
+<a href="#13" id="13">13</a>
+<a href="#14" id="14">14</a>
+<a href="#15" id="15">15</a>
+<a href="#16" id="16">16</a>
+<a href="#17" id="17">17</a>
+<a href="#18" id="18">18</a>
+<a href="#19" id="19">19</a>
+<a href="#20" id="20">20</a>
+<a href="#21" id="21">21</a>
+<a href="#22" id="22">22</a>
+<a href="#23" id="23">23</a>
+<a href="#24" id="24">24</a>
+<a href="#25" id="25">25</a>
+<a href="#26" id="26">26</a>
+<a href="#27" id="27">27</a>
+<a href="#28" id="28">28</a>
+<a href="#29" id="29">29</a>
+<a href="#30" id="30">30</a>
+<a href="#31" id="31">31</a>
+<a href="#32" id="32">32</a>
+<a href="#33" id="33">33</a>
+<a href="#34" id="34">34</a>
+<a href="#35" id="35">35</a>
+<a href="#36" id="36">36</a>
+<a href="#37" id="37">37</a>
+<a href="#38" id="38">38</a>
+<a href="#39" id="39">39</a>
+<a href="#40" id="40">40</a>
+<a href="#41" id="41">41</a>
+<a href="#42" id="42">42</a>
+<a href="#43" id="43">43</a>
+<a href="#44" id="44">44</a>
+<a href="#45" id="45">45</a>
+<a href="#46" id="46">46</a>
+<a href="#47" id="47">47</a>
+<a href="#48" id="48">48</a>
+<a href="#49" id="49">49</a>
+<a href="#50" id="50">50</a>
+<a href="#51" id="51">51</a>
+<a href="#52" id="52">52</a>
+<a href="#53" id="53">53</a>
+<a href="#54" id="54">54</a>
+<a href="#55" id="55">55</a>
+<a href="#56" id="56">56</a>
+<a href="#57" id="57">57</a>
+<a href="#58" id="58">58</a>
+<a href="#59" id="59">59</a>
+<a href="#60" id="60">60</a>
+<a href="#61" id="61">61</a>
+<a href="#62" id="62">62</a>
+<a href="#63" id="63">63</a>
+<a href="#64" id="64">64</a>
+<a href="#65" id="65">65</a>
+<a href="#66" id="66">66</a>
+<a href="#67" id="67">67</a>
+<a href="#68" id="68">68</a>
+<a href="#69" id="69">69</a>
+<a href="#70" id="70">70</a>
+<a href="#71" id="71">71</a>
+<a href="#72" id="72">72</a>
+<a href="#73" id="73">73</a>
+<a href="#74" id="74">74</a>
+<a href="#75" id="75">75</a>
+<a href="#76" id="76">76</a>
+<a href="#77" id="77">77</a>
+<a href="#78" id="78">78</a>
+<a href="#79" id="79">79</a>
+<a href="#80" id="80">80</a>
+<a href="#81" id="81">81</a>
+<a href="#82" id="82">82</a>
+<a href="#83" id="83">83</a>
+<a href="#84" id="84">84</a>
+<a href="#85" id="85">85</a>
+<a href="#86" id="86">86</a>
+<a href="#87" id="87">87</a>
+<a href="#88" id="88">88</a>
+<a href="#89" id="89">89</a>
+<a href="#90" id="90">90</a>
+<a href="#91" id="91">91</a>
+<a href="#92" id="92">92</a>
+<a href="#93" id="93">93</a>
+<a href="#94" id="94">94</a>
+<a href="#95" id="95">95</a>
+<a href="#96" id="96">96</a>
+<a href="#97" id="97">97</a>
+<a href="#98" id="98">98</a>
+<a href="#99" id="99">99</a>
+<a href="#100" id="100">100</a>
+<a href="#101" id="101">101</a>
+<a href="#102" id="102">102</a>
+<a href="#103" id="103">103</a>
+<a href="#104" id="104">104</a>
+<a href="#105" id="105">105</a>
+<a href="#106" id="106">106</a>
+<a href="#107" id="107">107</a>
+<a href="#108" id="108">108</a>
+<a href="#109" id="109">109</a>
+<a href="#110" id="110">110</a>
+<a href="#111" id="111">111</a>
+<a href="#112" id="112">112</a>
+<a href="#113" id="113">113</a>
+<a href="#114" id="114">114</a>
+<a href="#115" id="115">115</a>
+<a href="#116" id="116">116</a>
+<a href="#117" id="117">117</a>
+<a href="#118" id="118">118</a>
+<a href="#119" id="119">119</a>
+<a href="#120" id="120">120</a>
+<a href="#121" id="121">121</a>
+<a href="#122" id="122">122</a>
+<a href="#123" id="123">123</a>
+<a href="#124" id="124">124</a>
+<a href="#125" id="125">125</a>
+<a href="#126" id="126">126</a>
+<a href="#127" id="127">127</a>
+<a href="#128" id="128">128</a>
+<a href="#129" id="129">129</a>
+<a href="#130" id="130">130</a>
+<a href="#131" id="131">131</a>
+<a href="#132" id="132">132</a>
+<a href="#133" id="133">133</a>
+<a href="#134" id="134">134</a>
+<a href="#135" id="135">135</a>
+<a href="#136" id="136">136</a>
+<a href="#137" id="137">137</a>
+<a href="#138" id="138">138</a>
+<a href="#139" id="139">139</a>
+<a href="#140" id="140">140</a>
+<a href="#141" id="141">141</a>
+<a href="#142" id="142">142</a>
+<a href="#143" id="143">143</a>
+<a href="#144" id="144">144</a>
+<a href="#145" id="145">145</a>
+<a href="#146" id="146">146</a>
+<a href="#147" id="147">147</a>
+<a href="#148" id="148">148</a>
+<a href="#149" id="149">149</a>
+<a href="#150" id="150">150</a>
+<a href="#151" id="151">151</a>
+<a href="#152" id="152">152</a>
+<a href="#153" id="153">153</a>
+<a href="#154" id="154">154</a>
+<a href="#155" id="155">155</a>
+<a href="#156" id="156">156</a>
+<a href="#157" id="157">157</a>
+<a href="#158" id="158">158</a>
+<a href="#159" id="159">159</a>
+<a href="#160" id="160">160</a>
+<a href="#161" id="161">161</a>
+<a href="#162" id="162">162</a>
+<a href="#163" id="163">163</a>
+<a href="#164" id="164">164</a>
+<a href="#165" id="165">165</a>
+<a href="#166" id="166">166</a>
+<a href="#167" id="167">167</a>
+<a href="#168" id="168">168</a>
+<a href="#169" id="169">169</a>
+<a href="#170" id="170">170</a>
+<a href="#171" id="171">171</a>
+<a href="#172" id="172">172</a>
+<a href="#173" id="173">173</a>
+<a href="#174" id="174">174</a>
+<a href="#175" id="175">175</a>
+<a href="#176" id="176">176</a>
+<a href="#177" id="177">177</a>
+<a href="#178" id="178">178</a>
+<a href="#179" id="179">179</a>
+<a href="#180" id="180">180</a>
+<a href="#181" id="181">181</a>
+<a href="#182" id="182">182</a>
+<a href="#183" id="183">183</a>
+<a href="#184" id="184">184</a>
+<a href="#185" id="185">185</a>
+<a href="#186" id="186">186</a>
+<a href="#187" id="187">187</a>
+<a href="#188" id="188">188</a>
+<a href="#189" id="189">189</a>
+<a href="#190" id="190">190</a>
+<a href="#191" id="191">191</a>
+<a href="#192" id="192">192</a>
+<a href="#193" id="193">193</a>
+<a href="#194" id="194">194</a>
+<a href="#195" id="195">195</a>
+<a href="#196" id="196">196</a>
+<a href="#197" id="197">197</a>
+<a href="#198" id="198">198</a>
+<a href="#199" id="199">199</a>
+<a href="#200" id="200">200</a>
+<a href="#201" id="201">201</a>
+<a href="#202" id="202">202</a>
+<a href="#203" id="203">203</a>
+<a href="#204" id="204">204</a>
+<a href="#205" id="205">205</a>
+<a href="#206" id="206">206</a>
+<a href="#207" id="207">207</a>
+<a href="#208" id="208">208</a>
+<a href="#209" id="209">209</a>
+<a href="#210" id="210">210</a>
+<a href="#211" id="211">211</a>
+<a href="#212" id="212">212</a>
+<a href="#213" id="213">213</a>
+<a href="#214" id="214">214</a>
+<a href="#215" id="215">215</a>
+<a href="#216" id="216">216</a>
+<a href="#217" id="217">217</a>
+<a href="#218" id="218">218</a>
+<a href="#219" id="219">219</a>
+<a href="#220" id="220">220</a>
+<a href="#221" id="221">221</a>
+<a href="#222" id="222">222</a>
+<a href="#223" id="223">223</a>
+<a href="#224" id="224">224</a>
+<a href="#225" id="225">225</a>
+<a href="#226" id="226">226</a>
+<a href="#227" id="227">227</a>
+<a href="#228" id="228">228</a>
+<a href="#229" id="229">229</a>
+<a href="#230" id="230">230</a>
+<a href="#231" id="231">231</a>
+<a href="#232" id="232">232</a>
+<a href="#233" id="233">233</a>
+<a href="#234" id="234">234</a>
+<a href="#235" id="235">235</a>
+<a href="#236" id="236">236</a>
+<a href="#237" id="237">237</a>
+<a href="#238" id="238">238</a>
+<a href="#239" id="239">239</a>
+<a href="#240" id="240">240</a>
+<a href="#241" id="241">241</a>
+<a href="#242" id="242">242</a>
+<a href="#243" id="243">243</a>
+<a href="#244" id="244">244</a>
+<a href="#245" id="245">245</a>
+<a href="#246" id="246">246</a>
+<a href="#247" id="247">247</a>
+<a href="#248" id="248">248</a>
+<a href="#249" id="249">249</a>
+<a href="#250" id="250">250</a>
+<a href="#251" id="251">251</a>
+<a href="#252" id="252">252</a>
+<a href="#253" id="253">253</a>
+<a href="#254" id="254">254</a>
+<a href="#255" id="255">255</a>
+<a href="#256" id="256">256</a>
+<a href="#257" id="257">257</a>
+<a href="#258" id="258">258</a>
+<a href="#259" id="259">259</a>
+<a href="#260" id="260">260</a>
+<a href="#261" id="261">261</a>
+<a href="#262" id="262">262</a>
+<a href="#263" id="263">263</a>
+<a href="#264" id="264">264</a>
+<a href="#265" id="265">265</a>
+<a href="#266" id="266">266</a>
+<a href="#267" id="267">267</a>
+<a href="#268" id="268">268</a>
+<a href="#269" id="269">269</a>
+<a href="#270" id="270">270</a>
+<a href="#271" id="271">271</a>
+<a href="#272" id="272">272</a>
+<a href="#273" id="273">273</a>
+<a href="#274" id="274">274</a>
+<a href="#275" id="275">275</a>
+<a href="#276" id="276">276</a>
+<a href="#277" id="277">277</a>
+<a href="#278" id="278">278</a>
+<a href="#279" id="279">279</a>
+<a href="#280" id="280">280</a>
+<a href="#281" id="281">281</a>
+<a href="#282" id="282">282</a>
+<a href="#283" id="283">283</a>
+<a href="#284" id="284">284</a>
+<a href="#285" id="285">285</a>
+<a href="#286" id="286">286</a>
+<a href="#287" id="287">287</a>
+<a href="#288" id="288">288</a>
+<a href="#289" id="289">289</a>
+<a href="#290" id="290">290</a>
+<a href="#291" id="291">291</a>
+<a href="#292" id="292">292</a>
+<a href="#293" id="293">293</a>
+<a href="#294" id="294">294</a>
+<a href="#295" id="295">295</a>
+<a href="#296" id="296">296</a>
+<a href="#297" id="297">297</a>
+<a href="#298" id="298">298</a>
+<a href="#299" id="299">299</a>
+<a href="#300" id="300">300</a>
+<a href="#301" id="301">301</a>
+<a href="#302" id="302">302</a>
+<a href="#303" id="303">303</a>
+<a href="#304" id="304">304</a>
+<a href="#305" id="305">305</a>
+<a href="#306" id="306">306</a>
+<a href="#307" id="307">307</a>
+<a href="#308" id="308">308</a>
+<a href="#309" id="309">309</a>
+<a href="#310" id="310">310</a>
+<a href="#311" id="311">311</a>
+<a href="#312" id="312">312</a>
+<a href="#313" id="313">313</a>
+<a href="#314" id="314">314</a>
+<a href="#315" id="315">315</a>
+<a href="#316" id="316">316</a>
+<a href="#317" id="317">317</a>
+<a href="#318" id="318">318</a>
+<a href="#319" id="319">319</a>
+<a href="#320" id="320">320</a>
+<a href="#321" id="321">321</a>
+<a href="#322" id="322">322</a>
+<a href="#323" id="323">323</a>
+<a href="#324" id="324">324</a>
+<a href="#325" id="325">325</a>
+<a href="#326" id="326">326</a>
+<a href="#327" id="327">327</a>
+<a href="#328" id="328">328</a>
+<a href="#329" id="329">329</a>
+<a href="#330" id="330">330</a>
+<a href="#331" id="331">331</a>
+<a href="#332" id="332">332</a>
+<a href="#333" id="333">333</a>
+<a href="#334" id="334">334</a>
+<a href="#335" id="335">335</a>
+<a href="#336" id="336">336</a>
+<a href="#337" id="337">337</a>
+<a href="#338" id="338">338</a>
+<a href="#339" id="339">339</a>
+<a href="#340" id="340">340</a>
+<a href="#341" id="341">341</a>
+<a href="#342" id="342">342</a>
+<a href="#343" id="343">343</a>
+<a href="#344" id="344">344</a>
+<a href="#345" id="345">345</a>
+<a href="#346" id="346">346</a>
+<a href="#347" id="347">347</a>
+<a href="#348" id="348">348</a>
+<a href="#349" id="349">349</a>
+<a href="#350" id="350">350</a>
+<a href="#351" id="351">351</a>
+<a href="#352" id="352">352</a>
+<a href="#353" id="353">353</a>
+<a href="#354" id="354">354</a>
+<a href="#355" id="355">355</a>
+<a href="#356" id="356">356</a>
+<a href="#357" id="357">357</a>
+<a href="#358" id="358">358</a>
+<a href="#359" id="359">359</a>
+<a href="#360" id="360">360</a>
+<a href="#361" id="361">361</a>
+<a href="#362" id="362">362</a>
+<a href="#363" id="363">363</a>
+<a href="#364" id="364">364</a>
+<a href="#365" id="365">365</a>
+<a href="#366" id="366">366</a>
+<a href="#367" id="367">367</a>
+<a href="#368" id="368">368</a>
+<a href="#369" id="369">369</a>
+<a href="#370" id="370">370</a>
+<a href="#371" id="371">371</a>
+<a href="#372" id="372">372</a>
+<a href="#373" id="373">373</a>
+<a href="#374" id="374">374</a>
+<a href="#375" id="375">375</a>
+<a href="#376" id="376">376</a>
+<a href="#377" id="377">377</a>
+<a href="#378" id="378">378</a>
+<a href="#379" id="379">379</a>
+<a href="#380" id="380">380</a>
+<a href="#381" id="381">381</a>
+<a href="#382" id="382">382</a>
+<a href="#383" id="383">383</a>
+<a href="#384" id="384">384</a>
+<a href="#385" id="385">385</a>
+<a href="#386" id="386">386</a>
+<a href="#387" id="387">387</a>
+<a href="#388" id="388">388</a>
+<a href="#389" id="389">389</a>
+<a href="#390" id="390">390</a>
+<a href="#391" id="391">391</a>
+<a href="#392" id="392">392</a>
+<a href="#393" id="393">393</a>
+<a href="#394" id="394">394</a>
+<a href="#395" id="395">395</a>
+<a href="#396" id="396">396</a>
+<a href="#397" id="397">397</a>
+<a href="#398" id="398">398</a>
+<a href="#399" id="399">399</a>
+<a href="#400" id="400">400</a>
+<a href="#401" id="401">401</a>
+<a href="#402" id="402">402</a>
+<a href="#403" id="403">403</a>
+<a href="#404" id="404">404</a>
+<a href="#405" id="405">405</a>
+<a href="#406" id="406">406</a>
+<a href="#407" id="407">407</a>
+<a href="#408" id="408">408</a>
+<a href="#409" id="409">409</a>
+<a href="#410" id="410">410</a>
+<a href="#411" id="411">411</a>
+<a href="#412" id="412">412</a>
+<a href="#413" id="413">413</a>
+<a href="#414" id="414">414</a>
+<a href="#415" id="415">415</a>
+<a href="#416" id="416">416</a>
+<a href="#417" id="417">417</a>
+<a href="#418" id="418">418</a>
+<a href="#419" id="419">419</a>
+<a href="#420" id="420">420</a>
+<a href="#421" id="421">421</a>
+<a href="#422" id="422">422</a>
+<a href="#423" id="423">423</a>
+<a href="#424" id="424">424</a>
+<a href="#425" id="425">425</a>
+<a href="#426" id="426">426</a>
+<a href="#427" id="427">427</a>
+<a href="#428" id="428">428</a>
+<a href="#429" id="429">429</a>
+<a href="#430" id="430">430</a>
+<a href="#431" id="431">431</a>
+<a href="#432" id="432">432</a>
+<a href="#433" id="433">433</a>
+<a href="#434" id="434">434</a>
+<a href="#435" id="435">435</a>
+<a href="#436" id="436">436</a>
+<a href="#437" id="437">437</a>
+<a href="#438" id="438">438</a>
+<a href="#439" id="439">439</a>
+<a href="#440" id="440">440</a>
+<a href="#441" id="441">441</a>
+<a href="#442" id="442">442</a>
+<a href="#443" id="443">443</a>
+<a href="#444" id="444">444</a>
+<a href="#445" id="445">445</a>
+<a href="#446" id="446">446</a>
+<a href="#447" id="447">447</a>
+<a href="#448" id="448">448</a>
+<a href="#449" id="449">449</a>
+<a href="#450" id="450">450</a>
+<a href="#451" id="451">451</a>
+<a href="#452" id="452">452</a>
+<a href="#453" id="453">453</a>
+<a href="#454" id="454">454</a>
+<a href="#455" id="455">455</a>
+<a href="#456" id="456">456</a>
+<a href="#457" id="457">457</a>
+<a href="#458" id="458">458</a>
+<a href="#459" id="459">459</a>
+<a href="#460" id="460">460</a>
+<a href="#461" id="461">461</a>
+<a href="#462" id="462">462</a>
+<a href="#463" id="463">463</a>
+<a href="#464" id="464">464</a>
+<a href="#465" id="465">465</a>
+<a href="#466" id="466">466</a>
+<a href="#467" id="467">467</a>
+<a href="#468" id="468">468</a>
+<a href="#469" id="469">469</a>
+<a href="#470" id="470">470</a>
+<a href="#471" id="471">471</a>
+<a href="#472" id="472">472</a>
+<a href="#473" id="473">473</a>
+<a href="#474" id="474">474</a>
+<a href="#475" id="475">475</a>
+<a href="#476" id="476">476</a>
+<a href="#477" id="477">477</a>
+<a href="#478" id="478">478</a>
+<a href="#479" id="479">479</a>
+<a href="#480" id="480">480</a>
+<a href="#481" id="481">481</a>
+<a href="#482" id="482">482</a>
+<a href="#483" id="483">483</a>
+<a href="#484" id="484">484</a>
+<a href="#485" id="485">485</a>
+<a href="#486" id="486">486</a>
+<a href="#487" id="487">487</a>
+<a href="#488" id="488">488</a>
+<a href="#489" id="489">489</a>
+<a href="#490" id="490">490</a>
+<a href="#491" id="491">491</a>
+<a href="#492" id="492">492</a>
+<a href="#493" id="493">493</a>
+<a href="#494" id="494">494</a>
+<a href="#495" id="495">495</a>
+<a href="#496" id="496">496</a>
+<a href="#497" id="497">497</a>
+<a href="#498" id="498">498</a>
+<a href="#499" id="499">499</a>
+<a href="#500" id="500">500</a>
+<a href="#501" id="501">501</a>
+<a href="#502" id="502">502</a>
+<a href="#503" id="503">503</a>
+<a href="#504" id="504">504</a>
+<a href="#505" id="505">505</a>
+<a href="#506" id="506">506</a>
+<a href="#507" id="507">507</a>
+<a href="#508" id="508">508</a>
+<a href="#509" id="509">509</a>
+<a href="#510" id="510">510</a>
+<a href="#511" id="511">511</a>
+<a href="#512" id="512">512</a>
+<a href="#513" id="513">513</a>
+<a href="#514" id="514">514</a>
+<a href="#515" id="515">515</a>
+<a href="#516" id="516">516</a>
+<a href="#517" id="517">517</a>
+<a href="#518" id="518">518</a>
+<a href="#519" id="519">519</a>
+<a href="#520" id="520">520</a>
+<a href="#521" id="521">521</a>
+<a href="#522" id="522">522</a>
+<a href="#523" id="523">523</a>
+<a href="#524" id="524">524</a>
+<a href="#525" id="525">525</a>
+<a href="#526" id="526">526</a>
+<a href="#527" id="527">527</a>
+<a href="#528" id="528">528</a>
+<a href="#529" id="529">529</a>
+<a href="#530" id="530">530</a>
+<a href="#531" id="531">531</a>
+<a href="#532" id="532">532</a>
+<a href="#533" id="533">533</a>
+<a href="#534" id="534">534</a>
+<a href="#535" id="535">535</a>
+<a href="#536" id="536">536</a>
+<a href="#537" id="537">537</a>
+<a href="#538" id="538">538</a>
+<a href="#539" id="539">539</a>
+<a href="#540" id="540">540</a>
+<a href="#541" id="541">541</a>
+<a href="#542" id="542">542</a>
+<a href="#543" id="543">543</a>
+<a href="#544" id="544">544</a>
+<a href="#545" id="545">545</a>
+<a href="#546" id="546">546</a>
+<a href="#547" id="547">547</a>
+<a href="#548" id="548">548</a>
+<a href="#549" id="549">549</a>
+<a href="#550" id="550">550</a>
+<a href="#551" id="551">551</a>
+<a href="#552" id="552">552</a>
+<a href="#553" id="553">553</a>
+<a href="#554" id="554">554</a>
+<a href="#555" id="555">555</a>
+<a href="#556" id="556">556</a>
+<a href="#557" id="557">557</a>
+<a href="#558" id="558">558</a>
+<a href="#559" id="559">559</a>
+<a href="#560" id="560">560</a>
+<a href="#561" id="561">561</a>
+<a href="#562" id="562">562</a>
+<a href="#563" id="563">563</a>
+<a href="#564" id="564">564</a>
+<a href="#565" id="565">565</a>
+<a href="#566" id="566">566</a>
+<a href="#567" id="567">567</a>
+<a href="#568" id="568">568</a>
+<a href="#569" id="569">569</a>
+<a href="#570" id="570">570</a>
+<a href="#571" id="571">571</a>
+<a href="#572" id="572">572</a>
+<a href="#573" id="573">573</a>
+<a href="#574" id="574">574</a>
+<a href="#575" id="575">575</a>
+<a href="#576" id="576">576</a>
+<a href="#577" id="577">577</a>
+<a href="#578" id="578">578</a>
+<a href="#579" id="579">579</a>
+<a href="#580" id="580">580</a>
+<a href="#581" id="581">581</a>
+<a href="#582" id="582">582</a>
+<a href="#583" id="583">583</a>
+<a href="#584" id="584">584</a>
+<a href="#585" id="585">585</a>
+<a href="#586" id="586">586</a>
+<a href="#587" id="587">587</a>
+<a href="#588" id="588">588</a>
+<a href="#589" id="589">589</a>
+<a href="#590" id="590">590</a>
+<a href="#591" id="591">591</a>
+<a href="#592" id="592">592</a>
+<a href="#593" id="593">593</a>
+<a href="#594" id="594">594</a>
+<a href="#595" id="595">595</a>
+<a href="#596" id="596">596</a>
+<a href="#597" id="597">597</a>
+<a href="#598" id="598">598</a>
+<a href="#599" id="599">599</a>
+<a href="#600" id="600">600</a>
+<a href="#601" id="601">601</a>
+<a href="#602" id="602">602</a>
+<a href="#603" id="603">603</a>
+<a href="#604" id="604">604</a>
+<a href="#605" id="605">605</a>
+<a href="#606" id="606">606</a>
+<a href="#607" id="607">607</a>
+<a href="#608" id="608">608</a>
+<a href="#609" id="609">609</a>
+<a href="#610" id="610">610</a>
+<a href="#611" id="611">611</a>
+<a href="#612" id="612">612</a>
+<a href="#613" id="613">613</a>
+<a href="#614" id="614">614</a>
+<a href="#615" id="615">615</a>
+<a href="#616" id="616">616</a>
+<a href="#617" id="617">617</a>
+<a href="#618" id="618">618</a>
+<a href="#619" id="619">619</a>
+<a href="#620" id="620">620</a>
+<a href="#621" id="621">621</a>
+<a href="#622" id="622">622</a>
+<a href="#623" id="623">623</a>
+<a href="#624" id="624">624</a>
+<a href="#625" id="625">625</a>
+<a href="#626" id="626">626</a>
+<a href="#627" id="627">627</a>
+<a href="#628" id="628">628</a>
+<a href="#629" id="629">629</a>
+<a href="#630" id="630">630</a>
+<a href="#631" id="631">631</a>
+<a href="#632" id="632">632</a>
+<a href="#633" id="633">633</a>
+<a href="#634" id="634">634</a>
+<a href="#635" id="635">635</a>
+<a href="#636" id="636">636</a>
+<a href="#637" id="637">637</a>
+<a href="#638" id="638">638</a>
+<a href="#639" id="639">639</a>
+<a href="#640" id="640">640</a>
+<a href="#641" id="641">641</a>
+<a href="#642" id="642">642</a>
+<a href="#643" id="643">643</a>
+<a href="#644" id="644">644</a>
+<a href="#645" id="645">645</a>
+<a href="#646" id="646">646</a>
+<a href="#647" id="647">647</a>
+<a href="#648" id="648">648</a>
+<a href="#649" id="649">649</a>
+<a href="#650" id="650">650</a>
+<a href="#651" id="651">651</a>
+<a href="#652" id="652">652</a>
+<a href="#653" id="653">653</a>
+<a href="#654" id="654">654</a>
+<a href="#655" id="655">655</a>
+<a href="#656" id="656">656</a>
+<a href="#657" id="657">657</a>
+<a href="#658" id="658">658</a>
+<a href="#659" id="659">659</a>
+<a href="#660" id="660">660</a>
+<a href="#661" id="661">661</a>
+<a href="#662" id="662">662</a>
+<a href="#663" id="663">663</a>
+<a href="#664" id="664">664</a>
+<a href="#665" id="665">665</a>
+<a href="#666" id="666">666</a>
+<a href="#667" id="667">667</a>
+<a href="#668" id="668">668</a>
+<a href="#669" id="669">669</a>
+<a href="#670" id="670">670</a>
+<a href="#671" id="671">671</a>
+<a href="#672" id="672">672</a>
+<a href="#673" id="673">673</a>
+<a href="#674" id="674">674</a>
+<a href="#675" id="675">675</a>
+<a href="#676" id="676">676</a>
+<a href="#677" id="677">677</a>
+<a href="#678" id="678">678</a>
+<a href="#679" id="679">679</a>
+<a href="#680" id="680">680</a>
+<a href="#681" id="681">681</a>
+<a href="#682" id="682">682</a>
+<a href="#683" id="683">683</a>
+<a href="#684" id="684">684</a>
+<a href="#685" id="685">685</a>
+<a href="#686" id="686">686</a>
+<a href="#687" id="687">687</a>
+<a href="#688" id="688">688</a>
+<a href="#689" id="689">689</a>
+<a href="#690" id="690">690</a>
+<a href="#691" id="691">691</a>
+<a href="#692" id="692">692</a>
+<a href="#693" id="693">693</a>
+<a href="#694" id="694">694</a>
+<a href="#695" id="695">695</a>
+<a href="#696" id="696">696</a>
+<a href="#697" id="697">697</a>
+<a href="#698" id="698">698</a>
+<a href="#699" id="699">699</a>
+<a href="#700" id="700">700</a>
+<a href="#701" id="701">701</a>
+<a href="#702" id="702">702</a>
+<a href="#703" id="703">703</a>
+<a href="#704" id="704">704</a>
+<a href="#705" id="705">705</a>
+<a href="#706" id="706">706</a>
+<a href="#707" id="707">707</a>
+<a href="#708" id="708">708</a>
+<a href="#709" id="709">709</a>
+<a href="#710" id="710">710</a>
+<a href="#711" id="711">711</a>
+<a href="#712" id="712">712</a>
+<a href="#713" id="713">713</a>
+<a href="#714" id="714">714</a>
+<a href="#715" id="715">715</a>
+<a href="#716" id="716">716</a>
+<a href="#717" id="717">717</a>
+<a href="#718" id="718">718</a>
+<a href="#719" id="719">719</a>
+<a href="#720" id="720">720</a>
+<a href="#721" id="721">721</a>
+<a href="#722" id="722">722</a>
+<a href="#723" id="723">723</a>
+<a href="#724" id="724">724</a>
+<a href="#725" id="725">725</a>
+<a href="#726" id="726">726</a>
+<a href="#727" id="727">727</a>
+<a href="#728" id="728">728</a>
+<a href="#729" id="729">729</a>
+<a href="#730" id="730">730</a>
+<a href="#731" id="731">731</a>
+<a href="#732" id="732">732</a>
+<a href="#733" id="733">733</a>
+<a href="#734" id="734">734</a>
+<a href="#735" id="735">735</a>
+<a href="#736" id="736">736</a>
+<a href="#737" id="737">737</a>
+<a href="#738" id="738">738</a>
+<a href="#739" id="739">739</a>
+<a href="#740" id="740">740</a>
+<a href="#741" id="741">741</a>
+<a href="#742" id="742">742</a>
+<a href="#743" id="743">743</a>
+<a href="#744" id="744">744</a>
+<a href="#745" id="745">745</a>
+<a href="#746" id="746">746</a>
+<a href="#747" id="747">747</a>
+<a href="#748" id="748">748</a>
+<a href="#749" id="749">749</a>
+<a href="#750" id="750">750</a>
+<a href="#751" id="751">751</a>
+<a href="#752" id="752">752</a>
+<a href="#753" id="753">753</a>
+<a href="#754" id="754">754</a>
+<a href="#755" id="755">755</a>
+<a href="#756" id="756">756</a>
+<a href="#757" id="757">757</a>
+<a href="#758" id="758">758</a>
+<a href="#759" id="759">759</a>
+<a href="#760" id="760">760</a>
+<a href="#761" id="761">761</a>
+<a href="#762" id="762">762</a>
+<a href="#763" id="763">763</a>
+<a href="#764" id="764">764</a>
+<a href="#765" id="765">765</a>
+<a href="#766" id="766">766</a>
+<a href="#767" id="767">767</a>
+<a href="#768" id="768">768</a>
+<a href="#769" id="769">769</a>
+<a href="#770" id="770">770</a>
+<a href="#771" id="771">771</a>
+<a href="#772" id="772">772</a>
+<a href="#773" id="773">773</a>
+<a href="#774" id="774">774</a>
+<a href="#775" id="775">775</a>
+<a href="#776" id="776">776</a>
+<a href="#777" id="777">777</a>
+<a href="#778" id="778">778</a>
+<a href="#779" id="779">779</a>
+<a href="#780" id="780">780</a>
+<a href="#781" id="781">781</a>
+<a href="#782" id="782">782</a>
+<a href="#783" id="783">783</a>
+<a href="#784" id="784">784</a>
+<a href="#785" id="785">785</a>
+<a href="#786" id="786">786</a>
+<a href="#787" id="787">787</a>
+<a href="#788" id="788">788</a>
+<a href="#789" id="789">789</a>
+<a href="#790" id="790">790</a>
+<a href="#791" id="791">791</a>
+<a href="#792" id="792">792</a>
+<a href="#793" id="793">793</a>
+<a href="#794" id="794">794</a>
+<a href="#795" id="795">795</a>
+<a href="#796" id="796">796</a>
+<a href="#797" id="797">797</a>
+<a href="#798" id="798">798</a>
+<a href="#799" id="799">799</a>
+<a href="#800" id="800">800</a>
+<a href="#801" id="801">801</a>
+<a href="#802" id="802">802</a>
+<a href="#803" id="803">803</a>
+<a href="#804" id="804">804</a>
+<a href="#805" id="805">805</a>
+<a href="#806" id="806">806</a>
+<a href="#807" id="807">807</a>
+<a href="#808" id="808">808</a>
+<a href="#809" id="809">809</a>
+<a href="#810" id="810">810</a>
+<a href="#811" id="811">811</a>
+<a href="#812" id="812">812</a>
+<a href="#813" id="813">813</a>
+<a href="#814" id="814">814</a>
+<a href="#815" id="815">815</a>
+<a href="#816" id="816">816</a>
+<a href="#817" id="817">817</a>
+<a href="#818" id="818">818</a>
+<a href="#819" id="819">819</a>
+<a href="#820" id="820">820</a>
+<a href="#821" id="821">821</a>
+<a href="#822" id="822">822</a>
+<a href="#823" id="823">823</a>
+<a href="#824" id="824">824</a>
+<a href="#825" id="825">825</a>
+<a href="#826" id="826">826</a>
+<a href="#827" id="827">827</a>
+<a href="#828" id="828">828</a>
+<a href="#829" id="829">829</a>
+<a href="#830" id="830">830</a>
+<a href="#831" id="831">831</a>
+<a href="#832" id="832">832</a>
+<a href="#833" id="833">833</a>
+<a href="#834" id="834">834</a>
+<a href="#835" id="835">835</a>
+<a href="#836" id="836">836</a>
+<a href="#837" id="837">837</a>
+<a href="#838" id="838">838</a>
+<a href="#839" id="839">839</a>
+<a href="#840" id="840">840</a>
+<a href="#841" id="841">841</a>
+<a href="#842" id="842">842</a>
+<a href="#843" id="843">843</a>
+<a href="#844" id="844">844</a>
+<a href="#845" id="845">845</a>
+<a href="#846" id="846">846</a>
+<a href="#847" id="847">847</a>
+<a href="#848" id="848">848</a>
+<a href="#849" id="849">849</a>
+<a href="#850" id="850">850</a>
+<a href="#851" id="851">851</a>
+<a href="#852" id="852">852</a>
+<a href="#853" id="853">853</a>
+<a href="#854" id="854">854</a>
+<a href="#855" id="855">855</a>
+<a href="#856" id="856">856</a>
+<a href="#857" id="857">857</a>
+<a href="#858" id="858">858</a>
+<a href="#859" id="859">859</a>
+<a href="#860" id="860">860</a>
+<a href="#861" id="861">861</a>
+<a href="#862" id="862">862</a>
+<a href="#863" id="863">863</a>
+<a href="#864" id="864">864</a>
+<a href="#865" id="865">865</a>
+<a href="#866" id="866">866</a>
+<a href="#867" id="867">867</a>
+<a href="#868" id="868">868</a>
+<a href="#869" id="869">869</a>
+<a href="#870" id="870">870</a>
+<a href="#871" id="871">871</a>
+<a href="#872" id="872">872</a>
+<a href="#873" id="873">873</a>
+<a href="#874" id="874">874</a>
+<a href="#875" id="875">875</a>
+<a href="#876" id="876">876</a>
+<a href="#877" id="877">877</a>
+<a href="#878" id="878">878</a>
+<a href="#879" id="879">879</a>
+<a href="#880" id="880">880</a>
+<a href="#881" id="881">881</a>
+<a href="#882" id="882">882</a>
+<a href="#883" id="883">883</a>
+<a href="#884" id="884">884</a>
+<a href="#885" id="885">885</a>
+<a href="#886" id="886">886</a>
+<a href="#887" id="887">887</a>
+<a href="#888" id="888">888</a>
+<a href="#889" id="889">889</a>
+<a href="#890" id="890">890</a>
+<a href="#891" id="891">891</a>
+<a href="#892" id="892">892</a>
+<a href="#893" id="893">893</a>
+<a href="#894" id="894">894</a>
+<a href="#895" id="895">895</a>
+<a href="#896" id="896">896</a>
+<a href="#897" id="897">897</a>
+<a href="#898" id="898">898</a>
+<a href="#899" id="899">899</a>
+<a href="#900" id="900">900</a>
+</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
+// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
+//
+// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
+//
+// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
+// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// You may not use this file except in accordance with one or both of these
+// licenses.
+
+</span><span class="doccomment">//! Descriptors
+//!
+//! This module contains generic utilities to work with descriptors, plus some re-exported types
+//! from [`miniscript`].
+
+</span><span class="kw">use </span><span class="kw">crate</span>::collections::BTreeMap;
+<span class="kw">use </span>alloc::string::String;
+<span class="kw">use </span>alloc::vec::Vec;
+
+<span class="kw">use </span>bitcoin::bip32::{ChildNumber, DerivationPath, Fingerprint, KeySource, Xpub};
+<span class="kw">use </span>bitcoin::{key::XOnlyPublicKey, secp256k1, PublicKey};
+<span class="kw">use </span>bitcoin::{psbt, taproot};
+<span class="kw">use </span>bitcoin::{Network, TxOut};
+
+<span class="kw">use </span>miniscript::descriptor::{
+ DefiniteDescriptorKey, DescriptorMultiXKey, DescriptorSecretKey, DescriptorType,
+ DescriptorXKey, InnerXKey, KeyMap, SinglePubKey, Wildcard,
+};
+<span class="kw">pub use </span>miniscript::{
+ Descriptor, DescriptorPublicKey, Legacy, Miniscript, ScriptContext, Segwitv0,
+};
+<span class="kw">use </span>miniscript::{ForEachKey, MiniscriptKey, TranslatePk};
+
+<span class="kw">use </span><span class="kw">crate</span>::descriptor::policy::BuildSatisfaction;
+
+<span class="kw">pub mod </span>checksum;
+<span class="attr">#[doc(hidden)]
+</span><span class="kw">pub mod </span>dsl;
+<span class="kw">pub mod </span>error;
+<span class="kw">pub mod </span>policy;
+<span class="kw">pub mod </span>template;
+
+<span class="kw">pub use </span><span class="self">self</span>::checksum::calc_checksum;
+<span class="kw">use </span><span class="self">self</span>::checksum::calc_checksum_bytes;
+<span class="kw">pub use </span><span class="self">self</span>::error::Error <span class="kw">as </span>DescriptorError;
+<span class="kw">pub use </span><span class="self">self</span>::policy::Policy;
+<span class="kw">use </span><span class="self">self</span>::template::DescriptorTemplateOut;
+<span class="kw">use </span><span class="kw">crate</span>::keys::{IntoDescriptorKey, KeyError};
+<span class="kw">use </span><span class="kw">crate</span>::wallet::signer::SignersContainer;
+<span class="kw">use </span><span class="kw">crate</span>::wallet::utils::SecpCtx;
+
+<span class="doccomment">/// Alias for a [`Descriptor`] that can contain extended keys using [`DescriptorPublicKey`]
+</span><span class="kw">pub type </span>ExtendedDescriptor = Descriptor<DescriptorPublicKey>;
+
+<span class="doccomment">/// Alias for a [`Descriptor`] that contains extended **derived** keys
+</span><span class="kw">pub type </span>DerivedDescriptor = Descriptor<DefiniteDescriptorKey>;
+
+<span class="doccomment">/// Alias for the type of maps that represent derivation paths in a [`psbt::Input`] or
+/// [`psbt::Output`]
+///
+/// [`psbt::Input`]: bitcoin::psbt::Input
+/// [`psbt::Output`]: bitcoin::psbt::Output
+</span><span class="kw">pub type </span>HdKeyPaths = BTreeMap<secp256k1::PublicKey, KeySource>;
+
+<span class="doccomment">/// Alias for the type of maps that represent taproot key origins in a [`psbt::Input`] or
+/// [`psbt::Output`]
+///
+/// [`psbt::Input`]: bitcoin::psbt::Input
+/// [`psbt::Output`]: bitcoin::psbt::Output
+</span><span class="kw">pub type </span>TapKeyOrigins = BTreeMap<XOnlyPublicKey, (Vec<taproot::TapLeafHash>, KeySource)>;
+
+<span class="doccomment">/// Trait for types which can be converted into an [`ExtendedDescriptor`] and a [`KeyMap`] usable by a wallet in a specific [`Network`]
+</span><span class="kw">pub trait </span>IntoWalletDescriptor {
+ <span class="doccomment">/// Convert to wallet descriptor
+ </span><span class="kw">fn </span>into_wallet_descriptor(
+ <span class="self">self</span>,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ network: Network,
+ ) -> <span class="prelude-ty">Result</span><(ExtendedDescriptor, KeyMap), DescriptorError>;
+}
+
+<span class="kw">impl </span>IntoWalletDescriptor <span class="kw">for </span><span class="kw-2">&</span>str {
+ <span class="kw">fn </span>into_wallet_descriptor(
+ <span class="self">self</span>,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ network: Network,
+ ) -> <span class="prelude-ty">Result</span><(ExtendedDescriptor, KeyMap), DescriptorError> {
+ <span class="kw">let </span>descriptor = <span class="kw">match </span><span class="self">self</span>.split_once(<span class="string">'#'</span>) {
+ <span class="prelude-val">Some</span>((desc, original_checksum)) => {
+ <span class="kw">let </span>checksum = calc_checksum_bytes(desc)<span class="question-mark">?</span>;
+ <span class="kw">if </span>original_checksum.as_bytes() != checksum {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(DescriptorError::InvalidDescriptorChecksum);
+ }
+ desc
+ }
+ <span class="prelude-val">None </span>=> <span class="self">self</span>,
+ };
+
+ ExtendedDescriptor::parse_descriptor(secp, descriptor)<span class="question-mark">?
+ </span>.into_wallet_descriptor(secp, network)
+ }
+}
+
+<span class="kw">impl </span>IntoWalletDescriptor <span class="kw">for </span><span class="kw-2">&</span>String {
+ <span class="kw">fn </span>into_wallet_descriptor(
+ <span class="self">self</span>,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ network: Network,
+ ) -> <span class="prelude-ty">Result</span><(ExtendedDescriptor, KeyMap), DescriptorError> {
+ <span class="self">self</span>.as_str().into_wallet_descriptor(secp, network)
+ }
+}
+
+<span class="kw">impl </span>IntoWalletDescriptor <span class="kw">for </span>ExtendedDescriptor {
+ <span class="kw">fn </span>into_wallet_descriptor(
+ <span class="self">self</span>,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ network: Network,
+ ) -> <span class="prelude-ty">Result</span><(ExtendedDescriptor, KeyMap), DescriptorError> {
+ (<span class="self">self</span>, KeyMap::default()).into_wallet_descriptor(secp, network)
+ }
+}
+
+<span class="kw">impl </span>IntoWalletDescriptor <span class="kw">for </span>(ExtendedDescriptor, KeyMap) {
+ <span class="kw">fn </span>into_wallet_descriptor(
+ <span class="self">self</span>,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ network: Network,
+ ) -> <span class="prelude-ty">Result</span><(ExtendedDescriptor, KeyMap), DescriptorError> {
+ <span class="kw">use </span><span class="kw">crate</span>::keys::DescriptorKey;
+
+ <span class="kw">struct </span>Translator<<span class="lifetime">'s</span>, <span class="lifetime">'d</span>> {
+ secp: <span class="kw-2">&</span><span class="lifetime">'s </span>SecpCtx,
+ descriptor: <span class="kw-2">&</span><span class="lifetime">'d </span>ExtendedDescriptor,
+ network: Network,
+ }
+
+ <span class="kw">impl</span><<span class="lifetime">'s</span>, <span class="lifetime">'d</span>> miniscript::Translator<DescriptorPublicKey, String, DescriptorError>
+ <span class="kw">for </span>Translator<<span class="lifetime">'s</span>, <span class="lifetime">'d</span>>
+ {
+ <span class="kw">fn </span>pk(<span class="kw-2">&mut </span><span class="self">self</span>, pk: <span class="kw-2">&</span>DescriptorPublicKey) -> <span class="prelude-ty">Result</span><String, DescriptorError> {
+ <span class="kw">let </span>secp = <span class="kw-2">&</span><span class="self">self</span>.secp;
+
+ <span class="kw">let </span>(<span class="kw">_</span>, <span class="kw">_</span>, networks) = <span class="kw">if </span><span class="self">self</span>.descriptor.is_taproot() {
+ <span class="kw">let </span>descriptor_key: DescriptorKey<miniscript::Tap> =
+ pk.clone().into_descriptor_key()<span class="question-mark">?</span>;
+ descriptor_key.extract(secp)<span class="question-mark">?
+ </span>} <span class="kw">else if </span><span class="self">self</span>.descriptor.is_witness() {
+ <span class="kw">let </span>descriptor_key: DescriptorKey<miniscript::Segwitv0> =
+ pk.clone().into_descriptor_key()<span class="question-mark">?</span>;
+ descriptor_key.extract(secp)<span class="question-mark">?
+ </span>} <span class="kw">else </span>{
+ <span class="kw">let </span>descriptor_key: DescriptorKey<miniscript::Legacy> =
+ pk.clone().into_descriptor_key()<span class="question-mark">?</span>;
+ descriptor_key.extract(secp)<span class="question-mark">?
+ </span>};
+
+ <span class="kw">if </span>networks.contains(<span class="kw-2">&</span><span class="self">self</span>.network) {
+ <span class="prelude-val">Ok</span>(Default::default())
+ } <span class="kw">else </span>{
+ <span class="prelude-val">Err</span>(DescriptorError::Key(KeyError::InvalidNetwork))
+ }
+ }
+ <span class="kw">fn </span>sha256(
+ <span class="kw-2">&mut </span><span class="self">self</span>,
+ _sha256: <span class="kw-2">&</span><DescriptorPublicKey <span class="kw">as </span>MiniscriptKey>::Sha256,
+ ) -> <span class="prelude-ty">Result</span><String, DescriptorError> {
+ <span class="prelude-val">Ok</span>(Default::default())
+ }
+ <span class="kw">fn </span>hash256(
+ <span class="kw-2">&mut </span><span class="self">self</span>,
+ _hash256: <span class="kw-2">&</span><DescriptorPublicKey <span class="kw">as </span>MiniscriptKey>::Hash256,
+ ) -> <span class="prelude-ty">Result</span><String, DescriptorError> {
+ <span class="prelude-val">Ok</span>(Default::default())
+ }
+ <span class="kw">fn </span>ripemd160(
+ <span class="kw-2">&mut </span><span class="self">self</span>,
+ _ripemd160: <span class="kw-2">&</span><DescriptorPublicKey <span class="kw">as </span>MiniscriptKey>::Ripemd160,
+ ) -> <span class="prelude-ty">Result</span><String, DescriptorError> {
+ <span class="prelude-val">Ok</span>(Default::default())
+ }
+ <span class="kw">fn </span>hash160(
+ <span class="kw-2">&mut </span><span class="self">self</span>,
+ _hash160: <span class="kw-2">&</span><DescriptorPublicKey <span class="kw">as </span>MiniscriptKey>::Hash160,
+ ) -> <span class="prelude-ty">Result</span><String, DescriptorError> {
+ <span class="prelude-val">Ok</span>(Default::default())
+ }
+ }
+
+ <span class="comment">// check the network for the keys
+ </span><span class="kw">use </span>miniscript::TranslateErr;
+ <span class="kw">match </span><span class="self">self</span>.<span class="number">0</span>.translate_pk(<span class="kw-2">&mut </span>Translator {
+ secp,
+ network,
+ descriptor: <span class="kw-2">&</span><span class="self">self</span>.<span class="number">0</span>,
+ }) {
+ <span class="prelude-val">Ok</span>(<span class="kw">_</span>) => {}
+ <span class="prelude-val">Err</span>(TranslateErr::TranslatorErr(e)) => <span class="kw">return </span><span class="prelude-val">Err</span>(e),
+ <span class="prelude-val">Err</span>(TranslateErr::OuterError(e)) => <span class="kw">return </span><span class="prelude-val">Err</span>(e.into()),
+ }
+
+ <span class="prelude-val">Ok</span>(<span class="self">self</span>)
+ }
+}
+
+<span class="kw">impl </span>IntoWalletDescriptor <span class="kw">for </span>DescriptorTemplateOut {
+ <span class="kw">fn </span>into_wallet_descriptor(
+ <span class="self">self</span>,
+ _secp: <span class="kw-2">&</span>SecpCtx,
+ network: Network,
+ ) -> <span class="prelude-ty">Result</span><(ExtendedDescriptor, KeyMap), DescriptorError> {
+ <span class="kw">struct </span>Translator {
+ network: Network,
+ }
+
+ <span class="kw">impl </span>miniscript::Translator<DescriptorPublicKey, DescriptorPublicKey, DescriptorError>
+ <span class="kw">for </span>Translator
+ {
+ <span class="kw">fn </span>pk(
+ <span class="kw-2">&mut </span><span class="self">self</span>,
+ pk: <span class="kw-2">&</span>DescriptorPublicKey,
+ ) -> <span class="prelude-ty">Result</span><DescriptorPublicKey, DescriptorError> {
+ <span class="comment">// workaround for xpubs generated by other key types, like bip39: since when the
+ // conversion is made one network has to be chosen, what we generally choose
+ // "mainnet", but then override the set of valid networks to specify that all of
+ // them are valid. here we reset the network to make sure the wallet struct gets a
+ // descriptor with the right network everywhere.
+ </span><span class="kw">let </span>pk = <span class="kw">match </span>pk {
+ DescriptorPublicKey::XPub(<span class="kw-2">ref </span>xpub) => {
+ <span class="kw">let </span><span class="kw-2">mut </span>xpub = xpub.clone();
+ xpub.xkey.network = <span class="self">self</span>.network;
+
+ DescriptorPublicKey::XPub(xpub)
+ }
+ other => other.clone(),
+ };
+
+ <span class="prelude-val">Ok</span>(pk)
+ }
+ <span class="macro">miniscript::translate_hash_clone!</span>(
+ DescriptorPublicKey,
+ DescriptorPublicKey,
+ DescriptorError
+ );
+ }
+
+ <span class="kw">let </span>(desc, keymap, networks) = <span class="self">self</span>;
+
+ <span class="kw">if </span>!networks.contains(<span class="kw-2">&</span>network) {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(DescriptorError::Key(KeyError::InvalidNetwork));
+ }
+
+ <span class="comment">// fixup the network for keys that need it in the descriptor
+ </span><span class="kw">use </span>miniscript::TranslateErr;
+ <span class="kw">let </span>translated = <span class="kw">match </span>desc.translate_pk(<span class="kw-2">&mut </span>Translator { network }) {
+ <span class="prelude-val">Ok</span>(descriptor) => descriptor,
+ <span class="prelude-val">Err</span>(TranslateErr::TranslatorErr(e)) => <span class="kw">return </span><span class="prelude-val">Err</span>(e),
+ <span class="prelude-val">Err</span>(TranslateErr::OuterError(e)) => <span class="kw">return </span><span class="prelude-val">Err</span>(e.into()),
+ };
+ <span class="comment">// ...and in the key map
+ </span><span class="kw">let </span>fixed_keymap = keymap
+ .into_iter()
+ .map(|(<span class="kw-2">mut </span>k, <span class="kw-2">mut </span>v)| {
+ <span class="kw">match </span>(<span class="kw-2">&mut </span>k, <span class="kw-2">&mut </span>v) {
+ (DescriptorPublicKey::XPub(xpub), DescriptorSecretKey::XPrv(xprv)) => {
+ xpub.xkey.network = network;
+ xprv.xkey.network = network;
+ }
+ (<span class="kw">_</span>, DescriptorSecretKey::Single(key)) => {
+ key.key.network = network;
+ }
+ <span class="kw">_ </span>=> {}
+ }
+
+ (k, v)
+ })
+ .collect();
+
+ <span class="prelude-val">Ok</span>((translated, fixed_keymap))
+ }
+}
+
+<span class="doccomment">/// Wrapper for `IntoWalletDescriptor` that performs additional checks on the keys contained in the
+/// descriptor
+</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>into_wallet_descriptor_checked<T: IntoWalletDescriptor>(
+ inner: T,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ network: Network,
+) -> <span class="prelude-ty">Result</span><(ExtendedDescriptor, KeyMap), DescriptorError> {
+ <span class="kw">let </span>(descriptor, keymap) = inner.into_wallet_descriptor(secp, network)<span class="question-mark">?</span>;
+
+ <span class="comment">// Ensure the keys don't contain any hardened derivation steps or hardened wildcards
+ </span><span class="kw">let </span>descriptor_contains_hardened_steps = descriptor.for_any_key(|k| {
+ <span class="kw">if let </span>DescriptorPublicKey::XPub(DescriptorXKey {
+ derivation_path,
+ wildcard,
+ ..
+ }) = k
+ {
+ <span class="kw">return </span><span class="kw-2">*</span>wildcard == Wildcard::Hardened
+ || derivation_path.into_iter().any(ChildNumber::is_hardened);
+ }
+
+ <span class="bool-val">false
+ </span>});
+ <span class="kw">if </span>descriptor_contains_hardened_steps {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(DescriptorError::HardenedDerivationXpub);
+ }
+
+ <span class="kw">if </span>descriptor.is_multipath() {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(DescriptorError::MultiPath);
+ }
+
+ <span class="comment">// Run miniscript's sanity check, which will look for duplicated keys and other potential
+ // issues
+ </span>descriptor.sanity_check()<span class="question-mark">?</span>;
+
+ <span class="prelude-val">Ok</span>((descriptor, keymap))
+}
+
+<span class="attr">#[doc(hidden)]
+</span><span class="doccomment">/// Used internally mainly by the `descriptor!()` and `fragment!()` macros
+</span><span class="kw">pub trait </span>CheckMiniscript<Ctx: miniscript::ScriptContext> {
+ <span class="kw">fn </span>check_miniscript(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Result</span><(), miniscript::Error>;
+}
+
+<span class="kw">impl</span><Ctx: miniscript::ScriptContext, Pk: miniscript::MiniscriptKey> CheckMiniscript<Ctx>
+ <span class="kw">for </span>miniscript::Miniscript<Pk, Ctx>
+{
+ <span class="kw">fn </span>check_miniscript(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Result</span><(), miniscript::Error> {
+ Ctx::check_global_validity(<span class="self">self</span>)<span class="question-mark">?</span>;
+
+ <span class="prelude-val">Ok</span>(())
+ }
+}
+
+<span class="doccomment">/// Trait implemented on [`Descriptor`]s to add a method to extract the spending [`policy`]
+</span><span class="kw">pub trait </span>ExtractPolicy {
+ <span class="doccomment">/// Extract the spending [`policy`]
+ </span><span class="kw">fn </span>extract_policy(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ signers: <span class="kw-2">&</span>SignersContainer,
+ psbt: BuildSatisfaction,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> <span class="prelude-ty">Result</span><<span class="prelude-ty">Option</span><Policy>, DescriptorError>;
+}
+
+<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">trait </span>XKeyUtils {
+ <span class="kw">fn </span>root_fingerprint(<span class="kw-2">&</span><span class="self">self</span>, secp: <span class="kw-2">&</span>SecpCtx) -> Fingerprint;
+}
+
+<span class="kw">impl</span><T> XKeyUtils <span class="kw">for </span>DescriptorMultiXKey<T>
+<span class="kw">where
+ </span>T: InnerXKey,
+{
+ <span class="kw">fn </span>root_fingerprint(<span class="kw-2">&</span><span class="self">self</span>, secp: <span class="kw-2">&</span>SecpCtx) -> Fingerprint {
+ <span class="kw">match </span><span class="self">self</span>.origin {
+ <span class="prelude-val">Some</span>((fingerprint, <span class="kw">_</span>)) => fingerprint,
+ <span class="prelude-val">None </span>=> <span class="self">self</span>.xkey.xkey_fingerprint(secp),
+ }
+ }
+}
+
+<span class="kw">impl</span><T> XKeyUtils <span class="kw">for </span>DescriptorXKey<T>
+<span class="kw">where
+ </span>T: InnerXKey,
+{
+ <span class="kw">fn </span>root_fingerprint(<span class="kw-2">&</span><span class="self">self</span>, secp: <span class="kw-2">&</span>SecpCtx) -> Fingerprint {
+ <span class="kw">match </span><span class="self">self</span>.origin {
+ <span class="prelude-val">Some</span>((fingerprint, <span class="kw">_</span>)) => fingerprint,
+ <span class="prelude-val">None </span>=> <span class="self">self</span>.xkey.xkey_fingerprint(secp),
+ }
+ }
+}
+
+<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">trait </span>DescriptorMeta {
+ <span class="kw">fn </span>is_witness(<span class="kw-2">&</span><span class="self">self</span>) -> bool;
+ <span class="kw">fn </span>is_taproot(<span class="kw-2">&</span><span class="self">self</span>) -> bool;
+ <span class="kw">fn </span>get_extended_keys(<span class="kw-2">&</span><span class="self">self</span>) -> Vec<DescriptorXKey<Xpub>>;
+ <span class="kw">fn </span>derive_from_hd_keypaths(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ hd_keypaths: <span class="kw-2">&</span>HdKeyPaths,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> <span class="prelude-ty">Option</span><DerivedDescriptor>;
+ <span class="kw">fn </span>derive_from_tap_key_origins(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ tap_key_origins: <span class="kw-2">&</span>TapKeyOrigins,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> <span class="prelude-ty">Option</span><DerivedDescriptor>;
+ <span class="kw">fn </span>derive_from_psbt_key_origins(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ key_origins: BTreeMap<Fingerprint, (<span class="kw-2">&</span>DerivationPath, SinglePubKey)>,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> <span class="prelude-ty">Option</span><DerivedDescriptor>;
+ <span class="kw">fn </span>derive_from_psbt_input(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ psbt_input: <span class="kw-2">&</span>psbt::Input,
+ utxo: <span class="prelude-ty">Option</span><TxOut>,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> <span class="prelude-ty">Option</span><DerivedDescriptor>;
+}
+
+<span class="kw">impl </span>DescriptorMeta <span class="kw">for </span>ExtendedDescriptor {
+ <span class="kw">fn </span>is_witness(<span class="kw-2">&</span><span class="self">self</span>) -> bool {
+ <span class="macro">matches!</span>(
+ <span class="self">self</span>.desc_type(),
+ DescriptorType::Wpkh
+ | DescriptorType::ShWpkh
+ | DescriptorType::Wsh
+ | DescriptorType::ShWsh
+ | DescriptorType::ShWshSortedMulti
+ | DescriptorType::WshSortedMulti
+ )
+ }
+
+ <span class="kw">fn </span>is_taproot(<span class="kw-2">&</span><span class="self">self</span>) -> bool {
+ <span class="self">self</span>.desc_type() == DescriptorType::Tr
+ }
+
+ <span class="kw">fn </span>get_extended_keys(<span class="kw-2">&</span><span class="self">self</span>) -> Vec<DescriptorXKey<Xpub>> {
+ <span class="kw">let </span><span class="kw-2">mut </span>answer = Vec::new();
+
+ <span class="self">self</span>.for_each_key(|pk| {
+ <span class="kw">if let </span>DescriptorPublicKey::XPub(xpub) = pk {
+ answer.push(xpub.clone());
+ }
+
+ <span class="bool-val">true
+ </span>});
+
+ answer
+ }
+
+ <span class="kw">fn </span>derive_from_psbt_key_origins(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ key_origins: BTreeMap<Fingerprint, (<span class="kw-2">&</span>DerivationPath, SinglePubKey)>,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> <span class="prelude-ty">Option</span><DerivedDescriptor> {
+ <span class="comment">// Ensure that deriving `xpub` with `path` yields `expected`
+ </span><span class="kw">let </span>verify_key =
+ |xpub: <span class="kw-2">&</span>DescriptorXKey<Xpub>, path: <span class="kw-2">&</span>DerivationPath, expected: <span class="kw-2">&</span>SinglePubKey| {
+ <span class="kw">let </span>derived = xpub
+ .xkey
+ .derive_pub(secp, path)
+ .expect(<span class="string">"The path should never contain hardened derivation steps"</span>)
+ .public_key;
+
+ <span class="kw">match </span>expected {
+ SinglePubKey::FullKey(pk) <span class="kw">if </span><span class="kw-2">&</span>PublicKey::new(derived) == pk => <span class="bool-val">true</span>,
+ SinglePubKey::XOnly(pk) <span class="kw">if </span><span class="kw-2">&</span>XOnlyPublicKey::from(derived) == pk => <span class="bool-val">true</span>,
+ <span class="kw">_ </span>=> <span class="bool-val">false</span>,
+ }
+ };
+
+ <span class="kw">let </span><span class="kw-2">mut </span>path_found = <span class="prelude-val">None</span>;
+
+ <span class="comment">// using `for_any_key` should make this stop as soon as we return `true`
+ </span><span class="self">self</span>.for_any_key(|key| {
+ <span class="kw">if let </span>DescriptorPublicKey::XPub(xpub) = key {
+ <span class="comment">// Check if the key matches one entry in our `key_origins`. If it does, `matches()` will
+ // return the "prefix" that matched, so we remove that prefix from the full path
+ // found in `key_origins` and save it in `derive_path`. We expect this to be a derivation
+ // path of length 1 if the key is `wildcard` and an empty path otherwise.
+ </span><span class="kw">let </span>root_fingerprint = xpub.root_fingerprint(secp);
+ <span class="kw">let </span>derive_path = key_origins
+ .get_key_value(<span class="kw-2">&</span>root_fingerprint)
+ .and_then(|(fingerprint, (path, expected))| {
+ xpub.matches(<span class="kw-2">&</span>(<span class="kw-2">*</span>fingerprint, (<span class="kw-2">*</span>path).clone()), secp)
+ .zip(<span class="prelude-val">Some</span>((path, expected)))
+ })
+ .and_then(|(prefix, (full_path, expected))| {
+ <span class="kw">let </span>derive_path = full_path
+ .into_iter()
+ .skip(prefix.into_iter().count())
+ .cloned()
+ .collect::<DerivationPath>();
+
+ <span class="comment">// `derive_path` only contains the replacement index for the wildcard, if present, or
+ // an empty path for fixed descriptors. To verify the key we also need the normal steps
+ // that come before the wildcard, so we take them directly from `xpub` and then append
+ // the final index
+ </span><span class="kw">if </span>verify_key(
+ xpub,
+ <span class="kw-2">&</span>xpub.derivation_path.extend(derive_path.clone()),
+ expected,
+ ) {
+ <span class="prelude-val">Some</span>(derive_path)
+ } <span class="kw">else </span>{
+ <span class="prelude-val">None
+ </span>}
+ });
+
+ <span class="kw">match </span>derive_path {
+ <span class="prelude-val">Some</span>(path) <span class="kw">if </span>xpub.wildcard != Wildcard::None && path.len() == <span class="number">1 </span>=> {
+ <span class="comment">// Ignore hardened wildcards
+ </span><span class="kw">if let </span>ChildNumber::Normal { index } = path[<span class="number">0</span>] {
+ path_found = <span class="prelude-val">Some</span>(index);
+ <span class="kw">return </span><span class="bool-val">true</span>;
+ }
+ }
+ <span class="prelude-val">Some</span>(path) <span class="kw">if </span>xpub.wildcard == Wildcard::None && path.is_empty() => {
+ path_found = <span class="prelude-val">Some</span>(<span class="number">0</span>);
+ <span class="kw">return </span><span class="bool-val">true</span>;
+ }
+ <span class="kw">_ </span>=> {}
+ }
+ }
+
+ <span class="bool-val">false
+ </span>});
+
+ path_found.map(|path| {
+ <span class="self">self</span>.at_derivation_index(path)
+ .expect(<span class="string">"We ignore hardened wildcards"</span>)
+ })
+ }
+
+ <span class="kw">fn </span>derive_from_hd_keypaths(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ hd_keypaths: <span class="kw-2">&</span>HdKeyPaths,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> <span class="prelude-ty">Option</span><DerivedDescriptor> {
+ <span class="comment">// "Convert" an hd_keypaths map to the format required by `derive_from_psbt_key_origins`
+ </span><span class="kw">let </span>key_origins = hd_keypaths
+ .iter()
+ .map(|(pk, (fingerprint, path))| {
+ (
+ <span class="kw-2">*</span>fingerprint,
+ (path, SinglePubKey::FullKey(PublicKey::new(<span class="kw-2">*</span>pk))),
+ )
+ })
+ .collect();
+ <span class="self">self</span>.derive_from_psbt_key_origins(key_origins, secp)
+ }
+
+ <span class="kw">fn </span>derive_from_tap_key_origins(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ tap_key_origins: <span class="kw-2">&</span>TapKeyOrigins,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> <span class="prelude-ty">Option</span><DerivedDescriptor> {
+ <span class="comment">// "Convert" a tap_key_origins map to the format required by `derive_from_psbt_key_origins`
+ </span><span class="kw">let </span>key_origins = tap_key_origins
+ .iter()
+ .map(|(pk, (<span class="kw">_</span>, (fingerprint, path)))| (<span class="kw-2">*</span>fingerprint, (path, SinglePubKey::XOnly(<span class="kw-2">*</span>pk))))
+ .collect();
+ <span class="self">self</span>.derive_from_psbt_key_origins(key_origins, secp)
+ }
+
+ <span class="kw">fn </span>derive_from_psbt_input(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ psbt_input: <span class="kw-2">&</span>psbt::Input,
+ utxo: <span class="prelude-ty">Option</span><TxOut>,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> <span class="prelude-ty">Option</span><DerivedDescriptor> {
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(derived) = <span class="self">self</span>.derive_from_hd_keypaths(<span class="kw-2">&</span>psbt_input.bip32_derivation, secp) {
+ <span class="kw">return </span><span class="prelude-val">Some</span>(derived);
+ }
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(derived) = <span class="self">self</span>.derive_from_tap_key_origins(<span class="kw-2">&</span>psbt_input.tap_key_origins, secp) {
+ <span class="kw">return </span><span class="prelude-val">Some</span>(derived);
+ }
+ <span class="kw">if </span><span class="self">self</span>.has_wildcard() {
+ <span class="comment">// We can't try to bruteforce the derivation index, exit here
+ </span><span class="kw">return </span><span class="prelude-val">None</span>;
+ }
+
+ <span class="kw">let </span>descriptor = <span class="self">self</span>.at_derivation_index(<span class="number">0</span>).expect(<span class="string">"0 is not hardened"</span>);
+ <span class="kw">match </span>descriptor.desc_type() {
+ <span class="comment">// TODO: add pk() here
+ </span>DescriptorType::Pkh
+ | DescriptorType::Wpkh
+ | DescriptorType::ShWpkh
+ | DescriptorType::Tr
+ <span class="kw">if </span>utxo.is_some()
+ && descriptor.script_pubkey() == utxo.as_ref().unwrap().script_pubkey =>
+ {
+ <span class="prelude-val">Some</span>(descriptor)
+ }
+ DescriptorType::Bare | DescriptorType::Sh | DescriptorType::ShSortedMulti
+ <span class="kw">if </span>psbt_input.redeem_script.is_some()
+ && <span class="kw-2">&</span>descriptor.explicit_script().unwrap()
+ == psbt_input.redeem_script.as_ref().unwrap() =>
+ {
+ <span class="prelude-val">Some</span>(descriptor)
+ }
+ DescriptorType::Wsh
+ | DescriptorType::ShWsh
+ | DescriptorType::ShWshSortedMulti
+ | DescriptorType::WshSortedMulti
+ <span class="kw">if </span>psbt_input.witness_script.is_some()
+ && <span class="kw-2">&</span>descriptor.explicit_script().unwrap()
+ == psbt_input.witness_script.as_ref().unwrap() =>
+ {
+ <span class="prelude-val">Some</span>(descriptor)
+ }
+ <span class="kw">_ </span>=> <span class="prelude-val">None</span>,
+ }
+ }
+}
+
+<span class="attr">#[cfg(test)]
+</span><span class="kw">mod </span>test {
+ <span class="kw">use </span>alloc::string::ToString;
+ <span class="kw">use </span>core::str::FromStr;
+
+ <span class="kw">use </span>assert_matches::assert_matches;
+ <span class="kw">use </span>bitcoin::hex::FromHex;
+ <span class="kw">use </span>bitcoin::secp256k1::Secp256k1;
+ <span class="kw">use </span>bitcoin::ScriptBuf;
+ <span class="kw">use </span>bitcoin::{bip32, Psbt};
+
+ <span class="kw">use super</span>::<span class="kw-2">*</span>;
+ <span class="kw">use </span><span class="kw">crate</span>::psbt::PsbtUtils;
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_derive_from_psbt_input_wpkh_wif() {
+ <span class="kw">let </span>descriptor = Descriptor::<DescriptorPublicKey>::from_str(
+ <span class="string">"wpkh(02b4632d08485ff1df2db55b9dafd23347d1c47a457072a1e87be26896549a8737)"</span>,
+ )
+ .unwrap();
+ <span class="kw">let </span>psbt = Psbt::deserialize(
+ <span class="kw-2">&</span>Vec::<u8>::from_hex(
+ <span class="string">"70736274ff010052010000000162307be8e431fbaff807cdf9cdc3fde44d7402\
+ 11bc8342c31ffd6ec11fe35bcc0100000000ffffffff01328601000000000016\
+ 001493ce48570b55c42c2af816aeaba06cfee1224fae000000000001011fa086\
+ 01000000000016001493ce48570b55c42c2af816aeaba06cfee1224fae010304\
+ 010000000000"</span>,
+ )
+ .unwrap(),
+ )
+ .unwrap();
+
+ <span class="macro">assert!</span>(descriptor
+ .derive_from_psbt_input(<span class="kw-2">&</span>psbt.inputs[<span class="number">0</span>], psbt.get_utxo_for(<span class="number">0</span>), <span class="kw-2">&</span>Secp256k1::new())
+ .is_some());
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_derive_from_psbt_input_pkh_tpub() {
+ <span class="kw">let </span>descriptor = Descriptor::<DescriptorPublicKey>::from_str(
+ <span class="string">"pkh([0f056943/44h/0h/0h]tpubDDpWvmUrPZrhSPmUzCMBHffvC3HyMAPnWDSAQNBTnj1iZeJa7BZQEttFiP4DS4GCcXQHezdXhn86Hj6LHX5EDstXPWrMaSneRWM8yUf6NFd/10/*)"</span>,
+ )
+ .unwrap();
+ <span class="kw">let </span>psbt = Psbt::deserialize(
+ <span class="kw-2">&</span>Vec::<u8>::from_hex(
+ <span class="string">"70736274ff010053010000000145843b86be54a3cd8c9e38444e1162676c00df\
+ e7964122a70df491ea12fd67090100000000ffffffff01c19598000000000017\
+ a91432bb94283282f72b2e034709e348c44d5a4db0ef8700000000000100f902\
+ 0000000001010167e99c0eb67640f3a1b6805f2d8be8238c947f8aaf49eb0a9c\
+ bee6a42c984200000000171600142b29a22019cca05b9c2b2d283a4c4489e1cf\
+ 9f8ffeffffff02a01dced06100000017a914e2abf033cadbd74f0f4c74946201\
+ decd20d5c43c8780969800000000001976a9148b0fce5fb1264e599a65387313\
+ 3c95478b902eb288ac02473044022015d9211576163fa5b001e84dfa3d44efd9\
+ 86b8f3a0d3d2174369288b2b750906022048dacc0e5d73ae42512fd2b97e2071\
+ a8d0bce443b390b1fe0b8128fe70ec919e01210232dad1c5a67dcb0116d407e2\
+ 52584228ab7ec00e8b9779d0c3ffe8114fc1a7d2c80600000103040100000022\
+ 0603433b83583f8c4879b329dd08bbc7da935e4cc02f637ff746e05f0466ffb2\
+ a6a2180f0569432c00008000000080000000800a000000000000000000"</span>,
+ )
+ .unwrap(),
+ )
+ .unwrap();
+
+ <span class="macro">assert!</span>(descriptor
+ .derive_from_psbt_input(<span class="kw-2">&</span>psbt.inputs[<span class="number">0</span>], psbt.get_utxo_for(<span class="number">0</span>), <span class="kw-2">&</span>Secp256k1::new())
+ .is_some());
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_derive_from_psbt_input_wsh() {
+ <span class="kw">let </span>descriptor = Descriptor::<DescriptorPublicKey>::from_str(
+ <span class="string">"wsh(and_v(v:pk(03b6633fef2397a0a9de9d7b6f23aef8368a6e362b0581f0f0af70d5ecfd254b14),older(6)))"</span>,
+ )
+ .unwrap();
+ <span class="kw">let </span>psbt = Psbt::deserialize(
+ <span class="kw-2">&</span>Vec::<u8>::from_hex(
+ <span class="string">"70736274ff01005302000000011c8116eea34408ab6529223c9a176606742207\
+ 67a1ff1d46a6e3c4a88243ea6e01000000000600000001109698000000000017\
+ a914ad105f61102e0d01d7af40d06d6a5c3ae2f7fde387000000000001012b80\
+ 969800000000002200203ca72f106a72234754890ca7640c43f65d2174e44d33\
+ 336030f9059345091044010304010000000105252103b6633fef2397a0a9de9d\
+ 7b6f23aef8368a6e362b0581f0f0af70d5ecfd254b14ad56b20000"</span>,
+ )
+ .unwrap(),
+ )
+ .unwrap();
+
+ <span class="macro">assert!</span>(descriptor
+ .derive_from_psbt_input(<span class="kw-2">&</span>psbt.inputs[<span class="number">0</span>], psbt.get_utxo_for(<span class="number">0</span>), <span class="kw-2">&</span>Secp256k1::new())
+ .is_some());
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_derive_from_psbt_input_sh() {
+ <span class="kw">let </span>descriptor = Descriptor::<DescriptorPublicKey>::from_str(
+ <span class="string">"sh(and_v(v:pk(021403881a5587297818fcaf17d239cefca22fce84a45b3b1d23e836c4af671dbb),after(630000)))"</span>,
+ )
+ .unwrap();
+ <span class="kw">let </span>psbt = Psbt::deserialize(
+ <span class="kw-2">&</span>Vec::<u8>::from_hex(
+ <span class="string">"70736274ff0100530100000001bc8c13df445dfadcc42afa6dc841f85d22b01d\
+ a6270ebf981740f4b7b1d800390000000000feffffff01ba9598000000000017\
+ a91457b148ba4d3e5fa8608a8657875124e3d1c9390887f09c0900000100e002\
+ 0000000001016ba1bbe05cc93574a0d611ec7d93ad0ab6685b28d0cd80e8a82d\
+ debb326643c90100000000feffffff02809698000000000017a914d9a6e8c455\
+ 8e16c8253afe53ce37ad61cf4c38c487403504cf6100000017a9144044fb6e0b\
+ 757dfc1b34886b6a95aef4d3db137e870247304402202a9b72d939bcde8ba2a1\
+ e0980597e47af4f5c152a78499143c3d0a78ac2286a602207a45b1df9e93b8c9\
+ 6f09f5c025fe3e413ca4b905fe65ee55d32a3276439a9b8f012102dc1fcc2636\
+ 4da1aa718f03d8d9bd6f2ff410ed2cf1245a168aa3bcc995ac18e0a806000001\
+ 03040100000001042821021403881a5587297818fcaf17d239cefca22fce84a4\
+ 5b3b1d23e836c4af671dbbad03f09c09b10000"</span>,
+ )
+ .unwrap(),
+ )
+ .unwrap();
+
+ <span class="macro">assert!</span>(descriptor
+ .derive_from_psbt_input(<span class="kw-2">&</span>psbt.inputs[<span class="number">0</span>], psbt.get_utxo_for(<span class="number">0</span>), <span class="kw-2">&</span>Secp256k1::new())
+ .is_some());
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_to_wallet_descriptor_fixup_networks() {
+ <span class="kw">use </span><span class="kw">crate</span>::keys::{any_network, IntoDescriptorKey};
+
+ <span class="kw">let </span>secp = Secp256k1::new();
+
+ <span class="kw">let </span>xprv = bip32::Xpriv::from_str(<span class="string">"xprv9s21ZrQH143K3c3gF1DUWpWNr2SG2XrG8oYPpqYh7hoWsJy9NjabErnzriJPpnGHyKz5NgdXmq1KVbqS1r4NXdCoKitWg5e86zqXHa8kxyB"</span>).unwrap();
+ <span class="kw">let </span>path = bip32::DerivationPath::from_str(<span class="string">"m/0"</span>).unwrap();
+
+ <span class="comment">// here `to_descriptor_key` will set the valid networks for the key to only mainnet, since
+ // we are using an "xpub"
+ </span><span class="kw">let </span>key = (xprv, path.clone()).into_descriptor_key().unwrap();
+ <span class="comment">// override it with any. this happens in some key conversions, like bip39
+ </span><span class="kw">let </span>key = key.override_valid_networks(any_network());
+
+ <span class="comment">// make a descriptor out of it
+ </span><span class="kw">let </span>desc = <span class="macro">crate::descriptor!</span>(wpkh(key)).unwrap();
+ <span class="comment">// this should convert the key that supports "any_network" to the right network (testnet)
+ </span><span class="kw">let </span>(wallet_desc, keymap) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+
+ <span class="kw">let </span><span class="kw-2">mut </span>xprv_testnet = xprv;
+ xprv_testnet.network = Network::Testnet;
+
+ <span class="kw">let </span>xpub_testnet = bip32::Xpub::from_priv(<span class="kw-2">&</span>secp, <span class="kw-2">&</span>xprv_testnet);
+ <span class="kw">let </span>desc_pubkey = DescriptorPublicKey::XPub(DescriptorXKey {
+ xkey: xpub_testnet,
+ origin: <span class="prelude-val">None</span>,
+ derivation_path: path,
+ wildcard: Wildcard::Unhardened,
+ });
+
+ <span class="macro">assert_eq!</span>(wallet_desc.to_string(), <span class="string">"wpkh(tpubD6NzVbkrYhZ4XtJzoDja5snUjBNQRP5B3f4Hyn1T1x6PVPxzzVjvw6nJx2D8RBCxog9GEVjZoyStfepTz7TtKoBVdkCtnc7VCJh9dD4RAU9/0/*)#a3svx0ha"</span>);
+ <span class="macro">assert_eq!</span>(
+ keymap
+ .get(<span class="kw-2">&</span>desc_pubkey)
+ .map(|key| key.to_public(<span class="kw-2">&</span>secp).unwrap()),
+ <span class="prelude-val">Some</span>(desc_pubkey)
+ );
+ }
+
+ <span class="comment">// test IntoWalletDescriptor trait from &str with and without checksum appended
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_descriptor_from_str_with_checksum() {
+ <span class="kw">let </span>secp = Secp256k1::new();
+
+ <span class="kw">let </span>desc = <span class="string">"wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)#tqz0nc62"
+ </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet);
+ <span class="macro">assert!</span>(desc.is_ok());
+
+ <span class="kw">let </span>desc = <span class="string">"wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)"
+ </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet);
+ <span class="macro">assert!</span>(desc.is_ok());
+
+ <span class="kw">let </span>desc = <span class="string">"wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/1/2/*)#67ju93jw"
+ </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet);
+ <span class="macro">assert!</span>(desc.is_ok());
+
+ <span class="kw">let </span>desc = <span class="string">"wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/1/2/*)"
+ </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet);
+ <span class="macro">assert!</span>(desc.is_ok());
+
+ <span class="kw">let </span>desc = <span class="string">"wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)#67ju93jw"
+ </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet);
+ <span class="macro">assert_matches!</span>(desc, <span class="prelude-val">Err</span>(DescriptorError::InvalidDescriptorChecksum));
+
+ <span class="kw">let </span>desc = <span class="string">"wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)#67ju93jw"
+ </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet);
+ <span class="macro">assert_matches!</span>(desc, <span class="prelude-val">Err</span>(DescriptorError::InvalidDescriptorChecksum));
+ }
+
+ <span class="comment">// test IntoWalletDescriptor trait from &str with keys from right and wrong network
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_descriptor_from_str_with_keys_network() {
+ <span class="kw">let </span>secp = Secp256k1::new();
+
+ <span class="kw">let </span>desc = <span class="string">"wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)"
+ </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet);
+ <span class="macro">assert!</span>(desc.is_ok());
+
+ <span class="kw">let </span>desc = <span class="string">"wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)"
+ </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Regtest);
+ <span class="macro">assert!</span>(desc.is_ok());
+
+ <span class="kw">let </span>desc = <span class="string">"wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/1/2/*)"
+ </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet);
+ <span class="macro">assert!</span>(desc.is_ok());
+
+ <span class="kw">let </span>desc = <span class="string">"wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/1/2/*)"
+ </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Regtest);
+ <span class="macro">assert!</span>(desc.is_ok());
+
+ <span class="kw">let </span>desc = <span class="string">"sh(wpkh(02864bb4ad00cefa806098a69e192bbda937494e69eb452b87bb3f20f6283baedb))"
+ </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet);
+ <span class="macro">assert!</span>(desc.is_ok());
+
+ <span class="kw">let </span>desc = <span class="string">"sh(wpkh(02864bb4ad00cefa806098a69e192bbda937494e69eb452b87bb3f20f6283baedb))"
+ </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Bitcoin);
+ <span class="macro">assert!</span>(desc.is_ok());
+
+ <span class="kw">let </span>desc = <span class="string">"wpkh(tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N/1/2/*)"
+ </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Bitcoin);
+ <span class="macro">assert_matches!</span>(desc, <span class="prelude-val">Err</span>(DescriptorError::Key(KeyError::InvalidNetwork)));
+
+ <span class="kw">let </span>desc = <span class="string">"wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/1/2/*)"
+ </span>.into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Bitcoin);
+ <span class="macro">assert_matches!</span>(desc, <span class="prelude-val">Err</span>(DescriptorError::Key(KeyError::InvalidNetwork)));
+ }
+
+ <span class="comment">// test IntoWalletDescriptor trait from the output of the descriptor!() macro
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_descriptor_from_str_from_output_of_macro() {
+ <span class="kw">let </span>secp = Secp256k1::new();
+
+ <span class="kw">let </span>tpub = bip32::Xpub::from_str(<span class="string">"tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK"</span>).unwrap();
+ <span class="kw">let </span>path = bip32::DerivationPath::from_str(<span class="string">"m/1/2"</span>).unwrap();
+ <span class="kw">let </span>key = (tpub, path).into_descriptor_key().unwrap();
+
+ <span class="comment">// make a descriptor out of it
+ </span><span class="kw">let </span>desc = <span class="macro">crate::descriptor!</span>(wpkh(key)).unwrap();
+
+ <span class="kw">let </span>(wallet_desc, <span class="kw">_</span>) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+ <span class="kw">let </span>wallet_desc_str = wallet_desc.to_string();
+ <span class="macro">assert_eq!</span>(wallet_desc_str, <span class="string">"wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/1/2/*)#67ju93jw"</span>);
+
+ <span class="kw">let </span>(wallet_desc2, <span class="kw">_</span>) = wallet_desc_str
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+ <span class="macro">assert_eq!</span>(wallet_desc, wallet_desc2)
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_into_wallet_descriptor_checked() {
+ <span class="kw">let </span>secp = Secp256k1::new();
+
+ <span class="kw">let </span>descriptor = <span class="string">"wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/0'/1/2/*)"</span>;
+ <span class="kw">let </span>result = into_wallet_descriptor_checked(descriptor, <span class="kw-2">&</span>secp, Network::Testnet);
+
+ <span class="macro">assert_matches!</span>(result, <span class="prelude-val">Err</span>(DescriptorError::HardenedDerivationXpub));
+
+ <span class="kw">let </span>descriptor = <span class="string">"wpkh(tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/<0;1>/*)"</span>;
+ <span class="kw">let </span>result = into_wallet_descriptor_checked(descriptor, <span class="kw-2">&</span>secp, Network::Testnet);
+
+ <span class="macro">assert_matches!</span>(result, <span class="prelude-val">Err</span>(DescriptorError::MultiPath));
+
+ <span class="comment">// repeated pubkeys
+ </span><span class="kw">let </span>descriptor = <span class="string">"wsh(multi(2,tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/0/*,tpubD6NzVbkrYhZ4XHndKkuB8FifXm8r5FQHwrN6oZuWCz13qb93rtgKvD4PQsqC4HP4yhV3tA2fqr2RbY5mNXfM7RxXUoeABoDtsFUq2zJq6YK/0/*))"</span>;
+ <span class="kw">let </span>result = into_wallet_descriptor_checked(descriptor, <span class="kw-2">&</span>secp, Network::Testnet);
+
+ <span class="macro">assert!</span>(result.is_err());
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_sh_wsh_sortedmulti_redeemscript() {
+ <span class="kw">use </span>miniscript::psbt::PsbtInputExt;
+
+ <span class="kw">let </span>secp = Secp256k1::new();
+
+ <span class="kw">let </span>descriptor = <span class="string">"sh(wsh(sortedmulti(3,tpubDEsqS36T4DVsKJd9UH8pAKzrkGBYPLEt9jZMwpKtzh1G6mgYehfHt9WCgk7MJG5QGSFWf176KaBNoXbcuFcuadAFKxDpUdMDKGBha7bY3QM/0/*,tpubDF3cpwfs7fMvXXuoQbohXtLjNM6ehwYT287LWtmLsd4r77YLg6MZg4vTETx5MSJ2zkfigbYWu31VA2Z2Vc1cZugCYXgS7FQu6pE8V6TriEH/0/*,tpubDE1SKfcW76Tb2AASv5bQWMuScYNAdoqLHoexw13sNDXwmUhQDBbCD3QAedKGLhxMrWQdMDKENzYtnXPDRvexQPNuDrLj52wAjHhNEm8sJ4p/0/*,tpubDFLc6oXwJmhm3FGGzXkfJNTh2KitoY3WhmmQvuAjMhD8YbyWn5mAqckbxXfm2etM3p5J6JoTpSrMqRSTfMLtNW46poDaEZJ1kjd3csRSjwH/0/*,tpubDEWD9NBeWP59xXmdqSNt4VYdtTGwbpyP8WS962BuqpQeMZmX9Pur14dhXdZT5a7wR1pK6dPtZ9fP5WR493hPzemnBvkfLLYxnUjAKj1JCQV/0/*,tpubDEHyZkkwd7gZWCTgQuYQ9C4myF2hMEmyHsBCCmLssGqoqUxeT3gzohF5uEVURkf9TtmeepJgkSUmteac38FwZqirjApzNX59XSHLcwaTZCH/0/*,tpubDEqLouCekwnMUWN486kxGzD44qVgeyuqHyxUypNEiQt5RnUZNJe386TKPK99fqRV1vRkZjYAjtXGTECz98MCsdLcnkM67U6KdYRzVubeCgZ/0/*)))"</span>;
+ <span class="kw">let </span>(descriptor, <span class="kw">_</span>) =
+ into_wallet_descriptor_checked(descriptor, <span class="kw-2">&</span>secp, Network::Testnet).unwrap();
+
+ <span class="kw">let </span>descriptor = descriptor.at_derivation_index(<span class="number">0</span>).unwrap();
+
+ <span class="kw">let </span>script = ScriptBuf::from_hex(<span class="string">"5321022f533b667e2ea3b36e21961c9fe9dca340fbe0af5210173a83ae0337ab20a57621026bb53a98e810bd0ee61a0ed1164ba6c024786d76554e793e202dc6ce9c78c4ea2102d5b8a7d66a41ffdb6f4c53d61994022e886b4f45001fb158b95c9164d45f8ca3210324b75eead2c1f9c60e8adeb5e7009fec7a29afcdb30d829d82d09562fe8bae8521032d34f8932200833487bd294aa219dcbe000b9f9b3d824799541430009f0fa55121037468f8ea99b6c64788398b5ad25480cad08f4b0d65be54ce3a55fd206b5ae4722103f72d3d96663b0ea99b0aeb0d7f273cab11a8de37885f1dddc8d9112adb87169357ae"</span>).unwrap();
+
+ <span class="kw">let </span><span class="kw-2">mut </span>psbt_input = psbt::Input::default();
+ psbt_input
+ .update_with_descriptor_unchecked(<span class="kw-2">&</span>descriptor)
+ .unwrap();
+
+ <span class="macro">assert_eq!</span>(psbt_input.redeem_script, <span class="prelude-val">Some</span>(script.to_p2wsh()));
+ <span class="macro">assert_eq!</span>(psbt_input.witness_script, <span class="prelude-val">Some</span>(script));
+ }
+}
+</code></pre></div>
+</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Source of the Rust file `crates/wallet/src/descriptor/policy.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>policy.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk_wallet/index.html">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
+<a href="#2" id="2">2</a>
+<a href="#3" id="3">3</a>
+<a href="#4" id="4">4</a>
+<a href="#5" id="5">5</a>
+<a href="#6" id="6">6</a>
+<a href="#7" id="7">7</a>
+<a href="#8" id="8">8</a>
+<a href="#9" id="9">9</a>
+<a href="#10" id="10">10</a>
+<a href="#11" id="11">11</a>
+<a href="#12" id="12">12</a>
+<a href="#13" id="13">13</a>
+<a href="#14" id="14">14</a>
+<a href="#15" id="15">15</a>
+<a href="#16" id="16">16</a>
+<a href="#17" id="17">17</a>
+<a href="#18" id="18">18</a>
+<a href="#19" id="19">19</a>
+<a href="#20" id="20">20</a>
+<a href="#21" id="21">21</a>
+<a href="#22" id="22">22</a>
+<a href="#23" id="23">23</a>
+<a href="#24" id="24">24</a>
+<a href="#25" id="25">25</a>
+<a href="#26" id="26">26</a>
+<a href="#27" id="27">27</a>
+<a href="#28" id="28">28</a>
+<a href="#29" id="29">29</a>
+<a href="#30" id="30">30</a>
+<a href="#31" id="31">31</a>
+<a href="#32" id="32">32</a>
+<a href="#33" id="33">33</a>
+<a href="#34" id="34">34</a>
+<a href="#35" id="35">35</a>
+<a href="#36" id="36">36</a>
+<a href="#37" id="37">37</a>
+<a href="#38" id="38">38</a>
+<a href="#39" id="39">39</a>
+<a href="#40" id="40">40</a>
+<a href="#41" id="41">41</a>
+<a href="#42" id="42">42</a>
+<a href="#43" id="43">43</a>
+<a href="#44" id="44">44</a>
+<a href="#45" id="45">45</a>
+<a href="#46" id="46">46</a>
+<a href="#47" id="47">47</a>
+<a href="#48" id="48">48</a>
+<a href="#49" id="49">49</a>
+<a href="#50" id="50">50</a>
+<a href="#51" id="51">51</a>
+<a href="#52" id="52">52</a>
+<a href="#53" id="53">53</a>
+<a href="#54" id="54">54</a>
+<a href="#55" id="55">55</a>
+<a href="#56" id="56">56</a>
+<a href="#57" id="57">57</a>
+<a href="#58" id="58">58</a>
+<a href="#59" id="59">59</a>
+<a href="#60" id="60">60</a>
+<a href="#61" id="61">61</a>
+<a href="#62" id="62">62</a>
+<a href="#63" id="63">63</a>
+<a href="#64" id="64">64</a>
+<a href="#65" id="65">65</a>
+<a href="#66" id="66">66</a>
+<a href="#67" id="67">67</a>
+<a href="#68" id="68">68</a>
+<a href="#69" id="69">69</a>
+<a href="#70" id="70">70</a>
+<a href="#71" id="71">71</a>
+<a href="#72" id="72">72</a>
+<a href="#73" id="73">73</a>
+<a href="#74" id="74">74</a>
+<a href="#75" id="75">75</a>
+<a href="#76" id="76">76</a>
+<a href="#77" id="77">77</a>
+<a href="#78" id="78">78</a>
+<a href="#79" id="79">79</a>
+<a href="#80" id="80">80</a>
+<a href="#81" id="81">81</a>
+<a href="#82" id="82">82</a>
+<a href="#83" id="83">83</a>
+<a href="#84" id="84">84</a>
+<a href="#85" id="85">85</a>
+<a href="#86" id="86">86</a>
+<a href="#87" id="87">87</a>
+<a href="#88" id="88">88</a>
+<a href="#89" id="89">89</a>
+<a href="#90" id="90">90</a>
+<a href="#91" id="91">91</a>
+<a href="#92" id="92">92</a>
+<a href="#93" id="93">93</a>
+<a href="#94" id="94">94</a>
+<a href="#95" id="95">95</a>
+<a href="#96" id="96">96</a>
+<a href="#97" id="97">97</a>
+<a href="#98" id="98">98</a>
+<a href="#99" id="99">99</a>
+<a href="#100" id="100">100</a>
+<a href="#101" id="101">101</a>
+<a href="#102" id="102">102</a>
+<a href="#103" id="103">103</a>
+<a href="#104" id="104">104</a>
+<a href="#105" id="105">105</a>
+<a href="#106" id="106">106</a>
+<a href="#107" id="107">107</a>
+<a href="#108" id="108">108</a>
+<a href="#109" id="109">109</a>
+<a href="#110" id="110">110</a>
+<a href="#111" id="111">111</a>
+<a href="#112" id="112">112</a>
+<a href="#113" id="113">113</a>
+<a href="#114" id="114">114</a>
+<a href="#115" id="115">115</a>
+<a href="#116" id="116">116</a>
+<a href="#117" id="117">117</a>
+<a href="#118" id="118">118</a>
+<a href="#119" id="119">119</a>
+<a href="#120" id="120">120</a>
+<a href="#121" id="121">121</a>
+<a href="#122" id="122">122</a>
+<a href="#123" id="123">123</a>
+<a href="#124" id="124">124</a>
+<a href="#125" id="125">125</a>
+<a href="#126" id="126">126</a>
+<a href="#127" id="127">127</a>
+<a href="#128" id="128">128</a>
+<a href="#129" id="129">129</a>
+<a href="#130" id="130">130</a>
+<a href="#131" id="131">131</a>
+<a href="#132" id="132">132</a>
+<a href="#133" id="133">133</a>
+<a href="#134" id="134">134</a>
+<a href="#135" id="135">135</a>
+<a href="#136" id="136">136</a>
+<a href="#137" id="137">137</a>
+<a href="#138" id="138">138</a>
+<a href="#139" id="139">139</a>
+<a href="#140" id="140">140</a>
+<a href="#141" id="141">141</a>
+<a href="#142" id="142">142</a>
+<a href="#143" id="143">143</a>
+<a href="#144" id="144">144</a>
+<a href="#145" id="145">145</a>
+<a href="#146" id="146">146</a>
+<a href="#147" id="147">147</a>
+<a href="#148" id="148">148</a>
+<a href="#149" id="149">149</a>
+<a href="#150" id="150">150</a>
+<a href="#151" id="151">151</a>
+<a href="#152" id="152">152</a>
+<a href="#153" id="153">153</a>
+<a href="#154" id="154">154</a>
+<a href="#155" id="155">155</a>
+<a href="#156" id="156">156</a>
+<a href="#157" id="157">157</a>
+<a href="#158" id="158">158</a>
+<a href="#159" id="159">159</a>
+<a href="#160" id="160">160</a>
+<a href="#161" id="161">161</a>
+<a href="#162" id="162">162</a>
+<a href="#163" id="163">163</a>
+<a href="#164" id="164">164</a>
+<a href="#165" id="165">165</a>
+<a href="#166" id="166">166</a>
+<a href="#167" id="167">167</a>
+<a href="#168" id="168">168</a>
+<a href="#169" id="169">169</a>
+<a href="#170" id="170">170</a>
+<a href="#171" id="171">171</a>
+<a href="#172" id="172">172</a>
+<a href="#173" id="173">173</a>
+<a href="#174" id="174">174</a>
+<a href="#175" id="175">175</a>
+<a href="#176" id="176">176</a>
+<a href="#177" id="177">177</a>
+<a href="#178" id="178">178</a>
+<a href="#179" id="179">179</a>
+<a href="#180" id="180">180</a>
+<a href="#181" id="181">181</a>
+<a href="#182" id="182">182</a>
+<a href="#183" id="183">183</a>
+<a href="#184" id="184">184</a>
+<a href="#185" id="185">185</a>
+<a href="#186" id="186">186</a>
+<a href="#187" id="187">187</a>
+<a href="#188" id="188">188</a>
+<a href="#189" id="189">189</a>
+<a href="#190" id="190">190</a>
+<a href="#191" id="191">191</a>
+<a href="#192" id="192">192</a>
+<a href="#193" id="193">193</a>
+<a href="#194" id="194">194</a>
+<a href="#195" id="195">195</a>
+<a href="#196" id="196">196</a>
+<a href="#197" id="197">197</a>
+<a href="#198" id="198">198</a>
+<a href="#199" id="199">199</a>
+<a href="#200" id="200">200</a>
+<a href="#201" id="201">201</a>
+<a href="#202" id="202">202</a>
+<a href="#203" id="203">203</a>
+<a href="#204" id="204">204</a>
+<a href="#205" id="205">205</a>
+<a href="#206" id="206">206</a>
+<a href="#207" id="207">207</a>
+<a href="#208" id="208">208</a>
+<a href="#209" id="209">209</a>
+<a href="#210" id="210">210</a>
+<a href="#211" id="211">211</a>
+<a href="#212" id="212">212</a>
+<a href="#213" id="213">213</a>
+<a href="#214" id="214">214</a>
+<a href="#215" id="215">215</a>
+<a href="#216" id="216">216</a>
+<a href="#217" id="217">217</a>
+<a href="#218" id="218">218</a>
+<a href="#219" id="219">219</a>
+<a href="#220" id="220">220</a>
+<a href="#221" id="221">221</a>
+<a href="#222" id="222">222</a>
+<a href="#223" id="223">223</a>
+<a href="#224" id="224">224</a>
+<a href="#225" id="225">225</a>
+<a href="#226" id="226">226</a>
+<a href="#227" id="227">227</a>
+<a href="#228" id="228">228</a>
+<a href="#229" id="229">229</a>
+<a href="#230" id="230">230</a>
+<a href="#231" id="231">231</a>
+<a href="#232" id="232">232</a>
+<a href="#233" id="233">233</a>
+<a href="#234" id="234">234</a>
+<a href="#235" id="235">235</a>
+<a href="#236" id="236">236</a>
+<a href="#237" id="237">237</a>
+<a href="#238" id="238">238</a>
+<a href="#239" id="239">239</a>
+<a href="#240" id="240">240</a>
+<a href="#241" id="241">241</a>
+<a href="#242" id="242">242</a>
+<a href="#243" id="243">243</a>
+<a href="#244" id="244">244</a>
+<a href="#245" id="245">245</a>
+<a href="#246" id="246">246</a>
+<a href="#247" id="247">247</a>
+<a href="#248" id="248">248</a>
+<a href="#249" id="249">249</a>
+<a href="#250" id="250">250</a>
+<a href="#251" id="251">251</a>
+<a href="#252" id="252">252</a>
+<a href="#253" id="253">253</a>
+<a href="#254" id="254">254</a>
+<a href="#255" id="255">255</a>
+<a href="#256" id="256">256</a>
+<a href="#257" id="257">257</a>
+<a href="#258" id="258">258</a>
+<a href="#259" id="259">259</a>
+<a href="#260" id="260">260</a>
+<a href="#261" id="261">261</a>
+<a href="#262" id="262">262</a>
+<a href="#263" id="263">263</a>
+<a href="#264" id="264">264</a>
+<a href="#265" id="265">265</a>
+<a href="#266" id="266">266</a>
+<a href="#267" id="267">267</a>
+<a href="#268" id="268">268</a>
+<a href="#269" id="269">269</a>
+<a href="#270" id="270">270</a>
+<a href="#271" id="271">271</a>
+<a href="#272" id="272">272</a>
+<a href="#273" id="273">273</a>
+<a href="#274" id="274">274</a>
+<a href="#275" id="275">275</a>
+<a href="#276" id="276">276</a>
+<a href="#277" id="277">277</a>
+<a href="#278" id="278">278</a>
+<a href="#279" id="279">279</a>
+<a href="#280" id="280">280</a>
+<a href="#281" id="281">281</a>
+<a href="#282" id="282">282</a>
+<a href="#283" id="283">283</a>
+<a href="#284" id="284">284</a>
+<a href="#285" id="285">285</a>
+<a href="#286" id="286">286</a>
+<a href="#287" id="287">287</a>
+<a href="#288" id="288">288</a>
+<a href="#289" id="289">289</a>
+<a href="#290" id="290">290</a>
+<a href="#291" id="291">291</a>
+<a href="#292" id="292">292</a>
+<a href="#293" id="293">293</a>
+<a href="#294" id="294">294</a>
+<a href="#295" id="295">295</a>
+<a href="#296" id="296">296</a>
+<a href="#297" id="297">297</a>
+<a href="#298" id="298">298</a>
+<a href="#299" id="299">299</a>
+<a href="#300" id="300">300</a>
+<a href="#301" id="301">301</a>
+<a href="#302" id="302">302</a>
+<a href="#303" id="303">303</a>
+<a href="#304" id="304">304</a>
+<a href="#305" id="305">305</a>
+<a href="#306" id="306">306</a>
+<a href="#307" id="307">307</a>
+<a href="#308" id="308">308</a>
+<a href="#309" id="309">309</a>
+<a href="#310" id="310">310</a>
+<a href="#311" id="311">311</a>
+<a href="#312" id="312">312</a>
+<a href="#313" id="313">313</a>
+<a href="#314" id="314">314</a>
+<a href="#315" id="315">315</a>
+<a href="#316" id="316">316</a>
+<a href="#317" id="317">317</a>
+<a href="#318" id="318">318</a>
+<a href="#319" id="319">319</a>
+<a href="#320" id="320">320</a>
+<a href="#321" id="321">321</a>
+<a href="#322" id="322">322</a>
+<a href="#323" id="323">323</a>
+<a href="#324" id="324">324</a>
+<a href="#325" id="325">325</a>
+<a href="#326" id="326">326</a>
+<a href="#327" id="327">327</a>
+<a href="#328" id="328">328</a>
+<a href="#329" id="329">329</a>
+<a href="#330" id="330">330</a>
+<a href="#331" id="331">331</a>
+<a href="#332" id="332">332</a>
+<a href="#333" id="333">333</a>
+<a href="#334" id="334">334</a>
+<a href="#335" id="335">335</a>
+<a href="#336" id="336">336</a>
+<a href="#337" id="337">337</a>
+<a href="#338" id="338">338</a>
+<a href="#339" id="339">339</a>
+<a href="#340" id="340">340</a>
+<a href="#341" id="341">341</a>
+<a href="#342" id="342">342</a>
+<a href="#343" id="343">343</a>
+<a href="#344" id="344">344</a>
+<a href="#345" id="345">345</a>
+<a href="#346" id="346">346</a>
+<a href="#347" id="347">347</a>
+<a href="#348" id="348">348</a>
+<a href="#349" id="349">349</a>
+<a href="#350" id="350">350</a>
+<a href="#351" id="351">351</a>
+<a href="#352" id="352">352</a>
+<a href="#353" id="353">353</a>
+<a href="#354" id="354">354</a>
+<a href="#355" id="355">355</a>
+<a href="#356" id="356">356</a>
+<a href="#357" id="357">357</a>
+<a href="#358" id="358">358</a>
+<a href="#359" id="359">359</a>
+<a href="#360" id="360">360</a>
+<a href="#361" id="361">361</a>
+<a href="#362" id="362">362</a>
+<a href="#363" id="363">363</a>
+<a href="#364" id="364">364</a>
+<a href="#365" id="365">365</a>
+<a href="#366" id="366">366</a>
+<a href="#367" id="367">367</a>
+<a href="#368" id="368">368</a>
+<a href="#369" id="369">369</a>
+<a href="#370" id="370">370</a>
+<a href="#371" id="371">371</a>
+<a href="#372" id="372">372</a>
+<a href="#373" id="373">373</a>
+<a href="#374" id="374">374</a>
+<a href="#375" id="375">375</a>
+<a href="#376" id="376">376</a>
+<a href="#377" id="377">377</a>
+<a href="#378" id="378">378</a>
+<a href="#379" id="379">379</a>
+<a href="#380" id="380">380</a>
+<a href="#381" id="381">381</a>
+<a href="#382" id="382">382</a>
+<a href="#383" id="383">383</a>
+<a href="#384" id="384">384</a>
+<a href="#385" id="385">385</a>
+<a href="#386" id="386">386</a>
+<a href="#387" id="387">387</a>
+<a href="#388" id="388">388</a>
+<a href="#389" id="389">389</a>
+<a href="#390" id="390">390</a>
+<a href="#391" id="391">391</a>
+<a href="#392" id="392">392</a>
+<a href="#393" id="393">393</a>
+<a href="#394" id="394">394</a>
+<a href="#395" id="395">395</a>
+<a href="#396" id="396">396</a>
+<a href="#397" id="397">397</a>
+<a href="#398" id="398">398</a>
+<a href="#399" id="399">399</a>
+<a href="#400" id="400">400</a>
+<a href="#401" id="401">401</a>
+<a href="#402" id="402">402</a>
+<a href="#403" id="403">403</a>
+<a href="#404" id="404">404</a>
+<a href="#405" id="405">405</a>
+<a href="#406" id="406">406</a>
+<a href="#407" id="407">407</a>
+<a href="#408" id="408">408</a>
+<a href="#409" id="409">409</a>
+<a href="#410" id="410">410</a>
+<a href="#411" id="411">411</a>
+<a href="#412" id="412">412</a>
+<a href="#413" id="413">413</a>
+<a href="#414" id="414">414</a>
+<a href="#415" id="415">415</a>
+<a href="#416" id="416">416</a>
+<a href="#417" id="417">417</a>
+<a href="#418" id="418">418</a>
+<a href="#419" id="419">419</a>
+<a href="#420" id="420">420</a>
+<a href="#421" id="421">421</a>
+<a href="#422" id="422">422</a>
+<a href="#423" id="423">423</a>
+<a href="#424" id="424">424</a>
+<a href="#425" id="425">425</a>
+<a href="#426" id="426">426</a>
+<a href="#427" id="427">427</a>
+<a href="#428" id="428">428</a>
+<a href="#429" id="429">429</a>
+<a href="#430" id="430">430</a>
+<a href="#431" id="431">431</a>
+<a href="#432" id="432">432</a>
+<a href="#433" id="433">433</a>
+<a href="#434" id="434">434</a>
+<a href="#435" id="435">435</a>
+<a href="#436" id="436">436</a>
+<a href="#437" id="437">437</a>
+<a href="#438" id="438">438</a>
+<a href="#439" id="439">439</a>
+<a href="#440" id="440">440</a>
+<a href="#441" id="441">441</a>
+<a href="#442" id="442">442</a>
+<a href="#443" id="443">443</a>
+<a href="#444" id="444">444</a>
+<a href="#445" id="445">445</a>
+<a href="#446" id="446">446</a>
+<a href="#447" id="447">447</a>
+<a href="#448" id="448">448</a>
+<a href="#449" id="449">449</a>
+<a href="#450" id="450">450</a>
+<a href="#451" id="451">451</a>
+<a href="#452" id="452">452</a>
+<a href="#453" id="453">453</a>
+<a href="#454" id="454">454</a>
+<a href="#455" id="455">455</a>
+<a href="#456" id="456">456</a>
+<a href="#457" id="457">457</a>
+<a href="#458" id="458">458</a>
+<a href="#459" id="459">459</a>
+<a href="#460" id="460">460</a>
+<a href="#461" id="461">461</a>
+<a href="#462" id="462">462</a>
+<a href="#463" id="463">463</a>
+<a href="#464" id="464">464</a>
+<a href="#465" id="465">465</a>
+<a href="#466" id="466">466</a>
+<a href="#467" id="467">467</a>
+<a href="#468" id="468">468</a>
+<a href="#469" id="469">469</a>
+<a href="#470" id="470">470</a>
+<a href="#471" id="471">471</a>
+<a href="#472" id="472">472</a>
+<a href="#473" id="473">473</a>
+<a href="#474" id="474">474</a>
+<a href="#475" id="475">475</a>
+<a href="#476" id="476">476</a>
+<a href="#477" id="477">477</a>
+<a href="#478" id="478">478</a>
+<a href="#479" id="479">479</a>
+<a href="#480" id="480">480</a>
+<a href="#481" id="481">481</a>
+<a href="#482" id="482">482</a>
+<a href="#483" id="483">483</a>
+<a href="#484" id="484">484</a>
+<a href="#485" id="485">485</a>
+<a href="#486" id="486">486</a>
+<a href="#487" id="487">487</a>
+<a href="#488" id="488">488</a>
+<a href="#489" id="489">489</a>
+<a href="#490" id="490">490</a>
+<a href="#491" id="491">491</a>
+<a href="#492" id="492">492</a>
+<a href="#493" id="493">493</a>
+<a href="#494" id="494">494</a>
+<a href="#495" id="495">495</a>
+<a href="#496" id="496">496</a>
+<a href="#497" id="497">497</a>
+<a href="#498" id="498">498</a>
+<a href="#499" id="499">499</a>
+<a href="#500" id="500">500</a>
+<a href="#501" id="501">501</a>
+<a href="#502" id="502">502</a>
+<a href="#503" id="503">503</a>
+<a href="#504" id="504">504</a>
+<a href="#505" id="505">505</a>
+<a href="#506" id="506">506</a>
+<a href="#507" id="507">507</a>
+<a href="#508" id="508">508</a>
+<a href="#509" id="509">509</a>
+<a href="#510" id="510">510</a>
+<a href="#511" id="511">511</a>
+<a href="#512" id="512">512</a>
+<a href="#513" id="513">513</a>
+<a href="#514" id="514">514</a>
+<a href="#515" id="515">515</a>
+<a href="#516" id="516">516</a>
+<a href="#517" id="517">517</a>
+<a href="#518" id="518">518</a>
+<a href="#519" id="519">519</a>
+<a href="#520" id="520">520</a>
+<a href="#521" id="521">521</a>
+<a href="#522" id="522">522</a>
+<a href="#523" id="523">523</a>
+<a href="#524" id="524">524</a>
+<a href="#525" id="525">525</a>
+<a href="#526" id="526">526</a>
+<a href="#527" id="527">527</a>
+<a href="#528" id="528">528</a>
+<a href="#529" id="529">529</a>
+<a href="#530" id="530">530</a>
+<a href="#531" id="531">531</a>
+<a href="#532" id="532">532</a>
+<a href="#533" id="533">533</a>
+<a href="#534" id="534">534</a>
+<a href="#535" id="535">535</a>
+<a href="#536" id="536">536</a>
+<a href="#537" id="537">537</a>
+<a href="#538" id="538">538</a>
+<a href="#539" id="539">539</a>
+<a href="#540" id="540">540</a>
+<a href="#541" id="541">541</a>
+<a href="#542" id="542">542</a>
+<a href="#543" id="543">543</a>
+<a href="#544" id="544">544</a>
+<a href="#545" id="545">545</a>
+<a href="#546" id="546">546</a>
+<a href="#547" id="547">547</a>
+<a href="#548" id="548">548</a>
+<a href="#549" id="549">549</a>
+<a href="#550" id="550">550</a>
+<a href="#551" id="551">551</a>
+<a href="#552" id="552">552</a>
+<a href="#553" id="553">553</a>
+<a href="#554" id="554">554</a>
+<a href="#555" id="555">555</a>
+<a href="#556" id="556">556</a>
+<a href="#557" id="557">557</a>
+<a href="#558" id="558">558</a>
+<a href="#559" id="559">559</a>
+<a href="#560" id="560">560</a>
+<a href="#561" id="561">561</a>
+<a href="#562" id="562">562</a>
+<a href="#563" id="563">563</a>
+<a href="#564" id="564">564</a>
+<a href="#565" id="565">565</a>
+<a href="#566" id="566">566</a>
+<a href="#567" id="567">567</a>
+<a href="#568" id="568">568</a>
+<a href="#569" id="569">569</a>
+<a href="#570" id="570">570</a>
+<a href="#571" id="571">571</a>
+<a href="#572" id="572">572</a>
+<a href="#573" id="573">573</a>
+<a href="#574" id="574">574</a>
+<a href="#575" id="575">575</a>
+<a href="#576" id="576">576</a>
+<a href="#577" id="577">577</a>
+<a href="#578" id="578">578</a>
+<a href="#579" id="579">579</a>
+<a href="#580" id="580">580</a>
+<a href="#581" id="581">581</a>
+<a href="#582" id="582">582</a>
+<a href="#583" id="583">583</a>
+<a href="#584" id="584">584</a>
+<a href="#585" id="585">585</a>
+<a href="#586" id="586">586</a>
+<a href="#587" id="587">587</a>
+<a href="#588" id="588">588</a>
+<a href="#589" id="589">589</a>
+<a href="#590" id="590">590</a>
+<a href="#591" id="591">591</a>
+<a href="#592" id="592">592</a>
+<a href="#593" id="593">593</a>
+<a href="#594" id="594">594</a>
+<a href="#595" id="595">595</a>
+<a href="#596" id="596">596</a>
+<a href="#597" id="597">597</a>
+<a href="#598" id="598">598</a>
+<a href="#599" id="599">599</a>
+<a href="#600" id="600">600</a>
+<a href="#601" id="601">601</a>
+<a href="#602" id="602">602</a>
+<a href="#603" id="603">603</a>
+<a href="#604" id="604">604</a>
+<a href="#605" id="605">605</a>
+<a href="#606" id="606">606</a>
+<a href="#607" id="607">607</a>
+<a href="#608" id="608">608</a>
+<a href="#609" id="609">609</a>
+<a href="#610" id="610">610</a>
+<a href="#611" id="611">611</a>
+<a href="#612" id="612">612</a>
+<a href="#613" id="613">613</a>
+<a href="#614" id="614">614</a>
+<a href="#615" id="615">615</a>
+<a href="#616" id="616">616</a>
+<a href="#617" id="617">617</a>
+<a href="#618" id="618">618</a>
+<a href="#619" id="619">619</a>
+<a href="#620" id="620">620</a>
+<a href="#621" id="621">621</a>
+<a href="#622" id="622">622</a>
+<a href="#623" id="623">623</a>
+<a href="#624" id="624">624</a>
+<a href="#625" id="625">625</a>
+<a href="#626" id="626">626</a>
+<a href="#627" id="627">627</a>
+<a href="#628" id="628">628</a>
+<a href="#629" id="629">629</a>
+<a href="#630" id="630">630</a>
+<a href="#631" id="631">631</a>
+<a href="#632" id="632">632</a>
+<a href="#633" id="633">633</a>
+<a href="#634" id="634">634</a>
+<a href="#635" id="635">635</a>
+<a href="#636" id="636">636</a>
+<a href="#637" id="637">637</a>
+<a href="#638" id="638">638</a>
+<a href="#639" id="639">639</a>
+<a href="#640" id="640">640</a>
+<a href="#641" id="641">641</a>
+<a href="#642" id="642">642</a>
+<a href="#643" id="643">643</a>
+<a href="#644" id="644">644</a>
+<a href="#645" id="645">645</a>
+<a href="#646" id="646">646</a>
+<a href="#647" id="647">647</a>
+<a href="#648" id="648">648</a>
+<a href="#649" id="649">649</a>
+<a href="#650" id="650">650</a>
+<a href="#651" id="651">651</a>
+<a href="#652" id="652">652</a>
+<a href="#653" id="653">653</a>
+<a href="#654" id="654">654</a>
+<a href="#655" id="655">655</a>
+<a href="#656" id="656">656</a>
+<a href="#657" id="657">657</a>
+<a href="#658" id="658">658</a>
+<a href="#659" id="659">659</a>
+<a href="#660" id="660">660</a>
+<a href="#661" id="661">661</a>
+<a href="#662" id="662">662</a>
+<a href="#663" id="663">663</a>
+<a href="#664" id="664">664</a>
+<a href="#665" id="665">665</a>
+<a href="#666" id="666">666</a>
+<a href="#667" id="667">667</a>
+<a href="#668" id="668">668</a>
+<a href="#669" id="669">669</a>
+<a href="#670" id="670">670</a>
+<a href="#671" id="671">671</a>
+<a href="#672" id="672">672</a>
+<a href="#673" id="673">673</a>
+<a href="#674" id="674">674</a>
+<a href="#675" id="675">675</a>
+<a href="#676" id="676">676</a>
+<a href="#677" id="677">677</a>
+<a href="#678" id="678">678</a>
+<a href="#679" id="679">679</a>
+<a href="#680" id="680">680</a>
+<a href="#681" id="681">681</a>
+<a href="#682" id="682">682</a>
+<a href="#683" id="683">683</a>
+<a href="#684" id="684">684</a>
+<a href="#685" id="685">685</a>
+<a href="#686" id="686">686</a>
+<a href="#687" id="687">687</a>
+<a href="#688" id="688">688</a>
+<a href="#689" id="689">689</a>
+<a href="#690" id="690">690</a>
+<a href="#691" id="691">691</a>
+<a href="#692" id="692">692</a>
+<a href="#693" id="693">693</a>
+<a href="#694" id="694">694</a>
+<a href="#695" id="695">695</a>
+<a href="#696" id="696">696</a>
+<a href="#697" id="697">697</a>
+<a href="#698" id="698">698</a>
+<a href="#699" id="699">699</a>
+<a href="#700" id="700">700</a>
+<a href="#701" id="701">701</a>
+<a href="#702" id="702">702</a>
+<a href="#703" id="703">703</a>
+<a href="#704" id="704">704</a>
+<a href="#705" id="705">705</a>
+<a href="#706" id="706">706</a>
+<a href="#707" id="707">707</a>
+<a href="#708" id="708">708</a>
+<a href="#709" id="709">709</a>
+<a href="#710" id="710">710</a>
+<a href="#711" id="711">711</a>
+<a href="#712" id="712">712</a>
+<a href="#713" id="713">713</a>
+<a href="#714" id="714">714</a>
+<a href="#715" id="715">715</a>
+<a href="#716" id="716">716</a>
+<a href="#717" id="717">717</a>
+<a href="#718" id="718">718</a>
+<a href="#719" id="719">719</a>
+<a href="#720" id="720">720</a>
+<a href="#721" id="721">721</a>
+<a href="#722" id="722">722</a>
+<a href="#723" id="723">723</a>
+<a href="#724" id="724">724</a>
+<a href="#725" id="725">725</a>
+<a href="#726" id="726">726</a>
+<a href="#727" id="727">727</a>
+<a href="#728" id="728">728</a>
+<a href="#729" id="729">729</a>
+<a href="#730" id="730">730</a>
+<a href="#731" id="731">731</a>
+<a href="#732" id="732">732</a>
+<a href="#733" id="733">733</a>
+<a href="#734" id="734">734</a>
+<a href="#735" id="735">735</a>
+<a href="#736" id="736">736</a>
+<a href="#737" id="737">737</a>
+<a href="#738" id="738">738</a>
+<a href="#739" id="739">739</a>
+<a href="#740" id="740">740</a>
+<a href="#741" id="741">741</a>
+<a href="#742" id="742">742</a>
+<a href="#743" id="743">743</a>
+<a href="#744" id="744">744</a>
+<a href="#745" id="745">745</a>
+<a href="#746" id="746">746</a>
+<a href="#747" id="747">747</a>
+<a href="#748" id="748">748</a>
+<a href="#749" id="749">749</a>
+<a href="#750" id="750">750</a>
+<a href="#751" id="751">751</a>
+<a href="#752" id="752">752</a>
+<a href="#753" id="753">753</a>
+<a href="#754" id="754">754</a>
+<a href="#755" id="755">755</a>
+<a href="#756" id="756">756</a>
+<a href="#757" id="757">757</a>
+<a href="#758" id="758">758</a>
+<a href="#759" id="759">759</a>
+<a href="#760" id="760">760</a>
+<a href="#761" id="761">761</a>
+<a href="#762" id="762">762</a>
+<a href="#763" id="763">763</a>
+<a href="#764" id="764">764</a>
+<a href="#765" id="765">765</a>
+<a href="#766" id="766">766</a>
+<a href="#767" id="767">767</a>
+<a href="#768" id="768">768</a>
+<a href="#769" id="769">769</a>
+<a href="#770" id="770">770</a>
+<a href="#771" id="771">771</a>
+<a href="#772" id="772">772</a>
+<a href="#773" id="773">773</a>
+<a href="#774" id="774">774</a>
+<a href="#775" id="775">775</a>
+<a href="#776" id="776">776</a>
+<a href="#777" id="777">777</a>
+<a href="#778" id="778">778</a>
+<a href="#779" id="779">779</a>
+<a href="#780" id="780">780</a>
+<a href="#781" id="781">781</a>
+<a href="#782" id="782">782</a>
+<a href="#783" id="783">783</a>
+<a href="#784" id="784">784</a>
+<a href="#785" id="785">785</a>
+<a href="#786" id="786">786</a>
+<a href="#787" id="787">787</a>
+<a href="#788" id="788">788</a>
+<a href="#789" id="789">789</a>
+<a href="#790" id="790">790</a>
+<a href="#791" id="791">791</a>
+<a href="#792" id="792">792</a>
+<a href="#793" id="793">793</a>
+<a href="#794" id="794">794</a>
+<a href="#795" id="795">795</a>
+<a href="#796" id="796">796</a>
+<a href="#797" id="797">797</a>
+<a href="#798" id="798">798</a>
+<a href="#799" id="799">799</a>
+<a href="#800" id="800">800</a>
+<a href="#801" id="801">801</a>
+<a href="#802" id="802">802</a>
+<a href="#803" id="803">803</a>
+<a href="#804" id="804">804</a>
+<a href="#805" id="805">805</a>
+<a href="#806" id="806">806</a>
+<a href="#807" id="807">807</a>
+<a href="#808" id="808">808</a>
+<a href="#809" id="809">809</a>
+<a href="#810" id="810">810</a>
+<a href="#811" id="811">811</a>
+<a href="#812" id="812">812</a>
+<a href="#813" id="813">813</a>
+<a href="#814" id="814">814</a>
+<a href="#815" id="815">815</a>
+<a href="#816" id="816">816</a>
+<a href="#817" id="817">817</a>
+<a href="#818" id="818">818</a>
+<a href="#819" id="819">819</a>
+<a href="#820" id="820">820</a>
+<a href="#821" id="821">821</a>
+<a href="#822" id="822">822</a>
+<a href="#823" id="823">823</a>
+<a href="#824" id="824">824</a>
+<a href="#825" id="825">825</a>
+<a href="#826" id="826">826</a>
+<a href="#827" id="827">827</a>
+<a href="#828" id="828">828</a>
+<a href="#829" id="829">829</a>
+<a href="#830" id="830">830</a>
+<a href="#831" id="831">831</a>
+<a href="#832" id="832">832</a>
+<a href="#833" id="833">833</a>
+<a href="#834" id="834">834</a>
+<a href="#835" id="835">835</a>
+<a href="#836" id="836">836</a>
+<a href="#837" id="837">837</a>
+<a href="#838" id="838">838</a>
+<a href="#839" id="839">839</a>
+<a href="#840" id="840">840</a>
+<a href="#841" id="841">841</a>
+<a href="#842" id="842">842</a>
+<a href="#843" id="843">843</a>
+<a href="#844" id="844">844</a>
+<a href="#845" id="845">845</a>
+<a href="#846" id="846">846</a>
+<a href="#847" id="847">847</a>
+<a href="#848" id="848">848</a>
+<a href="#849" id="849">849</a>
+<a href="#850" id="850">850</a>
+<a href="#851" id="851">851</a>
+<a href="#852" id="852">852</a>
+<a href="#853" id="853">853</a>
+<a href="#854" id="854">854</a>
+<a href="#855" id="855">855</a>
+<a href="#856" id="856">856</a>
+<a href="#857" id="857">857</a>
+<a href="#858" id="858">858</a>
+<a href="#859" id="859">859</a>
+<a href="#860" id="860">860</a>
+<a href="#861" id="861">861</a>
+<a href="#862" id="862">862</a>
+<a href="#863" id="863">863</a>
+<a href="#864" id="864">864</a>
+<a href="#865" id="865">865</a>
+<a href="#866" id="866">866</a>
+<a href="#867" id="867">867</a>
+<a href="#868" id="868">868</a>
+<a href="#869" id="869">869</a>
+<a href="#870" id="870">870</a>
+<a href="#871" id="871">871</a>
+<a href="#872" id="872">872</a>
+<a href="#873" id="873">873</a>
+<a href="#874" id="874">874</a>
+<a href="#875" id="875">875</a>
+<a href="#876" id="876">876</a>
+<a href="#877" id="877">877</a>
+<a href="#878" id="878">878</a>
+<a href="#879" id="879">879</a>
+<a href="#880" id="880">880</a>
+<a href="#881" id="881">881</a>
+<a href="#882" id="882">882</a>
+<a href="#883" id="883">883</a>
+<a href="#884" id="884">884</a>
+<a href="#885" id="885">885</a>
+<a href="#886" id="886">886</a>
+<a href="#887" id="887">887</a>
+<a href="#888" id="888">888</a>
+<a href="#889" id="889">889</a>
+<a href="#890" id="890">890</a>
+<a href="#891" id="891">891</a>
+<a href="#892" id="892">892</a>
+<a href="#893" id="893">893</a>
+<a href="#894" id="894">894</a>
+<a href="#895" id="895">895</a>
+<a href="#896" id="896">896</a>
+<a href="#897" id="897">897</a>
+<a href="#898" id="898">898</a>
+<a href="#899" id="899">899</a>
+<a href="#900" id="900">900</a>
+<a href="#901" id="901">901</a>
+<a href="#902" id="902">902</a>
+<a href="#903" id="903">903</a>
+<a href="#904" id="904">904</a>
+<a href="#905" id="905">905</a>
+<a href="#906" id="906">906</a>
+<a href="#907" id="907">907</a>
+<a href="#908" id="908">908</a>
+<a href="#909" id="909">909</a>
+<a href="#910" id="910">910</a>
+<a href="#911" id="911">911</a>
+<a href="#912" id="912">912</a>
+<a href="#913" id="913">913</a>
+<a href="#914" id="914">914</a>
+<a href="#915" id="915">915</a>
+<a href="#916" id="916">916</a>
+<a href="#917" id="917">917</a>
+<a href="#918" id="918">918</a>
+<a href="#919" id="919">919</a>
+<a href="#920" id="920">920</a>
+<a href="#921" id="921">921</a>
+<a href="#922" id="922">922</a>
+<a href="#923" id="923">923</a>
+<a href="#924" id="924">924</a>
+<a href="#925" id="925">925</a>
+<a href="#926" id="926">926</a>
+<a href="#927" id="927">927</a>
+<a href="#928" id="928">928</a>
+<a href="#929" id="929">929</a>
+<a href="#930" id="930">930</a>
+<a href="#931" id="931">931</a>
+<a href="#932" id="932">932</a>
+<a href="#933" id="933">933</a>
+<a href="#934" id="934">934</a>
+<a href="#935" id="935">935</a>
+<a href="#936" id="936">936</a>
+<a href="#937" id="937">937</a>
+<a href="#938" id="938">938</a>
+<a href="#939" id="939">939</a>
+<a href="#940" id="940">940</a>
+<a href="#941" id="941">941</a>
+<a href="#942" id="942">942</a>
+<a href="#943" id="943">943</a>
+<a href="#944" id="944">944</a>
+<a href="#945" id="945">945</a>
+<a href="#946" id="946">946</a>
+<a href="#947" id="947">947</a>
+<a href="#948" id="948">948</a>
+<a href="#949" id="949">949</a>
+<a href="#950" id="950">950</a>
+<a href="#951" id="951">951</a>
+<a href="#952" id="952">952</a>
+<a href="#953" id="953">953</a>
+<a href="#954" id="954">954</a>
+<a href="#955" id="955">955</a>
+<a href="#956" id="956">956</a>
+<a href="#957" id="957">957</a>
+<a href="#958" id="958">958</a>
+<a href="#959" id="959">959</a>
+<a href="#960" id="960">960</a>
+<a href="#961" id="961">961</a>
+<a href="#962" id="962">962</a>
+<a href="#963" id="963">963</a>
+<a href="#964" id="964">964</a>
+<a href="#965" id="965">965</a>
+<a href="#966" id="966">966</a>
+<a href="#967" id="967">967</a>
+<a href="#968" id="968">968</a>
+<a href="#969" id="969">969</a>
+<a href="#970" id="970">970</a>
+<a href="#971" id="971">971</a>
+<a href="#972" id="972">972</a>
+<a href="#973" id="973">973</a>
+<a href="#974" id="974">974</a>
+<a href="#975" id="975">975</a>
+<a href="#976" id="976">976</a>
+<a href="#977" id="977">977</a>
+<a href="#978" id="978">978</a>
+<a href="#979" id="979">979</a>
+<a href="#980" id="980">980</a>
+<a href="#981" id="981">981</a>
+<a href="#982" id="982">982</a>
+<a href="#983" id="983">983</a>
+<a href="#984" id="984">984</a>
+<a href="#985" id="985">985</a>
+<a href="#986" id="986">986</a>
+<a href="#987" id="987">987</a>
+<a href="#988" id="988">988</a>
+<a href="#989" id="989">989</a>
+<a href="#990" id="990">990</a>
+<a href="#991" id="991">991</a>
+<a href="#992" id="992">992</a>
+<a href="#993" id="993">993</a>
+<a href="#994" id="994">994</a>
+<a href="#995" id="995">995</a>
+<a href="#996" id="996">996</a>
+<a href="#997" id="997">997</a>
+<a href="#998" id="998">998</a>
+<a href="#999" id="999">999</a>
+<a href="#1000" id="1000">1000</a>
+<a href="#1001" id="1001">1001</a>
+<a href="#1002" id="1002">1002</a>
+<a href="#1003" id="1003">1003</a>
+<a href="#1004" id="1004">1004</a>
+<a href="#1005" id="1005">1005</a>
+<a href="#1006" id="1006">1006</a>
+<a href="#1007" id="1007">1007</a>
+<a href="#1008" id="1008">1008</a>
+<a href="#1009" id="1009">1009</a>
+<a href="#1010" id="1010">1010</a>
+<a href="#1011" id="1011">1011</a>
+<a href="#1012" id="1012">1012</a>
+<a href="#1013" id="1013">1013</a>
+<a href="#1014" id="1014">1014</a>
+<a href="#1015" id="1015">1015</a>
+<a href="#1016" id="1016">1016</a>
+<a href="#1017" id="1017">1017</a>
+<a href="#1018" id="1018">1018</a>
+<a href="#1019" id="1019">1019</a>
+<a href="#1020" id="1020">1020</a>
+<a href="#1021" id="1021">1021</a>
+<a href="#1022" id="1022">1022</a>
+<a href="#1023" id="1023">1023</a>
+<a href="#1024" id="1024">1024</a>
+<a href="#1025" id="1025">1025</a>
+<a href="#1026" id="1026">1026</a>
+<a href="#1027" id="1027">1027</a>
+<a href="#1028" id="1028">1028</a>
+<a href="#1029" id="1029">1029</a>
+<a href="#1030" id="1030">1030</a>
+<a href="#1031" id="1031">1031</a>
+<a href="#1032" id="1032">1032</a>
+<a href="#1033" id="1033">1033</a>
+<a href="#1034" id="1034">1034</a>
+<a href="#1035" id="1035">1035</a>
+<a href="#1036" id="1036">1036</a>
+<a href="#1037" id="1037">1037</a>
+<a href="#1038" id="1038">1038</a>
+<a href="#1039" id="1039">1039</a>
+<a href="#1040" id="1040">1040</a>
+<a href="#1041" id="1041">1041</a>
+<a href="#1042" id="1042">1042</a>
+<a href="#1043" id="1043">1043</a>
+<a href="#1044" id="1044">1044</a>
+<a href="#1045" id="1045">1045</a>
+<a href="#1046" id="1046">1046</a>
+<a href="#1047" id="1047">1047</a>
+<a href="#1048" id="1048">1048</a>
+<a href="#1049" id="1049">1049</a>
+<a href="#1050" id="1050">1050</a>
+<a href="#1051" id="1051">1051</a>
+<a href="#1052" id="1052">1052</a>
+<a href="#1053" id="1053">1053</a>
+<a href="#1054" id="1054">1054</a>
+<a href="#1055" id="1055">1055</a>
+<a href="#1056" id="1056">1056</a>
+<a href="#1057" id="1057">1057</a>
+<a href="#1058" id="1058">1058</a>
+<a href="#1059" id="1059">1059</a>
+<a href="#1060" id="1060">1060</a>
+<a href="#1061" id="1061">1061</a>
+<a href="#1062" id="1062">1062</a>
+<a href="#1063" id="1063">1063</a>
+<a href="#1064" id="1064">1064</a>
+<a href="#1065" id="1065">1065</a>
+<a href="#1066" id="1066">1066</a>
+<a href="#1067" id="1067">1067</a>
+<a href="#1068" id="1068">1068</a>
+<a href="#1069" id="1069">1069</a>
+<a href="#1070" id="1070">1070</a>
+<a href="#1071" id="1071">1071</a>
+<a href="#1072" id="1072">1072</a>
+<a href="#1073" id="1073">1073</a>
+<a href="#1074" id="1074">1074</a>
+<a href="#1075" id="1075">1075</a>
+<a href="#1076" id="1076">1076</a>
+<a href="#1077" id="1077">1077</a>
+<a href="#1078" id="1078">1078</a>
+<a href="#1079" id="1079">1079</a>
+<a href="#1080" id="1080">1080</a>
+<a href="#1081" id="1081">1081</a>
+<a href="#1082" id="1082">1082</a>
+<a href="#1083" id="1083">1083</a>
+<a href="#1084" id="1084">1084</a>
+<a href="#1085" id="1085">1085</a>
+<a href="#1086" id="1086">1086</a>
+<a href="#1087" id="1087">1087</a>
+<a href="#1088" id="1088">1088</a>
+<a href="#1089" id="1089">1089</a>
+<a href="#1090" id="1090">1090</a>
+<a href="#1091" id="1091">1091</a>
+<a href="#1092" id="1092">1092</a>
+<a href="#1093" id="1093">1093</a>
+<a href="#1094" id="1094">1094</a>
+<a href="#1095" id="1095">1095</a>
+<a href="#1096" id="1096">1096</a>
+<a href="#1097" id="1097">1097</a>
+<a href="#1098" id="1098">1098</a>
+<a href="#1099" id="1099">1099</a>
+<a href="#1100" id="1100">1100</a>
+<a href="#1101" id="1101">1101</a>
+<a href="#1102" id="1102">1102</a>
+<a href="#1103" id="1103">1103</a>
+<a href="#1104" id="1104">1104</a>
+<a href="#1105" id="1105">1105</a>
+<a href="#1106" id="1106">1106</a>
+<a href="#1107" id="1107">1107</a>
+<a href="#1108" id="1108">1108</a>
+<a href="#1109" id="1109">1109</a>
+<a href="#1110" id="1110">1110</a>
+<a href="#1111" id="1111">1111</a>
+<a href="#1112" id="1112">1112</a>
+<a href="#1113" id="1113">1113</a>
+<a href="#1114" id="1114">1114</a>
+<a href="#1115" id="1115">1115</a>
+<a href="#1116" id="1116">1116</a>
+<a href="#1117" id="1117">1117</a>
+<a href="#1118" id="1118">1118</a>
+<a href="#1119" id="1119">1119</a>
+<a href="#1120" id="1120">1120</a>
+<a href="#1121" id="1121">1121</a>
+<a href="#1122" id="1122">1122</a>
+<a href="#1123" id="1123">1123</a>
+<a href="#1124" id="1124">1124</a>
+<a href="#1125" id="1125">1125</a>
+<a href="#1126" id="1126">1126</a>
+<a href="#1127" id="1127">1127</a>
+<a href="#1128" id="1128">1128</a>
+<a href="#1129" id="1129">1129</a>
+<a href="#1130" id="1130">1130</a>
+<a href="#1131" id="1131">1131</a>
+<a href="#1132" id="1132">1132</a>
+<a href="#1133" id="1133">1133</a>
+<a href="#1134" id="1134">1134</a>
+<a href="#1135" id="1135">1135</a>
+<a href="#1136" id="1136">1136</a>
+<a href="#1137" id="1137">1137</a>
+<a href="#1138" id="1138">1138</a>
+<a href="#1139" id="1139">1139</a>
+<a href="#1140" id="1140">1140</a>
+<a href="#1141" id="1141">1141</a>
+<a href="#1142" id="1142">1142</a>
+<a href="#1143" id="1143">1143</a>
+<a href="#1144" id="1144">1144</a>
+<a href="#1145" id="1145">1145</a>
+<a href="#1146" id="1146">1146</a>
+<a href="#1147" id="1147">1147</a>
+<a href="#1148" id="1148">1148</a>
+<a href="#1149" id="1149">1149</a>
+<a href="#1150" id="1150">1150</a>
+<a href="#1151" id="1151">1151</a>
+<a href="#1152" id="1152">1152</a>
+<a href="#1153" id="1153">1153</a>
+<a href="#1154" id="1154">1154</a>
+<a href="#1155" id="1155">1155</a>
+<a href="#1156" id="1156">1156</a>
+<a href="#1157" id="1157">1157</a>
+<a href="#1158" id="1158">1158</a>
+<a href="#1159" id="1159">1159</a>
+<a href="#1160" id="1160">1160</a>
+<a href="#1161" id="1161">1161</a>
+<a href="#1162" id="1162">1162</a>
+<a href="#1163" id="1163">1163</a>
+<a href="#1164" id="1164">1164</a>
+<a href="#1165" id="1165">1165</a>
+<a href="#1166" id="1166">1166</a>
+<a href="#1167" id="1167">1167</a>
+<a href="#1168" id="1168">1168</a>
+<a href="#1169" id="1169">1169</a>
+<a href="#1170" id="1170">1170</a>
+<a href="#1171" id="1171">1171</a>
+<a href="#1172" id="1172">1172</a>
+<a href="#1173" id="1173">1173</a>
+<a href="#1174" id="1174">1174</a>
+<a href="#1175" id="1175">1175</a>
+<a href="#1176" id="1176">1176</a>
+<a href="#1177" id="1177">1177</a>
+<a href="#1178" id="1178">1178</a>
+<a href="#1179" id="1179">1179</a>
+<a href="#1180" id="1180">1180</a>
+<a href="#1181" id="1181">1181</a>
+<a href="#1182" id="1182">1182</a>
+<a href="#1183" id="1183">1183</a>
+<a href="#1184" id="1184">1184</a>
+<a href="#1185" id="1185">1185</a>
+<a href="#1186" id="1186">1186</a>
+<a href="#1187" id="1187">1187</a>
+<a href="#1188" id="1188">1188</a>
+<a href="#1189" id="1189">1189</a>
+<a href="#1190" id="1190">1190</a>
+<a href="#1191" id="1191">1191</a>
+<a href="#1192" id="1192">1192</a>
+<a href="#1193" id="1193">1193</a>
+<a href="#1194" id="1194">1194</a>
+<a href="#1195" id="1195">1195</a>
+<a href="#1196" id="1196">1196</a>
+<a href="#1197" id="1197">1197</a>
+<a href="#1198" id="1198">1198</a>
+<a href="#1199" id="1199">1199</a>
+<a href="#1200" id="1200">1200</a>
+<a href="#1201" id="1201">1201</a>
+<a href="#1202" id="1202">1202</a>
+<a href="#1203" id="1203">1203</a>
+<a href="#1204" id="1204">1204</a>
+<a href="#1205" id="1205">1205</a>
+<a href="#1206" id="1206">1206</a>
+<a href="#1207" id="1207">1207</a>
+<a href="#1208" id="1208">1208</a>
+<a href="#1209" id="1209">1209</a>
+<a href="#1210" id="1210">1210</a>
+<a href="#1211" id="1211">1211</a>
+<a href="#1212" id="1212">1212</a>
+<a href="#1213" id="1213">1213</a>
+<a href="#1214" id="1214">1214</a>
+<a href="#1215" id="1215">1215</a>
+<a href="#1216" id="1216">1216</a>
+<a href="#1217" id="1217">1217</a>
+<a href="#1218" id="1218">1218</a>
+<a href="#1219" id="1219">1219</a>
+<a href="#1220" id="1220">1220</a>
+<a href="#1221" id="1221">1221</a>
+<a href="#1222" id="1222">1222</a>
+<a href="#1223" id="1223">1223</a>
+<a href="#1224" id="1224">1224</a>
+<a href="#1225" id="1225">1225</a>
+<a href="#1226" id="1226">1226</a>
+<a href="#1227" id="1227">1227</a>
+<a href="#1228" id="1228">1228</a>
+<a href="#1229" id="1229">1229</a>
+<a href="#1230" id="1230">1230</a>
+<a href="#1231" id="1231">1231</a>
+<a href="#1232" id="1232">1232</a>
+<a href="#1233" id="1233">1233</a>
+<a href="#1234" id="1234">1234</a>
+<a href="#1235" id="1235">1235</a>
+<a href="#1236" id="1236">1236</a>
+<a href="#1237" id="1237">1237</a>
+<a href="#1238" id="1238">1238</a>
+<a href="#1239" id="1239">1239</a>
+<a href="#1240" id="1240">1240</a>
+<a href="#1241" id="1241">1241</a>
+<a href="#1242" id="1242">1242</a>
+<a href="#1243" id="1243">1243</a>
+<a href="#1244" id="1244">1244</a>
+<a href="#1245" id="1245">1245</a>
+<a href="#1246" id="1246">1246</a>
+<a href="#1247" id="1247">1247</a>
+<a href="#1248" id="1248">1248</a>
+<a href="#1249" id="1249">1249</a>
+<a href="#1250" id="1250">1250</a>
+<a href="#1251" id="1251">1251</a>
+<a href="#1252" id="1252">1252</a>
+<a href="#1253" id="1253">1253</a>
+<a href="#1254" id="1254">1254</a>
+<a href="#1255" id="1255">1255</a>
+<a href="#1256" id="1256">1256</a>
+<a href="#1257" id="1257">1257</a>
+<a href="#1258" id="1258">1258</a>
+<a href="#1259" id="1259">1259</a>
+<a href="#1260" id="1260">1260</a>
+<a href="#1261" id="1261">1261</a>
+<a href="#1262" id="1262">1262</a>
+<a href="#1263" id="1263">1263</a>
+<a href="#1264" id="1264">1264</a>
+<a href="#1265" id="1265">1265</a>
+<a href="#1266" id="1266">1266</a>
+<a href="#1267" id="1267">1267</a>
+<a href="#1268" id="1268">1268</a>
+<a href="#1269" id="1269">1269</a>
+<a href="#1270" id="1270">1270</a>
+<a href="#1271" id="1271">1271</a>
+<a href="#1272" id="1272">1272</a>
+<a href="#1273" id="1273">1273</a>
+<a href="#1274" id="1274">1274</a>
+<a href="#1275" id="1275">1275</a>
+<a href="#1276" id="1276">1276</a>
+<a href="#1277" id="1277">1277</a>
+<a href="#1278" id="1278">1278</a>
+<a href="#1279" id="1279">1279</a>
+<a href="#1280" id="1280">1280</a>
+<a href="#1281" id="1281">1281</a>
+<a href="#1282" id="1282">1282</a>
+<a href="#1283" id="1283">1283</a>
+<a href="#1284" id="1284">1284</a>
+<a href="#1285" id="1285">1285</a>
+<a href="#1286" id="1286">1286</a>
+<a href="#1287" id="1287">1287</a>
+<a href="#1288" id="1288">1288</a>
+<a href="#1289" id="1289">1289</a>
+<a href="#1290" id="1290">1290</a>
+<a href="#1291" id="1291">1291</a>
+<a href="#1292" id="1292">1292</a>
+<a href="#1293" id="1293">1293</a>
+<a href="#1294" id="1294">1294</a>
+<a href="#1295" id="1295">1295</a>
+<a href="#1296" id="1296">1296</a>
+<a href="#1297" id="1297">1297</a>
+<a href="#1298" id="1298">1298</a>
+<a href="#1299" id="1299">1299</a>
+<a href="#1300" id="1300">1300</a>
+<a href="#1301" id="1301">1301</a>
+<a href="#1302" id="1302">1302</a>
+<a href="#1303" id="1303">1303</a>
+<a href="#1304" id="1304">1304</a>
+<a href="#1305" id="1305">1305</a>
+<a href="#1306" id="1306">1306</a>
+<a href="#1307" id="1307">1307</a>
+<a href="#1308" id="1308">1308</a>
+<a href="#1309" id="1309">1309</a>
+<a href="#1310" id="1310">1310</a>
+<a href="#1311" id="1311">1311</a>
+<a href="#1312" id="1312">1312</a>
+<a href="#1313" id="1313">1313</a>
+<a href="#1314" id="1314">1314</a>
+<a href="#1315" id="1315">1315</a>
+<a href="#1316" id="1316">1316</a>
+<a href="#1317" id="1317">1317</a>
+<a href="#1318" id="1318">1318</a>
+<a href="#1319" id="1319">1319</a>
+<a href="#1320" id="1320">1320</a>
+<a href="#1321" id="1321">1321</a>
+<a href="#1322" id="1322">1322</a>
+<a href="#1323" id="1323">1323</a>
+<a href="#1324" id="1324">1324</a>
+<a href="#1325" id="1325">1325</a>
+<a href="#1326" id="1326">1326</a>
+<a href="#1327" id="1327">1327</a>
+<a href="#1328" id="1328">1328</a>
+<a href="#1329" id="1329">1329</a>
+<a href="#1330" id="1330">1330</a>
+<a href="#1331" id="1331">1331</a>
+<a href="#1332" id="1332">1332</a>
+<a href="#1333" id="1333">1333</a>
+<a href="#1334" id="1334">1334</a>
+<a href="#1335" id="1335">1335</a>
+<a href="#1336" id="1336">1336</a>
+<a href="#1337" id="1337">1337</a>
+<a href="#1338" id="1338">1338</a>
+<a href="#1339" id="1339">1339</a>
+<a href="#1340" id="1340">1340</a>
+<a href="#1341" id="1341">1341</a>
+<a href="#1342" id="1342">1342</a>
+<a href="#1343" id="1343">1343</a>
+<a href="#1344" id="1344">1344</a>
+<a href="#1345" id="1345">1345</a>
+<a href="#1346" id="1346">1346</a>
+<a href="#1347" id="1347">1347</a>
+<a href="#1348" id="1348">1348</a>
+<a href="#1349" id="1349">1349</a>
+<a href="#1350" id="1350">1350</a>
+<a href="#1351" id="1351">1351</a>
+<a href="#1352" id="1352">1352</a>
+<a href="#1353" id="1353">1353</a>
+<a href="#1354" id="1354">1354</a>
+<a href="#1355" id="1355">1355</a>
+<a href="#1356" id="1356">1356</a>
+<a href="#1357" id="1357">1357</a>
+<a href="#1358" id="1358">1358</a>
+<a href="#1359" id="1359">1359</a>
+<a href="#1360" id="1360">1360</a>
+<a href="#1361" id="1361">1361</a>
+<a href="#1362" id="1362">1362</a>
+<a href="#1363" id="1363">1363</a>
+<a href="#1364" id="1364">1364</a>
+<a href="#1365" id="1365">1365</a>
+<a href="#1366" id="1366">1366</a>
+<a href="#1367" id="1367">1367</a>
+<a href="#1368" id="1368">1368</a>
+<a href="#1369" id="1369">1369</a>
+<a href="#1370" id="1370">1370</a>
+<a href="#1371" id="1371">1371</a>
+<a href="#1372" id="1372">1372</a>
+<a href="#1373" id="1373">1373</a>
+<a href="#1374" id="1374">1374</a>
+<a href="#1375" id="1375">1375</a>
+<a href="#1376" id="1376">1376</a>
+<a href="#1377" id="1377">1377</a>
+<a href="#1378" id="1378">1378</a>
+<a href="#1379" id="1379">1379</a>
+<a href="#1380" id="1380">1380</a>
+<a href="#1381" id="1381">1381</a>
+<a href="#1382" id="1382">1382</a>
+<a href="#1383" id="1383">1383</a>
+<a href="#1384" id="1384">1384</a>
+<a href="#1385" id="1385">1385</a>
+<a href="#1386" id="1386">1386</a>
+<a href="#1387" id="1387">1387</a>
+<a href="#1388" id="1388">1388</a>
+<a href="#1389" id="1389">1389</a>
+<a href="#1390" id="1390">1390</a>
+<a href="#1391" id="1391">1391</a>
+<a href="#1392" id="1392">1392</a>
+<a href="#1393" id="1393">1393</a>
+<a href="#1394" id="1394">1394</a>
+<a href="#1395" id="1395">1395</a>
+<a href="#1396" id="1396">1396</a>
+<a href="#1397" id="1397">1397</a>
+<a href="#1398" id="1398">1398</a>
+<a href="#1399" id="1399">1399</a>
+<a href="#1400" id="1400">1400</a>
+<a href="#1401" id="1401">1401</a>
+<a href="#1402" id="1402">1402</a>
+<a href="#1403" id="1403">1403</a>
+<a href="#1404" id="1404">1404</a>
+<a href="#1405" id="1405">1405</a>
+<a href="#1406" id="1406">1406</a>
+<a href="#1407" id="1407">1407</a>
+<a href="#1408" id="1408">1408</a>
+<a href="#1409" id="1409">1409</a>
+<a href="#1410" id="1410">1410</a>
+<a href="#1411" id="1411">1411</a>
+<a href="#1412" id="1412">1412</a>
+<a href="#1413" id="1413">1413</a>
+<a href="#1414" id="1414">1414</a>
+<a href="#1415" id="1415">1415</a>
+<a href="#1416" id="1416">1416</a>
+<a href="#1417" id="1417">1417</a>
+<a href="#1418" id="1418">1418</a>
+<a href="#1419" id="1419">1419</a>
+<a href="#1420" id="1420">1420</a>
+<a href="#1421" id="1421">1421</a>
+<a href="#1422" id="1422">1422</a>
+<a href="#1423" id="1423">1423</a>
+<a href="#1424" id="1424">1424</a>
+<a href="#1425" id="1425">1425</a>
+<a href="#1426" id="1426">1426</a>
+<a href="#1427" id="1427">1427</a>
+<a href="#1428" id="1428">1428</a>
+<a href="#1429" id="1429">1429</a>
+<a href="#1430" id="1430">1430</a>
+<a href="#1431" id="1431">1431</a>
+<a href="#1432" id="1432">1432</a>
+<a href="#1433" id="1433">1433</a>
+<a href="#1434" id="1434">1434</a>
+<a href="#1435" id="1435">1435</a>
+<a href="#1436" id="1436">1436</a>
+<a href="#1437" id="1437">1437</a>
+<a href="#1438" id="1438">1438</a>
+<a href="#1439" id="1439">1439</a>
+<a href="#1440" id="1440">1440</a>
+<a href="#1441" id="1441">1441</a>
+<a href="#1442" id="1442">1442</a>
+<a href="#1443" id="1443">1443</a>
+<a href="#1444" id="1444">1444</a>
+<a href="#1445" id="1445">1445</a>
+<a href="#1446" id="1446">1446</a>
+<a href="#1447" id="1447">1447</a>
+<a href="#1448" id="1448">1448</a>
+<a href="#1449" id="1449">1449</a>
+<a href="#1450" id="1450">1450</a>
+<a href="#1451" id="1451">1451</a>
+<a href="#1452" id="1452">1452</a>
+<a href="#1453" id="1453">1453</a>
+<a href="#1454" id="1454">1454</a>
+<a href="#1455" id="1455">1455</a>
+<a href="#1456" id="1456">1456</a>
+<a href="#1457" id="1457">1457</a>
+<a href="#1458" id="1458">1458</a>
+<a href="#1459" id="1459">1459</a>
+<a href="#1460" id="1460">1460</a>
+<a href="#1461" id="1461">1461</a>
+<a href="#1462" id="1462">1462</a>
+<a href="#1463" id="1463">1463</a>
+<a href="#1464" id="1464">1464</a>
+<a href="#1465" id="1465">1465</a>
+<a href="#1466" id="1466">1466</a>
+<a href="#1467" id="1467">1467</a>
+<a href="#1468" id="1468">1468</a>
+<a href="#1469" id="1469">1469</a>
+<a href="#1470" id="1470">1470</a>
+<a href="#1471" id="1471">1471</a>
+<a href="#1472" id="1472">1472</a>
+<a href="#1473" id="1473">1473</a>
+<a href="#1474" id="1474">1474</a>
+<a href="#1475" id="1475">1475</a>
+<a href="#1476" id="1476">1476</a>
+<a href="#1477" id="1477">1477</a>
+<a href="#1478" id="1478">1478</a>
+<a href="#1479" id="1479">1479</a>
+<a href="#1480" id="1480">1480</a>
+<a href="#1481" id="1481">1481</a>
+<a href="#1482" id="1482">1482</a>
+<a href="#1483" id="1483">1483</a>
+<a href="#1484" id="1484">1484</a>
+<a href="#1485" id="1485">1485</a>
+<a href="#1486" id="1486">1486</a>
+<a href="#1487" id="1487">1487</a>
+<a href="#1488" id="1488">1488</a>
+<a href="#1489" id="1489">1489</a>
+<a href="#1490" id="1490">1490</a>
+<a href="#1491" id="1491">1491</a>
+<a href="#1492" id="1492">1492</a>
+<a href="#1493" id="1493">1493</a>
+<a href="#1494" id="1494">1494</a>
+<a href="#1495" id="1495">1495</a>
+<a href="#1496" id="1496">1496</a>
+<a href="#1497" id="1497">1497</a>
+<a href="#1498" id="1498">1498</a>
+<a href="#1499" id="1499">1499</a>
+<a href="#1500" id="1500">1500</a>
+<a href="#1501" id="1501">1501</a>
+<a href="#1502" id="1502">1502</a>
+<a href="#1503" id="1503">1503</a>
+<a href="#1504" id="1504">1504</a>
+<a href="#1505" id="1505">1505</a>
+<a href="#1506" id="1506">1506</a>
+<a href="#1507" id="1507">1507</a>
+<a href="#1508" id="1508">1508</a>
+<a href="#1509" id="1509">1509</a>
+<a href="#1510" id="1510">1510</a>
+<a href="#1511" id="1511">1511</a>
+<a href="#1512" id="1512">1512</a>
+<a href="#1513" id="1513">1513</a>
+<a href="#1514" id="1514">1514</a>
+<a href="#1515" id="1515">1515</a>
+<a href="#1516" id="1516">1516</a>
+<a href="#1517" id="1517">1517</a>
+<a href="#1518" id="1518">1518</a>
+<a href="#1519" id="1519">1519</a>
+<a href="#1520" id="1520">1520</a>
+<a href="#1521" id="1521">1521</a>
+<a href="#1522" id="1522">1522</a>
+<a href="#1523" id="1523">1523</a>
+<a href="#1524" id="1524">1524</a>
+<a href="#1525" id="1525">1525</a>
+<a href="#1526" id="1526">1526</a>
+<a href="#1527" id="1527">1527</a>
+<a href="#1528" id="1528">1528</a>
+<a href="#1529" id="1529">1529</a>
+<a href="#1530" id="1530">1530</a>
+<a href="#1531" id="1531">1531</a>
+<a href="#1532" id="1532">1532</a>
+<a href="#1533" id="1533">1533</a>
+<a href="#1534" id="1534">1534</a>
+<a href="#1535" id="1535">1535</a>
+<a href="#1536" id="1536">1536</a>
+<a href="#1537" id="1537">1537</a>
+<a href="#1538" id="1538">1538</a>
+<a href="#1539" id="1539">1539</a>
+<a href="#1540" id="1540">1540</a>
+<a href="#1541" id="1541">1541</a>
+<a href="#1542" id="1542">1542</a>
+<a href="#1543" id="1543">1543</a>
+<a href="#1544" id="1544">1544</a>
+<a href="#1545" id="1545">1545</a>
+<a href="#1546" id="1546">1546</a>
+<a href="#1547" id="1547">1547</a>
+<a href="#1548" id="1548">1548</a>
+<a href="#1549" id="1549">1549</a>
+<a href="#1550" id="1550">1550</a>
+<a href="#1551" id="1551">1551</a>
+<a href="#1552" id="1552">1552</a>
+<a href="#1553" id="1553">1553</a>
+<a href="#1554" id="1554">1554</a>
+<a href="#1555" id="1555">1555</a>
+<a href="#1556" id="1556">1556</a>
+<a href="#1557" id="1557">1557</a>
+<a href="#1558" id="1558">1558</a>
+<a href="#1559" id="1559">1559</a>
+<a href="#1560" id="1560">1560</a>
+<a href="#1561" id="1561">1561</a>
+<a href="#1562" id="1562">1562</a>
+<a href="#1563" id="1563">1563</a>
+<a href="#1564" id="1564">1564</a>
+<a href="#1565" id="1565">1565</a>
+<a href="#1566" id="1566">1566</a>
+<a href="#1567" id="1567">1567</a>
+<a href="#1568" id="1568">1568</a>
+<a href="#1569" id="1569">1569</a>
+<a href="#1570" id="1570">1570</a>
+<a href="#1571" id="1571">1571</a>
+<a href="#1572" id="1572">1572</a>
+<a href="#1573" id="1573">1573</a>
+<a href="#1574" id="1574">1574</a>
+<a href="#1575" id="1575">1575</a>
+<a href="#1576" id="1576">1576</a>
+<a href="#1577" id="1577">1577</a>
+<a href="#1578" id="1578">1578</a>
+<a href="#1579" id="1579">1579</a>
+<a href="#1580" id="1580">1580</a>
+<a href="#1581" id="1581">1581</a>
+<a href="#1582" id="1582">1582</a>
+<a href="#1583" id="1583">1583</a>
+<a href="#1584" id="1584">1584</a>
+<a href="#1585" id="1585">1585</a>
+<a href="#1586" id="1586">1586</a>
+<a href="#1587" id="1587">1587</a>
+<a href="#1588" id="1588">1588</a>
+<a href="#1589" id="1589">1589</a>
+<a href="#1590" id="1590">1590</a>
+<a href="#1591" id="1591">1591</a>
+<a href="#1592" id="1592">1592</a>
+<a href="#1593" id="1593">1593</a>
+<a href="#1594" id="1594">1594</a>
+<a href="#1595" id="1595">1595</a>
+<a href="#1596" id="1596">1596</a>
+<a href="#1597" id="1597">1597</a>
+<a href="#1598" id="1598">1598</a>
+<a href="#1599" id="1599">1599</a>
+<a href="#1600" id="1600">1600</a>
+<a href="#1601" id="1601">1601</a>
+<a href="#1602" id="1602">1602</a>
+<a href="#1603" id="1603">1603</a>
+<a href="#1604" id="1604">1604</a>
+<a href="#1605" id="1605">1605</a>
+<a href="#1606" id="1606">1606</a>
+<a href="#1607" id="1607">1607</a>
+<a href="#1608" id="1608">1608</a>
+<a href="#1609" id="1609">1609</a>
+<a href="#1610" id="1610">1610</a>
+<a href="#1611" id="1611">1611</a>
+<a href="#1612" id="1612">1612</a>
+<a href="#1613" id="1613">1613</a>
+<a href="#1614" id="1614">1614</a>
+<a href="#1615" id="1615">1615</a>
+<a href="#1616" id="1616">1616</a>
+<a href="#1617" id="1617">1617</a>
+<a href="#1618" id="1618">1618</a>
+<a href="#1619" id="1619">1619</a>
+<a href="#1620" id="1620">1620</a>
+<a href="#1621" id="1621">1621</a>
+<a href="#1622" id="1622">1622</a>
+<a href="#1623" id="1623">1623</a>
+<a href="#1624" id="1624">1624</a>
+<a href="#1625" id="1625">1625</a>
+<a href="#1626" id="1626">1626</a>
+<a href="#1627" id="1627">1627</a>
+<a href="#1628" id="1628">1628</a>
+<a href="#1629" id="1629">1629</a>
+<a href="#1630" id="1630">1630</a>
+<a href="#1631" id="1631">1631</a>
+<a href="#1632" id="1632">1632</a>
+<a href="#1633" id="1633">1633</a>
+<a href="#1634" id="1634">1634</a>
+<a href="#1635" id="1635">1635</a>
+<a href="#1636" id="1636">1636</a>
+<a href="#1637" id="1637">1637</a>
+<a href="#1638" id="1638">1638</a>
+<a href="#1639" id="1639">1639</a>
+<a href="#1640" id="1640">1640</a>
+<a href="#1641" id="1641">1641</a>
+<a href="#1642" id="1642">1642</a>
+<a href="#1643" id="1643">1643</a>
+<a href="#1644" id="1644">1644</a>
+<a href="#1645" id="1645">1645</a>
+<a href="#1646" id="1646">1646</a>
+<a href="#1647" id="1647">1647</a>
+<a href="#1648" id="1648">1648</a>
+<a href="#1649" id="1649">1649</a>
+<a href="#1650" id="1650">1650</a>
+<a href="#1651" id="1651">1651</a>
+<a href="#1652" id="1652">1652</a>
+<a href="#1653" id="1653">1653</a>
+<a href="#1654" id="1654">1654</a>
+<a href="#1655" id="1655">1655</a>
+<a href="#1656" id="1656">1656</a>
+<a href="#1657" id="1657">1657</a>
+<a href="#1658" id="1658">1658</a>
+<a href="#1659" id="1659">1659</a>
+<a href="#1660" id="1660">1660</a>
+<a href="#1661" id="1661">1661</a>
+<a href="#1662" id="1662">1662</a>
+<a href="#1663" id="1663">1663</a>
+<a href="#1664" id="1664">1664</a>
+<a href="#1665" id="1665">1665</a>
+<a href="#1666" id="1666">1666</a>
+<a href="#1667" id="1667">1667</a>
+<a href="#1668" id="1668">1668</a>
+<a href="#1669" id="1669">1669</a>
+<a href="#1670" id="1670">1670</a>
+<a href="#1671" id="1671">1671</a>
+<a href="#1672" id="1672">1672</a>
+<a href="#1673" id="1673">1673</a>
+<a href="#1674" id="1674">1674</a>
+<a href="#1675" id="1675">1675</a>
+<a href="#1676" id="1676">1676</a>
+<a href="#1677" id="1677">1677</a>
+<a href="#1678" id="1678">1678</a>
+<a href="#1679" id="1679">1679</a>
+<a href="#1680" id="1680">1680</a>
+<a href="#1681" id="1681">1681</a>
+<a href="#1682" id="1682">1682</a>
+<a href="#1683" id="1683">1683</a>
+<a href="#1684" id="1684">1684</a>
+<a href="#1685" id="1685">1685</a>
+<a href="#1686" id="1686">1686</a>
+<a href="#1687" id="1687">1687</a>
+<a href="#1688" id="1688">1688</a>
+<a href="#1689" id="1689">1689</a>
+<a href="#1690" id="1690">1690</a>
+<a href="#1691" id="1691">1691</a>
+<a href="#1692" id="1692">1692</a>
+<a href="#1693" id="1693">1693</a>
+<a href="#1694" id="1694">1694</a>
+<a href="#1695" id="1695">1695</a>
+<a href="#1696" id="1696">1696</a>
+<a href="#1697" id="1697">1697</a>
+<a href="#1698" id="1698">1698</a>
+<a href="#1699" id="1699">1699</a>
+<a href="#1700" id="1700">1700</a>
+<a href="#1701" id="1701">1701</a>
+<a href="#1702" id="1702">1702</a>
+<a href="#1703" id="1703">1703</a>
+<a href="#1704" id="1704">1704</a>
+<a href="#1705" id="1705">1705</a>
+<a href="#1706" id="1706">1706</a>
+<a href="#1707" id="1707">1707</a>
+<a href="#1708" id="1708">1708</a>
+<a href="#1709" id="1709">1709</a>
+<a href="#1710" id="1710">1710</a>
+<a href="#1711" id="1711">1711</a>
+<a href="#1712" id="1712">1712</a>
+<a href="#1713" id="1713">1713</a>
+<a href="#1714" id="1714">1714</a>
+<a href="#1715" id="1715">1715</a>
+<a href="#1716" id="1716">1716</a>
+<a href="#1717" id="1717">1717</a>
+<a href="#1718" id="1718">1718</a>
+<a href="#1719" id="1719">1719</a>
+<a href="#1720" id="1720">1720</a>
+<a href="#1721" id="1721">1721</a>
+<a href="#1722" id="1722">1722</a>
+<a href="#1723" id="1723">1723</a>
+<a href="#1724" id="1724">1724</a>
+<a href="#1725" id="1725">1725</a>
+<a href="#1726" id="1726">1726</a>
+<a href="#1727" id="1727">1727</a>
+<a href="#1728" id="1728">1728</a>
+<a href="#1729" id="1729">1729</a>
+<a href="#1730" id="1730">1730</a>
+<a href="#1731" id="1731">1731</a>
+<a href="#1732" id="1732">1732</a>
+<a href="#1733" id="1733">1733</a>
+<a href="#1734" id="1734">1734</a>
+<a href="#1735" id="1735">1735</a>
+<a href="#1736" id="1736">1736</a>
+<a href="#1737" id="1737">1737</a>
+<a href="#1738" id="1738">1738</a>
+<a href="#1739" id="1739">1739</a>
+<a href="#1740" id="1740">1740</a>
+<a href="#1741" id="1741">1741</a>
+<a href="#1742" id="1742">1742</a>
+<a href="#1743" id="1743">1743</a>
+<a href="#1744" id="1744">1744</a>
+<a href="#1745" id="1745">1745</a>
+<a href="#1746" id="1746">1746</a>
+<a href="#1747" id="1747">1747</a>
+<a href="#1748" id="1748">1748</a>
+<a href="#1749" id="1749">1749</a>
+<a href="#1750" id="1750">1750</a>
+<a href="#1751" id="1751">1751</a>
+<a href="#1752" id="1752">1752</a>
+<a href="#1753" id="1753">1753</a>
+<a href="#1754" id="1754">1754</a>
+<a href="#1755" id="1755">1755</a>
+<a href="#1756" id="1756">1756</a>
+<a href="#1757" id="1757">1757</a>
+<a href="#1758" id="1758">1758</a>
+<a href="#1759" id="1759">1759</a>
+<a href="#1760" id="1760">1760</a>
+<a href="#1761" id="1761">1761</a>
+<a href="#1762" id="1762">1762</a>
+<a href="#1763" id="1763">1763</a>
+<a href="#1764" id="1764">1764</a>
+<a href="#1765" id="1765">1765</a>
+<a href="#1766" id="1766">1766</a>
+<a href="#1767" id="1767">1767</a>
+<a href="#1768" id="1768">1768</a>
+<a href="#1769" id="1769">1769</a>
+<a href="#1770" id="1770">1770</a>
+<a href="#1771" id="1771">1771</a>
+<a href="#1772" id="1772">1772</a>
+<a href="#1773" id="1773">1773</a>
+<a href="#1774" id="1774">1774</a>
+<a href="#1775" id="1775">1775</a>
+<a href="#1776" id="1776">1776</a>
+<a href="#1777" id="1777">1777</a>
+<a href="#1778" id="1778">1778</a>
+<a href="#1779" id="1779">1779</a>
+<a href="#1780" id="1780">1780</a>
+<a href="#1781" id="1781">1781</a>
+<a href="#1782" id="1782">1782</a>
+<a href="#1783" id="1783">1783</a>
+<a href="#1784" id="1784">1784</a>
+<a href="#1785" id="1785">1785</a>
+<a href="#1786" id="1786">1786</a>
+<a href="#1787" id="1787">1787</a>
+<a href="#1788" id="1788">1788</a>
+<a href="#1789" id="1789">1789</a>
+<a href="#1790" id="1790">1790</a>
+<a href="#1791" id="1791">1791</a>
+<a href="#1792" id="1792">1792</a>
+<a href="#1793" id="1793">1793</a>
+<a href="#1794" id="1794">1794</a>
+<a href="#1795" id="1795">1795</a>
+<a href="#1796" id="1796">1796</a>
+<a href="#1797" id="1797">1797</a>
+<a href="#1798" id="1798">1798</a>
+<a href="#1799" id="1799">1799</a>
+<a href="#1800" id="1800">1800</a>
+<a href="#1801" id="1801">1801</a>
+<a href="#1802" id="1802">1802</a>
+<a href="#1803" id="1803">1803</a>
+<a href="#1804" id="1804">1804</a>
+<a href="#1805" id="1805">1805</a>
+<a href="#1806" id="1806">1806</a>
+<a href="#1807" id="1807">1807</a>
+<a href="#1808" id="1808">1808</a>
+<a href="#1809" id="1809">1809</a>
+<a href="#1810" id="1810">1810</a>
+<a href="#1811" id="1811">1811</a>
+<a href="#1812" id="1812">1812</a>
+<a href="#1813" id="1813">1813</a>
+<a href="#1814" id="1814">1814</a>
+<a href="#1815" id="1815">1815</a>
+<a href="#1816" id="1816">1816</a>
+<a href="#1817" id="1817">1817</a>
+<a href="#1818" id="1818">1818</a>
+<a href="#1819" id="1819">1819</a>
+<a href="#1820" id="1820">1820</a>
+<a href="#1821" id="1821">1821</a>
+<a href="#1822" id="1822">1822</a>
+<a href="#1823" id="1823">1823</a>
+<a href="#1824" id="1824">1824</a>
+<a href="#1825" id="1825">1825</a>
+<a href="#1826" id="1826">1826</a>
+<a href="#1827" id="1827">1827</a>
+<a href="#1828" id="1828">1828</a>
+<a href="#1829" id="1829">1829</a>
+<a href="#1830" id="1830">1830</a>
+<a href="#1831" id="1831">1831</a>
+<a href="#1832" id="1832">1832</a>
+<a href="#1833" id="1833">1833</a>
+<a href="#1834" id="1834">1834</a>
+<a href="#1835" id="1835">1835</a>
+<a href="#1836" id="1836">1836</a>
+<a href="#1837" id="1837">1837</a>
+<a href="#1838" id="1838">1838</a>
+<a href="#1839" id="1839">1839</a>
+<a href="#1840" id="1840">1840</a>
+<a href="#1841" id="1841">1841</a>
+<a href="#1842" id="1842">1842</a>
+<a href="#1843" id="1843">1843</a>
+<a href="#1844" id="1844">1844</a>
+<a href="#1845" id="1845">1845</a>
+<a href="#1846" id="1846">1846</a>
+<a href="#1847" id="1847">1847</a>
+<a href="#1848" id="1848">1848</a>
+<a href="#1849" id="1849">1849</a>
+<a href="#1850" id="1850">1850</a>
+<a href="#1851" id="1851">1851</a>
+<a href="#1852" id="1852">1852</a>
+<a href="#1853" id="1853">1853</a>
+<a href="#1854" id="1854">1854</a>
+<a href="#1855" id="1855">1855</a>
+<a href="#1856" id="1856">1856</a>
+<a href="#1857" id="1857">1857</a>
+<a href="#1858" id="1858">1858</a>
+<a href="#1859" id="1859">1859</a>
+<a href="#1860" id="1860">1860</a>
+<a href="#1861" id="1861">1861</a>
+<a href="#1862" id="1862">1862</a>
+<a href="#1863" id="1863">1863</a>
+<a href="#1864" id="1864">1864</a>
+<a href="#1865" id="1865">1865</a>
+<a href="#1866" id="1866">1866</a>
+<a href="#1867" id="1867">1867</a>
+<a href="#1868" id="1868">1868</a>
+<a href="#1869" id="1869">1869</a>
+<a href="#1870" id="1870">1870</a>
+<a href="#1871" id="1871">1871</a>
+<a href="#1872" id="1872">1872</a>
+<a href="#1873" id="1873">1873</a>
+<a href="#1874" id="1874">1874</a>
+<a href="#1875" id="1875">1875</a>
+<a href="#1876" id="1876">1876</a>
+<a href="#1877" id="1877">1877</a>
+<a href="#1878" id="1878">1878</a>
+<a href="#1879" id="1879">1879</a>
+<a href="#1880" id="1880">1880</a>
+<a href="#1881" id="1881">1881</a>
+<a href="#1882" id="1882">1882</a>
+<a href="#1883" id="1883">1883</a>
+<a href="#1884" id="1884">1884</a>
+<a href="#1885" id="1885">1885</a>
+<a href="#1886" id="1886">1886</a>
+<a href="#1887" id="1887">1887</a>
+<a href="#1888" id="1888">1888</a>
+<a href="#1889" id="1889">1889</a>
+<a href="#1890" id="1890">1890</a>
+<a href="#1891" id="1891">1891</a>
+<a href="#1892" id="1892">1892</a>
+<a href="#1893" id="1893">1893</a>
+<a href="#1894" id="1894">1894</a>
+<a href="#1895" id="1895">1895</a>
+<a href="#1896" id="1896">1896</a>
+<a href="#1897" id="1897">1897</a>
+<a href="#1898" id="1898">1898</a>
+<a href="#1899" id="1899">1899</a>
+<a href="#1900" id="1900">1900</a>
+<a href="#1901" id="1901">1901</a>
+<a href="#1902" id="1902">1902</a>
+<a href="#1903" id="1903">1903</a>
+<a href="#1904" id="1904">1904</a>
+<a href="#1905" id="1905">1905</a>
+</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
+// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
+//
+// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
+//
+// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
+// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// You may not use this file except in accordance with one or both of these
+// licenses.
+
+</span><span class="doccomment">//! Descriptor policy
+//!
+//! This module implements the logic to extract and represent the spending policies of a descriptor
+//! in a more human-readable format.
+//!
+//! This is an **EXPERIMENTAL** feature, API and other major changes are expected.
+//!
+//! ## Example
+//!
+//! ```
+//! # use std::sync::Arc;
+//! # use bdk_wallet::descriptor::*;
+//! # use bdk_wallet::wallet::signer::*;
+//! # use bdk_wallet::bitcoin::secp256k1::Secp256k1;
+//! use bdk_wallet::descriptor::policy::BuildSatisfaction;
+//! let secp = Secp256k1::new();
+//! let desc = "wsh(and_v(v:pk(cV3oCth6zxZ1UVsHLnGothsWNsaoxRhC6aeNi5VbSdFpwUkgkEci),or_d(pk(cVMTy7uebJgvFaSBwcgvwk8qn8xSLc97dKow4MBetjrrahZoimm2),older(12960))))";
+//!
+//! let (extended_desc, key_map) = ExtendedDescriptor::parse_descriptor(&secp, desc)?;
+//! println!("{:?}", extended_desc);
+//!
+//! let signers = Arc::new(SignersContainer::build(key_map, &extended_desc, &secp));
+//! let policy = extended_desc.extract_policy(&signers, BuildSatisfaction::None, &secp)?;
+//! println!("policy: {}", serde_json::to_string(&policy).unwrap());
+//! # Ok::<(), anyhow::Error>(())
+//! ```
+
+</span><span class="kw">use </span><span class="kw">crate</span>::collections::{BTreeMap, HashSet, VecDeque};
+<span class="kw">use </span>alloc::string::String;
+<span class="kw">use </span>alloc::vec::Vec;
+<span class="kw">use </span>core::cmp::max;
+
+<span class="kw">use </span>core::fmt;
+
+<span class="kw">use </span>serde::ser::SerializeMap;
+<span class="kw">use </span>serde::{Serialize, Serializer};
+
+<span class="kw">use </span>bitcoin::bip32::Fingerprint;
+<span class="kw">use </span>bitcoin::hashes::{hash160, ripemd160, sha256};
+<span class="kw">use </span>bitcoin::{absolute, key::XOnlyPublicKey, PublicKey, Sequence};
+
+<span class="kw">use </span>miniscript::descriptor::{
+ DescriptorPublicKey, ShInner, SinglePub, SinglePubKey, SortedMultiVec, WshInner,
+};
+<span class="kw">use </span>miniscript::hash256;
+<span class="kw">use </span>miniscript::{
+ Descriptor, Miniscript, Satisfier, ScriptContext, SigType, Terminal, ToPublicKey,
+};
+
+<span class="kw">use </span><span class="kw">crate</span>::descriptor::ExtractPolicy;
+<span class="kw">use </span><span class="kw">crate</span>::keys::ExtScriptContext;
+<span class="kw">use </span><span class="kw">crate</span>::wallet::signer::{SignerId, SignersContainer};
+<span class="kw">use </span><span class="kw">crate</span>::wallet::utils::{After, Older, SecpCtx};
+
+<span class="kw">use </span><span class="kw">super</span>::checksum::calc_checksum;
+<span class="kw">use </span><span class="kw">super</span>::error::Error;
+<span class="kw">use </span><span class="kw">super</span>::XKeyUtils;
+<span class="kw">use </span>bitcoin::psbt::{<span class="self">self</span>, Psbt};
+<span class="kw">use </span>miniscript::psbt::PsbtInputSatisfier;
+
+<span class="doccomment">/// A unique identifier for a key
+</span><span class="attr">#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize)]
+#[serde(rename_all = <span class="string">"snake_case"</span>)]
+</span><span class="kw">pub enum </span>PkOrF {
+ <span class="doccomment">/// A legacy public key
+ </span>Pubkey(PublicKey),
+ <span class="doccomment">/// A x-only public key
+ </span>XOnlyPubkey(XOnlyPublicKey),
+ <span class="doccomment">/// An extended key fingerprint
+ </span>Fingerprint(Fingerprint),
+}
+
+<span class="kw">impl </span>PkOrF {
+ <span class="kw">fn </span>from_key(k: <span class="kw-2">&</span>DescriptorPublicKey, secp: <span class="kw-2">&</span>SecpCtx) -> <span class="self">Self </span>{
+ <span class="kw">match </span>k {
+ DescriptorPublicKey::Single(SinglePub {
+ key: SinglePubKey::FullKey(pk),
+ ..
+ }) => PkOrF::Pubkey(<span class="kw-2">*</span>pk),
+ DescriptorPublicKey::Single(SinglePub {
+ key: SinglePubKey::XOnly(pk),
+ ..
+ }) => PkOrF::XOnlyPubkey(<span class="kw-2">*</span>pk),
+ DescriptorPublicKey::XPub(xpub) => PkOrF::Fingerprint(xpub.root_fingerprint(secp)),
+ DescriptorPublicKey::MultiXPub(multi) => {
+ PkOrF::Fingerprint(multi.root_fingerprint(secp))
+ }
+ }
+ }
+}
+
+<span class="doccomment">/// An item that needs to be satisfied
+</span><span class="attr">#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
+#[serde(tag = <span class="string">"type"</span>, rename_all = <span class="string">"UPPERCASE"</span>)]
+</span><span class="kw">pub enum </span>SatisfiableItem {
+ <span class="comment">// Leaves
+ </span><span class="doccomment">/// ECDSA Signature for a raw public key
+ </span>EcdsaSignature(PkOrF),
+ <span class="doccomment">/// Schnorr Signature for a raw public key
+ </span>SchnorrSignature(PkOrF),
+ <span class="doccomment">/// SHA256 preimage hash
+ </span>Sha256Preimage {
+ <span class="doccomment">/// The digest value
+ </span>hash: sha256::Hash,
+ },
+ <span class="doccomment">/// Double SHA256 preimage hash
+ </span>Hash256Preimage {
+ <span class="doccomment">/// The digest value
+ </span>hash: hash256::Hash,
+ },
+ <span class="doccomment">/// RIPEMD160 preimage hash
+ </span>Ripemd160Preimage {
+ <span class="doccomment">/// The digest value
+ </span>hash: ripemd160::Hash,
+ },
+ <span class="doccomment">/// SHA256 then RIPEMD160 preimage hash
+ </span>Hash160Preimage {
+ <span class="doccomment">/// The digest value
+ </span>hash: hash160::Hash,
+ },
+ <span class="doccomment">/// Absolute timeclock timestamp
+ </span>AbsoluteTimelock {
+ <span class="doccomment">/// The timelock value
+ </span>value: absolute::LockTime,
+ },
+ <span class="doccomment">/// Relative timelock locktime
+ </span>RelativeTimelock {
+ <span class="doccomment">/// The timelock value
+ </span>value: Sequence,
+ },
+ <span class="doccomment">/// Multi-signature public keys with threshold count
+ </span>Multisig {
+ <span class="doccomment">/// The raw public key or extended key fingerprint
+ </span>keys: Vec<PkOrF>,
+ <span class="doccomment">/// The required threshold count
+ </span>threshold: usize,
+ },
+
+ <span class="comment">// Complex item
+ </span><span class="doccomment">/// Threshold items with threshold count
+ </span>Thresh {
+ <span class="doccomment">/// The policy items
+ </span>items: Vec<Policy>,
+ <span class="doccomment">/// The required threshold count
+ </span>threshold: usize,
+ },
+}
+
+<span class="kw">impl </span>SatisfiableItem {
+ <span class="doccomment">/// Returns whether the [`SatisfiableItem`] is a leaf item
+ </span><span class="kw">pub fn </span>is_leaf(<span class="kw-2">&</span><span class="self">self</span>) -> bool {
+ !<span class="macro">matches!</span>(
+ <span class="self">self</span>,
+ SatisfiableItem::Thresh {
+ items: <span class="kw">_</span>,
+ threshold: <span class="kw">_</span>,
+ }
+ )
+ }
+
+ <span class="doccomment">/// Returns a unique id for the [`SatisfiableItem`]
+ </span><span class="kw">pub fn </span>id(<span class="kw-2">&</span><span class="self">self</span>) -> String {
+ calc_checksum(<span class="kw-2">&</span>serde_json::to_string(<span class="self">self</span>).expect(<span class="string">"Failed to serialize a SatisfiableItem"</span>))
+ .expect(<span class="string">"Failed to compute a SatisfiableItem id"</span>)
+ }
+}
+
+<span class="kw">fn </span>combinations(vec: <span class="kw-2">&</span>[usize], size: usize) -> Vec<Vec<usize>> {
+ <span class="macro">assert!</span>(vec.len() >= size);
+
+ <span class="kw">let </span><span class="kw-2">mut </span>answer = Vec::new();
+
+ <span class="kw">let </span><span class="kw-2">mut </span>queue = VecDeque::new();
+ <span class="kw">for </span>(index, val) <span class="kw">in </span>vec.iter().enumerate() {
+ <span class="kw">let </span><span class="kw-2">mut </span>new_vec = Vec::with_capacity(size);
+ new_vec.push(<span class="kw-2">*</span>val);
+ queue.push_back((index, new_vec));
+ }
+
+ <span class="kw">while let </span><span class="prelude-val">Some</span>((index, vals)) = queue.pop_front() {
+ <span class="kw">if </span>vals.len() >= size {
+ answer.push(vals);
+ } <span class="kw">else </span>{
+ <span class="kw">for </span>(new_index, val) <span class="kw">in </span>vec.iter().skip(index + <span class="number">1</span>).enumerate() {
+ <span class="kw">let </span><span class="kw-2">mut </span>cloned = vals.clone();
+ cloned.push(<span class="kw-2">*</span>val);
+ queue.push_front((new_index, cloned));
+ }
+ }
+ }
+
+ answer
+}
+
+<span class="kw">fn </span>mix<T: Clone>(vec: Vec<Vec<T>>) -> Vec<Vec<T>> {
+ <span class="kw">if </span>vec.is_empty() || vec.iter().any(Vec::is_empty) {
+ <span class="kw">return </span><span class="macro">vec!</span>[];
+ }
+
+ <span class="kw">let </span><span class="kw-2">mut </span>answer = Vec::new();
+ <span class="kw">let </span>size = vec.len();
+
+ <span class="kw">let </span><span class="kw-2">mut </span>queue = VecDeque::new();
+ <span class="kw">for </span>i <span class="kw">in </span><span class="kw-2">&</span>vec[<span class="number">0</span>] {
+ <span class="kw">let </span><span class="kw-2">mut </span>new_vec = Vec::with_capacity(size);
+ new_vec.push(i.clone());
+ queue.push_back(new_vec);
+ }
+
+ <span class="kw">while let </span><span class="prelude-val">Some</span>(vals) = queue.pop_front() {
+ <span class="kw">if </span>vals.len() >= size {
+ answer.push(vals);
+ } <span class="kw">else </span>{
+ <span class="kw">let </span>level = vals.len();
+ <span class="kw">for </span>i <span class="kw">in </span><span class="kw-2">&</span>vec[level] {
+ <span class="kw">let </span><span class="kw-2">mut </span>cloned = vals.clone();
+ cloned.push(i.clone());
+ queue.push_front(cloned);
+ }
+ }
+ }
+
+ answer
+}
+
+<span class="doccomment">/// Type for a map of sets of [`Condition`] items keyed by each set's index
+</span><span class="kw">pub type </span>ConditionMap = BTreeMap<usize, HashSet<Condition>>;
+<span class="doccomment">/// Type for a map of folded sets of [`Condition`] items keyed by a vector of the combined set's indexes
+</span><span class="kw">pub type </span>FoldedConditionMap = BTreeMap<Vec<usize>, HashSet<Condition>>;
+
+<span class="kw">fn </span>serialize_folded_cond_map<S>(
+ input_map: <span class="kw-2">&</span>FoldedConditionMap,
+ serializer: S,
+) -> <span class="prelude-ty">Result</span><S::Ok, S::Error>
+<span class="kw">where
+ </span>S: Serializer,
+{
+ <span class="kw">let </span><span class="kw-2">mut </span>map = serializer.serialize_map(<span class="prelude-val">Some</span>(input_map.len()))<span class="question-mark">?</span>;
+ <span class="kw">for </span>(k, v) <span class="kw">in </span>input_map {
+ <span class="kw">let </span>k_string = <span class="macro">format!</span>(<span class="string">"{:?}"</span>, k);
+ map.serialize_entry(<span class="kw-2">&</span>k_string, v)<span class="question-mark">?</span>;
+ }
+ map.end()
+}
+
+<span class="doccomment">/// Represent if and how much a policy item is satisfied by the wallet's descriptor
+</span><span class="attr">#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
+#[serde(tag = <span class="string">"type"</span>, rename_all = <span class="string">"UPPERCASE"</span>)]
+</span><span class="kw">pub enum </span>Satisfaction {
+ <span class="doccomment">/// Only a partial satisfaction of some kind of threshold policy
+ </span>Partial {
+ <span class="doccomment">/// Total number of items
+ </span>n: usize,
+ <span class="doccomment">/// Threshold
+ </span>m: usize,
+ <span class="doccomment">/// The items that can be satisfied by the descriptor or are satisfied in the PSBT
+ </span>items: Vec<usize>,
+ <span class="attr">#[serde(skip_serializing_if = <span class="string">"Option::is_none"</span>)]
+ </span><span class="doccomment">/// Whether the items are sorted in lexicographic order (used by `sortedmulti`)
+ </span>sorted: <span class="prelude-ty">Option</span><bool>,
+ <span class="attr">#[serde(skip_serializing_if = <span class="string">"BTreeMap::is_empty"</span>)]
+ </span><span class="doccomment">/// Extra conditions that also need to be satisfied
+ </span>conditions: ConditionMap,
+ },
+ <span class="doccomment">/// Can reach the threshold of some kind of threshold policy
+ </span>PartialComplete {
+ <span class="doccomment">/// Total number of items
+ </span>n: usize,
+ <span class="doccomment">/// Threshold
+ </span>m: usize,
+ <span class="doccomment">/// The items that can be satisfied by the descriptor
+ </span>items: Vec<usize>,
+ <span class="attr">#[serde(skip_serializing_if = <span class="string">"Option::is_none"</span>)]
+ </span><span class="doccomment">/// Whether the items are sorted in lexicographic order (used by `sortedmulti`)
+ </span>sorted: <span class="prelude-ty">Option</span><bool>,
+ <span class="attr">#[serde(
+ serialize_with = <span class="string">"serialize_folded_cond_map"</span>,
+ skip_serializing_if = <span class="string">"BTreeMap::is_empty"
+ </span>)]
+ </span><span class="doccomment">/// Extra conditions that also need to be satisfied
+ </span>conditions: FoldedConditionMap,
+ },
+
+ <span class="doccomment">/// Can satisfy the policy item
+ </span>Complete {
+ <span class="doccomment">/// Extra conditions that also need to be satisfied
+ </span>condition: Condition,
+ },
+ <span class="doccomment">/// Cannot satisfy or contribute to the policy item
+ </span><span class="prelude-val">None</span>,
+}
+
+<span class="kw">impl </span>Satisfaction {
+ <span class="doccomment">/// Returns whether the [`Satisfaction`] is a leaf item
+ </span><span class="kw">pub fn </span>is_leaf(<span class="kw-2">&</span><span class="self">self</span>) -> bool {
+ <span class="kw">match </span><span class="self">self </span>{
+ Satisfaction::None | Satisfaction::Complete { .. } => <span class="bool-val">true</span>,
+ Satisfaction::PartialComplete { .. } | Satisfaction::Partial { .. } => <span class="bool-val">false</span>,
+ }
+ }
+
+ <span class="comment">// add `inner` as one of self's partial items. this only makes sense on partials
+ </span><span class="kw">fn </span>add(<span class="kw-2">&mut </span><span class="self">self</span>, inner: <span class="kw-2">&</span>Satisfaction, inner_index: usize) -> <span class="prelude-ty">Result</span><(), PolicyError> {
+ <span class="kw">match </span><span class="self">self </span>{
+ Satisfaction::None | Satisfaction::Complete { .. } => <span class="prelude-val">Err</span>(PolicyError::AddOnLeaf),
+ Satisfaction::PartialComplete { .. } => <span class="prelude-val">Err</span>(PolicyError::AddOnPartialComplete),
+ Satisfaction::Partial {
+ n,
+ <span class="kw-2">ref mut </span>conditions,
+ <span class="kw-2">ref mut </span>items,
+ ..
+ } => {
+ <span class="kw">if </span>inner_index >= <span class="kw-2">*</span>n || items.contains(<span class="kw-2">&</span>inner_index) {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(PolicyError::IndexOutOfRange(inner_index));
+ }
+
+ <span class="kw">match </span>inner {
+ <span class="comment">// not relevant if not completed yet
+ </span>Satisfaction::None | Satisfaction::Partial { .. } => <span class="kw">return </span><span class="prelude-val">Ok</span>(()),
+ Satisfaction::Complete { condition } => {
+ items.push(inner_index);
+ conditions.insert(inner_index, <span class="macro">vec!</span>[<span class="kw-2">*</span>condition].into_iter().collect());
+ }
+ Satisfaction::PartialComplete {
+ conditions: other_conditions,
+ ..
+ } => {
+ items.push(inner_index);
+ <span class="kw">let </span>conditions_set = other_conditions
+ .values()
+ .fold(HashSet::new(), |set, i| set.union(i).cloned().collect());
+ conditions.insert(inner_index, conditions_set);
+ }
+ }
+
+ <span class="prelude-val">Ok</span>(())
+ }
+ }
+ }
+
+ <span class="kw">fn </span>finalize(<span class="kw-2">&mut </span><span class="self">self</span>) {
+ <span class="comment">// if partial try to bump it to a partialcomplete
+ </span><span class="kw">if let </span>Satisfaction::Partial {
+ n,
+ m,
+ items,
+ conditions,
+ sorted,
+ } = <span class="self">self
+ </span>{
+ <span class="kw">if </span>items.len() >= <span class="kw-2">*</span>m {
+ <span class="kw">let </span><span class="kw-2">mut </span>map = BTreeMap::new();
+ <span class="kw">let </span>indexes = combinations(items, <span class="kw-2">*</span>m);
+ <span class="comment">// `indexes` at this point is a Vec<Vec<usize>>, with the "n choose k" of items (m of n)
+ </span>indexes
+ .into_iter()
+ <span class="comment">// .inspect(|x| println!("--- orig --- {:?}", x))
+ // we map each of the combinations of elements into a tuple of ([chosen items], [conditions]). unfortunately, those items have potentially more than one
+ // condition (think about ORs), so we also use `mix` to expand those, i.e. [[0], [1, 2]] becomes [[0, 1], [0, 2]]. This is necessary to make sure that we
+ // consider every possible options and check whether or not they are compatible.
+ // since this step can turn one item of the iterator into multiple ones, we use `flat_map()` to expand them out
+ </span>.flat_map(|i_vec| {
+ mix(i_vec
+ .iter()
+ .map(|i| {
+ conditions
+ .get(i)
+ .map(|set| set.clone().into_iter().collect())
+ .unwrap_or_default()
+ })
+ .collect())
+ .into_iter()
+ .map(|x| (i_vec.clone(), x))
+ .collect::<Vec<(Vec<usize>, Vec<Condition>)>>()
+ })
+ <span class="comment">// .inspect(|x| println!("flat {:?}", x))
+ // try to fold all the conditions for this specific combination of indexes/options. if they are not compatible, try_fold will be Err
+ </span>.map(|(key, val)| {
+ (
+ key,
+ val.into_iter()
+ .try_fold(Condition::default(), |acc, v| acc.merge(<span class="kw-2">&</span>v)),
+ )
+ })
+ <span class="comment">// .inspect(|x| println!("try_fold {:?}", x))
+ // filter out all the incompatible combinations
+ </span>.filter(|(<span class="kw">_</span>, val)| val.is_ok())
+ <span class="comment">// .inspect(|x| println!("filter {:?}", x))
+ // push them into the map
+ </span>.for_each(|(key, val)| {
+ map.entry(key)
+ .or_insert_with(HashSet::new)
+ .insert(val.unwrap());
+ });
+ <span class="comment">// TODO: if the map is empty, the conditions are not compatible, return an error?
+ </span><span class="kw-2">*</span><span class="self">self </span>= Satisfaction::PartialComplete {
+ n: <span class="kw-2">*</span>n,
+ m: <span class="kw-2">*</span>m,
+ items: items.clone(),
+ conditions: map,
+ sorted: <span class="kw-2">*</span>sorted,
+ };
+ }
+ }
+ }
+}
+
+<span class="kw">impl </span>From<bool> <span class="kw">for </span>Satisfaction {
+ <span class="kw">fn </span>from(other: bool) -> <span class="self">Self </span>{
+ <span class="kw">if </span>other {
+ Satisfaction::Complete {
+ condition: Default::default(),
+ }
+ } <span class="kw">else </span>{
+ Satisfaction::None
+ }
+ }
+}
+
+<span class="doccomment">/// Descriptor spending policy
+</span><span class="attr">#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
+</span><span class="kw">pub struct </span>Policy {
+ <span class="doccomment">/// Identifier for this policy node
+ </span><span class="kw">pub </span>id: String,
+
+ <span class="doccomment">/// Type of this policy node
+ </span><span class="attr">#[serde(flatten)]
+ </span><span class="kw">pub </span>item: SatisfiableItem,
+ <span class="doccomment">/// How much a given PSBT already satisfies this policy node in terms of signatures
+ </span><span class="kw">pub </span>satisfaction: Satisfaction,
+ <span class="doccomment">/// How the wallet's descriptor can satisfy this policy node
+ </span><span class="kw">pub </span>contribution: Satisfaction,
+}
+
+<span class="doccomment">/// An extra condition that must be satisfied but that is out of control of the user
+/// TODO: use `bitcoin::LockTime` and `bitcoin::Sequence`
+</span><span class="attr">#[derive(Hash, Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Default, Serialize)]
+</span><span class="kw">pub struct </span>Condition {
+ <span class="doccomment">/// Optional CheckSequenceVerify condition
+ </span><span class="attr">#[serde(skip_serializing_if = <span class="string">"Option::is_none"</span>)]
+ </span><span class="kw">pub </span>csv: <span class="prelude-ty">Option</span><Sequence>,
+ <span class="doccomment">/// Optional timelock condition
+ </span><span class="attr">#[serde(skip_serializing_if = <span class="string">"Option::is_none"</span>)]
+ </span><span class="kw">pub </span>timelock: <span class="prelude-ty">Option</span><absolute::LockTime>,
+}
+
+<span class="kw">impl </span>Condition {
+ <span class="kw">fn </span>merge_nlocktime(
+ a: absolute::LockTime,
+ b: absolute::LockTime,
+ ) -> <span class="prelude-ty">Result</span><absolute::LockTime, PolicyError> {
+ <span class="kw">if </span>!a.is_same_unit(b) {
+ <span class="prelude-val">Err</span>(PolicyError::MixedTimelockUnits)
+ } <span class="kw">else if </span>a > b {
+ <span class="prelude-val">Ok</span>(a)
+ } <span class="kw">else </span>{
+ <span class="prelude-val">Ok</span>(b)
+ }
+ }
+
+ <span class="kw">fn </span>merge_nsequence(a: Sequence, b: Sequence) -> <span class="prelude-ty">Result</span><Sequence, PolicyError> {
+ <span class="kw">if </span>a.is_time_locked() != b.is_time_locked() {
+ <span class="prelude-val">Err</span>(PolicyError::MixedTimelockUnits)
+ } <span class="kw">else </span>{
+ <span class="prelude-val">Ok</span>(max(a, b))
+ }
+ }
+
+ <span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>merge(<span class="kw-2">mut </span><span class="self">self</span>, other: <span class="kw-2">&</span>Condition) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>, PolicyError> {
+ <span class="kw">match </span>(<span class="self">self</span>.csv, other.csv) {
+ (<span class="prelude-val">Some</span>(a), <span class="prelude-val">Some</span>(b)) => <span class="self">self</span>.csv = <span class="prelude-val">Some</span>(<span class="self">Self</span>::merge_nsequence(a, b)<span class="question-mark">?</span>),
+ (<span class="prelude-val">None</span>, any) => <span class="self">self</span>.csv = any,
+ <span class="kw">_ </span>=> {}
+ }
+
+ <span class="kw">match </span>(<span class="self">self</span>.timelock, other.timelock) {
+ (<span class="prelude-val">Some</span>(a), <span class="prelude-val">Some</span>(b)) => <span class="self">self</span>.timelock = <span class="prelude-val">Some</span>(<span class="self">Self</span>::merge_nlocktime(a, b)<span class="question-mark">?</span>),
+ (<span class="prelude-val">None</span>, any) => <span class="self">self</span>.timelock = any,
+ <span class="kw">_ </span>=> {}
+ }
+
+ <span class="prelude-val">Ok</span>(<span class="self">self</span>)
+ }
+
+ <span class="doccomment">/// Returns `true` if there are no extra conditions to verify
+ </span><span class="kw">pub fn </span>is_null(<span class="kw-2">&</span><span class="self">self</span>) -> bool {
+ <span class="self">self</span>.csv.is_none() && <span class="self">self</span>.timelock.is_none()
+ }
+}
+
+<span class="doccomment">/// Errors that can happen while extracting and manipulating policies
+</span><span class="attr">#[derive(Debug, PartialEq, Eq)]
+</span><span class="kw">pub enum </span>PolicyError {
+ <span class="doccomment">/// Not enough items are selected to satisfy a [`SatisfiableItem::Thresh`] or a [`SatisfiableItem::Multisig`]
+ </span>NotEnoughItemsSelected(String),
+ <span class="doccomment">/// Index out of range for an item to satisfy a [`SatisfiableItem::Thresh`] or a [`SatisfiableItem::Multisig`]
+ </span>IndexOutOfRange(usize),
+ <span class="doccomment">/// Can not add to an item that is [`Satisfaction::None`] or [`Satisfaction::Complete`]
+ </span>AddOnLeaf,
+ <span class="doccomment">/// Can not add to an item that is [`Satisfaction::PartialComplete`]
+ </span>AddOnPartialComplete,
+ <span class="doccomment">/// Can not merge CSV or timelock values unless both are less than or both are equal or greater than 500_000_000
+ </span>MixedTimelockUnits,
+ <span class="doccomment">/// Incompatible conditions (not currently used)
+ </span>IncompatibleConditions,
+}
+
+<span class="kw">impl </span>fmt::Display <span class="kw">for </span>PolicyError {
+ <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
+ <span class="kw">match </span><span class="self">self </span>{
+ <span class="self">Self</span>::NotEnoughItemsSelected(err) => <span class="macro">write!</span>(f, <span class="string">"Not enough items selected: {}"</span>, err),
+ <span class="self">Self</span>::IndexOutOfRange(index) => <span class="macro">write!</span>(f, <span class="string">"Index out of range: {}"</span>, index),
+ <span class="self">Self</span>::AddOnLeaf => <span class="macro">write!</span>(f, <span class="string">"Add on leaf"</span>),
+ <span class="self">Self</span>::AddOnPartialComplete => <span class="macro">write!</span>(f, <span class="string">"Add on partial complete"</span>),
+ <span class="self">Self</span>::MixedTimelockUnits => <span class="macro">write!</span>(f, <span class="string">"Mixed timelock units"</span>),
+ <span class="self">Self</span>::IncompatibleConditions => <span class="macro">write!</span>(f, <span class="string">"Incompatible conditions"</span>),
+ }
+ }
+}
+
+<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
+</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>PolicyError {}
+
+<span class="kw">impl </span>Policy {
+ <span class="kw">fn </span>new(item: SatisfiableItem) -> <span class="self">Self </span>{
+ Policy {
+ id: item.id(),
+ item,
+ satisfaction: Satisfaction::None,
+ contribution: Satisfaction::None,
+ }
+ }
+
+ <span class="kw">fn </span>make_and(a: <span class="prelude-ty">Option</span><Policy>, b: <span class="prelude-ty">Option</span><Policy>) -> <span class="prelude-ty">Result</span><<span class="prelude-ty">Option</span><Policy>, PolicyError> {
+ <span class="kw">match </span>(a, b) {
+ (<span class="prelude-val">None</span>, <span class="prelude-val">None</span>) => <span class="prelude-val">Ok</span>(<span class="prelude-val">None</span>),
+ (<span class="prelude-val">Some</span>(x), <span class="prelude-val">None</span>) | (<span class="prelude-val">None</span>, <span class="prelude-val">Some</span>(x)) => <span class="prelude-val">Ok</span>(<span class="prelude-val">Some</span>(x)),
+ (<span class="prelude-val">Some</span>(a), <span class="prelude-val">Some</span>(b)) => <span class="self">Self</span>::make_thresh(<span class="macro">vec!</span>[a, b], <span class="number">2</span>),
+ }
+ }
+
+ <span class="kw">fn </span>make_or(a: <span class="prelude-ty">Option</span><Policy>, b: <span class="prelude-ty">Option</span><Policy>) -> <span class="prelude-ty">Result</span><<span class="prelude-ty">Option</span><Policy>, PolicyError> {
+ <span class="kw">match </span>(a, b) {
+ (<span class="prelude-val">None</span>, <span class="prelude-val">None</span>) => <span class="prelude-val">Ok</span>(<span class="prelude-val">None</span>),
+ (<span class="prelude-val">Some</span>(x), <span class="prelude-val">None</span>) | (<span class="prelude-val">None</span>, <span class="prelude-val">Some</span>(x)) => <span class="prelude-val">Ok</span>(<span class="prelude-val">Some</span>(x)),
+ (<span class="prelude-val">Some</span>(a), <span class="prelude-val">Some</span>(b)) => <span class="self">Self</span>::make_thresh(<span class="macro">vec!</span>[a, b], <span class="number">1</span>),
+ }
+ }
+
+ <span class="kw">fn </span>make_thresh(items: Vec<Policy>, threshold: usize) -> <span class="prelude-ty">Result</span><<span class="prelude-ty">Option</span><Policy>, PolicyError> {
+ <span class="kw">if </span>threshold == <span class="number">0 </span>{
+ <span class="kw">return </span><span class="prelude-val">Ok</span>(<span class="prelude-val">None</span>);
+ }
+
+ <span class="kw">let </span><span class="kw-2">mut </span>contribution = Satisfaction::Partial {
+ n: items.len(),
+ m: threshold,
+ items: <span class="macro">vec!</span>[],
+ conditions: Default::default(),
+ sorted: <span class="prelude-val">None</span>,
+ };
+ <span class="kw">let </span><span class="kw-2">mut </span>satisfaction = contribution.clone();
+ <span class="kw">for </span>(index, item) <span class="kw">in </span>items.iter().enumerate() {
+ contribution.add(<span class="kw-2">&</span>item.contribution, index)<span class="question-mark">?</span>;
+ satisfaction.add(<span class="kw-2">&</span>item.satisfaction, index)<span class="question-mark">?</span>;
+ }
+
+ contribution.finalize();
+ satisfaction.finalize();
+
+ <span class="kw">let </span><span class="kw-2">mut </span>policy: Policy = SatisfiableItem::Thresh { items, threshold }.into();
+ policy.contribution = contribution;
+ policy.satisfaction = satisfaction;
+
+ <span class="prelude-val">Ok</span>(<span class="prelude-val">Some</span>(policy))
+ }
+
+ <span class="kw">fn </span>make_multisig<Ctx: ScriptContext + <span class="lifetime">'static</span>>(
+ keys: <span class="kw-2">&</span>[DescriptorPublicKey],
+ signers: <span class="kw-2">&</span>SignersContainer,
+ build_sat: BuildSatisfaction,
+ threshold: usize,
+ sorted: bool,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> <span class="prelude-ty">Result</span><<span class="prelude-ty">Option</span><Policy>, PolicyError> {
+ <span class="kw">if </span>threshold == <span class="number">0 </span>{
+ <span class="kw">return </span><span class="prelude-val">Ok</span>(<span class="prelude-val">None</span>);
+ }
+
+ <span class="kw">let </span>parsed_keys = keys.iter().map(|k| PkOrF::from_key(k, secp)).collect();
+
+ <span class="kw">let </span><span class="kw-2">mut </span>contribution = Satisfaction::Partial {
+ n: keys.len(),
+ m: threshold,
+ items: <span class="macro">vec!</span>[],
+ conditions: Default::default(),
+ sorted: <span class="prelude-val">Some</span>(sorted),
+ };
+ <span class="kw">let </span><span class="kw-2">mut </span>satisfaction = contribution.clone();
+
+ <span class="kw">for </span>(index, key) <span class="kw">in </span>keys.iter().enumerate() {
+ <span class="kw">if </span>signers.find(signer_id(key, secp)).is_some() {
+ contribution.add(
+ <span class="kw-2">&</span>Satisfaction::Complete {
+ condition: Default::default(),
+ },
+ index,
+ )<span class="question-mark">?</span>;
+ }
+
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(psbt) = build_sat.psbt() {
+ <span class="kw">if </span>Ctx::find_signature(psbt, key, secp) {
+ satisfaction.add(
+ <span class="kw-2">&</span>Satisfaction::Complete {
+ condition: Default::default(),
+ },
+ index,
+ )<span class="question-mark">?</span>;
+ }
+ }
+ }
+ satisfaction.finalize();
+ contribution.finalize();
+
+ <span class="kw">let </span><span class="kw-2">mut </span>policy: Policy = SatisfiableItem::Multisig {
+ keys: parsed_keys,
+ threshold,
+ }
+ .into();
+ policy.contribution = contribution;
+ policy.satisfaction = satisfaction;
+
+ <span class="prelude-val">Ok</span>(<span class="prelude-val">Some</span>(policy))
+ }
+
+ <span class="doccomment">/// Return whether or not a specific path in the policy tree is required to unambiguously
+ /// create a transaction
+ ///
+ /// What this means is that for some spending policies the user should select which paths in
+ /// the tree it intends to satisfy while signing, because the transaction must be created differently based
+ /// on that.
+ </span><span class="kw">pub fn </span>requires_path(<span class="kw-2">&</span><span class="self">self</span>) -> bool {
+ <span class="self">self</span>.get_condition(<span class="kw-2">&</span>BTreeMap::new()).is_err()
+ }
+
+ <span class="doccomment">/// Return the conditions that are set by the spending policy for a given path in the
+ /// policy tree
+ </span><span class="kw">pub fn </span>get_condition(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ path: <span class="kw-2">&</span>BTreeMap<String, Vec<usize>>,
+ ) -> <span class="prelude-ty">Result</span><Condition, PolicyError> {
+ <span class="comment">// if items.len() == threshold, selected can be omitted and we take all of them by default
+ </span><span class="kw">let </span>default = <span class="kw">match </span><span class="kw-2">&</span><span class="self">self</span>.item {
+ SatisfiableItem::Thresh { items, threshold } <span class="kw">if </span>items.len() == <span class="kw-2">*</span>threshold => {
+ (<span class="number">0</span>..<span class="kw-2">*</span>threshold).collect()
+ }
+ SatisfiableItem::Multisig { keys, .. } => (<span class="number">0</span>..keys.len()).collect(),
+ <span class="kw">_ </span>=> HashSet::new(),
+ };
+ <span class="kw">let </span>selected: HashSet<<span class="kw">_</span>> = <span class="kw">match </span>path.get(<span class="kw-2">&</span><span class="self">self</span>.id) {
+ <span class="prelude-val">Some</span>(arr) => arr.iter().copied().collect(),
+ <span class="kw">_ </span>=> default,
+ };
+
+ <span class="kw">match </span><span class="kw-2">&</span><span class="self">self</span>.item {
+ SatisfiableItem::Thresh { items, threshold } => {
+ <span class="kw">let </span>mapped_req = items
+ .iter()
+ .map(|i| i.get_condition(path))
+ .collect::<Vec<<span class="kw">_</span>>>();
+
+ <span class="comment">// if all the requirements are null we don't care about `selected` because there
+ // are no requirements
+ </span><span class="kw">if </span>mapped_req
+ .iter()
+ .all(|cond| <span class="macro">matches!</span>(cond, <span class="prelude-val">Ok</span>(c) <span class="kw">if </span>c.is_null()))
+ {
+ <span class="kw">return </span><span class="prelude-val">Ok</span>(Condition::default());
+ }
+
+ <span class="comment">// make sure all the indexes in the `selected` list are within range
+ </span><span class="kw">for </span>index <span class="kw">in </span><span class="kw-2">&</span>selected {
+ <span class="kw">if </span><span class="kw-2">*</span>index >= items.len() {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(PolicyError::IndexOutOfRange(<span class="kw-2">*</span>index));
+ }
+ }
+
+ <span class="comment">// if we have something, make sure we have enough items. note that the user can set
+ // an empty value for this step in case of n-of-n, because `selected` is set to all
+ // the elements above
+ </span><span class="kw">if </span>selected.len() < <span class="kw-2">*</span>threshold {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(PolicyError::NotEnoughItemsSelected(<span class="self">self</span>.id.clone()));
+ }
+
+ <span class="comment">// check the selected items, see if there are conflicting requirements
+ </span>mapped_req
+ .into_iter()
+ .enumerate()
+ .filter(|(index, <span class="kw">_</span>)| selected.contains(index))
+ .try_fold(Condition::default(), |acc, (<span class="kw">_</span>, cond)| acc.merge(<span class="kw-2">&</span>cond<span class="question-mark">?</span>))
+ }
+ SatisfiableItem::Multisig { keys, threshold } => {
+ <span class="kw">if </span>selected.len() < <span class="kw-2">*</span>threshold {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(PolicyError::NotEnoughItemsSelected(<span class="self">self</span>.id.clone()));
+ }
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(item) = selected.into_iter().find(|<span class="kw-2">&</span>i| i >= keys.len()) {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(PolicyError::IndexOutOfRange(item));
+ }
+
+ <span class="prelude-val">Ok</span>(Condition::default())
+ }
+ SatisfiableItem::AbsoluteTimelock { value } => <span class="prelude-val">Ok</span>(Condition {
+ csv: <span class="prelude-val">None</span>,
+ timelock: <span class="prelude-val">Some</span>(<span class="kw-2">*</span>value),
+ }),
+ SatisfiableItem::RelativeTimelock { value } => <span class="prelude-val">Ok</span>(Condition {
+ csv: <span class="prelude-val">Some</span>(<span class="kw-2">*</span>value),
+ timelock: <span class="prelude-val">None</span>,
+ }),
+ <span class="kw">_ </span>=> <span class="prelude-val">Ok</span>(Condition::default()),
+ }
+ }
+}
+
+<span class="kw">impl </span>From<SatisfiableItem> <span class="kw">for </span>Policy {
+ <span class="kw">fn </span>from(other: SatisfiableItem) -> <span class="self">Self </span>{
+ <span class="self">Self</span>::new(other)
+ }
+}
+
+<span class="kw">fn </span>signer_id(key: <span class="kw-2">&</span>DescriptorPublicKey, secp: <span class="kw-2">&</span>SecpCtx) -> SignerId {
+ <span class="comment">// For consistency we always compute the key hash in "ecdsa" form (with the leading sign
+ // prefix) even if we are in a taproot descriptor. We just want some kind of unique identifier
+ // for a key, so it doesn't really matter how the identifier is computed.
+ </span><span class="kw">match </span>key {
+ DescriptorPublicKey::Single(SinglePub {
+ key: SinglePubKey::FullKey(pk),
+ ..
+ }) => pk.to_pubkeyhash(SigType::Ecdsa).into(),
+ DescriptorPublicKey::Single(SinglePub {
+ key: SinglePubKey::XOnly(pk),
+ ..
+ }) => pk.to_pubkeyhash(SigType::Ecdsa).into(),
+ DescriptorPublicKey::XPub(xpub) => xpub.root_fingerprint(secp).into(),
+ DescriptorPublicKey::MultiXPub(xpub) => xpub.root_fingerprint(secp).into(),
+ }
+}
+
+<span class="kw">fn </span>make_generic_signature<M: Fn() -> SatisfiableItem, F: Fn(<span class="kw-2">&</span>Psbt) -> bool>(
+ key: <span class="kw-2">&</span>DescriptorPublicKey,
+ signers: <span class="kw-2">&</span>SignersContainer,
+ build_sat: BuildSatisfaction,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ make_policy: M,
+ find_sig: F,
+) -> Policy {
+ <span class="kw">let </span><span class="kw-2">mut </span>policy: Policy = make_policy().into();
+
+ policy.contribution = <span class="kw">if </span>signers.find(signer_id(key, secp)).is_some() {
+ Satisfaction::Complete {
+ condition: Default::default(),
+ }
+ } <span class="kw">else </span>{
+ Satisfaction::None
+ };
+
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(psbt) = build_sat.psbt() {
+ policy.satisfaction = <span class="kw">if </span>find_sig(psbt) {
+ Satisfaction::Complete {
+ condition: Default::default(),
+ }
+ } <span class="kw">else </span>{
+ Satisfaction::None
+ };
+ }
+
+ policy
+}
+
+<span class="kw">fn </span>generic_sig_in_psbt<
+ <span class="comment">// C is for "check", it's a closure we use to *check* if a psbt input contains the signature
+ // for a specific key
+ </span>C: Fn(<span class="kw-2">&</span>psbt::Input, <span class="kw-2">&</span>SinglePubKey) -> bool,
+ <span class="comment">// E is for "extract", it extracts a key from the bip32 derivations found in the psbt input
+ </span>E: Fn(<span class="kw-2">&</span>psbt::Input, Fingerprint) -> <span class="prelude-ty">Option</span><SinglePubKey>,
+>(
+ psbt: <span class="kw-2">&</span>Psbt,
+ key: <span class="kw-2">&</span>DescriptorPublicKey,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ check: C,
+ extract: E,
+) -> bool {
+ <span class="comment">//TODO check signature validity
+ </span>psbt.inputs.iter().all(|input| <span class="kw">match </span>key {
+ DescriptorPublicKey::Single(SinglePub { key, .. }) => check(input, key),
+ DescriptorPublicKey::XPub(xpub) => {
+ <span class="comment">//TODO check actual derivation matches
+ </span><span class="kw">match </span>extract(input, xpub.root_fingerprint(secp)) {
+ <span class="prelude-val">Some</span>(pubkey) => check(input, <span class="kw-2">&</span>pubkey),
+ <span class="prelude-val">None </span>=> <span class="bool-val">false</span>,
+ }
+ }
+ DescriptorPublicKey::MultiXPub(xpub) => {
+ <span class="comment">//TODO check actual derivation matches
+ </span><span class="kw">match </span>extract(input, xpub.root_fingerprint(secp)) {
+ <span class="prelude-val">Some</span>(pubkey) => check(input, <span class="kw-2">&</span>pubkey),
+ <span class="prelude-val">None </span>=> <span class="bool-val">false</span>,
+ }
+ }
+ })
+}
+
+<span class="kw">trait </span>SigExt: ScriptContext {
+ <span class="kw">fn </span>make_signature(
+ key: <span class="kw-2">&</span>DescriptorPublicKey,
+ signers: <span class="kw-2">&</span>SignersContainer,
+ build_sat: BuildSatisfaction,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> Policy;
+
+ <span class="kw">fn </span>find_signature(psbt: <span class="kw-2">&</span>Psbt, key: <span class="kw-2">&</span>DescriptorPublicKey, secp: <span class="kw-2">&</span>SecpCtx) -> bool;
+}
+
+<span class="kw">impl</span><T: ScriptContext + <span class="lifetime">'static</span>> SigExt <span class="kw">for </span>T {
+ <span class="kw">fn </span>make_signature(
+ key: <span class="kw-2">&</span>DescriptorPublicKey,
+ signers: <span class="kw-2">&</span>SignersContainer,
+ build_sat: BuildSatisfaction,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> Policy {
+ <span class="kw">if </span>T::as_enum().is_taproot() {
+ make_generic_signature(
+ key,
+ signers,
+ build_sat,
+ secp,
+ || SatisfiableItem::SchnorrSignature(PkOrF::from_key(key, secp)),
+ |psbt| <span class="self">Self</span>::find_signature(psbt, key, secp),
+ )
+ } <span class="kw">else </span>{
+ make_generic_signature(
+ key,
+ signers,
+ build_sat,
+ secp,
+ || SatisfiableItem::EcdsaSignature(PkOrF::from_key(key, secp)),
+ |psbt| <span class="self">Self</span>::find_signature(psbt, key, secp),
+ )
+ }
+ }
+
+ <span class="kw">fn </span>find_signature(psbt: <span class="kw-2">&</span>Psbt, key: <span class="kw-2">&</span>DescriptorPublicKey, secp: <span class="kw-2">&</span>SecpCtx) -> bool {
+ <span class="kw">if </span>T::as_enum().is_taproot() {
+ generic_sig_in_psbt(
+ psbt,
+ key,
+ secp,
+ |input, pk| {
+ <span class="kw">let </span>pk = <span class="kw">match </span>pk {
+ SinglePubKey::XOnly(pk) => pk,
+ <span class="kw">_ </span>=> <span class="kw">return </span><span class="bool-val">false</span>,
+ };
+
+ <span class="kw">if </span>input.tap_internal_key == <span class="prelude-val">Some</span>(<span class="kw-2">*</span>pk) && input.tap_key_sig.is_some() {
+ <span class="bool-val">true
+ </span>} <span class="kw">else </span>{
+ input.tap_script_sigs.keys().any(|(sk, <span class="kw">_</span>)| sk == pk)
+ }
+ },
+ |input, fing| {
+ input
+ .tap_key_origins
+ .iter()
+ .find(|(<span class="kw">_</span>, (<span class="kw">_</span>, (f, <span class="kw">_</span>)))| f == <span class="kw-2">&</span>fing)
+ .map(|(pk, <span class="kw">_</span>)| SinglePubKey::XOnly(<span class="kw-2">*</span>pk))
+ },
+ )
+ } <span class="kw">else </span>{
+ generic_sig_in_psbt(
+ psbt,
+ key,
+ secp,
+ |input, pk| <span class="kw">match </span>pk {
+ SinglePubKey::FullKey(pk) => input.partial_sigs.contains_key(pk),
+ <span class="kw">_ </span>=> <span class="bool-val">false</span>,
+ },
+ |input, fing| {
+ input
+ .bip32_derivation
+ .iter()
+ .find(|(<span class="kw">_</span>, (f, <span class="kw">_</span>))| f == <span class="kw-2">&</span>fing)
+ .map(|(pk, <span class="kw">_</span>)| SinglePubKey::FullKey(PublicKey::new(<span class="kw-2">*</span>pk)))
+ },
+ )
+ }
+ }
+}
+
+<span class="kw">impl</span><Ctx: ScriptContext + <span class="lifetime">'static</span>> ExtractPolicy <span class="kw">for </span>Miniscript<DescriptorPublicKey, Ctx> {
+ <span class="kw">fn </span>extract_policy(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ signers: <span class="kw-2">&</span>SignersContainer,
+ build_sat: BuildSatisfaction,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> <span class="prelude-ty">Result</span><<span class="prelude-ty">Option</span><Policy>, Error> {
+ <span class="prelude-val">Ok</span>(<span class="kw">match </span><span class="kw-2">&</span><span class="self">self</span>.node {
+ <span class="comment">// Leaves
+ </span>Terminal::True | Terminal::False => <span class="prelude-val">None</span>,
+ Terminal::PkK(pubkey) => <span class="prelude-val">Some</span>(Ctx::make_signature(pubkey, signers, build_sat, secp)),
+ Terminal::PkH(pubkey_hash) => {
+ <span class="prelude-val">Some</span>(Ctx::make_signature(pubkey_hash, signers, build_sat, secp))
+ }
+ Terminal::After(value) => {
+ <span class="kw">let </span><span class="kw-2">mut </span>policy: Policy = SatisfiableItem::AbsoluteTimelock {
+ value: (<span class="kw-2">*</span>value).into(),
+ }
+ .into();
+ policy.contribution = Satisfaction::Complete {
+ condition: Condition {
+ timelock: <span class="prelude-val">Some</span>((<span class="kw-2">*</span>value).into()),
+ csv: <span class="prelude-val">None</span>,
+ },
+ };
+ <span class="kw">if let </span>BuildSatisfaction::PsbtTimelocks {
+ current_height,
+ psbt,
+ ..
+ } = build_sat
+ {
+ <span class="kw">let </span>after = After::new(<span class="prelude-val">Some</span>(current_height), <span class="bool-val">false</span>);
+ <span class="kw">let </span>after_sat =
+ Satisfier::<bitcoin::PublicKey>::check_after(<span class="kw-2">&</span>after, (<span class="kw-2">*</span>value).into());
+ <span class="kw">let </span>inputs_sat = psbt_inputs_sat(psbt).all(|sat| {
+ Satisfier::<bitcoin::PublicKey>::check_after(<span class="kw-2">&</span>sat, (<span class="kw-2">*</span>value).into())
+ });
+ <span class="kw">if </span>after_sat && inputs_sat {
+ policy.satisfaction = policy.contribution.clone();
+ }
+ }
+
+ <span class="prelude-val">Some</span>(policy)
+ }
+ Terminal::Older(value) => {
+ <span class="kw">let </span><span class="kw-2">mut </span>policy: Policy = SatisfiableItem::RelativeTimelock { value: <span class="kw-2">*</span>value }.into();
+ policy.contribution = Satisfaction::Complete {
+ condition: Condition {
+ timelock: <span class="prelude-val">None</span>,
+ csv: <span class="prelude-val">Some</span>(<span class="kw-2">*</span>value),
+ },
+ };
+ <span class="kw">if let </span>BuildSatisfaction::PsbtTimelocks {
+ current_height,
+ input_max_height,
+ psbt,
+ } = build_sat
+ {
+ <span class="kw">let </span>older = Older::new(<span class="prelude-val">Some</span>(current_height), <span class="prelude-val">Some</span>(input_max_height), <span class="bool-val">false</span>);
+ <span class="kw">let </span>older_sat = Satisfier::<bitcoin::PublicKey>::check_older(<span class="kw-2">&</span>older, <span class="kw-2">*</span>value);
+ <span class="kw">let </span>inputs_sat = psbt_inputs_sat(psbt)
+ .all(|sat| Satisfier::<bitcoin::PublicKey>::check_older(<span class="kw-2">&</span>sat, <span class="kw-2">*</span>value));
+ <span class="kw">if </span>older_sat && inputs_sat {
+ policy.satisfaction = policy.contribution.clone();
+ }
+ }
+
+ <span class="prelude-val">Some</span>(policy)
+ }
+ Terminal::Sha256(hash) => <span class="prelude-val">Some</span>(SatisfiableItem::Sha256Preimage { hash: <span class="kw-2">*</span>hash }.into()),
+ Terminal::Hash256(hash) => {
+ <span class="prelude-val">Some</span>(SatisfiableItem::Hash256Preimage { hash: <span class="kw-2">*</span>hash }.into())
+ }
+ Terminal::Ripemd160(hash) => {
+ <span class="prelude-val">Some</span>(SatisfiableItem::Ripemd160Preimage { hash: <span class="kw-2">*</span>hash }.into())
+ }
+ Terminal::Hash160(hash) => {
+ <span class="prelude-val">Some</span>(SatisfiableItem::Hash160Preimage { hash: <span class="kw-2">*</span>hash }.into())
+ }
+ Terminal::Multi(k, pks) | Terminal::MultiA(k, pks) => {
+ Policy::make_multisig::<Ctx>(pks, signers, build_sat, <span class="kw-2">*</span>k, <span class="bool-val">false</span>, secp)<span class="question-mark">?
+ </span>}
+ <span class="comment">// Identities
+ </span>Terminal::Alt(inner)
+ | Terminal::Swap(inner)
+ | Terminal::Check(inner)
+ | Terminal::DupIf(inner)
+ | Terminal::Verify(inner)
+ | Terminal::NonZero(inner)
+ | Terminal::ZeroNotEqual(inner) => inner.extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>,
+ <span class="comment">// Complex policies
+ </span>Terminal::AndV(a, b) | Terminal::AndB(a, b) => Policy::make_and(
+ a.extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>,
+ b.extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>,
+ )<span class="question-mark">?</span>,
+ Terminal::AndOr(x, y, z) => Policy::make_or(
+ Policy::make_and(
+ x.extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>,
+ y.extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>,
+ )<span class="question-mark">?</span>,
+ z.extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>,
+ )<span class="question-mark">?</span>,
+ Terminal::OrB(a, b)
+ | Terminal::OrD(a, b)
+ | Terminal::OrC(a, b)
+ | Terminal::OrI(a, b) => Policy::make_or(
+ a.extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>,
+ b.extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>,
+ )<span class="question-mark">?</span>,
+ Terminal::Thresh(k, nodes) => {
+ <span class="kw">let </span><span class="kw-2">mut </span>threshold = <span class="kw-2">*</span>k;
+ <span class="kw">let </span>mapped: Vec<<span class="kw">_</span>> = nodes
+ .iter()
+ .map(|n| n.extract_policy(signers, build_sat, secp))
+ .collect::<<span class="prelude-ty">Result</span><Vec<<span class="kw">_</span>>, <span class="kw">_</span>>>()<span class="question-mark">?
+ </span>.into_iter()
+ .flatten()
+ .collect();
+
+ <span class="kw">if </span>mapped.len() < nodes.len() {
+ threshold = <span class="kw">match </span>threshold.checked_sub(nodes.len() - mapped.len()) {
+ <span class="prelude-val">None </span>=> <span class="kw">return </span><span class="prelude-val">Ok</span>(<span class="prelude-val">None</span>),
+ <span class="prelude-val">Some</span>(x) => x,
+ };
+ }
+
+ Policy::make_thresh(mapped, threshold)<span class="question-mark">?
+ </span>}
+
+ <span class="comment">// Unsupported
+ </span>Terminal::RawPkH(<span class="kw">_</span>) => <span class="prelude-val">None</span>,
+ })
+ }
+}
+
+<span class="kw">fn </span>psbt_inputs_sat(psbt: <span class="kw-2">&</span>Psbt) -> <span class="kw">impl </span>Iterator<Item = PsbtInputSatisfier> {
+ (<span class="number">0</span>..psbt.inputs.len()).map(<span class="kw">move </span>|i| PsbtInputSatisfier::new(psbt, i))
+}
+
+<span class="doccomment">/// Options to build the satisfaction field in the policy
+</span><span class="attr">#[derive(Debug, Clone, Copy)]
+</span><span class="kw">pub enum </span>BuildSatisfaction<<span class="lifetime">'a</span>> {
+ <span class="doccomment">/// Don't generate `satisfaction` field
+ </span><span class="prelude-val">None</span>,
+ <span class="doccomment">/// Analyze the given PSBT to check for existing signatures
+ </span>Psbt(<span class="kw-2">&</span><span class="lifetime">'a </span>Psbt),
+ <span class="doccomment">/// Like `Psbt` variant and also check for expired timelocks
+ </span>PsbtTimelocks {
+ <span class="doccomment">/// Given PSBT
+ </span>psbt: <span class="kw-2">&</span><span class="lifetime">'a </span>Psbt,
+ <span class="doccomment">/// Current blockchain height
+ </span>current_height: u32,
+ <span class="doccomment">/// The highest confirmation height between the inputs
+ /// CSV should consider different inputs, but we consider the worst condition for the tx as whole
+ </span>input_max_height: u32,
+ },
+}
+<span class="kw">impl</span><<span class="lifetime">'a</span>> BuildSatisfaction<<span class="lifetime">'a</span>> {
+ <span class="kw">fn </span>psbt(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Option</span><<span class="kw-2">&</span><span class="lifetime">'a </span>Psbt> {
+ <span class="kw">match </span><span class="self">self </span>{
+ BuildSatisfaction::None => <span class="prelude-val">None</span>,
+ BuildSatisfaction::Psbt(psbt) => <span class="prelude-val">Some</span>(psbt),
+ BuildSatisfaction::PsbtTimelocks { psbt, .. } => <span class="prelude-val">Some</span>(psbt),
+ }
+ }
+}
+
+<span class="kw">impl </span>ExtractPolicy <span class="kw">for </span>Descriptor<DescriptorPublicKey> {
+ <span class="kw">fn </span>extract_policy(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ signers: <span class="kw-2">&</span>SignersContainer,
+ build_sat: BuildSatisfaction,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> <span class="prelude-ty">Result</span><<span class="prelude-ty">Option</span><Policy>, Error> {
+ <span class="kw">fn </span>make_sortedmulti<Ctx: ScriptContext + <span class="lifetime">'static</span>>(
+ keys: <span class="kw-2">&</span>SortedMultiVec<DescriptorPublicKey, Ctx>,
+ signers: <span class="kw-2">&</span>SignersContainer,
+ build_sat: BuildSatisfaction,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> <span class="prelude-ty">Result</span><<span class="prelude-ty">Option</span><Policy>, Error> {
+ <span class="prelude-val">Ok</span>(Policy::make_multisig::<Ctx>(
+ keys.pks.as_ref(),
+ signers,
+ build_sat,
+ keys.k,
+ <span class="bool-val">true</span>,
+ secp,
+ )<span class="question-mark">?</span>)
+ }
+
+ <span class="kw">match </span><span class="self">self </span>{
+ Descriptor::Pkh(pk) => <span class="prelude-val">Ok</span>(<span class="prelude-val">Some</span>(miniscript::Legacy::make_signature(
+ pk.as_inner(),
+ signers,
+ build_sat,
+ secp,
+ ))),
+ Descriptor::Wpkh(pk) => <span class="prelude-val">Ok</span>(<span class="prelude-val">Some</span>(miniscript::Segwitv0::make_signature(
+ pk.as_inner(),
+ signers,
+ build_sat,
+ secp,
+ ))),
+ Descriptor::Sh(sh) => <span class="kw">match </span>sh.as_inner() {
+ ShInner::Wpkh(pk) => <span class="prelude-val">Ok</span>(<span class="prelude-val">Some</span>(miniscript::Segwitv0::make_signature(
+ pk.as_inner(),
+ signers,
+ build_sat,
+ secp,
+ ))),
+ ShInner::Ms(ms) => <span class="prelude-val">Ok</span>(ms.extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>),
+ ShInner::SortedMulti(<span class="kw-2">ref </span>keys) => make_sortedmulti(keys, signers, build_sat, secp),
+ ShInner::Wsh(wsh) => <span class="kw">match </span>wsh.as_inner() {
+ WshInner::Ms(ms) => <span class="prelude-val">Ok</span>(ms.extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>),
+ WshInner::SortedMulti(<span class="kw-2">ref </span>keys) => {
+ make_sortedmulti(keys, signers, build_sat, secp)
+ }
+ },
+ },
+ Descriptor::Wsh(wsh) => <span class="kw">match </span>wsh.as_inner() {
+ WshInner::Ms(ms) => <span class="prelude-val">Ok</span>(ms.extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>),
+ WshInner::SortedMulti(<span class="kw-2">ref </span>keys) => make_sortedmulti(keys, signers, build_sat, secp),
+ },
+ Descriptor::Bare(ms) => <span class="prelude-val">Ok</span>(ms.as_inner().extract_policy(signers, build_sat, secp)<span class="question-mark">?</span>),
+ Descriptor::Tr(tr) => {
+ <span class="comment">// If there's no tap tree, treat this as a single sig, otherwise build a `Thresh`
+ // node with threshold = 1 and the key spend signature plus all the tree leaves
+ </span><span class="kw">let </span>key_spend_sig =
+ miniscript::Tap::make_signature(tr.internal_key(), signers, build_sat, secp);
+
+ <span class="kw">if </span>tr.tap_tree().is_none() {
+ <span class="prelude-val">Ok</span>(<span class="prelude-val">Some</span>(key_spend_sig))
+ } <span class="kw">else </span>{
+ <span class="kw">let </span><span class="kw-2">mut </span>items = <span class="macro">vec!</span>[key_spend_sig];
+ items.append(
+ <span class="kw-2">&mut </span>tr
+ .iter_scripts()
+ .filter_map(|(<span class="kw">_</span>, ms)| {
+ ms.extract_policy(signers, build_sat, secp).transpose()
+ })
+ .collect::<<span class="prelude-ty">Result</span><Vec<<span class="kw">_</span>>, <span class="kw">_</span>>>()<span class="question-mark">?</span>,
+ );
+
+ <span class="prelude-val">Ok</span>(Policy::make_thresh(items, <span class="number">1</span>)<span class="question-mark">?</span>)
+ }
+ }
+ }
+ }
+}
+
+<span class="attr">#[cfg(test)]
+</span><span class="kw">mod </span>test {
+ <span class="kw">use </span><span class="kw">crate</span>::descriptor;
+ <span class="kw">use </span><span class="kw">crate</span>::descriptor::{ExtractPolicy, IntoWalletDescriptor};
+
+ <span class="kw">use super</span>::<span class="kw-2">*</span>;
+ <span class="kw">use </span><span class="kw">crate</span>::descriptor::policy::SatisfiableItem::{EcdsaSignature, Multisig, Thresh};
+ <span class="kw">use </span><span class="kw">crate</span>::keys::{DescriptorKey, IntoDescriptorKey};
+ <span class="kw">use </span><span class="kw">crate</span>::wallet::signer::SignersContainer;
+ <span class="kw">use </span>alloc::{string::ToString, sync::Arc};
+ <span class="kw">use </span>assert_matches::assert_matches;
+ <span class="kw">use </span>bitcoin::bip32;
+ <span class="kw">use </span>bitcoin::secp256k1::Secp256k1;
+ <span class="kw">use </span>bitcoin::Network;
+ <span class="kw">use </span>core::str::FromStr;
+
+ <span class="kw">const </span>TPRV0_STR:<span class="kw-2">&</span>str = <span class="string">"tprv8ZgxMBicQKsPdZXrcHNLf5JAJWFAoJ2TrstMRdSKtEggz6PddbuSkvHKM9oKJyFgZV1B7rw8oChspxyYbtmEXYyg1AjfWbL3ho3XHDpHRZf"</span>;
+ <span class="kw">const </span>TPRV1_STR:<span class="kw-2">&</span>str = <span class="string">"tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N"</span>;
+
+ <span class="kw">const </span>PATH: <span class="kw-2">&</span>str = <span class="string">"m/44'/1'/0'/0"</span>;
+
+ <span class="kw">fn </span>setup_keys<Ctx: ScriptContext>(
+ tprv: <span class="kw-2">&</span>str,
+ path: <span class="kw-2">&</span>str,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> (DescriptorKey<Ctx>, DescriptorKey<Ctx>, Fingerprint) {
+ <span class="kw">let </span>path = bip32::DerivationPath::from_str(path).unwrap();
+ <span class="kw">let </span>tprv = bip32::Xpriv::from_str(tprv).unwrap();
+ <span class="kw">let </span>tpub = bip32::Xpub::from_priv(secp, <span class="kw-2">&</span>tprv);
+ <span class="kw">let </span>fingerprint = tprv.fingerprint(secp);
+ <span class="kw">let </span>prvkey = (tprv, path.clone()).into_descriptor_key().unwrap();
+ <span class="kw">let </span>pubkey = (tpub, path).into_descriptor_key().unwrap();
+
+ (prvkey, pubkey, fingerprint)
+ }
+
+ <span class="comment">// test ExtractPolicy trait for simple descriptors; wpkh(), sh(multi())
+
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_extract_policy_for_wpkh() {
+ <span class="kw">let </span>secp = Secp256k1::new();
+
+ <span class="kw">let </span>(prvkey, pubkey, fingerprint) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(wpkh(pubkey)).unwrap();
+ <span class="kw">let </span>(wallet_desc, keymap) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+ <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
+ <span class="kw">let </span>policy = wallet_desc
+ .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
+ .unwrap()
+ .unwrap();
+
+ <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.item, EcdsaSignature(PkOrF::Fingerprint(f)) <span class="kw">if </span>f == <span class="kw-2">&</span>fingerprint);
+ <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.contribution, Satisfaction::None);
+
+ <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(wpkh(prvkey)).unwrap();
+ <span class="kw">let </span>(wallet_desc, keymap) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+ <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
+ <span class="kw">let </span>policy = wallet_desc
+ .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
+ .unwrap()
+ .unwrap();
+
+ <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.item, EcdsaSignature(PkOrF::Fingerprint(f)) <span class="kw">if </span>f == <span class="kw-2">&</span>fingerprint);
+ <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.contribution, Satisfaction::Complete {condition} <span class="kw">if </span>condition.csv.is_none() && condition.timelock.is_none());
+ }
+
+ <span class="comment">// 2 pub keys descriptor, required 2 prv keys
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_extract_policy_for_sh_multi_partial_0of2() {
+ <span class="kw">let </span>secp = Secp256k1::new();
+ <span class="kw">let </span>(_prvkey0, pubkey0, fingerprint0) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>(_prvkey1, pubkey1, fingerprint1) = setup_keys(TPRV1_STR, PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(sh(multi(<span class="number">2</span>, pubkey0, pubkey1))).unwrap();
+ <span class="kw">let </span>(wallet_desc, keymap) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+ <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
+ <span class="kw">let </span>policy = wallet_desc
+ .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
+ .unwrap()
+ .unwrap();
+
+ <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.item, Multisig { keys, threshold } <span class="kw">if </span>threshold == <span class="kw-2">&</span><span class="number">2usize
+ </span>&& keys[<span class="number">0</span>] == PkOrF::Fingerprint(fingerprint0)
+ && keys[<span class="number">1</span>] == PkOrF::Fingerprint(fingerprint1)
+ );
+ <span class="comment">// TODO should this be "Satisfaction::None" since we have no prv keys?
+ // TODO should items and conditions not be empty?
+ </span><span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.contribution, Satisfaction::Partial { n, m, items, conditions, ..} <span class="kw">if </span>n == <span class="kw-2">&</span><span class="number">2usize
+ </span>&& m == <span class="kw-2">&</span><span class="number">2usize
+ </span>&& items.is_empty()
+ && conditions.is_empty()
+ );
+ }
+
+ <span class="comment">// 1 prv and 1 pub key descriptor, required 2 prv keys
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_extract_policy_for_sh_multi_partial_1of2() {
+ <span class="kw">let </span>secp = Secp256k1::new();
+ <span class="kw">let </span>(prvkey0, _pubkey0, fingerprint0) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>(_prvkey1, pubkey1, fingerprint1) = setup_keys(TPRV1_STR, PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(sh(multi(<span class="number">2</span>, prvkey0, pubkey1))).unwrap();
+ <span class="kw">let </span>(wallet_desc, keymap) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+ <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
+ <span class="kw">let </span>policy = wallet_desc
+ .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
+ .unwrap()
+ .unwrap();
+ <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.item, Multisig { keys, threshold } <span class="kw">if </span>threshold == <span class="kw-2">&</span><span class="number">2usize
+ </span>&& keys[<span class="number">0</span>] == PkOrF::Fingerprint(fingerprint0)
+ && keys[<span class="number">1</span>] == PkOrF::Fingerprint(fingerprint1)
+ );
+
+ <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.contribution, Satisfaction::Partial { n, m, items, conditions, ..} <span class="kw">if </span>n == <span class="kw-2">&</span><span class="number">2usize
+ </span>&& m == <span class="kw-2">&</span><span class="number">2usize
+ </span>&& items.len() == <span class="number">1
+ </span>&& conditions.contains_key(<span class="kw-2">&</span><span class="number">0</span>)
+ );
+ }
+
+ <span class="comment">// 1 prv and 1 pub key descriptor, required 1 prv keys
+ </span><span class="attr">#[test]
+ #[ignore] </span><span class="comment">// see https://github.com/bitcoindevkit/bdk/issues/225
+ </span><span class="kw">fn </span>test_extract_policy_for_sh_multi_complete_1of2() {
+ <span class="kw">let </span>secp = Secp256k1::new();
+
+ <span class="kw">let </span>(_prvkey0, pubkey0, fingerprint0) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>(prvkey1, _pubkey1, fingerprint1) = setup_keys(TPRV1_STR, PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(sh(multi(<span class="number">1</span>, pubkey0, prvkey1))).unwrap();
+ <span class="kw">let </span>(wallet_desc, keymap) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+ <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
+ <span class="kw">let </span>policy = wallet_desc
+ .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
+ .unwrap()
+ .unwrap();
+
+ <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.item, Multisig { keys, threshold } <span class="kw">if </span>threshold == <span class="kw-2">&</span><span class="number">1
+ </span>&& keys[<span class="number">0</span>] == PkOrF::Fingerprint(fingerprint0)
+ && keys[<span class="number">1</span>] == PkOrF::Fingerprint(fingerprint1)
+ );
+ <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.contribution, Satisfaction::PartialComplete { n, m, items, conditions, .. } <span class="kw">if </span>n == <span class="kw-2">&</span><span class="number">2
+ </span>&& m == <span class="kw-2">&</span><span class="number">1
+ </span>&& items.len() == <span class="number">2
+ </span>&& conditions.contains_key(<span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">0</span>])
+ && conditions.contains_key(<span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">1</span>])
+ );
+ }
+
+ <span class="comment">// 2 prv keys descriptor, required 2 prv keys
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_extract_policy_for_sh_multi_complete_2of2() {
+ <span class="kw">let </span>secp = Secp256k1::new();
+
+ <span class="kw">let </span>(prvkey0, _pubkey0, fingerprint0) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>(prvkey1, _pubkey1, fingerprint1) = setup_keys(TPRV1_STR, PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(sh(multi(<span class="number">2</span>, prvkey0, prvkey1))).unwrap();
+ <span class="kw">let </span>(wallet_desc, keymap) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+ <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
+ <span class="kw">let </span>policy = wallet_desc
+ .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
+ .unwrap()
+ .unwrap();
+
+ <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.item, Multisig { keys, threshold } <span class="kw">if </span>threshold == <span class="kw-2">&</span><span class="number">2
+ </span>&& keys[<span class="number">0</span>] == PkOrF::Fingerprint(fingerprint0)
+ && keys[<span class="number">1</span>] == PkOrF::Fingerprint(fingerprint1)
+ );
+
+ <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.contribution, Satisfaction::PartialComplete { n, m, items, conditions, .. } <span class="kw">if </span>n == <span class="kw-2">&</span><span class="number">2
+ </span>&& m == <span class="kw-2">&</span><span class="number">2
+ </span>&& items.len() == <span class="number">2
+ </span>&& conditions.contains_key(<span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">0</span>,<span class="number">1</span>])
+ );
+ }
+
+ <span class="comment">// test ExtractPolicy trait with extended and single keys
+
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_extract_policy_for_single_wpkh() {
+ <span class="kw">let </span>secp = Secp256k1::new();
+
+ <span class="kw">let </span>(prvkey, pubkey, fingerprint) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(wpkh(pubkey)).unwrap();
+ <span class="kw">let </span>(wallet_desc, keymap) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+ <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
+ <span class="kw">let </span>policy = wallet_desc
+ .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
+ .unwrap()
+ .unwrap();
+
+ <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.item, EcdsaSignature(PkOrF::Fingerprint(f)) <span class="kw">if </span>f == <span class="kw-2">&</span>fingerprint);
+ <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.contribution, Satisfaction::None);
+
+ <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(wpkh(prvkey)).unwrap();
+ <span class="kw">let </span>(wallet_desc, keymap) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+ <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
+ <span class="kw">let </span>policy = wallet_desc
+ .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
+ .unwrap()
+ .unwrap();
+
+ <span class="macro">assert_matches!</span>(policy.item, EcdsaSignature(PkOrF::Fingerprint(f)) <span class="kw">if </span>f == fingerprint);
+ <span class="macro">assert_matches!</span>(policy.contribution, Satisfaction::Complete {condition} <span class="kw">if </span>condition.csv.is_none() && condition.timelock.is_none());
+ }
+
+ <span class="comment">// single key, 1 prv and 1 pub key descriptor, required 1 prv keys
+ </span><span class="attr">#[test]
+ #[ignore] </span><span class="comment">// see https://github.com/bitcoindevkit/bdk/issues/225
+ </span><span class="kw">fn </span>test_extract_policy_for_single_wsh_multi_complete_1of2() {
+ <span class="kw">let </span>secp = Secp256k1::new();
+
+ <span class="kw">let </span>(_prvkey0, pubkey0, fingerprint0) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>(prvkey1, _pubkey1, fingerprint1) = setup_keys(TPRV1_STR, PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(sh(multi(<span class="number">1</span>, pubkey0, prvkey1))).unwrap();
+ <span class="kw">let </span>(wallet_desc, keymap) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+ <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
+ <span class="kw">let </span>policy = wallet_desc
+ .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
+ .unwrap()
+ .unwrap();
+
+ <span class="macro">assert_matches!</span>(policy.item, Multisig { keys, threshold } <span class="kw">if </span>threshold == <span class="number">1
+ </span>&& keys[<span class="number">0</span>] == PkOrF::Fingerprint(fingerprint0)
+ && keys[<span class="number">1</span>] == PkOrF::Fingerprint(fingerprint1)
+ );
+ <span class="macro">assert_matches!</span>(policy.contribution, Satisfaction::PartialComplete { n, m, items, conditions, .. } <span class="kw">if </span>n == <span class="number">2
+ </span>&& m == <span class="number">1
+ </span>&& items.len() == <span class="number">2
+ </span>&& conditions.contains_key(<span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">0</span>])
+ && conditions.contains_key(<span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">1</span>])
+ );
+ }
+
+ <span class="comment">// test ExtractPolicy trait with descriptors containing timelocks in a thresh()
+
+ </span><span class="attr">#[test]
+ #[ignore] </span><span class="comment">// see https://github.com/bitcoindevkit/bdk/issues/225
+ </span><span class="kw">fn </span>test_extract_policy_for_wsh_multi_timelock() {
+ <span class="kw">let </span>secp = Secp256k1::new();
+
+ <span class="kw">let </span>(prvkey0, _pubkey0, _fingerprint0) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>(_prvkey1, pubkey1, _fingerprint1) = setup_keys(TPRV1_STR, PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>sequence = <span class="number">50</span>;
+ <span class="attr">#[rustfmt::skip]
+ </span><span class="kw">let </span>desc = <span class="macro">descriptor!</span>(wsh(thresh(
+ <span class="number">2</span>,
+ pk(prvkey0),
+ s:pk(pubkey1),
+ s:d:v:older(sequence)
+ )))
+ .unwrap();
+
+ <span class="kw">let </span>(wallet_desc, keymap) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+ <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
+ <span class="kw">let </span>policy = wallet_desc
+ .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
+ .unwrap()
+ .unwrap();
+
+ <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.item, Thresh { items, threshold } <span class="kw">if </span>items.len() == <span class="number">3 </span>&& threshold == <span class="kw-2">&</span><span class="number">2</span>);
+
+ <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.contribution, Satisfaction::PartialComplete { n, m, items, conditions, .. } <span class="kw">if </span>n == <span class="kw-2">&</span><span class="number">3
+ </span>&& m == <span class="kw-2">&</span><span class="number">2
+ </span>&& items.len() == <span class="number">3
+ </span>&& conditions.get(<span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">0</span>,<span class="number">1</span>]).unwrap().iter().next().unwrap().csv.is_none()
+ && conditions.get(<span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">0</span>,<span class="number">2</span>]).unwrap().iter().next().unwrap().csv == <span class="prelude-val">Some</span>(Sequence(sequence))
+ && conditions.get(<span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">1</span>,<span class="number">2</span>]).unwrap().iter().next().unwrap().csv == <span class="prelude-val">Some</span>(Sequence(sequence))
+ );
+ }
+
+ <span class="comment">// - mixed timelocks should fail
+
+ </span><span class="attr">#[test]
+ #[ignore]
+ </span><span class="kw">fn </span>test_extract_policy_for_wsh_mixed_timelocks() {
+ <span class="kw">let </span>secp = Secp256k1::new();
+ <span class="kw">let </span>(prvkey0, _pubkey0, _fingerprint0) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>locktime_threshold = <span class="number">500000000</span>; <span class="comment">// if less than this means block number, else block time in seconds
+ </span><span class="kw">let </span>locktime_blocks = <span class="number">100</span>;
+ <span class="kw">let </span>locktime_seconds = locktime_blocks + locktime_threshold;
+ <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(sh(and_v(
+ v: pk(prvkey0),
+ and_v(v: after(locktime_seconds), after(locktime_blocks))
+ )))
+ .unwrap();
+ <span class="kw">let </span>(wallet_desc, keymap) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+ <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
+ <span class="kw">let </span>_policy = wallet_desc
+ .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
+ .unwrap()
+ .unwrap();
+ <span class="comment">// println!("desc policy = {:?}", policy); // TODO remove
+ // TODO how should this fail with mixed timelocks?
+ </span>}
+
+ <span class="comment">// - multiple timelocks of the same type should be correctly merged together
+ </span><span class="attr">#[test]
+ #[ignore]
+ </span><span class="kw">fn </span>test_extract_policy_for_multiple_same_timelocks() {
+ <span class="kw">let </span>secp = Secp256k1::new();
+ <span class="kw">let </span>(prvkey0, _pubkey0, _fingerprint0) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>locktime_blocks0 = <span class="number">100</span>;
+ <span class="kw">let </span>locktime_blocks1 = <span class="number">200</span>;
+ <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(sh(and_v(
+ v: pk(prvkey0),
+ and_v(v: after(locktime_blocks0), after(locktime_blocks1))
+ )))
+ .unwrap();
+ <span class="kw">let </span>(wallet_desc, keymap) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+ <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
+ <span class="kw">let </span>_policy = wallet_desc
+ .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
+ .unwrap()
+ .unwrap();
+ <span class="comment">// println!("desc policy = {:?}", policy); // TODO remove
+ // TODO how should this merge timelocks?
+ </span><span class="kw">let </span>(prvkey1, _pubkey1, _fingerprint1) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>locktime_seconds0 = <span class="number">500000100</span>;
+ <span class="kw">let </span>locktime_seconds1 = <span class="number">500000200</span>;
+ <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(sh(and_v(
+ v: pk(prvkey1),
+ and_v(v: after(locktime_seconds0), after(locktime_seconds1))
+ )))
+ .unwrap();
+ <span class="kw">let </span>(wallet_desc, keymap) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+ <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
+ <span class="kw">let </span>_policy = wallet_desc
+ .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
+ .unwrap()
+ .unwrap();
+
+ <span class="comment">// println!("desc policy = {:?}", policy); // TODO remove
+
+ // TODO how should this merge timelocks?
+ </span>}
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_get_condition_multisig() {
+ <span class="kw">let </span>secp = Secp256k1::new();
+
+ <span class="kw">let </span>(<span class="kw">_</span>, pk0, <span class="kw">_</span>) = setup_keys(TPRV0_STR, PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>(<span class="kw">_</span>, pk1, <span class="kw">_</span>) = setup_keys(TPRV1_STR, PATH, <span class="kw-2">&</span>secp);
+
+ <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(wsh(multi(<span class="number">1</span>, pk0, pk1))).unwrap();
+ <span class="kw">let </span>(wallet_desc, keymap) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+ <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
+
+ <span class="kw">let </span>policy = wallet_desc
+ .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
+ .unwrap()
+ .unwrap();
+
+ <span class="comment">// no args, choose the default
+ </span><span class="kw">let </span>no_args = policy.get_condition(<span class="kw-2">&</span><span class="macro">vec!</span>[].into_iter().collect());
+ <span class="macro">assert_eq!</span>(no_args, <span class="prelude-val">Ok</span>(Condition::default()));
+
+ <span class="comment">// enough args
+ </span><span class="kw">let </span>eq_thresh =
+ policy.get_condition(<span class="kw-2">&</span><span class="macro">vec!</span>[(policy.id.clone(), <span class="macro">vec!</span>[<span class="number">0</span>])].into_iter().collect());
+ <span class="macro">assert_eq!</span>(eq_thresh, <span class="prelude-val">Ok</span>(Condition::default()));
+
+ <span class="comment">// more args, it doesn't really change anything
+ </span><span class="kw">let </span>gt_thresh =
+ policy.get_condition(<span class="kw-2">&</span><span class="macro">vec!</span>[(policy.id.clone(), <span class="macro">vec!</span>[<span class="number">0</span>, <span class="number">1</span>])].into_iter().collect());
+ <span class="macro">assert_eq!</span>(gt_thresh, <span class="prelude-val">Ok</span>(Condition::default()));
+
+ <span class="comment">// not enough args, error
+ </span><span class="kw">let </span>lt_thresh =
+ policy.get_condition(<span class="kw-2">&</span><span class="macro">vec!</span>[(policy.id.clone(), <span class="macro">vec!</span>[])].into_iter().collect());
+ <span class="macro">assert_eq!</span>(
+ lt_thresh,
+ <span class="prelude-val">Err</span>(PolicyError::NotEnoughItemsSelected(policy.id.clone()))
+ );
+
+ <span class="comment">// index out of range
+ </span><span class="kw">let </span>out_of_range =
+ policy.get_condition(<span class="kw-2">&</span><span class="macro">vec!</span>[(policy.id.clone(), <span class="macro">vec!</span>[<span class="number">5</span>])].into_iter().collect());
+ <span class="macro">assert_eq!</span>(out_of_range, <span class="prelude-val">Err</span>(PolicyError::IndexOutOfRange(<span class="number">5</span>)));
+ }
+
+ <span class="kw">const </span>ALICE_TPRV_STR:<span class="kw-2">&</span>str = <span class="string">"tprv8ZgxMBicQKsPf6T5X327efHnvJDr45Xnb8W4JifNWtEoqXu9MRYS4v1oYe6DFcMVETxy5w3bqpubYRqvcVTqovG1LifFcVUuJcbwJwrhYzP"</span>;
+ <span class="kw">const </span>BOB_TPRV_STR:<span class="kw-2">&</span>str = <span class="string">"tprv8ZgxMBicQKsPeinZ155cJAn117KYhbaN6MV3WeG6sWhxWzcvX1eg1awd4C9GpUN1ncLEM2rzEvunAg3GizdZD4QPPCkisTz99tXXB4wZArp"</span>;
+ <span class="kw">const </span>CAROL_TPRV_STR:<span class="kw-2">&</span>str = <span class="string">"tprv8ZgxMBicQKsPdC3CicFifuLCEyVVdXVUNYorxUWj3iGZ6nimnLAYAY9SYB7ib8rKzRxrCKFcEytCt6szwd2GHnGPRCBLAEAoSVDefSNk4Bt"</span>;
+ <span class="kw">const </span>ALICE_BOB_PATH: <span class="kw-2">&</span>str = <span class="string">"m/0'"</span>;
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_extract_satisfaction() {
+ <span class="kw">const </span>ALICE_SIGNED_PSBT: <span class="kw-2">&</span>str = <span class="string">"cHNidP8BAFMBAAAAAZb0njwT2wRS3AumaaP3yb7T4MxOePpSWih4Nq+jWChMAQAAAAD/////Af4lAAAAAAAAF6kUXv2Fn+YemPP4PUpNR1ZbU16/eRCHAAAAAAABASuJJgAAAAAAACIAIERw5kTLo9DUH9QDJSClHQwPpC7VGJ+ZMDpa8U+2fzcYIgIDeAtjYQk/Vfu4db2+68hyMKjc38+kWl5sP5QH8L42ZstHMEQCIBj0jLjUeVYXNQ6cqB+gbtvuKMjV54wSgWlm1cfcgpHVAiBa3DtC9l/1Mt4IDCvR7mmwQd3eAP/m5++81euhJNSrgQEBBUdSIQN4C2NhCT9V+7h1vb7ryHIwqNzfz6RaXmw/lAfwvjZmyyEC+GE/y+LptI8xmiR6sOe998IGzybox0Qfz4+BQl1nmYhSriIGAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIDBwu7j4AAACAAAAAACIGA3gLY2EJP1X7uHW9vuvIcjCo3N/PpFpebD+UB/C+NmbLDMkRfC4AAACAAAAAAAAA"</span>;
+ <span class="kw">const </span>BOB_SIGNED_PSBT: <span class="kw-2">&</span>str = <span class="string">"cHNidP8BAFMBAAAAAZb0njwT2wRS3AumaaP3yb7T4MxOePpSWih4Nq+jWChMAQAAAAD/////Af4lAAAAAAAAF6kUXv2Fn+YemPP4PUpNR1ZbU16/eRCHAAAAAAABASuJJgAAAAAAACIAIERw5kTLo9DUH9QDJSClHQwPpC7VGJ+ZMDpa8U+2fzcYIgIC+GE/y+LptI8xmiR6sOe998IGzybox0Qfz4+BQl1nmYhIMEUCIQD5zDtM5MwklurwJ5aW76RsO36Iqyu+6uMdVlhL6ws2GQIgesAiz4dbKS7UmhDsC/c1ezu0o6hp00UUtsCMfUZ4anYBAQVHUiEDeAtjYQk/Vfu4db2+68hyMKjc38+kWl5sP5QH8L42ZsshAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIUq4iBgL4YT/L4um0jzGaJHqw5733wgbPJujHRB/Pj4FCXWeZiAwcLu4+AAAAgAAAAAAiBgN4C2NhCT9V+7h1vb7ryHIwqNzfz6RaXmw/lAfwvjZmywzJEXwuAAAAgAAAAAAAAA=="</span>;
+ <span class="kw">const </span>ALICE_BOB_SIGNED_PSBT: <span class="kw-2">&</span>str = <span class="string">"cHNidP8BAFMBAAAAAZb0njwT2wRS3AumaaP3yb7T4MxOePpSWih4Nq+jWChMAQAAAAD/////Af4lAAAAAAAAF6kUXv2Fn+YemPP4PUpNR1ZbU16/eRCHAAAAAAABASuJJgAAAAAAACIAIERw5kTLo9DUH9QDJSClHQwPpC7VGJ+ZMDpa8U+2fzcYIgIC+GE/y+LptI8xmiR6sOe998IGzybox0Qfz4+BQl1nmYhIMEUCIQD5zDtM5MwklurwJ5aW76RsO36Iqyu+6uMdVlhL6ws2GQIgesAiz4dbKS7UmhDsC/c1ezu0o6hp00UUtsCMfUZ4anYBIgIDeAtjYQk/Vfu4db2+68hyMKjc38+kWl5sP5QH8L42ZstHMEQCIBj0jLjUeVYXNQ6cqB+gbtvuKMjV54wSgWlm1cfcgpHVAiBa3DtC9l/1Mt4IDCvR7mmwQd3eAP/m5++81euhJNSrgQEBBUdSIQN4C2NhCT9V+7h1vb7ryHIwqNzfz6RaXmw/lAfwvjZmyyEC+GE/y+LptI8xmiR6sOe998IGzybox0Qfz4+BQl1nmYhSriIGAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIDBwu7j4AAACAAAAAACIGA3gLY2EJP1X7uHW9vuvIcjCo3N/PpFpebD+UB/C+NmbLDMkRfC4AAACAAAAAAAEHAAEI2wQARzBEAiAY9Iy41HlWFzUOnKgfoG7b7ijI1eeMEoFpZtXH3IKR1QIgWtw7QvZf9TLeCAwr0e5psEHd3gD/5ufvvNXroSTUq4EBSDBFAiEA+cw7TOTMJJbq8CeWlu+kbDt+iKsrvurjHVZYS+sLNhkCIHrAIs+HWyku1JoQ7Av3NXs7tKOoadNFFLbAjH1GeGp2AUdSIQN4C2NhCT9V+7h1vb7ryHIwqNzfz6RaXmw/lAfwvjZmyyEC+GE/y+LptI8xmiR6sOe998IGzybox0Qfz4+BQl1nmYhSrgAA"</span>;
+
+ <span class="kw">let </span>secp = Secp256k1::new();
+
+ <span class="kw">let </span>(prvkey_alice, <span class="kw">_</span>, <span class="kw">_</span>) = setup_keys(ALICE_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>(prvkey_bob, <span class="kw">_</span>, <span class="kw">_</span>) = setup_keys(BOB_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
+
+ <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(wsh(multi(<span class="number">2</span>, prvkey_alice, prvkey_bob))).unwrap();
+
+ <span class="kw">let </span>(wallet_desc, keymap) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+
+ <span class="kw">let </span>addr = wallet_desc
+ .at_derivation_index(<span class="number">0</span>)
+ .unwrap()
+ .address(Network::Testnet)
+ .unwrap();
+ <span class="macro">assert_eq!</span>(
+ <span class="string">"tb1qg3cwv3xt50gdg875qvjjpfgaps86gtk4rz0ejvp6ttc5ldnlxuvqlcn0xk"</span>,
+ addr.to_string()
+ );
+
+ <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
+
+ <span class="kw">let </span>psbt = Psbt::from_str(ALICE_SIGNED_PSBT).unwrap();
+
+ <span class="kw">let </span>policy_alice_psbt = wallet_desc
+ .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::Psbt(<span class="kw-2">&</span>psbt), <span class="kw-2">&</span>secp)
+ .unwrap()
+ .unwrap();
+ <span class="comment">//println!("{}", serde_json::to_string(&policy_alice_psbt).unwrap());
+
+ </span><span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy_alice_psbt.satisfaction, Satisfaction::Partial { n, m, items, .. } <span class="kw">if </span>n == <span class="kw-2">&</span><span class="number">2
+ </span>&& m == <span class="kw-2">&</span><span class="number">2
+ </span>&& items == <span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">0</span>]
+ );
+
+ <span class="kw">let </span>psbt = Psbt::from_str(BOB_SIGNED_PSBT).unwrap();
+ <span class="kw">let </span>policy_bob_psbt = wallet_desc
+ .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::Psbt(<span class="kw-2">&</span>psbt), <span class="kw-2">&</span>secp)
+ .unwrap()
+ .unwrap();
+ <span class="comment">//println!("{}", serde_json::to_string(&policy_bob_psbt).unwrap());
+
+ </span><span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy_bob_psbt.satisfaction, Satisfaction::Partial { n, m, items, .. } <span class="kw">if </span>n == <span class="kw-2">&</span><span class="number">2
+ </span>&& m == <span class="kw-2">&</span><span class="number">2
+ </span>&& items == <span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">1</span>]
+ );
+
+ <span class="kw">let </span>psbt = Psbt::from_str(ALICE_BOB_SIGNED_PSBT).unwrap();
+ <span class="kw">let </span>policy_alice_bob_psbt = wallet_desc
+ .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::Psbt(<span class="kw-2">&</span>psbt), <span class="kw-2">&</span>secp)
+ .unwrap()
+ .unwrap();
+ <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy_alice_bob_psbt.satisfaction, Satisfaction::PartialComplete { n, m, items, .. } <span class="kw">if </span>n == <span class="kw-2">&</span><span class="number">2
+ </span>&& m == <span class="kw-2">&</span><span class="number">2
+ </span>&& items == <span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">0</span>, <span class="number">1</span>]
+ );
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_extract_satisfaction_timelock() {
+ <span class="comment">//const PSBT_POLICY_CONSIDER_TIMELOCK_NOT_EXPIRED: &str = "cHNidP8BAFMBAAAAAdld52uJFGT7Yde0YZdSVh2vL020Zm2exadH5R4GSNScAAAAAAD/////ATrcAAAAAAAAF6kUXv2Fn+YemPP4PUpNR1ZbU16/eRCHAAAAAAABASvI3AAAAAAAACIAILhzvvcBzw/Zfnc9ispRK0PCahxn1F6RHXTZAmw5tqNPAQVSdmNSsmlofCEDeAtjYQk/Vfu4db2+68hyMKjc38+kWl5sP5QH8L42Zsusk3whAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIrJNShyIGAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIDBwu7j4AAACAAAAAACIGA3gLY2EJP1X7uHW9vuvIcjCo3N/PpFpebD+UB/C+NmbLDMkRfC4AAACAAAAAAAAA";
+ </span><span class="kw">const </span>PSBT_POLICY_CONSIDER_TIMELOCK_EXPIRED: <span class="kw-2">&</span>str = <span class="string">"cHNidP8BAFMCAAAAAdld52uJFGT7Yde0YZdSVh2vL020Zm2exadH5R4GSNScAAAAAAACAAAAATrcAAAAAAAAF6kUXv2Fn+YemPP4PUpNR1ZbU16/eRCHAAAAAAABASvI3AAAAAAAACIAILhzvvcBzw/Zfnc9ispRK0PCahxn1F6RHXTZAmw5tqNPAQVSdmNSsmlofCEDeAtjYQk/Vfu4db2+68hyMKjc38+kWl5sP5QH8L42Zsusk3whAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIrJNShyIGAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIDBwu7j4AAACAAAAAACIGA3gLY2EJP1X7uHW9vuvIcjCo3N/PpFpebD+UB/C+NmbLDMkRfC4AAACAAAAAAAAA"</span>;
+ <span class="kw">const </span>PSBT_POLICY_CONSIDER_TIMELOCK_EXPIRED_SIGNED: <span class="kw-2">&</span>str =<span class="string">"cHNidP8BAFMCAAAAAdld52uJFGT7Yde0YZdSVh2vL020Zm2exadH5R4GSNScAAAAAAACAAAAATrcAAAAAAAAF6kUXv2Fn+YemPP4PUpNR1ZbU16/eRCHAAAAAAABASvI3AAAAAAAACIAILhzvvcBzw/Zfnc9ispRK0PCahxn1F6RHXTZAmw5tqNPIgIDeAtjYQk/Vfu4db2+68hyMKjc38+kWl5sP5QH8L42ZstIMEUCIQCtZxNm6H3Ux3pnc64DSpgohMdBj+57xhFHcURYt2BpPAIgG3OnI7bcj/3GtWX1HHyYGSI7QGa/zq5YnsmK1Cw29NABAQVSdmNSsmlofCEDeAtjYQk/Vfu4db2+68hyMKjc38+kWl5sP5QH8L42Zsusk3whAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIrJNShyIGAvhhP8vi6bSPMZokerDnvffCBs8m6MdEH8+PgUJdZ5mIDBwu7j4AAACAAAAAACIGA3gLY2EJP1X7uHW9vuvIcjCo3N/PpFpebD+UB/C+NmbLDMkRfC4AAACAAAAAAAEHAAEIoAQASDBFAiEArWcTZuh91Md6Z3OuA0qYKITHQY/ue8YRR3FEWLdgaTwCIBtzpyO23I/9xrVl9Rx8mBkiO0Bmv86uWJ7JitQsNvTQAQEBUnZjUrJpaHwhA3gLY2EJP1X7uHW9vuvIcjCo3N/PpFpebD+UB/C+NmbLrJN8IQL4YT/L4um0jzGaJHqw5733wgbPJujHRB/Pj4FCXWeZiKyTUocAAA=="</span>;
+
+ <span class="kw">let </span>secp = Secp256k1::new();
+
+ <span class="kw">let </span>(prvkey_alice, <span class="kw">_</span>, <span class="kw">_</span>) = setup_keys(ALICE_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>(prvkey_bob, <span class="kw">_</span>, <span class="kw">_</span>) = setup_keys(BOB_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
+
+ <span class="kw">let </span>desc =
+ <span class="macro">descriptor!</span>(wsh(thresh(<span class="number">2</span>,n:d:v:older(<span class="number">2</span>),s:pk(prvkey_alice),s:pk(prvkey_bob)))).unwrap();
+
+ <span class="kw">let </span>(wallet_desc, keymap) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+ <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
+
+ <span class="kw">let </span>addr = wallet_desc
+ .at_derivation_index(<span class="number">0</span>)
+ .unwrap()
+ .address(Network::Testnet)
+ .unwrap();
+ <span class="macro">assert_eq!</span>(
+ <span class="string">"tb1qsydsey4hexagwkvercqsmes6yet0ndkyt6uzcphtqnygjd8hmzmsfxrv58"</span>,
+ addr.to_string()
+ );
+
+ <span class="kw">let </span>psbt = Psbt::from_str(PSBT_POLICY_CONSIDER_TIMELOCK_EXPIRED).unwrap();
+
+ <span class="kw">let </span>build_sat = BuildSatisfaction::PsbtTimelocks {
+ psbt: <span class="kw-2">&</span>psbt,
+ current_height: <span class="number">10</span>,
+ input_max_height: <span class="number">9</span>,
+ };
+
+ <span class="kw">let </span>policy = wallet_desc
+ .extract_policy(<span class="kw-2">&</span>signers_container, build_sat, <span class="kw-2">&</span>secp)
+ .unwrap()
+ .unwrap();
+ <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy.satisfaction, Satisfaction::Partial { n, m, items, .. } <span class="kw">if </span>n == <span class="kw-2">&</span><span class="number">3
+ </span>&& m == <span class="kw-2">&</span><span class="number">2
+ </span>&& items.is_empty()
+ );
+ <span class="comment">//println!("{}", serde_json::to_string(&policy).unwrap());
+
+ </span><span class="kw">let </span>build_sat_expired = BuildSatisfaction::PsbtTimelocks {
+ psbt: <span class="kw-2">&</span>psbt,
+ current_height: <span class="number">12</span>,
+ input_max_height: <span class="number">9</span>,
+ };
+
+ <span class="kw">let </span>policy_expired = wallet_desc
+ .extract_policy(<span class="kw-2">&</span>signers_container, build_sat_expired, <span class="kw-2">&</span>secp)
+ .unwrap()
+ .unwrap();
+ <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy_expired.satisfaction, Satisfaction::Partial { n, m, items, .. } <span class="kw">if </span>n == <span class="kw-2">&</span><span class="number">3
+ </span>&& m == <span class="kw-2">&</span><span class="number">2
+ </span>&& items == <span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">0</span>]
+ );
+ <span class="comment">//println!("{}", serde_json::to_string(&policy_expired).unwrap());
+
+ </span><span class="kw">let </span>psbt_signed = Psbt::from_str(PSBT_POLICY_CONSIDER_TIMELOCK_EXPIRED_SIGNED).unwrap();
+
+ <span class="kw">let </span>build_sat_expired_signed = BuildSatisfaction::PsbtTimelocks {
+ psbt: <span class="kw-2">&</span>psbt_signed,
+ current_height: <span class="number">12</span>,
+ input_max_height: <span class="number">9</span>,
+ };
+
+ <span class="kw">let </span>policy_expired_signed = wallet_desc
+ .extract_policy(<span class="kw-2">&</span>signers_container, build_sat_expired_signed, <span class="kw-2">&</span>secp)
+ .unwrap()
+ .unwrap();
+ <span class="macro">assert_matches!</span>(<span class="kw-2">&</span>policy_expired_signed.satisfaction, Satisfaction::PartialComplete { n, m, items, .. } <span class="kw">if </span>n == <span class="kw-2">&</span><span class="number">3
+ </span>&& m == <span class="kw-2">&</span><span class="number">2
+ </span>&& items == <span class="kw-2">&</span><span class="macro">vec!</span>[<span class="number">0</span>, <span class="number">1</span>]
+ );
+ <span class="comment">//println!("{}", serde_json::to_string(&policy_expired_signed).unwrap());
+ </span>}
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_extract_pkh() {
+ <span class="kw">let </span>secp = Secp256k1::new();
+
+ <span class="kw">let </span>(prvkey_alice, <span class="kw">_</span>, <span class="kw">_</span>) = setup_keys(ALICE_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>(prvkey_bob, <span class="kw">_</span>, <span class="kw">_</span>) = setup_keys(BOB_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>(prvkey_carol, <span class="kw">_</span>, <span class="kw">_</span>) = setup_keys(CAROL_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
+
+ <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(wsh(c: andor(
+ pk(prvkey_alice),
+ pk_k(prvkey_bob),
+ pk_h(prvkey_carol),
+ )))
+ .unwrap();
+
+ <span class="kw">let </span>(wallet_desc, keymap) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+ <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
+
+ <span class="kw">let </span>policy = wallet_desc.extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp);
+ <span class="macro">assert!</span>(policy.is_ok());
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_extract_tr_key_spend() {
+ <span class="kw">let </span>secp = Secp256k1::new();
+
+ <span class="kw">let </span>(prvkey, <span class="kw">_</span>, fingerprint) = setup_keys(ALICE_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
+
+ <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(tr(prvkey)).unwrap();
+ <span class="kw">let </span>(wallet_desc, keymap) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+ <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
+
+ <span class="kw">let </span>policy = wallet_desc
+ .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
+ .unwrap();
+ <span class="macro">assert_eq!</span>(
+ policy,
+ <span class="prelude-val">Some</span>(Policy {
+ id: <span class="string">"48u0tz0n"</span>.to_string(),
+ item: SatisfiableItem::SchnorrSignature(PkOrF::Fingerprint(fingerprint)),
+ satisfaction: Satisfaction::None,
+ contribution: Satisfaction::Complete {
+ condition: Condition::default()
+ }
+ })
+ );
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_extract_tr_script_spend() {
+ <span class="kw">let </span>secp = Secp256k1::new();
+
+ <span class="kw">let </span>(alice_prv, <span class="kw">_</span>, alice_fing) = setup_keys(ALICE_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>(<span class="kw">_</span>, bob_pub, bob_fing) = setup_keys(BOB_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
+
+ <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(tr(bob_pub, pk(alice_prv))).unwrap();
+ <span class="kw">let </span>(wallet_desc, keymap) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+ <span class="kw">let </span>signers_container = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp));
+
+ <span class="kw">let </span>policy = wallet_desc
+ .extract_policy(<span class="kw-2">&</span>signers_container, BuildSatisfaction::None, <span class="kw-2">&</span>secp)
+ .unwrap()
+ .unwrap();
+
+ <span class="macro">assert_matches!</span>(policy.item, SatisfiableItem::Thresh { <span class="kw-2">ref </span>items, threshold: <span class="number">1 </span>} <span class="kw">if </span>items.len() == <span class="number">2</span>);
+ <span class="macro">assert_matches!</span>(policy.contribution, Satisfaction::PartialComplete { n: <span class="number">2</span>, m: <span class="number">1</span>, items, .. } <span class="kw">if </span>items == <span class="macro">vec!</span>[<span class="number">1</span>]);
+
+ <span class="kw">let </span>alice_sig = SatisfiableItem::SchnorrSignature(PkOrF::Fingerprint(alice_fing));
+ <span class="kw">let </span>bob_sig = SatisfiableItem::SchnorrSignature(PkOrF::Fingerprint(bob_fing));
+
+ <span class="kw">let </span>thresh_items = <span class="kw">match </span>policy.item {
+ SatisfiableItem::Thresh { items, .. } => items,
+ <span class="kw">_ </span>=> <span class="macro">unreachable!</span>(),
+ };
+
+ <span class="macro">assert_eq!</span>(thresh_items[<span class="number">0</span>].item, bob_sig);
+ <span class="macro">assert_eq!</span>(thresh_items[<span class="number">1</span>].item, alice_sig);
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_extract_tr_satisfaction_key_spend() {
+ <span class="kw">const </span>UNSIGNED_PSBT: <span class="kw-2">&</span>str = <span class="string">"cHNidP8BAFMBAAAAAUKgMCqtGLSiGYhsTols2UJ/VQQgQi/SXO38uXs2SahdAQAAAAD/////ARyWmAAAAAAAF6kU4R3W8CnGzZcSsaovTYu0X8vHt3WHAAAAAAABASuAlpgAAAAAACJRIEiEBFjbZa1xdjLfFjrKzuC1F1LeRyI/gL6IuGKNmUuSIRYnkGTDxwXMHP32fkDFoGJY28trxbkkVgR2z7jZa2pOJA0AyRF8LgAAAIADAAAAARcgJ5Bkw8cFzBz99n5AxaBiWNvLa8W5JFYEds+42WtqTiQAAA=="</span>;
+ <span class="kw">const </span>SIGNED_PSBT: <span class="kw-2">&</span>str = <span class="string">"cHNidP8BAFMBAAAAAUKgMCqtGLSiGYhsTols2UJ/VQQgQi/SXO38uXs2SahdAQAAAAD/////ARyWmAAAAAAAF6kU4R3W8CnGzZcSsaovTYu0X8vHt3WHAAAAAAABASuAlpgAAAAAACJRIEiEBFjbZa1xdjLfFjrKzuC1F1LeRyI/gL6IuGKNmUuSARNAIsRvARpRxuyQosVA7guRQT9vXr+S25W2tnP2xOGBsSgq7A4RL8yrbvwDmNlWw9R0Nc/6t+IsyCyy7dD/lbUGgyEWJ5Bkw8cFzBz99n5AxaBiWNvLa8W5JFYEds+42WtqTiQNAMkRfC4AAACAAwAAAAEXICeQZMPHBcwc/fZ+QMWgYljby2vFuSRWBHbPuNlrak4kAAA="</span>;
+
+ <span class="kw">let </span>unsigned_psbt = Psbt::from_str(UNSIGNED_PSBT).unwrap();
+ <span class="kw">let </span>signed_psbt = Psbt::from_str(SIGNED_PSBT).unwrap();
+
+ <span class="kw">let </span>secp = Secp256k1::new();
+
+ <span class="kw">let </span>(<span class="kw">_</span>, pubkey, <span class="kw">_</span>) = setup_keys(ALICE_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
+
+ <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(tr(pubkey)).unwrap();
+ <span class="kw">let </span>(wallet_desc, <span class="kw">_</span>) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+
+ <span class="kw">let </span>policy_unsigned = wallet_desc
+ .extract_policy(
+ <span class="kw-2">&</span>SignersContainer::default(),
+ BuildSatisfaction::Psbt(<span class="kw-2">&</span>unsigned_psbt),
+ <span class="kw-2">&</span>secp,
+ )
+ .unwrap()
+ .unwrap();
+ <span class="kw">let </span>policy_signed = wallet_desc
+ .extract_policy(
+ <span class="kw-2">&</span>SignersContainer::default(),
+ BuildSatisfaction::Psbt(<span class="kw-2">&</span>signed_psbt),
+ <span class="kw-2">&</span>secp,
+ )
+ .unwrap()
+ .unwrap();
+
+ <span class="macro">assert_eq!</span>(policy_unsigned.satisfaction, Satisfaction::None);
+ <span class="macro">assert_eq!</span>(
+ policy_signed.satisfaction,
+ Satisfaction::Complete {
+ condition: Default::default()
+ }
+ );
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_extract_tr_satisfaction_script_spend() {
+ <span class="kw">const </span>UNSIGNED_PSBT: <span class="kw-2">&</span>str = <span class="string">"cHNidP8BAFMBAAAAAWZalxaErOL7P3WPIUc8DsjgE68S+ww+uqiqEI2SAwlPAAAAAAD/////AQiWmAAAAAAAF6kU4R3W8CnGzZcSsaovTYu0X8vHt3WHAAAAAAABASuAlpgAAAAAACJRINa6bLPZwp3/CYWoxyI3mLYcSC5f9LInAMUng94nspa2IhXBgiPY+kcolS1Hp0niOK/+7VHz6F+nsz8JVxnzWzkgToYjIHhGyuexxtRVKevRx4YwWR/W0r7LPHt6oS6DLlzyuYQarMAhFnhGyuexxtRVKevRx4YwWR/W0r7LPHt6oS6DLlzyuYQaLQH2onWFc3UR6I9ZhuHVeJCi5LNAf4APVd7mHn4BhdViHRwu7j4AAACAAgAAACEWgiPY+kcolS1Hp0niOK/+7VHz6F+nsz8JVxnzWzkgToYNAMkRfC4AAACAAgAAAAEXIIIj2PpHKJUtR6dJ4jiv/u1R8+hfp7M/CVcZ81s5IE6GARgg9qJ1hXN1EeiPWYbh1XiQouSzQH+AD1Xe5h5+AYXVYh0AAA=="</span>;
+ <span class="kw">const </span>SIGNED_PSBT: <span class="kw-2">&</span>str = <span class="string">"cHNidP8BAFMBAAAAAWZalxaErOL7P3WPIUc8DsjgE68S+ww+uqiqEI2SAwlPAAAAAAD/////AQiWmAAAAAAAF6kU4R3W8CnGzZcSsaovTYu0X8vHt3WHAAAAAAABASuAlpgAAAAAACJRINa6bLPZwp3/CYWoxyI3mLYcSC5f9LInAMUng94nspa2AQcAAQhCAUALcP9w/+Ddly9DWdhHTnQ9uCDWLPZjR6vKbKePswW2Ee6W5KNfrklus/8z98n7BQ1U4vADHk0FbadeeL8rrbHlARNAC3D/cP/g3ZcvQ1nYR050Pbgg1iz2Y0erymynj7MFthHuluSjX65JbrP/M/fJ+wUNVOLwAx5NBW2nXni/K62x5UEUeEbK57HG1FUp69HHhjBZH9bSvss8e3qhLoMuXPK5hBr2onWFc3UR6I9ZhuHVeJCi5LNAf4APVd7mHn4BhdViHUAXNmWieJ80Fs+PMa2C186YOBPZbYG/ieEUkagMwzJ788SoCucNdp5wnxfpuJVygFhglDrXGzujFtC82PrMohwuIhXBgiPY+kcolS1Hp0niOK/+7VHz6F+nsz8JVxnzWzkgToYjIHhGyuexxtRVKevRx4YwWR/W0r7LPHt6oS6DLlzyuYQarMAhFnhGyuexxtRVKevRx4YwWR/W0r7LPHt6oS6DLlzyuYQaLQH2onWFc3UR6I9ZhuHVeJCi5LNAf4APVd7mHn4BhdViHRwu7j4AAACAAgAAACEWgiPY+kcolS1Hp0niOK/+7VHz6F+nsz8JVxnzWzkgToYNAMkRfC4AAACAAgAAAAEXIIIj2PpHKJUtR6dJ4jiv/u1R8+hfp7M/CVcZ81s5IE6GARgg9qJ1hXN1EeiPWYbh1XiQouSzQH+AD1Xe5h5+AYXVYh0AAA=="</span>;
+
+ <span class="kw">let </span>unsigned_psbt = Psbt::from_str(UNSIGNED_PSBT).unwrap();
+ <span class="kw">let </span>signed_psbt = Psbt::from_str(SIGNED_PSBT).unwrap();
+
+ <span class="kw">let </span>secp = Secp256k1::new();
+
+ <span class="kw">let </span>(<span class="kw">_</span>, alice_pub, <span class="kw">_</span>) = setup_keys(ALICE_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
+ <span class="kw">let </span>(<span class="kw">_</span>, bob_pub, <span class="kw">_</span>) = setup_keys(BOB_TPRV_STR, ALICE_BOB_PATH, <span class="kw-2">&</span>secp);
+
+ <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(tr(bob_pub, pk(alice_pub))).unwrap();
+ <span class="kw">let </span>(wallet_desc, <span class="kw">_</span>) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+
+ <span class="kw">let </span>policy_unsigned = wallet_desc
+ .extract_policy(
+ <span class="kw-2">&</span>SignersContainer::default(),
+ BuildSatisfaction::Psbt(<span class="kw-2">&</span>unsigned_psbt),
+ <span class="kw-2">&</span>secp,
+ )
+ .unwrap()
+ .unwrap();
+ <span class="kw">let </span>policy_signed = wallet_desc
+ .extract_policy(
+ <span class="kw-2">&</span>SignersContainer::default(),
+ BuildSatisfaction::Psbt(<span class="kw-2">&</span>signed_psbt),
+ <span class="kw-2">&</span>secp,
+ )
+ .unwrap()
+ .unwrap();
+
+ <span class="macro">assert_matches!</span>(policy_unsigned.item, SatisfiableItem::Thresh { <span class="kw-2">ref </span>items, threshold: <span class="number">1 </span>} <span class="kw">if </span>items.len() == <span class="number">2</span>);
+ <span class="macro">assert_matches!</span>(policy_unsigned.satisfaction, Satisfaction::Partial { n: <span class="number">2</span>, m: <span class="number">1</span>, items, .. } <span class="kw">if </span>items.is_empty());
+
+ <span class="macro">assert_matches!</span>(policy_signed.item, SatisfiableItem::Thresh { <span class="kw-2">ref </span>items, threshold: <span class="number">1 </span>} <span class="kw">if </span>items.len() == <span class="number">2</span>);
+ <span class="macro">assert_matches!</span>(policy_signed.satisfaction, Satisfaction::PartialComplete { n: <span class="number">2</span>, m: <span class="number">1</span>, items, .. } <span class="kw">if </span>items == <span class="macro">vec!</span>[<span class="number">0</span>, <span class="number">1</span>]);
+
+ <span class="kw">let </span>satisfied_items = <span class="kw">match </span>policy_signed.item {
+ SatisfiableItem::Thresh { items, .. } => items,
+ <span class="kw">_ </span>=> <span class="macro">unreachable!</span>(),
+ };
+
+ <span class="macro">assert_eq!</span>(
+ satisfied_items[<span class="number">0</span>].satisfaction,
+ Satisfaction::Complete {
+ condition: Default::default()
+ }
+ );
+ <span class="macro">assert_eq!</span>(
+ satisfied_items[<span class="number">1</span>].satisfaction,
+ Satisfaction::Complete {
+ condition: Default::default()
+ }
+ );
+ }
+}
+</code></pre></div>
+</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Source of the Rust file `crates/wallet/src/descriptor/template.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>template.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk_wallet/index.html">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
+<a href="#2" id="2">2</a>
+<a href="#3" id="3">3</a>
+<a href="#4" id="4">4</a>
+<a href="#5" id="5">5</a>
+<a href="#6" id="6">6</a>
+<a href="#7" id="7">7</a>
+<a href="#8" id="8">8</a>
+<a href="#9" id="9">9</a>
+<a href="#10" id="10">10</a>
+<a href="#11" id="11">11</a>
+<a href="#12" id="12">12</a>
+<a href="#13" id="13">13</a>
+<a href="#14" id="14">14</a>
+<a href="#15" id="15">15</a>
+<a href="#16" id="16">16</a>
+<a href="#17" id="17">17</a>
+<a href="#18" id="18">18</a>
+<a href="#19" id="19">19</a>
+<a href="#20" id="20">20</a>
+<a href="#21" id="21">21</a>
+<a href="#22" id="22">22</a>
+<a href="#23" id="23">23</a>
+<a href="#24" id="24">24</a>
+<a href="#25" id="25">25</a>
+<a href="#26" id="26">26</a>
+<a href="#27" id="27">27</a>
+<a href="#28" id="28">28</a>
+<a href="#29" id="29">29</a>
+<a href="#30" id="30">30</a>
+<a href="#31" id="31">31</a>
+<a href="#32" id="32">32</a>
+<a href="#33" id="33">33</a>
+<a href="#34" id="34">34</a>
+<a href="#35" id="35">35</a>
+<a href="#36" id="36">36</a>
+<a href="#37" id="37">37</a>
+<a href="#38" id="38">38</a>
+<a href="#39" id="39">39</a>
+<a href="#40" id="40">40</a>
+<a href="#41" id="41">41</a>
+<a href="#42" id="42">42</a>
+<a href="#43" id="43">43</a>
+<a href="#44" id="44">44</a>
+<a href="#45" id="45">45</a>
+<a href="#46" id="46">46</a>
+<a href="#47" id="47">47</a>
+<a href="#48" id="48">48</a>
+<a href="#49" id="49">49</a>
+<a href="#50" id="50">50</a>
+<a href="#51" id="51">51</a>
+<a href="#52" id="52">52</a>
+<a href="#53" id="53">53</a>
+<a href="#54" id="54">54</a>
+<a href="#55" id="55">55</a>
+<a href="#56" id="56">56</a>
+<a href="#57" id="57">57</a>
+<a href="#58" id="58">58</a>
+<a href="#59" id="59">59</a>
+<a href="#60" id="60">60</a>
+<a href="#61" id="61">61</a>
+<a href="#62" id="62">62</a>
+<a href="#63" id="63">63</a>
+<a href="#64" id="64">64</a>
+<a href="#65" id="65">65</a>
+<a href="#66" id="66">66</a>
+<a href="#67" id="67">67</a>
+<a href="#68" id="68">68</a>
+<a href="#69" id="69">69</a>
+<a href="#70" id="70">70</a>
+<a href="#71" id="71">71</a>
+<a href="#72" id="72">72</a>
+<a href="#73" id="73">73</a>
+<a href="#74" id="74">74</a>
+<a href="#75" id="75">75</a>
+<a href="#76" id="76">76</a>
+<a href="#77" id="77">77</a>
+<a href="#78" id="78">78</a>
+<a href="#79" id="79">79</a>
+<a href="#80" id="80">80</a>
+<a href="#81" id="81">81</a>
+<a href="#82" id="82">82</a>
+<a href="#83" id="83">83</a>
+<a href="#84" id="84">84</a>
+<a href="#85" id="85">85</a>
+<a href="#86" id="86">86</a>
+<a href="#87" id="87">87</a>
+<a href="#88" id="88">88</a>
+<a href="#89" id="89">89</a>
+<a href="#90" id="90">90</a>
+<a href="#91" id="91">91</a>
+<a href="#92" id="92">92</a>
+<a href="#93" id="93">93</a>
+<a href="#94" id="94">94</a>
+<a href="#95" id="95">95</a>
+<a href="#96" id="96">96</a>
+<a href="#97" id="97">97</a>
+<a href="#98" id="98">98</a>
+<a href="#99" id="99">99</a>
+<a href="#100" id="100">100</a>
+<a href="#101" id="101">101</a>
+<a href="#102" id="102">102</a>
+<a href="#103" id="103">103</a>
+<a href="#104" id="104">104</a>
+<a href="#105" id="105">105</a>
+<a href="#106" id="106">106</a>
+<a href="#107" id="107">107</a>
+<a href="#108" id="108">108</a>
+<a href="#109" id="109">109</a>
+<a href="#110" id="110">110</a>
+<a href="#111" id="111">111</a>
+<a href="#112" id="112">112</a>
+<a href="#113" id="113">113</a>
+<a href="#114" id="114">114</a>
+<a href="#115" id="115">115</a>
+<a href="#116" id="116">116</a>
+<a href="#117" id="117">117</a>
+<a href="#118" id="118">118</a>
+<a href="#119" id="119">119</a>
+<a href="#120" id="120">120</a>
+<a href="#121" id="121">121</a>
+<a href="#122" id="122">122</a>
+<a href="#123" id="123">123</a>
+<a href="#124" id="124">124</a>
+<a href="#125" id="125">125</a>
+<a href="#126" id="126">126</a>
+<a href="#127" id="127">127</a>
+<a href="#128" id="128">128</a>
+<a href="#129" id="129">129</a>
+<a href="#130" id="130">130</a>
+<a href="#131" id="131">131</a>
+<a href="#132" id="132">132</a>
+<a href="#133" id="133">133</a>
+<a href="#134" id="134">134</a>
+<a href="#135" id="135">135</a>
+<a href="#136" id="136">136</a>
+<a href="#137" id="137">137</a>
+<a href="#138" id="138">138</a>
+<a href="#139" id="139">139</a>
+<a href="#140" id="140">140</a>
+<a href="#141" id="141">141</a>
+<a href="#142" id="142">142</a>
+<a href="#143" id="143">143</a>
+<a href="#144" id="144">144</a>
+<a href="#145" id="145">145</a>
+<a href="#146" id="146">146</a>
+<a href="#147" id="147">147</a>
+<a href="#148" id="148">148</a>
+<a href="#149" id="149">149</a>
+<a href="#150" id="150">150</a>
+<a href="#151" id="151">151</a>
+<a href="#152" id="152">152</a>
+<a href="#153" id="153">153</a>
+<a href="#154" id="154">154</a>
+<a href="#155" id="155">155</a>
+<a href="#156" id="156">156</a>
+<a href="#157" id="157">157</a>
+<a href="#158" id="158">158</a>
+<a href="#159" id="159">159</a>
+<a href="#160" id="160">160</a>
+<a href="#161" id="161">161</a>
+<a href="#162" id="162">162</a>
+<a href="#163" id="163">163</a>
+<a href="#164" id="164">164</a>
+<a href="#165" id="165">165</a>
+<a href="#166" id="166">166</a>
+<a href="#167" id="167">167</a>
+<a href="#168" id="168">168</a>
+<a href="#169" id="169">169</a>
+<a href="#170" id="170">170</a>
+<a href="#171" id="171">171</a>
+<a href="#172" id="172">172</a>
+<a href="#173" id="173">173</a>
+<a href="#174" id="174">174</a>
+<a href="#175" id="175">175</a>
+<a href="#176" id="176">176</a>
+<a href="#177" id="177">177</a>
+<a href="#178" id="178">178</a>
+<a href="#179" id="179">179</a>
+<a href="#180" id="180">180</a>
+<a href="#181" id="181">181</a>
+<a href="#182" id="182">182</a>
+<a href="#183" id="183">183</a>
+<a href="#184" id="184">184</a>
+<a href="#185" id="185">185</a>
+<a href="#186" id="186">186</a>
+<a href="#187" id="187">187</a>
+<a href="#188" id="188">188</a>
+<a href="#189" id="189">189</a>
+<a href="#190" id="190">190</a>
+<a href="#191" id="191">191</a>
+<a href="#192" id="192">192</a>
+<a href="#193" id="193">193</a>
+<a href="#194" id="194">194</a>
+<a href="#195" id="195">195</a>
+<a href="#196" id="196">196</a>
+<a href="#197" id="197">197</a>
+<a href="#198" id="198">198</a>
+<a href="#199" id="199">199</a>
+<a href="#200" id="200">200</a>
+<a href="#201" id="201">201</a>
+<a href="#202" id="202">202</a>
+<a href="#203" id="203">203</a>
+<a href="#204" id="204">204</a>
+<a href="#205" id="205">205</a>
+<a href="#206" id="206">206</a>
+<a href="#207" id="207">207</a>
+<a href="#208" id="208">208</a>
+<a href="#209" id="209">209</a>
+<a href="#210" id="210">210</a>
+<a href="#211" id="211">211</a>
+<a href="#212" id="212">212</a>
+<a href="#213" id="213">213</a>
+<a href="#214" id="214">214</a>
+<a href="#215" id="215">215</a>
+<a href="#216" id="216">216</a>
+<a href="#217" id="217">217</a>
+<a href="#218" id="218">218</a>
+<a href="#219" id="219">219</a>
+<a href="#220" id="220">220</a>
+<a href="#221" id="221">221</a>
+<a href="#222" id="222">222</a>
+<a href="#223" id="223">223</a>
+<a href="#224" id="224">224</a>
+<a href="#225" id="225">225</a>
+<a href="#226" id="226">226</a>
+<a href="#227" id="227">227</a>
+<a href="#228" id="228">228</a>
+<a href="#229" id="229">229</a>
+<a href="#230" id="230">230</a>
+<a href="#231" id="231">231</a>
+<a href="#232" id="232">232</a>
+<a href="#233" id="233">233</a>
+<a href="#234" id="234">234</a>
+<a href="#235" id="235">235</a>
+<a href="#236" id="236">236</a>
+<a href="#237" id="237">237</a>
+<a href="#238" id="238">238</a>
+<a href="#239" id="239">239</a>
+<a href="#240" id="240">240</a>
+<a href="#241" id="241">241</a>
+<a href="#242" id="242">242</a>
+<a href="#243" id="243">243</a>
+<a href="#244" id="244">244</a>
+<a href="#245" id="245">245</a>
+<a href="#246" id="246">246</a>
+<a href="#247" id="247">247</a>
+<a href="#248" id="248">248</a>
+<a href="#249" id="249">249</a>
+<a href="#250" id="250">250</a>
+<a href="#251" id="251">251</a>
+<a href="#252" id="252">252</a>
+<a href="#253" id="253">253</a>
+<a href="#254" id="254">254</a>
+<a href="#255" id="255">255</a>
+<a href="#256" id="256">256</a>
+<a href="#257" id="257">257</a>
+<a href="#258" id="258">258</a>
+<a href="#259" id="259">259</a>
+<a href="#260" id="260">260</a>
+<a href="#261" id="261">261</a>
+<a href="#262" id="262">262</a>
+<a href="#263" id="263">263</a>
+<a href="#264" id="264">264</a>
+<a href="#265" id="265">265</a>
+<a href="#266" id="266">266</a>
+<a href="#267" id="267">267</a>
+<a href="#268" id="268">268</a>
+<a href="#269" id="269">269</a>
+<a href="#270" id="270">270</a>
+<a href="#271" id="271">271</a>
+<a href="#272" id="272">272</a>
+<a href="#273" id="273">273</a>
+<a href="#274" id="274">274</a>
+<a href="#275" id="275">275</a>
+<a href="#276" id="276">276</a>
+<a href="#277" id="277">277</a>
+<a href="#278" id="278">278</a>
+<a href="#279" id="279">279</a>
+<a href="#280" id="280">280</a>
+<a href="#281" id="281">281</a>
+<a href="#282" id="282">282</a>
+<a href="#283" id="283">283</a>
+<a href="#284" id="284">284</a>
+<a href="#285" id="285">285</a>
+<a href="#286" id="286">286</a>
+<a href="#287" id="287">287</a>
+<a href="#288" id="288">288</a>
+<a href="#289" id="289">289</a>
+<a href="#290" id="290">290</a>
+<a href="#291" id="291">291</a>
+<a href="#292" id="292">292</a>
+<a href="#293" id="293">293</a>
+<a href="#294" id="294">294</a>
+<a href="#295" id="295">295</a>
+<a href="#296" id="296">296</a>
+<a href="#297" id="297">297</a>
+<a href="#298" id="298">298</a>
+<a href="#299" id="299">299</a>
+<a href="#300" id="300">300</a>
+<a href="#301" id="301">301</a>
+<a href="#302" id="302">302</a>
+<a href="#303" id="303">303</a>
+<a href="#304" id="304">304</a>
+<a href="#305" id="305">305</a>
+<a href="#306" id="306">306</a>
+<a href="#307" id="307">307</a>
+<a href="#308" id="308">308</a>
+<a href="#309" id="309">309</a>
+<a href="#310" id="310">310</a>
+<a href="#311" id="311">311</a>
+<a href="#312" id="312">312</a>
+<a href="#313" id="313">313</a>
+<a href="#314" id="314">314</a>
+<a href="#315" id="315">315</a>
+<a href="#316" id="316">316</a>
+<a href="#317" id="317">317</a>
+<a href="#318" id="318">318</a>
+<a href="#319" id="319">319</a>
+<a href="#320" id="320">320</a>
+<a href="#321" id="321">321</a>
+<a href="#322" id="322">322</a>
+<a href="#323" id="323">323</a>
+<a href="#324" id="324">324</a>
+<a href="#325" id="325">325</a>
+<a href="#326" id="326">326</a>
+<a href="#327" id="327">327</a>
+<a href="#328" id="328">328</a>
+<a href="#329" id="329">329</a>
+<a href="#330" id="330">330</a>
+<a href="#331" id="331">331</a>
+<a href="#332" id="332">332</a>
+<a href="#333" id="333">333</a>
+<a href="#334" id="334">334</a>
+<a href="#335" id="335">335</a>
+<a href="#336" id="336">336</a>
+<a href="#337" id="337">337</a>
+<a href="#338" id="338">338</a>
+<a href="#339" id="339">339</a>
+<a href="#340" id="340">340</a>
+<a href="#341" id="341">341</a>
+<a href="#342" id="342">342</a>
+<a href="#343" id="343">343</a>
+<a href="#344" id="344">344</a>
+<a href="#345" id="345">345</a>
+<a href="#346" id="346">346</a>
+<a href="#347" id="347">347</a>
+<a href="#348" id="348">348</a>
+<a href="#349" id="349">349</a>
+<a href="#350" id="350">350</a>
+<a href="#351" id="351">351</a>
+<a href="#352" id="352">352</a>
+<a href="#353" id="353">353</a>
+<a href="#354" id="354">354</a>
+<a href="#355" id="355">355</a>
+<a href="#356" id="356">356</a>
+<a href="#357" id="357">357</a>
+<a href="#358" id="358">358</a>
+<a href="#359" id="359">359</a>
+<a href="#360" id="360">360</a>
+<a href="#361" id="361">361</a>
+<a href="#362" id="362">362</a>
+<a href="#363" id="363">363</a>
+<a href="#364" id="364">364</a>
+<a href="#365" id="365">365</a>
+<a href="#366" id="366">366</a>
+<a href="#367" id="367">367</a>
+<a href="#368" id="368">368</a>
+<a href="#369" id="369">369</a>
+<a href="#370" id="370">370</a>
+<a href="#371" id="371">371</a>
+<a href="#372" id="372">372</a>
+<a href="#373" id="373">373</a>
+<a href="#374" id="374">374</a>
+<a href="#375" id="375">375</a>
+<a href="#376" id="376">376</a>
+<a href="#377" id="377">377</a>
+<a href="#378" id="378">378</a>
+<a href="#379" id="379">379</a>
+<a href="#380" id="380">380</a>
+<a href="#381" id="381">381</a>
+<a href="#382" id="382">382</a>
+<a href="#383" id="383">383</a>
+<a href="#384" id="384">384</a>
+<a href="#385" id="385">385</a>
+<a href="#386" id="386">386</a>
+<a href="#387" id="387">387</a>
+<a href="#388" id="388">388</a>
+<a href="#389" id="389">389</a>
+<a href="#390" id="390">390</a>
+<a href="#391" id="391">391</a>
+<a href="#392" id="392">392</a>
+<a href="#393" id="393">393</a>
+<a href="#394" id="394">394</a>
+<a href="#395" id="395">395</a>
+<a href="#396" id="396">396</a>
+<a href="#397" id="397">397</a>
+<a href="#398" id="398">398</a>
+<a href="#399" id="399">399</a>
+<a href="#400" id="400">400</a>
+<a href="#401" id="401">401</a>
+<a href="#402" id="402">402</a>
+<a href="#403" id="403">403</a>
+<a href="#404" id="404">404</a>
+<a href="#405" id="405">405</a>
+<a href="#406" id="406">406</a>
+<a href="#407" id="407">407</a>
+<a href="#408" id="408">408</a>
+<a href="#409" id="409">409</a>
+<a href="#410" id="410">410</a>
+<a href="#411" id="411">411</a>
+<a href="#412" id="412">412</a>
+<a href="#413" id="413">413</a>
+<a href="#414" id="414">414</a>
+<a href="#415" id="415">415</a>
+<a href="#416" id="416">416</a>
+<a href="#417" id="417">417</a>
+<a href="#418" id="418">418</a>
+<a href="#419" id="419">419</a>
+<a href="#420" id="420">420</a>
+<a href="#421" id="421">421</a>
+<a href="#422" id="422">422</a>
+<a href="#423" id="423">423</a>
+<a href="#424" id="424">424</a>
+<a href="#425" id="425">425</a>
+<a href="#426" id="426">426</a>
+<a href="#427" id="427">427</a>
+<a href="#428" id="428">428</a>
+<a href="#429" id="429">429</a>
+<a href="#430" id="430">430</a>
+<a href="#431" id="431">431</a>
+<a href="#432" id="432">432</a>
+<a href="#433" id="433">433</a>
+<a href="#434" id="434">434</a>
+<a href="#435" id="435">435</a>
+<a href="#436" id="436">436</a>
+<a href="#437" id="437">437</a>
+<a href="#438" id="438">438</a>
+<a href="#439" id="439">439</a>
+<a href="#440" id="440">440</a>
+<a href="#441" id="441">441</a>
+<a href="#442" id="442">442</a>
+<a href="#443" id="443">443</a>
+<a href="#444" id="444">444</a>
+<a href="#445" id="445">445</a>
+<a href="#446" id="446">446</a>
+<a href="#447" id="447">447</a>
+<a href="#448" id="448">448</a>
+<a href="#449" id="449">449</a>
+<a href="#450" id="450">450</a>
+<a href="#451" id="451">451</a>
+<a href="#452" id="452">452</a>
+<a href="#453" id="453">453</a>
+<a href="#454" id="454">454</a>
+<a href="#455" id="455">455</a>
+<a href="#456" id="456">456</a>
+<a href="#457" id="457">457</a>
+<a href="#458" id="458">458</a>
+<a href="#459" id="459">459</a>
+<a href="#460" id="460">460</a>
+<a href="#461" id="461">461</a>
+<a href="#462" id="462">462</a>
+<a href="#463" id="463">463</a>
+<a href="#464" id="464">464</a>
+<a href="#465" id="465">465</a>
+<a href="#466" id="466">466</a>
+<a href="#467" id="467">467</a>
+<a href="#468" id="468">468</a>
+<a href="#469" id="469">469</a>
+<a href="#470" id="470">470</a>
+<a href="#471" id="471">471</a>
+<a href="#472" id="472">472</a>
+<a href="#473" id="473">473</a>
+<a href="#474" id="474">474</a>
+<a href="#475" id="475">475</a>
+<a href="#476" id="476">476</a>
+<a href="#477" id="477">477</a>
+<a href="#478" id="478">478</a>
+<a href="#479" id="479">479</a>
+<a href="#480" id="480">480</a>
+<a href="#481" id="481">481</a>
+<a href="#482" id="482">482</a>
+<a href="#483" id="483">483</a>
+<a href="#484" id="484">484</a>
+<a href="#485" id="485">485</a>
+<a href="#486" id="486">486</a>
+<a href="#487" id="487">487</a>
+<a href="#488" id="488">488</a>
+<a href="#489" id="489">489</a>
+<a href="#490" id="490">490</a>
+<a href="#491" id="491">491</a>
+<a href="#492" id="492">492</a>
+<a href="#493" id="493">493</a>
+<a href="#494" id="494">494</a>
+<a href="#495" id="495">495</a>
+<a href="#496" id="496">496</a>
+<a href="#497" id="497">497</a>
+<a href="#498" id="498">498</a>
+<a href="#499" id="499">499</a>
+<a href="#500" id="500">500</a>
+<a href="#501" id="501">501</a>
+<a href="#502" id="502">502</a>
+<a href="#503" id="503">503</a>
+<a href="#504" id="504">504</a>
+<a href="#505" id="505">505</a>
+<a href="#506" id="506">506</a>
+<a href="#507" id="507">507</a>
+<a href="#508" id="508">508</a>
+<a href="#509" id="509">509</a>
+<a href="#510" id="510">510</a>
+<a href="#511" id="511">511</a>
+<a href="#512" id="512">512</a>
+<a href="#513" id="513">513</a>
+<a href="#514" id="514">514</a>
+<a href="#515" id="515">515</a>
+<a href="#516" id="516">516</a>
+<a href="#517" id="517">517</a>
+<a href="#518" id="518">518</a>
+<a href="#519" id="519">519</a>
+<a href="#520" id="520">520</a>
+<a href="#521" id="521">521</a>
+<a href="#522" id="522">522</a>
+<a href="#523" id="523">523</a>
+<a href="#524" id="524">524</a>
+<a href="#525" id="525">525</a>
+<a href="#526" id="526">526</a>
+<a href="#527" id="527">527</a>
+<a href="#528" id="528">528</a>
+<a href="#529" id="529">529</a>
+<a href="#530" id="530">530</a>
+<a href="#531" id="531">531</a>
+<a href="#532" id="532">532</a>
+<a href="#533" id="533">533</a>
+<a href="#534" id="534">534</a>
+<a href="#535" id="535">535</a>
+<a href="#536" id="536">536</a>
+<a href="#537" id="537">537</a>
+<a href="#538" id="538">538</a>
+<a href="#539" id="539">539</a>
+<a href="#540" id="540">540</a>
+<a href="#541" id="541">541</a>
+<a href="#542" id="542">542</a>
+<a href="#543" id="543">543</a>
+<a href="#544" id="544">544</a>
+<a href="#545" id="545">545</a>
+<a href="#546" id="546">546</a>
+<a href="#547" id="547">547</a>
+<a href="#548" id="548">548</a>
+<a href="#549" id="549">549</a>
+<a href="#550" id="550">550</a>
+<a href="#551" id="551">551</a>
+<a href="#552" id="552">552</a>
+<a href="#553" id="553">553</a>
+<a href="#554" id="554">554</a>
+<a href="#555" id="555">555</a>
+<a href="#556" id="556">556</a>
+<a href="#557" id="557">557</a>
+<a href="#558" id="558">558</a>
+<a href="#559" id="559">559</a>
+<a href="#560" id="560">560</a>
+<a href="#561" id="561">561</a>
+<a href="#562" id="562">562</a>
+<a href="#563" id="563">563</a>
+<a href="#564" id="564">564</a>
+<a href="#565" id="565">565</a>
+<a href="#566" id="566">566</a>
+<a href="#567" id="567">567</a>
+<a href="#568" id="568">568</a>
+<a href="#569" id="569">569</a>
+<a href="#570" id="570">570</a>
+<a href="#571" id="571">571</a>
+<a href="#572" id="572">572</a>
+<a href="#573" id="573">573</a>
+<a href="#574" id="574">574</a>
+<a href="#575" id="575">575</a>
+<a href="#576" id="576">576</a>
+<a href="#577" id="577">577</a>
+<a href="#578" id="578">578</a>
+<a href="#579" id="579">579</a>
+<a href="#580" id="580">580</a>
+<a href="#581" id="581">581</a>
+<a href="#582" id="582">582</a>
+<a href="#583" id="583">583</a>
+<a href="#584" id="584">584</a>
+<a href="#585" id="585">585</a>
+<a href="#586" id="586">586</a>
+<a href="#587" id="587">587</a>
+<a href="#588" id="588">588</a>
+<a href="#589" id="589">589</a>
+<a href="#590" id="590">590</a>
+<a href="#591" id="591">591</a>
+<a href="#592" id="592">592</a>
+<a href="#593" id="593">593</a>
+<a href="#594" id="594">594</a>
+<a href="#595" id="595">595</a>
+<a href="#596" id="596">596</a>
+<a href="#597" id="597">597</a>
+<a href="#598" id="598">598</a>
+<a href="#599" id="599">599</a>
+<a href="#600" id="600">600</a>
+<a href="#601" id="601">601</a>
+<a href="#602" id="602">602</a>
+<a href="#603" id="603">603</a>
+<a href="#604" id="604">604</a>
+<a href="#605" id="605">605</a>
+<a href="#606" id="606">606</a>
+<a href="#607" id="607">607</a>
+<a href="#608" id="608">608</a>
+<a href="#609" id="609">609</a>
+<a href="#610" id="610">610</a>
+<a href="#611" id="611">611</a>
+<a href="#612" id="612">612</a>
+<a href="#613" id="613">613</a>
+<a href="#614" id="614">614</a>
+<a href="#615" id="615">615</a>
+<a href="#616" id="616">616</a>
+<a href="#617" id="617">617</a>
+<a href="#618" id="618">618</a>
+<a href="#619" id="619">619</a>
+<a href="#620" id="620">620</a>
+<a href="#621" id="621">621</a>
+<a href="#622" id="622">622</a>
+<a href="#623" id="623">623</a>
+<a href="#624" id="624">624</a>
+<a href="#625" id="625">625</a>
+<a href="#626" id="626">626</a>
+<a href="#627" id="627">627</a>
+<a href="#628" id="628">628</a>
+<a href="#629" id="629">629</a>
+<a href="#630" id="630">630</a>
+<a href="#631" id="631">631</a>
+<a href="#632" id="632">632</a>
+<a href="#633" id="633">633</a>
+<a href="#634" id="634">634</a>
+<a href="#635" id="635">635</a>
+<a href="#636" id="636">636</a>
+<a href="#637" id="637">637</a>
+<a href="#638" id="638">638</a>
+<a href="#639" id="639">639</a>
+<a href="#640" id="640">640</a>
+<a href="#641" id="641">641</a>
+<a href="#642" id="642">642</a>
+<a href="#643" id="643">643</a>
+<a href="#644" id="644">644</a>
+<a href="#645" id="645">645</a>
+<a href="#646" id="646">646</a>
+<a href="#647" id="647">647</a>
+<a href="#648" id="648">648</a>
+<a href="#649" id="649">649</a>
+<a href="#650" id="650">650</a>
+<a href="#651" id="651">651</a>
+<a href="#652" id="652">652</a>
+<a href="#653" id="653">653</a>
+<a href="#654" id="654">654</a>
+<a href="#655" id="655">655</a>
+<a href="#656" id="656">656</a>
+<a href="#657" id="657">657</a>
+<a href="#658" id="658">658</a>
+<a href="#659" id="659">659</a>
+<a href="#660" id="660">660</a>
+<a href="#661" id="661">661</a>
+<a href="#662" id="662">662</a>
+<a href="#663" id="663">663</a>
+<a href="#664" id="664">664</a>
+<a href="#665" id="665">665</a>
+<a href="#666" id="666">666</a>
+<a href="#667" id="667">667</a>
+<a href="#668" id="668">668</a>
+<a href="#669" id="669">669</a>
+<a href="#670" id="670">670</a>
+<a href="#671" id="671">671</a>
+<a href="#672" id="672">672</a>
+<a href="#673" id="673">673</a>
+<a href="#674" id="674">674</a>
+<a href="#675" id="675">675</a>
+<a href="#676" id="676">676</a>
+<a href="#677" id="677">677</a>
+<a href="#678" id="678">678</a>
+<a href="#679" id="679">679</a>
+<a href="#680" id="680">680</a>
+<a href="#681" id="681">681</a>
+<a href="#682" id="682">682</a>
+<a href="#683" id="683">683</a>
+<a href="#684" id="684">684</a>
+<a href="#685" id="685">685</a>
+<a href="#686" id="686">686</a>
+<a href="#687" id="687">687</a>
+<a href="#688" id="688">688</a>
+<a href="#689" id="689">689</a>
+<a href="#690" id="690">690</a>
+<a href="#691" id="691">691</a>
+<a href="#692" id="692">692</a>
+<a href="#693" id="693">693</a>
+<a href="#694" id="694">694</a>
+<a href="#695" id="695">695</a>
+<a href="#696" id="696">696</a>
+<a href="#697" id="697">697</a>
+<a href="#698" id="698">698</a>
+<a href="#699" id="699">699</a>
+<a href="#700" id="700">700</a>
+<a href="#701" id="701">701</a>
+<a href="#702" id="702">702</a>
+<a href="#703" id="703">703</a>
+<a href="#704" id="704">704</a>
+<a href="#705" id="705">705</a>
+<a href="#706" id="706">706</a>
+<a href="#707" id="707">707</a>
+<a href="#708" id="708">708</a>
+<a href="#709" id="709">709</a>
+<a href="#710" id="710">710</a>
+<a href="#711" id="711">711</a>
+<a href="#712" id="712">712</a>
+<a href="#713" id="713">713</a>
+<a href="#714" id="714">714</a>
+<a href="#715" id="715">715</a>
+<a href="#716" id="716">716</a>
+<a href="#717" id="717">717</a>
+<a href="#718" id="718">718</a>
+<a href="#719" id="719">719</a>
+<a href="#720" id="720">720</a>
+<a href="#721" id="721">721</a>
+<a href="#722" id="722">722</a>
+<a href="#723" id="723">723</a>
+<a href="#724" id="724">724</a>
+<a href="#725" id="725">725</a>
+<a href="#726" id="726">726</a>
+<a href="#727" id="727">727</a>
+<a href="#728" id="728">728</a>
+<a href="#729" id="729">729</a>
+<a href="#730" id="730">730</a>
+<a href="#731" id="731">731</a>
+<a href="#732" id="732">732</a>
+<a href="#733" id="733">733</a>
+<a href="#734" id="734">734</a>
+<a href="#735" id="735">735</a>
+<a href="#736" id="736">736</a>
+<a href="#737" id="737">737</a>
+<a href="#738" id="738">738</a>
+<a href="#739" id="739">739</a>
+<a href="#740" id="740">740</a>
+<a href="#741" id="741">741</a>
+<a href="#742" id="742">742</a>
+<a href="#743" id="743">743</a>
+<a href="#744" id="744">744</a>
+<a href="#745" id="745">745</a>
+<a href="#746" id="746">746</a>
+<a href="#747" id="747">747</a>
+<a href="#748" id="748">748</a>
+<a href="#749" id="749">749</a>
+<a href="#750" id="750">750</a>
+<a href="#751" id="751">751</a>
+<a href="#752" id="752">752</a>
+<a href="#753" id="753">753</a>
+<a href="#754" id="754">754</a>
+<a href="#755" id="755">755</a>
+<a href="#756" id="756">756</a>
+<a href="#757" id="757">757</a>
+<a href="#758" id="758">758</a>
+<a href="#759" id="759">759</a>
+<a href="#760" id="760">760</a>
+<a href="#761" id="761">761</a>
+<a href="#762" id="762">762</a>
+<a href="#763" id="763">763</a>
+<a href="#764" id="764">764</a>
+<a href="#765" id="765">765</a>
+<a href="#766" id="766">766</a>
+<a href="#767" id="767">767</a>
+<a href="#768" id="768">768</a>
+<a href="#769" id="769">769</a>
+<a href="#770" id="770">770</a>
+<a href="#771" id="771">771</a>
+<a href="#772" id="772">772</a>
+<a href="#773" id="773">773</a>
+<a href="#774" id="774">774</a>
+<a href="#775" id="775">775</a>
+<a href="#776" id="776">776</a>
+<a href="#777" id="777">777</a>
+<a href="#778" id="778">778</a>
+<a href="#779" id="779">779</a>
+<a href="#780" id="780">780</a>
+<a href="#781" id="781">781</a>
+<a href="#782" id="782">782</a>
+<a href="#783" id="783">783</a>
+<a href="#784" id="784">784</a>
+<a href="#785" id="785">785</a>
+<a href="#786" id="786">786</a>
+<a href="#787" id="787">787</a>
+<a href="#788" id="788">788</a>
+<a href="#789" id="789">789</a>
+<a href="#790" id="790">790</a>
+<a href="#791" id="791">791</a>
+<a href="#792" id="792">792</a>
+<a href="#793" id="793">793</a>
+<a href="#794" id="794">794</a>
+<a href="#795" id="795">795</a>
+<a href="#796" id="796">796</a>
+<a href="#797" id="797">797</a>
+<a href="#798" id="798">798</a>
+<a href="#799" id="799">799</a>
+<a href="#800" id="800">800</a>
+<a href="#801" id="801">801</a>
+<a href="#802" id="802">802</a>
+<a href="#803" id="803">803</a>
+<a href="#804" id="804">804</a>
+<a href="#805" id="805">805</a>
+<a href="#806" id="806">806</a>
+<a href="#807" id="807">807</a>
+<a href="#808" id="808">808</a>
+<a href="#809" id="809">809</a>
+<a href="#810" id="810">810</a>
+<a href="#811" id="811">811</a>
+<a href="#812" id="812">812</a>
+<a href="#813" id="813">813</a>
+<a href="#814" id="814">814</a>
+<a href="#815" id="815">815</a>
+<a href="#816" id="816">816</a>
+<a href="#817" id="817">817</a>
+<a href="#818" id="818">818</a>
+<a href="#819" id="819">819</a>
+<a href="#820" id="820">820</a>
+<a href="#821" id="821">821</a>
+<a href="#822" id="822">822</a>
+<a href="#823" id="823">823</a>
+<a href="#824" id="824">824</a>
+<a href="#825" id="825">825</a>
+<a href="#826" id="826">826</a>
+<a href="#827" id="827">827</a>
+<a href="#828" id="828">828</a>
+<a href="#829" id="829">829</a>
+<a href="#830" id="830">830</a>
+<a href="#831" id="831">831</a>
+<a href="#832" id="832">832</a>
+<a href="#833" id="833">833</a>
+<a href="#834" id="834">834</a>
+<a href="#835" id="835">835</a>
+<a href="#836" id="836">836</a>
+<a href="#837" id="837">837</a>
+<a href="#838" id="838">838</a>
+<a href="#839" id="839">839</a>
+<a href="#840" id="840">840</a>
+<a href="#841" id="841">841</a>
+<a href="#842" id="842">842</a>
+<a href="#843" id="843">843</a>
+<a href="#844" id="844">844</a>
+<a href="#845" id="845">845</a>
+<a href="#846" id="846">846</a>
+<a href="#847" id="847">847</a>
+<a href="#848" id="848">848</a>
+<a href="#849" id="849">849</a>
+<a href="#850" id="850">850</a>
+<a href="#851" id="851">851</a>
+<a href="#852" id="852">852</a>
+<a href="#853" id="853">853</a>
+<a href="#854" id="854">854</a>
+<a href="#855" id="855">855</a>
+<a href="#856" id="856">856</a>
+<a href="#857" id="857">857</a>
+<a href="#858" id="858">858</a>
+<a href="#859" id="859">859</a>
+<a href="#860" id="860">860</a>
+<a href="#861" id="861">861</a>
+<a href="#862" id="862">862</a>
+<a href="#863" id="863">863</a>
+<a href="#864" id="864">864</a>
+<a href="#865" id="865">865</a>
+<a href="#866" id="866">866</a>
+<a href="#867" id="867">867</a>
+<a href="#868" id="868">868</a>
+<a href="#869" id="869">869</a>
+<a href="#870" id="870">870</a>
+<a href="#871" id="871">871</a>
+<a href="#872" id="872">872</a>
+<a href="#873" id="873">873</a>
+<a href="#874" id="874">874</a>
+<a href="#875" id="875">875</a>
+<a href="#876" id="876">876</a>
+<a href="#877" id="877">877</a>
+<a href="#878" id="878">878</a>
+<a href="#879" id="879">879</a>
+<a href="#880" id="880">880</a>
+<a href="#881" id="881">881</a>
+<a href="#882" id="882">882</a>
+<a href="#883" id="883">883</a>
+<a href="#884" id="884">884</a>
+<a href="#885" id="885">885</a>
+<a href="#886" id="886">886</a>
+<a href="#887" id="887">887</a>
+<a href="#888" id="888">888</a>
+<a href="#889" id="889">889</a>
+<a href="#890" id="890">890</a>
+<a href="#891" id="891">891</a>
+<a href="#892" id="892">892</a>
+<a href="#893" id="893">893</a>
+<a href="#894" id="894">894</a>
+<a href="#895" id="895">895</a>
+<a href="#896" id="896">896</a>
+<a href="#897" id="897">897</a>
+<a href="#898" id="898">898</a>
+<a href="#899" id="899">899</a>
+<a href="#900" id="900">900</a>
+<a href="#901" id="901">901</a>
+<a href="#902" id="902">902</a>
+<a href="#903" id="903">903</a>
+<a href="#904" id="904">904</a>
+<a href="#905" id="905">905</a>
+<a href="#906" id="906">906</a>
+<a href="#907" id="907">907</a>
+<a href="#908" id="908">908</a>
+<a href="#909" id="909">909</a>
+<a href="#910" id="910">910</a>
+<a href="#911" id="911">911</a>
+<a href="#912" id="912">912</a>
+<a href="#913" id="913">913</a>
+<a href="#914" id="914">914</a>
+<a href="#915" id="915">915</a>
+<a href="#916" id="916">916</a>
+<a href="#917" id="917">917</a>
+<a href="#918" id="918">918</a>
+<a href="#919" id="919">919</a>
+<a href="#920" id="920">920</a>
+<a href="#921" id="921">921</a>
+<a href="#922" id="922">922</a>
+<a href="#923" id="923">923</a>
+<a href="#924" id="924">924</a>
+<a href="#925" id="925">925</a>
+<a href="#926" id="926">926</a>
+<a href="#927" id="927">927</a>
+<a href="#928" id="928">928</a>
+<a href="#929" id="929">929</a>
+<a href="#930" id="930">930</a>
+<a href="#931" id="931">931</a>
+<a href="#932" id="932">932</a>
+<a href="#933" id="933">933</a>
+<a href="#934" id="934">934</a>
+<a href="#935" id="935">935</a>
+<a href="#936" id="936">936</a>
+<a href="#937" id="937">937</a>
+<a href="#938" id="938">938</a>
+<a href="#939" id="939">939</a>
+<a href="#940" id="940">940</a>
+<a href="#941" id="941">941</a>
+<a href="#942" id="942">942</a>
+<a href="#943" id="943">943</a>
+<a href="#944" id="944">944</a>
+<a href="#945" id="945">945</a>
+<a href="#946" id="946">946</a>
+<a href="#947" id="947">947</a>
+<a href="#948" id="948">948</a>
+<a href="#949" id="949">949</a>
+<a href="#950" id="950">950</a>
+<a href="#951" id="951">951</a>
+<a href="#952" id="952">952</a>
+<a href="#953" id="953">953</a>
+<a href="#954" id="954">954</a>
+<a href="#955" id="955">955</a>
+<a href="#956" id="956">956</a>
+<a href="#957" id="957">957</a>
+<a href="#958" id="958">958</a>
+<a href="#959" id="959">959</a>
+<a href="#960" id="960">960</a>
+<a href="#961" id="961">961</a>
+<a href="#962" id="962">962</a>
+<a href="#963" id="963">963</a>
+<a href="#964" id="964">964</a>
+<a href="#965" id="965">965</a>
+<a href="#966" id="966">966</a>
+<a href="#967" id="967">967</a>
+<a href="#968" id="968">968</a>
+<a href="#969" id="969">969</a>
+<a href="#970" id="970">970</a>
+<a href="#971" id="971">971</a>
+<a href="#972" id="972">972</a>
+<a href="#973" id="973">973</a>
+<a href="#974" id="974">974</a>
+<a href="#975" id="975">975</a>
+<a href="#976" id="976">976</a>
+<a href="#977" id="977">977</a>
+<a href="#978" id="978">978</a>
+<a href="#979" id="979">979</a>
+<a href="#980" id="980">980</a>
+<a href="#981" id="981">981</a>
+<a href="#982" id="982">982</a>
+<a href="#983" id="983">983</a>
+<a href="#984" id="984">984</a>
+<a href="#985" id="985">985</a>
+</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
+// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
+//
+// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
+//
+// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
+// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// You may not use this file except in accordance with one or both of these
+// licenses.
+
+</span><span class="doccomment">//! Descriptor templates
+//!
+//! This module contains the definition of various common script templates that are ready to be
+//! used. See the documentation of each template for an example.
+
+</span><span class="kw">use </span>bitcoin::bip32;
+<span class="kw">use </span>bitcoin::Network;
+
+<span class="kw">use </span>miniscript::{Legacy, Segwitv0, Tap};
+
+<span class="kw">use super</span>::{ExtendedDescriptor, IntoWalletDescriptor, KeyMap};
+<span class="kw">use </span><span class="kw">crate</span>::descriptor::DescriptorError;
+<span class="kw">use </span><span class="kw">crate</span>::keys::{DerivableKey, IntoDescriptorKey, ValidNetworks};
+<span class="kw">use </span><span class="kw">crate</span>::wallet::utils::SecpCtx;
+<span class="kw">use crate</span>::{descriptor, KeychainKind};
+
+<span class="doccomment">/// Type alias for the return type of [`DescriptorTemplate`], [`descriptor!`](crate::descriptor!) and others
+</span><span class="kw">pub type </span>DescriptorTemplateOut = (ExtendedDescriptor, KeyMap, ValidNetworks);
+
+<span class="doccomment">/// Trait for descriptor templates that can be built into a full descriptor
+///
+/// Since [`IntoWalletDescriptor`] is implemented for any [`DescriptorTemplate`], they can also be
+/// passed directly to the [`Wallet`](crate::Wallet) constructor.
+///
+/// ## Example
+///
+/// ```
+/// use bdk_wallet::descriptor::error::Error as DescriptorError;
+/// use bdk_wallet::keys::{IntoDescriptorKey, KeyError};
+/// use bdk_wallet::miniscript::Legacy;
+/// use bdk_wallet::template::{DescriptorTemplate, DescriptorTemplateOut};
+/// use bitcoin::Network;
+///
+/// struct MyP2PKH<K: IntoDescriptorKey<Legacy>>(K);
+///
+/// impl<K: IntoDescriptorKey<Legacy>> DescriptorTemplate for MyP2PKH<K> {
+/// fn build(self, network: Network) -> Result<DescriptorTemplateOut, DescriptorError> {
+/// Ok(bdk_wallet::descriptor!(pkh(self.0))?)
+/// }
+/// }
+/// ```
+</span><span class="kw">pub trait </span>DescriptorTemplate {
+ <span class="doccomment">/// Build the complete descriptor
+ </span><span class="kw">fn </span>build(<span class="self">self</span>, network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError>;
+}
+
+<span class="doccomment">/// Turns a [`DescriptorTemplate`] into a valid wallet descriptor by calling its
+/// [`build`](DescriptorTemplate::build) method
+</span><span class="kw">impl</span><T: DescriptorTemplate> IntoWalletDescriptor <span class="kw">for </span>T {
+ <span class="kw">fn </span>into_wallet_descriptor(
+ <span class="self">self</span>,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ network: Network,
+ ) -> <span class="prelude-ty">Result</span><(ExtendedDescriptor, KeyMap), DescriptorError> {
+ <span class="self">self</span>.build(network)<span class="question-mark">?</span>.into_wallet_descriptor(secp, network)
+ }
+}
+
+<span class="doccomment">/// P2PKH template. Expands to a descriptor `pkh(key)`
+///
+/// ## Example
+///
+/// ```
+/// # use bdk_wallet::bitcoin::{PrivateKey, Network};
+/// # use bdk_wallet::Wallet;
+/// # use bdk_wallet::KeychainKind;
+/// use bdk_wallet::template::P2Pkh;
+///
+/// let key =
+/// bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
+/// let mut wallet = Wallet::new_no_persist(P2Pkh(key), None, Network::Testnet)?;
+///
+/// assert_eq!(
+/// wallet
+/// .next_unused_address(KeychainKind::External)?
+/// .to_string(),
+/// "mwJ8hxFYW19JLuc65RCTaP4v1rzVU8cVMT"
+/// );
+/// # Ok::<_, Box<dyn std::error::Error>>(())
+/// ```
+</span><span class="kw">pub struct </span>P2Pkh<K: IntoDescriptorKey<Legacy>>(<span class="kw">pub </span>K);
+
+<span class="kw">impl</span><K: IntoDescriptorKey<Legacy>> DescriptorTemplate <span class="kw">for </span>P2Pkh<K> {
+ <span class="kw">fn </span>build(<span class="self">self</span>, _network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
+ <span class="macro">descriptor!</span>(pkh(<span class="self">self</span>.<span class="number">0</span>))
+ }
+}
+
+<span class="doccomment">/// P2WPKH-P2SH template. Expands to a descriptor `sh(wpkh(key))`
+///
+/// ## Example
+///
+/// ```
+/// # use bdk_wallet::bitcoin::{PrivateKey, Network};
+/// # use bdk_wallet::Wallet;
+/// # use bdk_wallet::KeychainKind;
+/// use bdk_wallet::template::P2Wpkh_P2Sh;
+///
+/// let key =
+/// bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
+/// let mut wallet = Wallet::new_no_persist(P2Wpkh_P2Sh(key), None, Network::Testnet)?;
+///
+/// assert_eq!(
+/// wallet
+/// .next_unused_address(KeychainKind::External)?
+/// .to_string(),
+/// "2NB4ox5VDRw1ecUv6SnT3VQHPXveYztRqk5"
+/// );
+/// # Ok::<_, Box<dyn std::error::Error>>(())
+/// ```
+</span><span class="attr">#[allow(non_camel_case_types)]
+</span><span class="kw">pub struct </span>P2Wpkh_P2Sh<K: IntoDescriptorKey<Segwitv0>>(<span class="kw">pub </span>K);
+
+<span class="kw">impl</span><K: IntoDescriptorKey<Segwitv0>> DescriptorTemplate <span class="kw">for </span>P2Wpkh_P2Sh<K> {
+ <span class="kw">fn </span>build(<span class="self">self</span>, _network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
+ <span class="macro">descriptor!</span>(sh(wpkh(<span class="self">self</span>.<span class="number">0</span>)))
+ }
+}
+
+<span class="doccomment">/// P2WPKH template. Expands to a descriptor `wpkh(key)`
+///
+/// ## Example
+///
+/// ```
+/// # use bdk_wallet::bitcoin::{PrivateKey, Network};
+/// # use bdk_wallet::{Wallet};
+/// # use bdk_wallet::KeychainKind;
+/// use bdk_wallet::template::P2Wpkh;
+///
+/// let key =
+/// bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
+/// let mut wallet = Wallet::new_no_persist(P2Wpkh(key), None, Network::Testnet)?;
+///
+/// assert_eq!(
+/// wallet
+/// .next_unused_address(KeychainKind::External)?
+/// .to_string(),
+/// "tb1q4525hmgw265tl3drrl8jjta7ayffu6jf68ltjd"
+/// );
+/// # Ok::<_, Box<dyn std::error::Error>>(())
+/// ```
+</span><span class="kw">pub struct </span>P2Wpkh<K: IntoDescriptorKey<Segwitv0>>(<span class="kw">pub </span>K);
+
+<span class="kw">impl</span><K: IntoDescriptorKey<Segwitv0>> DescriptorTemplate <span class="kw">for </span>P2Wpkh<K> {
+ <span class="kw">fn </span>build(<span class="self">self</span>, _network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
+ <span class="macro">descriptor!</span>(wpkh(<span class="self">self</span>.<span class="number">0</span>))
+ }
+}
+
+<span class="doccomment">/// P2TR template. Expands to a descriptor `tr(key)`
+///
+/// ## Example
+///
+/// ```
+/// # use bdk_wallet::bitcoin::{PrivateKey, Network};
+/// # use bdk_wallet::Wallet;
+/// # use bdk_wallet::KeychainKind;
+/// use bdk_wallet::template::P2TR;
+///
+/// let key =
+/// bitcoin::PrivateKey::from_wif("cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um")?;
+/// let mut wallet = Wallet::new_no_persist(P2TR(key), None, Network::Testnet)?;
+///
+/// assert_eq!(
+/// wallet
+/// .next_unused_address(KeychainKind::External)?
+/// .to_string(),
+/// "tb1pvjf9t34fznr53u5tqhejz4nr69luzkhlvsdsdfq9pglutrpve2xq7hps46"
+/// );
+/// # Ok::<_, Box<dyn std::error::Error>>(())
+/// ```
+</span><span class="kw">pub struct </span>P2TR<K: IntoDescriptorKey<Tap>>(<span class="kw">pub </span>K);
+
+<span class="kw">impl</span><K: IntoDescriptorKey<Tap>> DescriptorTemplate <span class="kw">for </span>P2TR<K> {
+ <span class="kw">fn </span>build(<span class="self">self</span>, _network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
+ <span class="macro">descriptor!</span>(tr(<span class="self">self</span>.<span class="number">0</span>))
+ }
+}
+
+<span class="doccomment">/// BIP44 template. Expands to `pkh(key/44'/{0,1}'/0'/{0,1}/*)`
+///
+/// Since there are hardened derivation steps, this template requires a private derivable key (generally a `xprv`/`tprv`).
+///
+/// See [`Bip44Public`] for a template that can work with a `xpub`/`tpub`.
+///
+/// ## Example
+///
+/// ```
+/// # use std::str::FromStr;
+/// # use bdk_wallet::bitcoin::{PrivateKey, Network};
+/// # use bdk_wallet::{Wallet, KeychainKind};
+/// use bdk_wallet::template::Bip44;
+///
+/// let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
+/// let mut wallet = Wallet::new_no_persist(
+/// Bip44(key.clone(), KeychainKind::External),
+/// Some(Bip44(key, KeychainKind::Internal)),
+/// Network::Testnet,
+/// )?;
+///
+/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "mmogjc7HJEZkrLqyQYqJmxUqFaC7i4uf89");
+/// assert_eq!(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), "pkh([c55b303f/44'/1'/0']tpubDCuorCpzvYS2LCD75BR46KHE8GdDeg1wsAgNZeNr6DaB5gQK1o14uErKwKLuFmeemkQ6N2m3rNgvctdJLyr7nwu2yia7413Hhg8WWE44cgT/0/*)#5wrnv0xt");
+/// # Ok::<_, Box<dyn std::error::Error>>(())
+/// ```
+</span><span class="kw">pub struct </span>Bip44<K: DerivableKey<Legacy>>(<span class="kw">pub </span>K, <span class="kw">pub </span>KeychainKind);
+
+<span class="kw">impl</span><K: DerivableKey<Legacy>> DescriptorTemplate <span class="kw">for </span>Bip44<K> {
+ <span class="kw">fn </span>build(<span class="self">self</span>, network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
+ P2Pkh(legacy::make_bipxx_private(<span class="number">44</span>, <span class="self">self</span>.<span class="number">0</span>, <span class="self">self</span>.<span class="number">1</span>, network)<span class="question-mark">?</span>).build(network)
+ }
+}
+
+<span class="doccomment">/// BIP44 public template. Expands to `pkh(key/{0,1}/*)`
+///
+/// This assumes that the key used has already been derived with `m/44'/0'/0'` for Mainnet or `m/44'/1'/0'` for Testnet.
+///
+/// This template requires the parent fingerprint to populate correctly the metadata of PSBTs.
+///
+/// See [`Bip44`] for a template that does the full derivation, but requires private data
+/// for the key.
+///
+/// ## Example
+///
+/// ```
+/// # use std::str::FromStr;
+/// # use bdk_wallet::bitcoin::{PrivateKey, Network};
+/// # use bdk_wallet::{Wallet, KeychainKind};
+/// use bdk_wallet::template::Bip44Public;
+///
+/// let key = bitcoin::bip32::Xpub::from_str("tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU")?;
+/// let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
+/// let mut wallet = Wallet::new_no_persist(
+/// Bip44Public(key.clone(), fingerprint, KeychainKind::External),
+/// Some(Bip44Public(key, fingerprint, KeychainKind::Internal)),
+/// Network::Testnet,
+/// )?;
+///
+/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "miNG7dJTzJqNbFS19svRdTCisC65dsubtR");
+/// assert_eq!(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), "pkh([c55b303f/44'/1'/0']tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU/0/*)#cfhumdqz");
+/// # Ok::<_, Box<dyn std::error::Error>>(())
+/// ```
+</span><span class="kw">pub struct </span>Bip44Public<K: DerivableKey<Legacy>>(<span class="kw">pub </span>K, <span class="kw">pub </span>bip32::Fingerprint, <span class="kw">pub </span>KeychainKind);
+
+<span class="kw">impl</span><K: DerivableKey<Legacy>> DescriptorTemplate <span class="kw">for </span>Bip44Public<K> {
+ <span class="kw">fn </span>build(<span class="self">self</span>, network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
+ P2Pkh(legacy::make_bipxx_public(
+ <span class="number">44</span>, <span class="self">self</span>.<span class="number">0</span>, <span class="self">self</span>.<span class="number">1</span>, <span class="self">self</span>.<span class="number">2</span>, network,
+ )<span class="question-mark">?</span>)
+ .build(network)
+ }
+}
+
+<span class="doccomment">/// BIP49 template. Expands to `sh(wpkh(key/49'/{0,1}'/0'/{0,1}/*))`
+///
+/// Since there are hardened derivation steps, this template requires a private derivable key (generally a `xprv`/`tprv`).
+///
+/// See [`Bip49Public`] for a template that can work with a `xpub`/`tpub`.
+///
+/// ## Example
+///
+/// ```
+/// # use std::str::FromStr;
+/// # use bdk_wallet::bitcoin::{PrivateKey, Network};
+/// # use bdk_wallet::{Wallet, KeychainKind};
+/// use bdk_wallet::template::Bip49;
+///
+/// let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
+/// let mut wallet = Wallet::new_no_persist(
+/// Bip49(key.clone(), KeychainKind::External),
+/// Some(Bip49(key, KeychainKind::Internal)),
+/// Network::Testnet,
+/// )?;
+///
+/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "2N4zkWAoGdUv4NXhSsU8DvS5MB36T8nKHEB");
+/// assert_eq!(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), "sh(wpkh([c55b303f/49'/1'/0']tpubDDYr4kdnZgjjShzYNjZUZXUUtpXaofdkMaipyS8ThEh45qFmhT4hKYways7UXmg6V7het1QiFo9kf4kYUXyDvV4rHEyvSpys9pjCB3pukxi/0/*))#s9vxlc8e");
+/// # Ok::<_, Box<dyn std::error::Error>>(())
+/// ```
+</span><span class="kw">pub struct </span>Bip49<K: DerivableKey<Segwitv0>>(<span class="kw">pub </span>K, <span class="kw">pub </span>KeychainKind);
+
+<span class="kw">impl</span><K: DerivableKey<Segwitv0>> DescriptorTemplate <span class="kw">for </span>Bip49<K> {
+ <span class="kw">fn </span>build(<span class="self">self</span>, network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
+ P2Wpkh_P2Sh(segwit_v0::make_bipxx_private(<span class="number">49</span>, <span class="self">self</span>.<span class="number">0</span>, <span class="self">self</span>.<span class="number">1</span>, network)<span class="question-mark">?</span>).build(network)
+ }
+}
+
+<span class="doccomment">/// BIP49 public template. Expands to `sh(wpkh(key/{0,1}/*))`
+///
+/// This assumes that the key used has already been derived with `m/49'/0'/0'` for Mainnet or `m/49'/1'/0'` for Testnet.
+///
+/// This template requires the parent fingerprint to populate correctly the metadata of PSBTs.
+///
+/// See [`Bip49`] for a template that does the full derivation, but requires private data
+/// for the key.
+///
+/// ## Example
+///
+/// ```
+/// # use std::str::FromStr;
+/// # use bdk_wallet::bitcoin::{PrivateKey, Network};
+/// # use bdk_wallet::{Wallet, KeychainKind};
+/// use bdk_wallet::template::Bip49Public;
+///
+/// let key = bitcoin::bip32::Xpub::from_str("tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L")?;
+/// let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
+/// let mut wallet = Wallet::new_no_persist(
+/// Bip49Public(key.clone(), fingerprint, KeychainKind::External),
+/// Some(Bip49Public(key, fingerprint, KeychainKind::Internal)),
+/// Network::Testnet,
+/// )?;
+///
+/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "2N3K4xbVAHoiTQSwxkZjWDfKoNC27pLkYnt");
+/// assert_eq!(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), "sh(wpkh([c55b303f/49'/1'/0']tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L/0/*))#3tka9g0q");
+/// # Ok::<_, Box<dyn std::error::Error>>(())
+/// ```
+</span><span class="kw">pub struct </span>Bip49Public<K: DerivableKey<Segwitv0>>(<span class="kw">pub </span>K, <span class="kw">pub </span>bip32::Fingerprint, <span class="kw">pub </span>KeychainKind);
+
+<span class="kw">impl</span><K: DerivableKey<Segwitv0>> DescriptorTemplate <span class="kw">for </span>Bip49Public<K> {
+ <span class="kw">fn </span>build(<span class="self">self</span>, network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
+ P2Wpkh_P2Sh(segwit_v0::make_bipxx_public(
+ <span class="number">49</span>, <span class="self">self</span>.<span class="number">0</span>, <span class="self">self</span>.<span class="number">1</span>, <span class="self">self</span>.<span class="number">2</span>, network,
+ )<span class="question-mark">?</span>)
+ .build(network)
+ }
+}
+
+<span class="doccomment">/// BIP84 template. Expands to `wpkh(key/84'/{0,1}'/0'/{0,1}/*)`
+///
+/// Since there are hardened derivation steps, this template requires a private derivable key (generally a `xprv`/`tprv`).
+///
+/// See [`Bip84Public`] for a template that can work with a `xpub`/`tpub`.
+///
+/// ## Example
+///
+/// ```
+/// # use std::str::FromStr;
+/// # use bdk_wallet::bitcoin::{PrivateKey, Network};
+/// # use bdk_wallet::{Wallet, KeychainKind};
+/// use bdk_wallet::template::Bip84;
+///
+/// let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
+/// let mut wallet = Wallet::new_no_persist(
+/// Bip84(key.clone(), KeychainKind::External),
+/// Some(Bip84(key, KeychainKind::Internal)),
+/// Network::Testnet,
+/// )?;
+///
+/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "tb1qhl85z42h7r4su5u37rvvw0gk8j2t3n9y7zsg4n");
+/// assert_eq!(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), "wpkh([c55b303f/84'/1'/0']tpubDDc5mum24DekpNw92t6fHGp8Gr2JjF9J7i4TZBtN6Vp8xpAULG5CFaKsfugWa5imhrQQUZKXe261asP5koDHo5bs3qNTmf3U3o4v9SaB8gg/0/*)#6kfecsmr");
+/// # Ok::<_, Box<dyn std::error::Error>>(())
+/// ```
+</span><span class="kw">pub struct </span>Bip84<K: DerivableKey<Segwitv0>>(<span class="kw">pub </span>K, <span class="kw">pub </span>KeychainKind);
+
+<span class="kw">impl</span><K: DerivableKey<Segwitv0>> DescriptorTemplate <span class="kw">for </span>Bip84<K> {
+ <span class="kw">fn </span>build(<span class="self">self</span>, network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
+ P2Wpkh(segwit_v0::make_bipxx_private(<span class="number">84</span>, <span class="self">self</span>.<span class="number">0</span>, <span class="self">self</span>.<span class="number">1</span>, network)<span class="question-mark">?</span>).build(network)
+ }
+}
+
+<span class="doccomment">/// BIP84 public template. Expands to `wpkh(key/{0,1}/*)`
+///
+/// This assumes that the key used has already been derived with `m/84'/0'/0'` for Mainnet or `m/84'/1'/0'` for Testnet.
+///
+/// This template requires the parent fingerprint to populate correctly the metadata of PSBTs.
+///
+/// See [`Bip84`] for a template that does the full derivation, but requires private data
+/// for the key.
+///
+/// ## Example
+///
+/// ```
+/// # use std::str::FromStr;
+/// # use bdk_wallet::bitcoin::{PrivateKey, Network};
+/// # use bdk_wallet::{Wallet, KeychainKind};
+/// use bdk_wallet::template::Bip84Public;
+///
+/// let key = bitcoin::bip32::Xpub::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
+/// let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
+/// let mut wallet = Wallet::new_no_persist(
+/// Bip84Public(key.clone(), fingerprint, KeychainKind::External),
+/// Some(Bip84Public(key, fingerprint, KeychainKind::Internal)),
+/// Network::Testnet,
+/// )?;
+///
+/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "tb1qedg9fdlf8cnnqfd5mks6uz5w4kgpk2pr6y4qc7");
+/// assert_eq!(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), "wpkh([c55b303f/84'/1'/0']tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q/0/*)#dhu402yv");
+/// # Ok::<_, Box<dyn std::error::Error>>(())
+/// ```
+</span><span class="kw">pub struct </span>Bip84Public<K: DerivableKey<Segwitv0>>(<span class="kw">pub </span>K, <span class="kw">pub </span>bip32::Fingerprint, <span class="kw">pub </span>KeychainKind);
+
+<span class="kw">impl</span><K: DerivableKey<Segwitv0>> DescriptorTemplate <span class="kw">for </span>Bip84Public<K> {
+ <span class="kw">fn </span>build(<span class="self">self</span>, network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
+ P2Wpkh(segwit_v0::make_bipxx_public(
+ <span class="number">84</span>, <span class="self">self</span>.<span class="number">0</span>, <span class="self">self</span>.<span class="number">1</span>, <span class="self">self</span>.<span class="number">2</span>, network,
+ )<span class="question-mark">?</span>)
+ .build(network)
+ }
+}
+
+<span class="doccomment">/// BIP86 template. Expands to `tr(key/86'/{0,1}'/0'/{0,1}/*)`
+///
+/// Since there are hardened derivation steps, this template requires a private derivable key (generally a `xprv`/`tprv`).
+///
+/// See [`Bip86Public`] for a template that can work with a `xpub`/`tpub`.
+///
+/// ## Example
+///
+/// ```
+/// # use std::str::FromStr;
+/// # use bdk_wallet::bitcoin::{PrivateKey, Network};
+/// # use bdk_wallet::{Wallet, KeychainKind};
+/// use bdk_wallet::template::Bip86;
+///
+/// let key = bitcoin::bip32::Xpriv::from_str("tprv8ZgxMBicQKsPeZRHk4rTG6orPS2CRNFX3njhUXx5vj9qGog5ZMH4uGReDWN5kCkY3jmWEtWause41CDvBRXD1shKknAMKxT99o9qUTRVC6m")?;
+/// let mut wallet = Wallet::new_no_persist(
+/// Bip86(key.clone(), KeychainKind::External),
+/// Some(Bip86(key, KeychainKind::Internal)),
+/// Network::Testnet,
+/// )?;
+///
+/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "tb1p5unlj09djx8xsjwe97269kqtxqpwpu2epeskgqjfk4lnf69v4tnqpp35qu");
+/// assert_eq!(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), "tr([c55b303f/86'/1'/0']tpubDCiHofpEs47kx358bPdJmTZHmCDqQ8qw32upCSxHrSEdeeBs2T5Mq6QMB2ukeMqhNBiyhosBvJErteVhfURPGXPv3qLJPw5MVpHUewsbP2m/0/*)#dkgvr5hm");
+/// # Ok::<_, Box<dyn std::error::Error>>(())
+/// ```
+</span><span class="kw">pub struct </span>Bip86<K: DerivableKey<Tap>>(<span class="kw">pub </span>K, <span class="kw">pub </span>KeychainKind);
+
+<span class="kw">impl</span><K: DerivableKey<Tap>> DescriptorTemplate <span class="kw">for </span>Bip86<K> {
+ <span class="kw">fn </span>build(<span class="self">self</span>, network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
+ P2TR(segwit_v1::make_bipxx_private(<span class="number">86</span>, <span class="self">self</span>.<span class="number">0</span>, <span class="self">self</span>.<span class="number">1</span>, network)<span class="question-mark">?</span>).build(network)
+ }
+}
+
+<span class="doccomment">/// BIP86 public template. Expands to `tr(key/{0,1}/*)`
+///
+/// This assumes that the key used has already been derived with `m/86'/0'/0'` for Mainnet or `m/86'/1'/0'` for Testnet.
+///
+/// This template requires the parent fingerprint to populate correctly the metadata of PSBTs.
+///
+/// See [`Bip86`] for a template that does the full derivation, but requires private data
+/// for the key.
+///
+/// ## Example
+///
+/// ```
+/// # use std::str::FromStr;
+/// # use bdk_wallet::bitcoin::{PrivateKey, Network};
+/// # use bdk_wallet::{Wallet, KeychainKind};
+/// use bdk_wallet::template::Bip86Public;
+///
+/// let key = bitcoin::bip32::Xpub::from_str("tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q")?;
+/// let fingerprint = bitcoin::bip32::Fingerprint::from_str("c55b303f")?;
+/// let mut wallet = Wallet::new_no_persist(
+/// Bip86Public(key.clone(), fingerprint, KeychainKind::External),
+/// Some(Bip86Public(key, fingerprint, KeychainKind::Internal)),
+/// Network::Testnet,
+/// )?;
+///
+/// assert_eq!(wallet.next_unused_address(KeychainKind::External)?.to_string(), "tb1pwjp9f2k5n0xq73ecuu0c5njvgqr3vkh7yaylmpqvsuuaafymh0msvcmh37");
+/// assert_eq!(wallet.public_descriptor(KeychainKind::External).unwrap().to_string(), "tr([c55b303f/86'/1'/0']tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q/0/*)#2p65srku");
+/// # Ok::<_, Box<dyn std::error::Error>>(())
+/// ```
+</span><span class="kw">pub struct </span>Bip86Public<K: DerivableKey<Tap>>(<span class="kw">pub </span>K, <span class="kw">pub </span>bip32::Fingerprint, <span class="kw">pub </span>KeychainKind);
+
+<span class="kw">impl</span><K: DerivableKey<Tap>> DescriptorTemplate <span class="kw">for </span>Bip86Public<K> {
+ <span class="kw">fn </span>build(<span class="self">self</span>, network: Network) -> <span class="prelude-ty">Result</span><DescriptorTemplateOut, DescriptorError> {
+ P2TR(segwit_v1::make_bipxx_public(
+ <span class="number">86</span>, <span class="self">self</span>.<span class="number">0</span>, <span class="self">self</span>.<span class="number">1</span>, <span class="self">self</span>.<span class="number">2</span>, network,
+ )<span class="question-mark">?</span>)
+ .build(network)
+ }
+}
+
+<span class="macro">macro_rules! </span>expand_make_bipxx {
+ ( <span class="macro-nonterminal">$mod_name</span>:ident, <span class="macro-nonterminal">$ctx</span>:ty ) => {
+ <span class="kw">mod </span><span class="macro-nonterminal">$mod_name </span>{
+ <span class="kw">use super</span>::<span class="kw-2">*</span>;
+
+ <span class="kw">pub</span>(<span class="kw">super</span>) <span class="kw">fn </span>make_bipxx_private<K: DerivableKey<<span class="macro-nonterminal">$ctx</span>>>(
+ bip: u32,
+ key: K,
+ keychain: KeychainKind,
+ network: Network,
+ ) -> <span class="prelude-ty">Result</span><<span class="kw">impl </span>IntoDescriptorKey<<span class="macro-nonterminal">$ctx</span>>, DescriptorError> {
+ <span class="kw">let </span><span class="kw-2">mut </span>derivation_path = alloc::vec::Vec::with_capacity(<span class="number">4</span>);
+ derivation_path.push(bip32::ChildNumber::from_hardened_idx(bip)<span class="question-mark">?</span>);
+
+ <span class="kw">match </span>network {
+ Network::Bitcoin => {
+ derivation_path.push(bip32::ChildNumber::from_hardened_idx(<span class="number">0</span>)<span class="question-mark">?</span>);
+ }
+ <span class="kw">_ </span>=> {
+ derivation_path.push(bip32::ChildNumber::from_hardened_idx(<span class="number">1</span>)<span class="question-mark">?</span>);
+ }
+ }
+ derivation_path.push(bip32::ChildNumber::from_hardened_idx(<span class="number">0</span>)<span class="question-mark">?</span>);
+
+ <span class="kw">match </span>keychain {
+ KeychainKind::External => {
+ derivation_path.push(bip32::ChildNumber::from_normal_idx(<span class="number">0</span>)<span class="question-mark">?</span>)
+ }
+ KeychainKind::Internal => {
+ derivation_path.push(bip32::ChildNumber::from_normal_idx(<span class="number">1</span>)<span class="question-mark">?</span>)
+ }
+ };
+
+ <span class="kw">let </span>derivation_path: bip32::DerivationPath = derivation_path.into();
+
+ <span class="prelude-val">Ok</span>((key, derivation_path))
+ }
+ <span class="kw">pub</span>(<span class="kw">super</span>) <span class="kw">fn </span>make_bipxx_public<K: DerivableKey<<span class="macro-nonterminal">$ctx</span>>>(
+ bip: u32,
+ key: K,
+ parent_fingerprint: bip32::Fingerprint,
+ keychain: KeychainKind,
+ network: Network,
+ ) -> <span class="prelude-ty">Result</span><<span class="kw">impl </span>IntoDescriptorKey<<span class="macro-nonterminal">$ctx</span>>, DescriptorError> {
+ <span class="kw">let </span>derivation_path: bip32::DerivationPath = <span class="kw">match </span>keychain {
+ KeychainKind::External => <span class="macro">vec!</span>[bip32::ChildNumber::from_normal_idx(<span class="number">0</span>)<span class="question-mark">?</span>].into(),
+ KeychainKind::Internal => <span class="macro">vec!</span>[bip32::ChildNumber::from_normal_idx(<span class="number">1</span>)<span class="question-mark">?</span>].into(),
+ };
+
+ <span class="kw">let </span>source_path = bip32::DerivationPath::from(<span class="macro">vec!</span>[
+ bip32::ChildNumber::from_hardened_idx(bip)<span class="question-mark">?</span>,
+ <span class="kw">match </span>network {
+ Network::Bitcoin => bip32::ChildNumber::from_hardened_idx(<span class="number">0</span>)<span class="question-mark">?</span>,
+ <span class="kw">_ </span>=> bip32::ChildNumber::from_hardened_idx(<span class="number">1</span>)<span class="question-mark">?</span>,
+ },
+ bip32::ChildNumber::from_hardened_idx(<span class="number">0</span>)<span class="question-mark">?</span>,
+ ]);
+
+ <span class="prelude-val">Ok</span>((key, (parent_fingerprint, source_path), derivation_path))
+ }
+ }
+ };
+}
+
+<span class="macro">expand_make_bipxx!</span>(legacy, Legacy);
+<span class="macro">expand_make_bipxx!</span>(segwit_v0, Segwitv0);
+<span class="macro">expand_make_bipxx!</span>(segwit_v1, Tap);
+
+<span class="attr">#[cfg(test)]
+</span><span class="kw">mod </span>test {
+ <span class="comment">// test existing descriptor templates, make sure they are expanded to the right descriptors
+
+ </span><span class="kw">use </span>alloc::{string::ToString, vec::Vec};
+ <span class="kw">use </span>core::str::FromStr;
+
+ <span class="kw">use super</span>::<span class="kw-2">*</span>;
+ <span class="kw">use </span><span class="kw">crate</span>::descriptor::{DescriptorError, DescriptorMeta};
+ <span class="kw">use </span><span class="kw">crate</span>::keys::ValidNetworks;
+ <span class="kw">use </span>assert_matches::assert_matches;
+ <span class="kw">use </span>miniscript::descriptor::{DescriptorPublicKey, KeyMap};
+ <span class="kw">use </span>miniscript::Descriptor;
+
+ <span class="comment">// BIP44 `pkh(key/44'/{0,1}'/0'/{0,1}/*)`
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_bip44_template_cointype() {
+ <span class="kw">use </span>bitcoin::bip32::ChildNumber::{<span class="self">self</span>, Hardened};
+
+ <span class="kw">let </span>xprvkey = bitcoin::bip32::Xpriv::from_str(<span class="string">"xprv9s21ZrQH143K2fpbqApQL69a4oKdGVnVN52R82Ft7d1pSqgKmajF62acJo3aMszZb6qQ22QsVECSFxvf9uyxFUvFYQMq3QbtwtRSMjLAhMf"</span>).unwrap();
+ <span class="macro">assert_eq!</span>(Network::Bitcoin, xprvkey.network);
+ <span class="kw">let </span>xdesc = Bip44(xprvkey, KeychainKind::Internal)
+ .build(Network::Bitcoin)
+ .unwrap();
+
+ <span class="kw">if let </span>ExtendedDescriptor::Pkh(pkh) = xdesc.<span class="number">0 </span>{
+ <span class="kw">let </span>path: Vec<ChildNumber> = pkh.into_inner().full_derivation_path().unwrap().into();
+ <span class="kw">let </span>purpose = path.first().unwrap();
+ <span class="macro">assert_matches!</span>(purpose, Hardened { index: <span class="number">44 </span>});
+ <span class="kw">let </span>coin_type = path.get(<span class="number">1</span>).unwrap();
+ <span class="macro">assert_matches!</span>(coin_type, Hardened { index: <span class="number">0 </span>});
+ }
+
+ <span class="kw">let </span>tprvkey = bitcoin::bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy"</span>).unwrap();
+ <span class="macro">assert_eq!</span>(Network::Testnet, tprvkey.network);
+ <span class="kw">let </span>tdesc = Bip44(tprvkey, KeychainKind::Internal)
+ .build(Network::Testnet)
+ .unwrap();
+
+ <span class="kw">if let </span>ExtendedDescriptor::Pkh(pkh) = tdesc.<span class="number">0 </span>{
+ <span class="kw">let </span>path: Vec<ChildNumber> = pkh.into_inner().full_derivation_path().unwrap().into();
+ <span class="kw">let </span>purpose = path.first().unwrap();
+ <span class="macro">assert_matches!</span>(purpose, Hardened { index: <span class="number">44 </span>});
+ <span class="kw">let </span>coin_type = path.get(<span class="number">1</span>).unwrap();
+ <span class="macro">assert_matches!</span>(coin_type, Hardened { index: <span class="number">1 </span>});
+ }
+ }
+
+ <span class="comment">// verify template descriptor generates expected address(es)
+ </span><span class="kw">fn </span>check(
+ desc: <span class="prelude-ty">Result</span><(Descriptor<DescriptorPublicKey>, KeyMap, ValidNetworks), DescriptorError>,
+ is_witness: bool,
+ is_taproot: bool,
+ is_fixed: bool,
+ network: Network,
+ expected: <span class="kw-2">&</span>[<span class="kw-2">&</span>str],
+ ) {
+ <span class="kw">let </span>(desc, _key_map, _networks) = desc.unwrap();
+ <span class="macro">assert_eq!</span>(desc.is_witness(), is_witness);
+ <span class="macro">assert_eq!</span>(desc.is_taproot(), is_taproot);
+ <span class="macro">assert_eq!</span>(!desc.has_wildcard(), is_fixed);
+ <span class="kw">for </span>i <span class="kw">in </span><span class="number">0</span>..expected.len() {
+ <span class="kw">let </span>index = i <span class="kw">as </span>u32;
+ <span class="kw">let </span>child_desc = <span class="kw">if </span>!desc.has_wildcard() {
+ desc.at_derivation_index(<span class="number">0</span>).unwrap()
+ } <span class="kw">else </span>{
+ desc.at_derivation_index(index).unwrap()
+ };
+ <span class="kw">let </span>address = child_desc.address(network).unwrap();
+ <span class="macro">assert_eq!</span>(address.to_string(), <span class="kw-2">*</span>expected.get(i).unwrap());
+ }
+ }
+
+ <span class="comment">// P2PKH
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_p2ph_template() {
+ <span class="kw">let </span>prvkey =
+ bitcoin::PrivateKey::from_wif(<span class="string">"cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um"</span>)
+ .unwrap();
+ check(
+ P2Pkh(prvkey).build(Network::Bitcoin),
+ <span class="bool-val">false</span>,
+ <span class="bool-val">false</span>,
+ <span class="bool-val">true</span>,
+ Network::Regtest,
+ <span class="kw-2">&</span>[<span class="string">"mwJ8hxFYW19JLuc65RCTaP4v1rzVU8cVMT"</span>],
+ );
+
+ <span class="kw">let </span>pubkey = bitcoin::PublicKey::from_str(
+ <span class="string">"03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd"</span>,
+ )
+ .unwrap();
+ check(
+ P2Pkh(pubkey).build(Network::Bitcoin),
+ <span class="bool-val">false</span>,
+ <span class="bool-val">false</span>,
+ <span class="bool-val">true</span>,
+ Network::Regtest,
+ <span class="kw-2">&</span>[<span class="string">"muZpTpBYhxmRFuCjLc7C6BBDF32C8XVJUi"</span>],
+ );
+ }
+
+ <span class="comment">// P2WPKH-P2SH `sh(wpkh(key))`
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_p2wphp2sh_template() {
+ <span class="kw">let </span>prvkey =
+ bitcoin::PrivateKey::from_wif(<span class="string">"cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um"</span>)
+ .unwrap();
+ check(
+ P2Wpkh_P2Sh(prvkey).build(Network::Bitcoin),
+ <span class="bool-val">true</span>,
+ <span class="bool-val">false</span>,
+ <span class="bool-val">true</span>,
+ Network::Regtest,
+ <span class="kw-2">&</span>[<span class="string">"2NB4ox5VDRw1ecUv6SnT3VQHPXveYztRqk5"</span>],
+ );
+
+ <span class="kw">let </span>pubkey = bitcoin::PublicKey::from_str(
+ <span class="string">"03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd"</span>,
+ )
+ .unwrap();
+ check(
+ P2Wpkh_P2Sh(pubkey).build(Network::Bitcoin),
+ <span class="bool-val">true</span>,
+ <span class="bool-val">false</span>,
+ <span class="bool-val">true</span>,
+ Network::Regtest,
+ <span class="kw-2">&</span>[<span class="string">"2N5LiC3CqzxDamRTPG1kiNv1FpNJQ7x28sb"</span>],
+ );
+ }
+
+ <span class="comment">// P2WPKH `wpkh(key)`
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_p2wph_template() {
+ <span class="kw">let </span>prvkey =
+ bitcoin::PrivateKey::from_wif(<span class="string">"cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um"</span>)
+ .unwrap();
+ check(
+ P2Wpkh(prvkey).build(Network::Bitcoin),
+ <span class="bool-val">true</span>,
+ <span class="bool-val">false</span>,
+ <span class="bool-val">true</span>,
+ Network::Regtest,
+ <span class="kw-2">&</span>[<span class="string">"bcrt1q4525hmgw265tl3drrl8jjta7ayffu6jfcwxx9y"</span>],
+ );
+
+ <span class="kw">let </span>pubkey = bitcoin::PublicKey::from_str(
+ <span class="string">"03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd"</span>,
+ )
+ .unwrap();
+ check(
+ P2Wpkh(pubkey).build(Network::Bitcoin),
+ <span class="bool-val">true</span>,
+ <span class="bool-val">false</span>,
+ <span class="bool-val">true</span>,
+ Network::Regtest,
+ <span class="kw-2">&</span>[<span class="string">"bcrt1qngw83fg8dz0k749cg7k3emc7v98wy0c7azaa6h"</span>],
+ );
+ }
+
+ <span class="comment">// P2TR `tr(key)`
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_p2tr_template() {
+ <span class="kw">let </span>prvkey =
+ bitcoin::PrivateKey::from_wif(<span class="string">"cTc4vURSzdx6QE6KVynWGomDbLaA75dNALMNyfjh3p8DRRar84Um"</span>)
+ .unwrap();
+ check(
+ P2TR(prvkey).build(Network::Bitcoin),
+ <span class="bool-val">false</span>,
+ <span class="bool-val">true</span>,
+ <span class="bool-val">true</span>,
+ Network::Regtest,
+ <span class="kw-2">&</span>[<span class="string">"bcrt1pvjf9t34fznr53u5tqhejz4nr69luzkhlvsdsdfq9pglutrpve2xqnwtkqq"</span>],
+ );
+
+ <span class="kw">let </span>pubkey = bitcoin::PublicKey::from_str(
+ <span class="string">"03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd"</span>,
+ )
+ .unwrap();
+ check(
+ P2TR(pubkey).build(Network::Bitcoin),
+ <span class="bool-val">false</span>,
+ <span class="bool-val">true</span>,
+ <span class="bool-val">true</span>,
+ Network::Regtest,
+ <span class="kw-2">&</span>[<span class="string">"bcrt1pw74tdcrxlzn5r8z6ku2vztr86fgq0m245s72mjktf4afwzsf8ugs4evwdf"</span>],
+ );
+ }
+
+ <span class="comment">// BIP44 `pkh(key/44'/0'/0'/{0,1}/*)`
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_bip44_template() {
+ <span class="kw">let </span>prvkey = bitcoin::bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy"</span>).unwrap();
+ check(
+ Bip44(prvkey, KeychainKind::External).build(Network::Bitcoin),
+ <span class="bool-val">false</span>,
+ <span class="bool-val">false</span>,
+ <span class="bool-val">false</span>,
+ Network::Regtest,
+ <span class="kw-2">&</span>[
+ <span class="string">"n453VtnjDHPyDt2fDstKSu7A3YCJoHZ5g5"</span>,
+ <span class="string">"mvfrrumXgTtwFPWDNUecBBgzuMXhYM7KRP"</span>,
+ <span class="string">"mzYvhRAuQqbdSKMVVzXNYyqihgNdRadAUQ"</span>,
+ ],
+ );
+ check(
+ Bip44(prvkey, KeychainKind::Internal).build(Network::Bitcoin),
+ <span class="bool-val">false</span>,
+ <span class="bool-val">false</span>,
+ <span class="bool-val">false</span>,
+ Network::Regtest,
+ <span class="kw-2">&</span>[
+ <span class="string">"muHF98X9KxEzdKrnFAX85KeHv96eXopaip"</span>,
+ <span class="string">"n4hpyLJE5ub6B5Bymv4eqFxS5KjrewSmYR"</span>,
+ <span class="string">"mgvkdv1ffmsXd2B1sRKQ5dByK3SzpG42rA"</span>,
+ ],
+ );
+ }
+
+ <span class="comment">// BIP44 public `pkh(key/{0,1}/*)`
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_bip44_public_template() {
+ <span class="kw">let </span>pubkey = bitcoin::bip32::Xpub::from_str(<span class="string">"tpubDDDzQ31JkZB7VxUr9bjvBivDdqoFLrDPyLWtLapArAi51ftfmCb2DPxwLQzX65iNcXz1DGaVvyvo6JQ6rTU73r2gqdEo8uov9QKRb7nKCSU"</span>).unwrap();
+ <span class="kw">let </span>fingerprint = bitcoin::bip32::Fingerprint::from_str(<span class="string">"c55b303f"</span>).unwrap();
+ check(
+ Bip44Public(pubkey, fingerprint, KeychainKind::External).build(Network::Bitcoin),
+ <span class="bool-val">false</span>,
+ <span class="bool-val">false</span>,
+ <span class="bool-val">false</span>,
+ Network::Regtest,
+ <span class="kw-2">&</span>[
+ <span class="string">"miNG7dJTzJqNbFS19svRdTCisC65dsubtR"</span>,
+ <span class="string">"n2UqaDbCjWSFJvpC84m3FjUk5UaeibCzYg"</span>,
+ <span class="string">"muCPpS6Ue7nkzeJMWDViw7Lkwr92Yc4K8g"</span>,
+ ],
+ );
+ check(
+ Bip44Public(pubkey, fingerprint, KeychainKind::Internal).build(Network::Bitcoin),
+ <span class="bool-val">false</span>,
+ <span class="bool-val">false</span>,
+ <span class="bool-val">false</span>,
+ Network::Regtest,
+ <span class="kw-2">&</span>[
+ <span class="string">"moDr3vJ8wpt5nNxSK55MPq797nXJb2Ru9H"</span>,
+ <span class="string">"ms7A1Yt4uTezT2XkefW12AvLoko8WfNJMG"</span>,
+ <span class="string">"mhYiyat2rtEnV77cFfQsW32y1m2ceCGHPo"</span>,
+ ],
+ );
+ }
+
+ <span class="comment">// BIP49 `sh(wpkh(key/49'/0'/0'/{0,1}/*))`
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_bip49_template() {
+ <span class="kw">let </span>prvkey = bitcoin::bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy"</span>).unwrap();
+ check(
+ Bip49(prvkey, KeychainKind::External).build(Network::Bitcoin),
+ <span class="bool-val">true</span>,
+ <span class="bool-val">false</span>,
+ <span class="bool-val">false</span>,
+ Network::Regtest,
+ <span class="kw-2">&</span>[
+ <span class="string">"2N9bCAJXGm168MjVwpkBdNt6ucka3PKVoUV"</span>,
+ <span class="string">"2NDckYkqrYyDMtttEav5hB3Bfw9EGAW5HtS"</span>,
+ <span class="string">"2NAFTVtksF9T4a97M7nyCjwUBD24QevZ5Z4"</span>,
+ ],
+ );
+ check(
+ Bip49(prvkey, KeychainKind::Internal).build(Network::Bitcoin),
+ <span class="bool-val">true</span>,
+ <span class="bool-val">false</span>,
+ <span class="bool-val">false</span>,
+ Network::Regtest,
+ <span class="kw-2">&</span>[
+ <span class="string">"2NB3pA8PnzJLGV8YEKNDFpbViZv3Bm1K6CG"</span>,
+ <span class="string">"2NBiX2Wzxngb5rPiWpUiJQ2uLVB4HBjFD4p"</span>,
+ <span class="string">"2NA8ek4CdQ6aMkveYF6AYuEYNrftB47QGTn"</span>,
+ ],
+ );
+ }
+
+ <span class="comment">// BIP49 public `sh(wpkh(key/{0,1}/*))`
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_bip49_public_template() {
+ <span class="kw">let </span>pubkey = bitcoin::bip32::Xpub::from_str(<span class="string">"tpubDC49r947KGK52X5rBWS4BLs5m9SRY3pYHnvRrm7HcybZ3BfdEsGFyzCMzayi1u58eT82ZeyFZwH7DD6Q83E3fM9CpfMtmnTygnLfP59jL9L"</span>).unwrap();
+ <span class="kw">let </span>fingerprint = bitcoin::bip32::Fingerprint::from_str(<span class="string">"c55b303f"</span>).unwrap();
+ check(
+ Bip49Public(pubkey, fingerprint, KeychainKind::External).build(Network::Bitcoin),
+ <span class="bool-val">true</span>,
+ <span class="bool-val">false</span>,
+ <span class="bool-val">false</span>,
+ Network::Regtest,
+ <span class="kw-2">&</span>[
+ <span class="string">"2N3K4xbVAHoiTQSwxkZjWDfKoNC27pLkYnt"</span>,
+ <span class="string">"2NCTQfJ1sZa3wQ3pPseYRHbaNEpC3AquEfX"</span>,
+ <span class="string">"2MveFxAuC8BYPzTybx7FxSzW8HSd8ATT4z7"</span>,
+ ],
+ );
+ check(
+ Bip49Public(pubkey, fingerprint, KeychainKind::Internal).build(Network::Bitcoin),
+ <span class="bool-val">true</span>,
+ <span class="bool-val">false</span>,
+ <span class="bool-val">false</span>,
+ Network::Regtest,
+ <span class="kw-2">&</span>[
+ <span class="string">"2NF2vttKibwyxigxtx95Zw8K7JhDbo5zPVJ"</span>,
+ <span class="string">"2Mtmyd8taksxNVWCJ4wVvaiss7QPZGcAJuH"</span>,
+ <span class="string">"2NBs3CTVYPr1HCzjB4YFsnWCPCtNg8uMEfp"</span>,
+ ],
+ );
+ }
+
+ <span class="comment">// BIP84 `wpkh(key/84'/0'/0'/{0,1}/*)`
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_bip84_template() {
+ <span class="kw">let </span>prvkey = bitcoin::bip32::Xpriv::from_str(<span class="string">"tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy"</span>).unwrap();
+ check(
+ Bip84(prvkey, KeychainKind::External).build(Network::Bitcoin),
+ <span class="bool-val">true</span>,
+ <span class="bool-val">false</span>,
+ <span class="bool-val">false</span>,
+ Network::Regtest,
+ <span class="kw-2">&</span>[
+ <span class="string">"bcrt1qkmvk2nadgplmd57ztld8nf8v2yxkzmdvwtjf8s"</span>,
+ <span class="string">"bcrt1qx0v6zgfwe50m4kqc58cqzcyem7ay2sfl3gvqhp"</span>,
+ <span class="string">"bcrt1q4h7fq9zhxst6e69p3n882nfj649l7w9g3zccfp"</span>,
+ ],
+ );
+ check(
+ Bip84(prvkey, KeychainKind::Internal).build(Network::Bitcoin),
+ <span class="bool-val">true</span>,
+ <span class="bool-val">false</span>,
+ <span class="bool-val">false</span>,
+ Network::Regtest,
+ <span class="kw-2">&</span>[
+ <span class="string">"bcrt1qtrwtz00wxl69e5xex7amy4xzlxkaefg3gfdkxa"</span>,
+ <span class="string">"bcrt1qqqasfhxpkkf7zrxqnkr2sfhn74dgsrc3e3ky45"</span>,
+ <span class="string">"bcrt1qpks7n0gq74hsgsz3phn5vuazjjq0f5eqhsgyce"</span>,
+ ],
+ );
+ }
+
+ <span class="comment">// BIP84 public `wpkh(key/{0,1}/*)`
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_bip84_public_template() {
+ <span class="kw">let </span>pubkey = bitcoin::bip32::Xpub::from_str(<span class="string">"tpubDC2Qwo2TFsaNC4ju8nrUJ9mqVT3eSgdmy1yPqhgkjwmke3PRXutNGRYAUo6RCHTcVQaDR3ohNU9we59brGHuEKPvH1ags2nevW5opEE9Z5Q"</span>).unwrap();
+ <span class="kw">let </span>fingerprint = bitcoin::bip32::Fingerprint::from_str(<span class="string">"c55b303f"</span>).unwrap();
+ check(
+ Bip84Public(pubkey, fingerprint, KeychainKind::External).build(Network::Bitcoin),
+ <span class="bool-val">true</span>,
+ <span class="bool-val">false</span>,
+ <span class="bool-val">false</span>,
+ Network::Regtest,
+ <span class="kw-2">&</span>[
+ <span class="string">"bcrt1qedg9fdlf8cnnqfd5mks6uz5w4kgpk2prcdvd0h"</span>,
+ <span class="string">"bcrt1q3lncdlwq3lgcaaeyruynjnlccr0ve0kakh6ana"</span>,
+ <span class="string">"bcrt1qt9800y6xl3922jy3uyl0z33jh5wfpycyhcylr9"</span>,
+ ],
+ );
+ check(
+ Bip84Public(pubkey, fingerprint, KeychainKind::Internal).build(Network::Bitcoin),
+ <span class="bool-val">true</span>,
+ <span class="bool-val">false</span>,
+ <span class="bool-val">false</span>,
+ Network::Regtest,
+ <span class="kw-2">&</span>[
+ <span class="string">"bcrt1qm6wqukenh7guu792lj2njgw9n78cmwsy8xy3z2"</span>,
+ <span class="string">"bcrt1q694twxtjn4nnrvnyvra769j0a23rllj5c6cgwp"</span>,
+ <span class="string">"bcrt1qhlac3c5ranv5w5emlnqs7wxhkxt8maelylcarp"</span>,
+ ],
+ );
+ }
+
+ <span class="comment">// BIP86 `tr(key/86'/0'/0'/{0,1}/*)`
+ // Used addresses in test vector in https://github.com/bitcoin/bips/blob/master/bip-0086.mediawiki
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_bip86_template() {
+ <span class="kw">let </span>prvkey = bitcoin::bip32::Xpriv::from_str(<span class="string">"xprv9s21ZrQH143K3GJpoapnV8SFfukcVBSfeCficPSGfubmSFDxo1kuHnLisriDvSnRRuL2Qrg5ggqHKNVpxR86QEC8w35uxmGoggxtQTPvfUu"</span>).unwrap();
+ check(
+ Bip86(prvkey, KeychainKind::External).build(Network::Bitcoin),
+ <span class="bool-val">false</span>,
+ <span class="bool-val">true</span>,
+ <span class="bool-val">false</span>,
+ Network::Bitcoin,
+ <span class="kw-2">&</span>[
+ <span class="string">"bc1p5cyxnuxmeuwuvkwfem96lqzszd02n6xdcjrs20cac6yqjjwudpxqkedrcr"</span>,
+ <span class="string">"bc1p4qhjn9zdvkux4e44uhx8tc55attvtyu358kutcqkudyccelu0was9fqzwh"</span>,
+ <span class="string">"bc1p0d0rhyynq0awa9m8cqrcr8f5nxqx3aw29w4ru5u9my3h0sfygnzs9khxz8"</span>,
+ ],
+ );
+ check(
+ Bip86(prvkey, KeychainKind::Internal).build(Network::Bitcoin),
+ <span class="bool-val">false</span>,
+ <span class="bool-val">true</span>,
+ <span class="bool-val">false</span>,
+ Network::Bitcoin,
+ <span class="kw-2">&</span>[
+ <span class="string">"bc1p3qkhfews2uk44qtvauqyr2ttdsw7svhkl9nkm9s9c3x4ax5h60wqwruhk7"</span>,
+ <span class="string">"bc1ptdg60grjk9t3qqcqczp4tlyy3z47yrx9nhlrjsmw36q5a72lhdrs9f00nj"</span>,
+ <span class="string">"bc1pgcwgsu8naxp7xlp5p7ufzs7emtfza2las7r2e7krzjhe5qj5xz2q88kmk5"</span>,
+ ],
+ );
+ }
+
+ <span class="comment">// BIP86 public `tr(key/{0,1}/*)`
+ // Used addresses in test vector in https://github.com/bitcoin/bips/blob/master/bip-0086.mediawiki
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_bip86_public_template() {
+ <span class="kw">let </span>pubkey = bitcoin::bip32::Xpub::from_str(<span class="string">"xpub6BgBgsespWvERF3LHQu6CnqdvfEvtMcQjYrcRzx53QJjSxarj2afYWcLteoGVky7D3UKDP9QyrLprQ3VCECoY49yfdDEHGCtMMj92pReUsQ"</span>).unwrap();
+ <span class="kw">let </span>fingerprint = bitcoin::bip32::Fingerprint::from_str(<span class="string">"73c5da0a"</span>).unwrap();
+ check(
+ Bip86Public(pubkey, fingerprint, KeychainKind::External).build(Network::Bitcoin),
+ <span class="bool-val">false</span>,
+ <span class="bool-val">true</span>,
+ <span class="bool-val">false</span>,
+ Network::Bitcoin,
+ <span class="kw-2">&</span>[
+ <span class="string">"bc1p5cyxnuxmeuwuvkwfem96lqzszd02n6xdcjrs20cac6yqjjwudpxqkedrcr"</span>,
+ <span class="string">"bc1p4qhjn9zdvkux4e44uhx8tc55attvtyu358kutcqkudyccelu0was9fqzwh"</span>,
+ <span class="string">"bc1p0d0rhyynq0awa9m8cqrcr8f5nxqx3aw29w4ru5u9my3h0sfygnzs9khxz8"</span>,
+ ],
+ );
+ check(
+ Bip86Public(pubkey, fingerprint, KeychainKind::Internal).build(Network::Bitcoin),
+ <span class="bool-val">false</span>,
+ <span class="bool-val">true</span>,
+ <span class="bool-val">false</span>,
+ Network::Bitcoin,
+ <span class="kw-2">&</span>[
+ <span class="string">"bc1p3qkhfews2uk44qtvauqyr2ttdsw7svhkl9nkm9s9c3x4ax5h60wqwruhk7"</span>,
+ <span class="string">"bc1ptdg60grjk9t3qqcqczp4tlyy3z47yrx9nhlrjsmw36q5a72lhdrs9f00nj"</span>,
+ <span class="string">"bc1pgcwgsu8naxp7xlp5p7ufzs7emtfza2las7r2e7krzjhe5qj5xz2q88kmk5"</span>,
+ ],
+ );
+ }
+}
+</code></pre></div>
+</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Source of the Rust file `crates/wallet/src/keys/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk_wallet/index.html">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
+<a href="#2" id="2">2</a>
+<a href="#3" id="3">3</a>
+<a href="#4" id="4">4</a>
+<a href="#5" id="5">5</a>
+<a href="#6" id="6">6</a>
+<a href="#7" id="7">7</a>
+<a href="#8" id="8">8</a>
+<a href="#9" id="9">9</a>
+<a href="#10" id="10">10</a>
+<a href="#11" id="11">11</a>
+<a href="#12" id="12">12</a>
+<a href="#13" id="13">13</a>
+<a href="#14" id="14">14</a>
+<a href="#15" id="15">15</a>
+<a href="#16" id="16">16</a>
+<a href="#17" id="17">17</a>
+<a href="#18" id="18">18</a>
+<a href="#19" id="19">19</a>
+<a href="#20" id="20">20</a>
+<a href="#21" id="21">21</a>
+<a href="#22" id="22">22</a>
+<a href="#23" id="23">23</a>
+<a href="#24" id="24">24</a>
+<a href="#25" id="25">25</a>
+<a href="#26" id="26">26</a>
+<a href="#27" id="27">27</a>
+<a href="#28" id="28">28</a>
+<a href="#29" id="29">29</a>
+<a href="#30" id="30">30</a>
+<a href="#31" id="31">31</a>
+<a href="#32" id="32">32</a>
+<a href="#33" id="33">33</a>
+<a href="#34" id="34">34</a>
+<a href="#35" id="35">35</a>
+<a href="#36" id="36">36</a>
+<a href="#37" id="37">37</a>
+<a href="#38" id="38">38</a>
+<a href="#39" id="39">39</a>
+<a href="#40" id="40">40</a>
+<a href="#41" id="41">41</a>
+<a href="#42" id="42">42</a>
+<a href="#43" id="43">43</a>
+<a href="#44" id="44">44</a>
+<a href="#45" id="45">45</a>
+<a href="#46" id="46">46</a>
+<a href="#47" id="47">47</a>
+<a href="#48" id="48">48</a>
+<a href="#49" id="49">49</a>
+<a href="#50" id="50">50</a>
+<a href="#51" id="51">51</a>
+<a href="#52" id="52">52</a>
+<a href="#53" id="53">53</a>
+<a href="#54" id="54">54</a>
+<a href="#55" id="55">55</a>
+<a href="#56" id="56">56</a>
+<a href="#57" id="57">57</a>
+<a href="#58" id="58">58</a>
+<a href="#59" id="59">59</a>
+<a href="#60" id="60">60</a>
+<a href="#61" id="61">61</a>
+<a href="#62" id="62">62</a>
+<a href="#63" id="63">63</a>
+<a href="#64" id="64">64</a>
+<a href="#65" id="65">65</a>
+<a href="#66" id="66">66</a>
+<a href="#67" id="67">67</a>
+<a href="#68" id="68">68</a>
+<a href="#69" id="69">69</a>
+<a href="#70" id="70">70</a>
+<a href="#71" id="71">71</a>
+<a href="#72" id="72">72</a>
+<a href="#73" id="73">73</a>
+<a href="#74" id="74">74</a>
+<a href="#75" id="75">75</a>
+<a href="#76" id="76">76</a>
+<a href="#77" id="77">77</a>
+<a href="#78" id="78">78</a>
+<a href="#79" id="79">79</a>
+<a href="#80" id="80">80</a>
+<a href="#81" id="81">81</a>
+<a href="#82" id="82">82</a>
+<a href="#83" id="83">83</a>
+<a href="#84" id="84">84</a>
+<a href="#85" id="85">85</a>
+<a href="#86" id="86">86</a>
+<a href="#87" id="87">87</a>
+<a href="#88" id="88">88</a>
+<a href="#89" id="89">89</a>
+<a href="#90" id="90">90</a>
+<a href="#91" id="91">91</a>
+<a href="#92" id="92">92</a>
+<a href="#93" id="93">93</a>
+<a href="#94" id="94">94</a>
+<a href="#95" id="95">95</a>
+<a href="#96" id="96">96</a>
+<a href="#97" id="97">97</a>
+<a href="#98" id="98">98</a>
+<a href="#99" id="99">99</a>
+<a href="#100" id="100">100</a>
+<a href="#101" id="101">101</a>
+<a href="#102" id="102">102</a>
+<a href="#103" id="103">103</a>
+<a href="#104" id="104">104</a>
+<a href="#105" id="105">105</a>
+<a href="#106" id="106">106</a>
+<a href="#107" id="107">107</a>
+<a href="#108" id="108">108</a>
+<a href="#109" id="109">109</a>
+<a href="#110" id="110">110</a>
+<a href="#111" id="111">111</a>
+<a href="#112" id="112">112</a>
+<a href="#113" id="113">113</a>
+<a href="#114" id="114">114</a>
+<a href="#115" id="115">115</a>
+<a href="#116" id="116">116</a>
+<a href="#117" id="117">117</a>
+<a href="#118" id="118">118</a>
+<a href="#119" id="119">119</a>
+<a href="#120" id="120">120</a>
+<a href="#121" id="121">121</a>
+<a href="#122" id="122">122</a>
+<a href="#123" id="123">123</a>
+<a href="#124" id="124">124</a>
+<a href="#125" id="125">125</a>
+<a href="#126" id="126">126</a>
+<a href="#127" id="127">127</a>
+<a href="#128" id="128">128</a>
+<a href="#129" id="129">129</a>
+<a href="#130" id="130">130</a>
+<a href="#131" id="131">131</a>
+<a href="#132" id="132">132</a>
+<a href="#133" id="133">133</a>
+<a href="#134" id="134">134</a>
+<a href="#135" id="135">135</a>
+<a href="#136" id="136">136</a>
+<a href="#137" id="137">137</a>
+<a href="#138" id="138">138</a>
+<a href="#139" id="139">139</a>
+<a href="#140" id="140">140</a>
+<a href="#141" id="141">141</a>
+<a href="#142" id="142">142</a>
+<a href="#143" id="143">143</a>
+<a href="#144" id="144">144</a>
+<a href="#145" id="145">145</a>
+<a href="#146" id="146">146</a>
+<a href="#147" id="147">147</a>
+<a href="#148" id="148">148</a>
+<a href="#149" id="149">149</a>
+<a href="#150" id="150">150</a>
+<a href="#151" id="151">151</a>
+<a href="#152" id="152">152</a>
+<a href="#153" id="153">153</a>
+<a href="#154" id="154">154</a>
+<a href="#155" id="155">155</a>
+<a href="#156" id="156">156</a>
+<a href="#157" id="157">157</a>
+<a href="#158" id="158">158</a>
+<a href="#159" id="159">159</a>
+<a href="#160" id="160">160</a>
+<a href="#161" id="161">161</a>
+<a href="#162" id="162">162</a>
+<a href="#163" id="163">163</a>
+<a href="#164" id="164">164</a>
+<a href="#165" id="165">165</a>
+<a href="#166" id="166">166</a>
+<a href="#167" id="167">167</a>
+<a href="#168" id="168">168</a>
+<a href="#169" id="169">169</a>
+<a href="#170" id="170">170</a>
+<a href="#171" id="171">171</a>
+<a href="#172" id="172">172</a>
+<a href="#173" id="173">173</a>
+<a href="#174" id="174">174</a>
+<a href="#175" id="175">175</a>
+<a href="#176" id="176">176</a>
+<a href="#177" id="177">177</a>
+<a href="#178" id="178">178</a>
+<a href="#179" id="179">179</a>
+<a href="#180" id="180">180</a>
+<a href="#181" id="181">181</a>
+<a href="#182" id="182">182</a>
+<a href="#183" id="183">183</a>
+<a href="#184" id="184">184</a>
+<a href="#185" id="185">185</a>
+<a href="#186" id="186">186</a>
+<a href="#187" id="187">187</a>
+<a href="#188" id="188">188</a>
+<a href="#189" id="189">189</a>
+<a href="#190" id="190">190</a>
+<a href="#191" id="191">191</a>
+<a href="#192" id="192">192</a>
+<a href="#193" id="193">193</a>
+<a href="#194" id="194">194</a>
+<a href="#195" id="195">195</a>
+<a href="#196" id="196">196</a>
+<a href="#197" id="197">197</a>
+<a href="#198" id="198">198</a>
+<a href="#199" id="199">199</a>
+<a href="#200" id="200">200</a>
+<a href="#201" id="201">201</a>
+<a href="#202" id="202">202</a>
+<a href="#203" id="203">203</a>
+<a href="#204" id="204">204</a>
+<a href="#205" id="205">205</a>
+<a href="#206" id="206">206</a>
+<a href="#207" id="207">207</a>
+<a href="#208" id="208">208</a>
+<a href="#209" id="209">209</a>
+<a href="#210" id="210">210</a>
+<a href="#211" id="211">211</a>
+<a href="#212" id="212">212</a>
+<a href="#213" id="213">213</a>
+<a href="#214" id="214">214</a>
+<a href="#215" id="215">215</a>
+<a href="#216" id="216">216</a>
+<a href="#217" id="217">217</a>
+<a href="#218" id="218">218</a>
+<a href="#219" id="219">219</a>
+<a href="#220" id="220">220</a>
+<a href="#221" id="221">221</a>
+<a href="#222" id="222">222</a>
+<a href="#223" id="223">223</a>
+<a href="#224" id="224">224</a>
+<a href="#225" id="225">225</a>
+<a href="#226" id="226">226</a>
+<a href="#227" id="227">227</a>
+<a href="#228" id="228">228</a>
+<a href="#229" id="229">229</a>
+<a href="#230" id="230">230</a>
+<a href="#231" id="231">231</a>
+<a href="#232" id="232">232</a>
+<a href="#233" id="233">233</a>
+<a href="#234" id="234">234</a>
+<a href="#235" id="235">235</a>
+<a href="#236" id="236">236</a>
+<a href="#237" id="237">237</a>
+<a href="#238" id="238">238</a>
+<a href="#239" id="239">239</a>
+<a href="#240" id="240">240</a>
+<a href="#241" id="241">241</a>
+<a href="#242" id="242">242</a>
+<a href="#243" id="243">243</a>
+<a href="#244" id="244">244</a>
+<a href="#245" id="245">245</a>
+<a href="#246" id="246">246</a>
+<a href="#247" id="247">247</a>
+<a href="#248" id="248">248</a>
+<a href="#249" id="249">249</a>
+<a href="#250" id="250">250</a>
+<a href="#251" id="251">251</a>
+<a href="#252" id="252">252</a>
+<a href="#253" id="253">253</a>
+<a href="#254" id="254">254</a>
+<a href="#255" id="255">255</a>
+<a href="#256" id="256">256</a>
+<a href="#257" id="257">257</a>
+<a href="#258" id="258">258</a>
+<a href="#259" id="259">259</a>
+<a href="#260" id="260">260</a>
+<a href="#261" id="261">261</a>
+<a href="#262" id="262">262</a>
+<a href="#263" id="263">263</a>
+<a href="#264" id="264">264</a>
+<a href="#265" id="265">265</a>
+<a href="#266" id="266">266</a>
+<a href="#267" id="267">267</a>
+<a href="#268" id="268">268</a>
+<a href="#269" id="269">269</a>
+<a href="#270" id="270">270</a>
+<a href="#271" id="271">271</a>
+<a href="#272" id="272">272</a>
+<a href="#273" id="273">273</a>
+<a href="#274" id="274">274</a>
+<a href="#275" id="275">275</a>
+<a href="#276" id="276">276</a>
+<a href="#277" id="277">277</a>
+<a href="#278" id="278">278</a>
+<a href="#279" id="279">279</a>
+<a href="#280" id="280">280</a>
+<a href="#281" id="281">281</a>
+<a href="#282" id="282">282</a>
+<a href="#283" id="283">283</a>
+<a href="#284" id="284">284</a>
+<a href="#285" id="285">285</a>
+<a href="#286" id="286">286</a>
+<a href="#287" id="287">287</a>
+<a href="#288" id="288">288</a>
+<a href="#289" id="289">289</a>
+<a href="#290" id="290">290</a>
+<a href="#291" id="291">291</a>
+<a href="#292" id="292">292</a>
+<a href="#293" id="293">293</a>
+<a href="#294" id="294">294</a>
+<a href="#295" id="295">295</a>
+<a href="#296" id="296">296</a>
+<a href="#297" id="297">297</a>
+<a href="#298" id="298">298</a>
+<a href="#299" id="299">299</a>
+<a href="#300" id="300">300</a>
+<a href="#301" id="301">301</a>
+<a href="#302" id="302">302</a>
+<a href="#303" id="303">303</a>
+<a href="#304" id="304">304</a>
+<a href="#305" id="305">305</a>
+<a href="#306" id="306">306</a>
+<a href="#307" id="307">307</a>
+<a href="#308" id="308">308</a>
+<a href="#309" id="309">309</a>
+<a href="#310" id="310">310</a>
+<a href="#311" id="311">311</a>
+<a href="#312" id="312">312</a>
+<a href="#313" id="313">313</a>
+<a href="#314" id="314">314</a>
+<a href="#315" id="315">315</a>
+<a href="#316" id="316">316</a>
+<a href="#317" id="317">317</a>
+<a href="#318" id="318">318</a>
+<a href="#319" id="319">319</a>
+<a href="#320" id="320">320</a>
+<a href="#321" id="321">321</a>
+<a href="#322" id="322">322</a>
+<a href="#323" id="323">323</a>
+<a href="#324" id="324">324</a>
+<a href="#325" id="325">325</a>
+<a href="#326" id="326">326</a>
+<a href="#327" id="327">327</a>
+<a href="#328" id="328">328</a>
+<a href="#329" id="329">329</a>
+<a href="#330" id="330">330</a>
+<a href="#331" id="331">331</a>
+<a href="#332" id="332">332</a>
+<a href="#333" id="333">333</a>
+<a href="#334" id="334">334</a>
+<a href="#335" id="335">335</a>
+<a href="#336" id="336">336</a>
+<a href="#337" id="337">337</a>
+<a href="#338" id="338">338</a>
+<a href="#339" id="339">339</a>
+<a href="#340" id="340">340</a>
+<a href="#341" id="341">341</a>
+<a href="#342" id="342">342</a>
+<a href="#343" id="343">343</a>
+<a href="#344" id="344">344</a>
+<a href="#345" id="345">345</a>
+<a href="#346" id="346">346</a>
+<a href="#347" id="347">347</a>
+<a href="#348" id="348">348</a>
+<a href="#349" id="349">349</a>
+<a href="#350" id="350">350</a>
+<a href="#351" id="351">351</a>
+<a href="#352" id="352">352</a>
+<a href="#353" id="353">353</a>
+<a href="#354" id="354">354</a>
+<a href="#355" id="355">355</a>
+<a href="#356" id="356">356</a>
+<a href="#357" id="357">357</a>
+<a href="#358" id="358">358</a>
+<a href="#359" id="359">359</a>
+<a href="#360" id="360">360</a>
+<a href="#361" id="361">361</a>
+<a href="#362" id="362">362</a>
+<a href="#363" id="363">363</a>
+<a href="#364" id="364">364</a>
+<a href="#365" id="365">365</a>
+<a href="#366" id="366">366</a>
+<a href="#367" id="367">367</a>
+<a href="#368" id="368">368</a>
+<a href="#369" id="369">369</a>
+<a href="#370" id="370">370</a>
+<a href="#371" id="371">371</a>
+<a href="#372" id="372">372</a>
+<a href="#373" id="373">373</a>
+<a href="#374" id="374">374</a>
+<a href="#375" id="375">375</a>
+<a href="#376" id="376">376</a>
+<a href="#377" id="377">377</a>
+<a href="#378" id="378">378</a>
+<a href="#379" id="379">379</a>
+<a href="#380" id="380">380</a>
+<a href="#381" id="381">381</a>
+<a href="#382" id="382">382</a>
+<a href="#383" id="383">383</a>
+<a href="#384" id="384">384</a>
+<a href="#385" id="385">385</a>
+<a href="#386" id="386">386</a>
+<a href="#387" id="387">387</a>
+<a href="#388" id="388">388</a>
+<a href="#389" id="389">389</a>
+<a href="#390" id="390">390</a>
+<a href="#391" id="391">391</a>
+<a href="#392" id="392">392</a>
+<a href="#393" id="393">393</a>
+<a href="#394" id="394">394</a>
+<a href="#395" id="395">395</a>
+<a href="#396" id="396">396</a>
+<a href="#397" id="397">397</a>
+<a href="#398" id="398">398</a>
+<a href="#399" id="399">399</a>
+<a href="#400" id="400">400</a>
+<a href="#401" id="401">401</a>
+<a href="#402" id="402">402</a>
+<a href="#403" id="403">403</a>
+<a href="#404" id="404">404</a>
+<a href="#405" id="405">405</a>
+<a href="#406" id="406">406</a>
+<a href="#407" id="407">407</a>
+<a href="#408" id="408">408</a>
+<a href="#409" id="409">409</a>
+<a href="#410" id="410">410</a>
+<a href="#411" id="411">411</a>
+<a href="#412" id="412">412</a>
+<a href="#413" id="413">413</a>
+<a href="#414" id="414">414</a>
+<a href="#415" id="415">415</a>
+<a href="#416" id="416">416</a>
+<a href="#417" id="417">417</a>
+<a href="#418" id="418">418</a>
+<a href="#419" id="419">419</a>
+<a href="#420" id="420">420</a>
+<a href="#421" id="421">421</a>
+<a href="#422" id="422">422</a>
+<a href="#423" id="423">423</a>
+<a href="#424" id="424">424</a>
+<a href="#425" id="425">425</a>
+<a href="#426" id="426">426</a>
+<a href="#427" id="427">427</a>
+<a href="#428" id="428">428</a>
+<a href="#429" id="429">429</a>
+<a href="#430" id="430">430</a>
+<a href="#431" id="431">431</a>
+<a href="#432" id="432">432</a>
+<a href="#433" id="433">433</a>
+<a href="#434" id="434">434</a>
+<a href="#435" id="435">435</a>
+<a href="#436" id="436">436</a>
+<a href="#437" id="437">437</a>
+<a href="#438" id="438">438</a>
+<a href="#439" id="439">439</a>
+<a href="#440" id="440">440</a>
+<a href="#441" id="441">441</a>
+<a href="#442" id="442">442</a>
+<a href="#443" id="443">443</a>
+<a href="#444" id="444">444</a>
+<a href="#445" id="445">445</a>
+<a href="#446" id="446">446</a>
+<a href="#447" id="447">447</a>
+<a href="#448" id="448">448</a>
+<a href="#449" id="449">449</a>
+<a href="#450" id="450">450</a>
+<a href="#451" id="451">451</a>
+<a href="#452" id="452">452</a>
+<a href="#453" id="453">453</a>
+<a href="#454" id="454">454</a>
+<a href="#455" id="455">455</a>
+<a href="#456" id="456">456</a>
+<a href="#457" id="457">457</a>
+<a href="#458" id="458">458</a>
+<a href="#459" id="459">459</a>
+<a href="#460" id="460">460</a>
+<a href="#461" id="461">461</a>
+<a href="#462" id="462">462</a>
+<a href="#463" id="463">463</a>
+<a href="#464" id="464">464</a>
+<a href="#465" id="465">465</a>
+<a href="#466" id="466">466</a>
+<a href="#467" id="467">467</a>
+<a href="#468" id="468">468</a>
+<a href="#469" id="469">469</a>
+<a href="#470" id="470">470</a>
+<a href="#471" id="471">471</a>
+<a href="#472" id="472">472</a>
+<a href="#473" id="473">473</a>
+<a href="#474" id="474">474</a>
+<a href="#475" id="475">475</a>
+<a href="#476" id="476">476</a>
+<a href="#477" id="477">477</a>
+<a href="#478" id="478">478</a>
+<a href="#479" id="479">479</a>
+<a href="#480" id="480">480</a>
+<a href="#481" id="481">481</a>
+<a href="#482" id="482">482</a>
+<a href="#483" id="483">483</a>
+<a href="#484" id="484">484</a>
+<a href="#485" id="485">485</a>
+<a href="#486" id="486">486</a>
+<a href="#487" id="487">487</a>
+<a href="#488" id="488">488</a>
+<a href="#489" id="489">489</a>
+<a href="#490" id="490">490</a>
+<a href="#491" id="491">491</a>
+<a href="#492" id="492">492</a>
+<a href="#493" id="493">493</a>
+<a href="#494" id="494">494</a>
+<a href="#495" id="495">495</a>
+<a href="#496" id="496">496</a>
+<a href="#497" id="497">497</a>
+<a href="#498" id="498">498</a>
+<a href="#499" id="499">499</a>
+<a href="#500" id="500">500</a>
+<a href="#501" id="501">501</a>
+<a href="#502" id="502">502</a>
+<a href="#503" id="503">503</a>
+<a href="#504" id="504">504</a>
+<a href="#505" id="505">505</a>
+<a href="#506" id="506">506</a>
+<a href="#507" id="507">507</a>
+<a href="#508" id="508">508</a>
+<a href="#509" id="509">509</a>
+<a href="#510" id="510">510</a>
+<a href="#511" id="511">511</a>
+<a href="#512" id="512">512</a>
+<a href="#513" id="513">513</a>
+<a href="#514" id="514">514</a>
+<a href="#515" id="515">515</a>
+<a href="#516" id="516">516</a>
+<a href="#517" id="517">517</a>
+<a href="#518" id="518">518</a>
+<a href="#519" id="519">519</a>
+<a href="#520" id="520">520</a>
+<a href="#521" id="521">521</a>
+<a href="#522" id="522">522</a>
+<a href="#523" id="523">523</a>
+<a href="#524" id="524">524</a>
+<a href="#525" id="525">525</a>
+<a href="#526" id="526">526</a>
+<a href="#527" id="527">527</a>
+<a href="#528" id="528">528</a>
+<a href="#529" id="529">529</a>
+<a href="#530" id="530">530</a>
+<a href="#531" id="531">531</a>
+<a href="#532" id="532">532</a>
+<a href="#533" id="533">533</a>
+<a href="#534" id="534">534</a>
+<a href="#535" id="535">535</a>
+<a href="#536" id="536">536</a>
+<a href="#537" id="537">537</a>
+<a href="#538" id="538">538</a>
+<a href="#539" id="539">539</a>
+<a href="#540" id="540">540</a>
+<a href="#541" id="541">541</a>
+<a href="#542" id="542">542</a>
+<a href="#543" id="543">543</a>
+<a href="#544" id="544">544</a>
+<a href="#545" id="545">545</a>
+<a href="#546" id="546">546</a>
+<a href="#547" id="547">547</a>
+<a href="#548" id="548">548</a>
+<a href="#549" id="549">549</a>
+<a href="#550" id="550">550</a>
+<a href="#551" id="551">551</a>
+<a href="#552" id="552">552</a>
+<a href="#553" id="553">553</a>
+<a href="#554" id="554">554</a>
+<a href="#555" id="555">555</a>
+<a href="#556" id="556">556</a>
+<a href="#557" id="557">557</a>
+<a href="#558" id="558">558</a>
+<a href="#559" id="559">559</a>
+<a href="#560" id="560">560</a>
+<a href="#561" id="561">561</a>
+<a href="#562" id="562">562</a>
+<a href="#563" id="563">563</a>
+<a href="#564" id="564">564</a>
+<a href="#565" id="565">565</a>
+<a href="#566" id="566">566</a>
+<a href="#567" id="567">567</a>
+<a href="#568" id="568">568</a>
+<a href="#569" id="569">569</a>
+<a href="#570" id="570">570</a>
+<a href="#571" id="571">571</a>
+<a href="#572" id="572">572</a>
+<a href="#573" id="573">573</a>
+<a href="#574" id="574">574</a>
+<a href="#575" id="575">575</a>
+<a href="#576" id="576">576</a>
+<a href="#577" id="577">577</a>
+<a href="#578" id="578">578</a>
+<a href="#579" id="579">579</a>
+<a href="#580" id="580">580</a>
+<a href="#581" id="581">581</a>
+<a href="#582" id="582">582</a>
+<a href="#583" id="583">583</a>
+<a href="#584" id="584">584</a>
+<a href="#585" id="585">585</a>
+<a href="#586" id="586">586</a>
+<a href="#587" id="587">587</a>
+<a href="#588" id="588">588</a>
+<a href="#589" id="589">589</a>
+<a href="#590" id="590">590</a>
+<a href="#591" id="591">591</a>
+<a href="#592" id="592">592</a>
+<a href="#593" id="593">593</a>
+<a href="#594" id="594">594</a>
+<a href="#595" id="595">595</a>
+<a href="#596" id="596">596</a>
+<a href="#597" id="597">597</a>
+<a href="#598" id="598">598</a>
+<a href="#599" id="599">599</a>
+<a href="#600" id="600">600</a>
+<a href="#601" id="601">601</a>
+<a href="#602" id="602">602</a>
+<a href="#603" id="603">603</a>
+<a href="#604" id="604">604</a>
+<a href="#605" id="605">605</a>
+<a href="#606" id="606">606</a>
+<a href="#607" id="607">607</a>
+<a href="#608" id="608">608</a>
+<a href="#609" id="609">609</a>
+<a href="#610" id="610">610</a>
+<a href="#611" id="611">611</a>
+<a href="#612" id="612">612</a>
+<a href="#613" id="613">613</a>
+<a href="#614" id="614">614</a>
+<a href="#615" id="615">615</a>
+<a href="#616" id="616">616</a>
+<a href="#617" id="617">617</a>
+<a href="#618" id="618">618</a>
+<a href="#619" id="619">619</a>
+<a href="#620" id="620">620</a>
+<a href="#621" id="621">621</a>
+<a href="#622" id="622">622</a>
+<a href="#623" id="623">623</a>
+<a href="#624" id="624">624</a>
+<a href="#625" id="625">625</a>
+<a href="#626" id="626">626</a>
+<a href="#627" id="627">627</a>
+<a href="#628" id="628">628</a>
+<a href="#629" id="629">629</a>
+<a href="#630" id="630">630</a>
+<a href="#631" id="631">631</a>
+<a href="#632" id="632">632</a>
+<a href="#633" id="633">633</a>
+<a href="#634" id="634">634</a>
+<a href="#635" id="635">635</a>
+<a href="#636" id="636">636</a>
+<a href="#637" id="637">637</a>
+<a href="#638" id="638">638</a>
+<a href="#639" id="639">639</a>
+<a href="#640" id="640">640</a>
+<a href="#641" id="641">641</a>
+<a href="#642" id="642">642</a>
+<a href="#643" id="643">643</a>
+<a href="#644" id="644">644</a>
+<a href="#645" id="645">645</a>
+<a href="#646" id="646">646</a>
+<a href="#647" id="647">647</a>
+<a href="#648" id="648">648</a>
+<a href="#649" id="649">649</a>
+<a href="#650" id="650">650</a>
+<a href="#651" id="651">651</a>
+<a href="#652" id="652">652</a>
+<a href="#653" id="653">653</a>
+<a href="#654" id="654">654</a>
+<a href="#655" id="655">655</a>
+<a href="#656" id="656">656</a>
+<a href="#657" id="657">657</a>
+<a href="#658" id="658">658</a>
+<a href="#659" id="659">659</a>
+<a href="#660" id="660">660</a>
+<a href="#661" id="661">661</a>
+<a href="#662" id="662">662</a>
+<a href="#663" id="663">663</a>
+<a href="#664" id="664">664</a>
+<a href="#665" id="665">665</a>
+<a href="#666" id="666">666</a>
+<a href="#667" id="667">667</a>
+<a href="#668" id="668">668</a>
+<a href="#669" id="669">669</a>
+<a href="#670" id="670">670</a>
+<a href="#671" id="671">671</a>
+<a href="#672" id="672">672</a>
+<a href="#673" id="673">673</a>
+<a href="#674" id="674">674</a>
+<a href="#675" id="675">675</a>
+<a href="#676" id="676">676</a>
+<a href="#677" id="677">677</a>
+<a href="#678" id="678">678</a>
+<a href="#679" id="679">679</a>
+<a href="#680" id="680">680</a>
+<a href="#681" id="681">681</a>
+<a href="#682" id="682">682</a>
+<a href="#683" id="683">683</a>
+<a href="#684" id="684">684</a>
+<a href="#685" id="685">685</a>
+<a href="#686" id="686">686</a>
+<a href="#687" id="687">687</a>
+<a href="#688" id="688">688</a>
+<a href="#689" id="689">689</a>
+<a href="#690" id="690">690</a>
+<a href="#691" id="691">691</a>
+<a href="#692" id="692">692</a>
+<a href="#693" id="693">693</a>
+<a href="#694" id="694">694</a>
+<a href="#695" id="695">695</a>
+<a href="#696" id="696">696</a>
+<a href="#697" id="697">697</a>
+<a href="#698" id="698">698</a>
+<a href="#699" id="699">699</a>
+<a href="#700" id="700">700</a>
+<a href="#701" id="701">701</a>
+<a href="#702" id="702">702</a>
+<a href="#703" id="703">703</a>
+<a href="#704" id="704">704</a>
+<a href="#705" id="705">705</a>
+<a href="#706" id="706">706</a>
+<a href="#707" id="707">707</a>
+<a href="#708" id="708">708</a>
+<a href="#709" id="709">709</a>
+<a href="#710" id="710">710</a>
+<a href="#711" id="711">711</a>
+<a href="#712" id="712">712</a>
+<a href="#713" id="713">713</a>
+<a href="#714" id="714">714</a>
+<a href="#715" id="715">715</a>
+<a href="#716" id="716">716</a>
+<a href="#717" id="717">717</a>
+<a href="#718" id="718">718</a>
+<a href="#719" id="719">719</a>
+<a href="#720" id="720">720</a>
+<a href="#721" id="721">721</a>
+<a href="#722" id="722">722</a>
+<a href="#723" id="723">723</a>
+<a href="#724" id="724">724</a>
+<a href="#725" id="725">725</a>
+<a href="#726" id="726">726</a>
+<a href="#727" id="727">727</a>
+<a href="#728" id="728">728</a>
+<a href="#729" id="729">729</a>
+<a href="#730" id="730">730</a>
+<a href="#731" id="731">731</a>
+<a href="#732" id="732">732</a>
+<a href="#733" id="733">733</a>
+<a href="#734" id="734">734</a>
+<a href="#735" id="735">735</a>
+<a href="#736" id="736">736</a>
+<a href="#737" id="737">737</a>
+<a href="#738" id="738">738</a>
+<a href="#739" id="739">739</a>
+<a href="#740" id="740">740</a>
+<a href="#741" id="741">741</a>
+<a href="#742" id="742">742</a>
+<a href="#743" id="743">743</a>
+<a href="#744" id="744">744</a>
+<a href="#745" id="745">745</a>
+<a href="#746" id="746">746</a>
+<a href="#747" id="747">747</a>
+<a href="#748" id="748">748</a>
+<a href="#749" id="749">749</a>
+<a href="#750" id="750">750</a>
+<a href="#751" id="751">751</a>
+<a href="#752" id="752">752</a>
+<a href="#753" id="753">753</a>
+<a href="#754" id="754">754</a>
+<a href="#755" id="755">755</a>
+<a href="#756" id="756">756</a>
+<a href="#757" id="757">757</a>
+<a href="#758" id="758">758</a>
+<a href="#759" id="759">759</a>
+<a href="#760" id="760">760</a>
+<a href="#761" id="761">761</a>
+<a href="#762" id="762">762</a>
+<a href="#763" id="763">763</a>
+<a href="#764" id="764">764</a>
+<a href="#765" id="765">765</a>
+<a href="#766" id="766">766</a>
+<a href="#767" id="767">767</a>
+<a href="#768" id="768">768</a>
+<a href="#769" id="769">769</a>
+<a href="#770" id="770">770</a>
+<a href="#771" id="771">771</a>
+<a href="#772" id="772">772</a>
+<a href="#773" id="773">773</a>
+<a href="#774" id="774">774</a>
+<a href="#775" id="775">775</a>
+<a href="#776" id="776">776</a>
+<a href="#777" id="777">777</a>
+<a href="#778" id="778">778</a>
+<a href="#779" id="779">779</a>
+<a href="#780" id="780">780</a>
+<a href="#781" id="781">781</a>
+<a href="#782" id="782">782</a>
+<a href="#783" id="783">783</a>
+<a href="#784" id="784">784</a>
+<a href="#785" id="785">785</a>
+<a href="#786" id="786">786</a>
+<a href="#787" id="787">787</a>
+<a href="#788" id="788">788</a>
+<a href="#789" id="789">789</a>
+<a href="#790" id="790">790</a>
+<a href="#791" id="791">791</a>
+<a href="#792" id="792">792</a>
+<a href="#793" id="793">793</a>
+<a href="#794" id="794">794</a>
+<a href="#795" id="795">795</a>
+<a href="#796" id="796">796</a>
+<a href="#797" id="797">797</a>
+<a href="#798" id="798">798</a>
+<a href="#799" id="799">799</a>
+<a href="#800" id="800">800</a>
+<a href="#801" id="801">801</a>
+<a href="#802" id="802">802</a>
+<a href="#803" id="803">803</a>
+<a href="#804" id="804">804</a>
+<a href="#805" id="805">805</a>
+<a href="#806" id="806">806</a>
+<a href="#807" id="807">807</a>
+<a href="#808" id="808">808</a>
+<a href="#809" id="809">809</a>
+<a href="#810" id="810">810</a>
+<a href="#811" id="811">811</a>
+<a href="#812" id="812">812</a>
+<a href="#813" id="813">813</a>
+<a href="#814" id="814">814</a>
+<a href="#815" id="815">815</a>
+<a href="#816" id="816">816</a>
+<a href="#817" id="817">817</a>
+<a href="#818" id="818">818</a>
+<a href="#819" id="819">819</a>
+<a href="#820" id="820">820</a>
+<a href="#821" id="821">821</a>
+<a href="#822" id="822">822</a>
+<a href="#823" id="823">823</a>
+<a href="#824" id="824">824</a>
+<a href="#825" id="825">825</a>
+<a href="#826" id="826">826</a>
+<a href="#827" id="827">827</a>
+<a href="#828" id="828">828</a>
+<a href="#829" id="829">829</a>
+<a href="#830" id="830">830</a>
+<a href="#831" id="831">831</a>
+<a href="#832" id="832">832</a>
+<a href="#833" id="833">833</a>
+<a href="#834" id="834">834</a>
+<a href="#835" id="835">835</a>
+<a href="#836" id="836">836</a>
+<a href="#837" id="837">837</a>
+<a href="#838" id="838">838</a>
+<a href="#839" id="839">839</a>
+<a href="#840" id="840">840</a>
+<a href="#841" id="841">841</a>
+<a href="#842" id="842">842</a>
+<a href="#843" id="843">843</a>
+<a href="#844" id="844">844</a>
+<a href="#845" id="845">845</a>
+<a href="#846" id="846">846</a>
+<a href="#847" id="847">847</a>
+<a href="#848" id="848">848</a>
+<a href="#849" id="849">849</a>
+<a href="#850" id="850">850</a>
+<a href="#851" id="851">851</a>
+<a href="#852" id="852">852</a>
+<a href="#853" id="853">853</a>
+<a href="#854" id="854">854</a>
+<a href="#855" id="855">855</a>
+<a href="#856" id="856">856</a>
+<a href="#857" id="857">857</a>
+<a href="#858" id="858">858</a>
+<a href="#859" id="859">859</a>
+<a href="#860" id="860">860</a>
+<a href="#861" id="861">861</a>
+<a href="#862" id="862">862</a>
+<a href="#863" id="863">863</a>
+<a href="#864" id="864">864</a>
+<a href="#865" id="865">865</a>
+<a href="#866" id="866">866</a>
+<a href="#867" id="867">867</a>
+<a href="#868" id="868">868</a>
+<a href="#869" id="869">869</a>
+<a href="#870" id="870">870</a>
+<a href="#871" id="871">871</a>
+<a href="#872" id="872">872</a>
+<a href="#873" id="873">873</a>
+<a href="#874" id="874">874</a>
+<a href="#875" id="875">875</a>
+<a href="#876" id="876">876</a>
+<a href="#877" id="877">877</a>
+<a href="#878" id="878">878</a>
+<a href="#879" id="879">879</a>
+<a href="#880" id="880">880</a>
+<a href="#881" id="881">881</a>
+<a href="#882" id="882">882</a>
+<a href="#883" id="883">883</a>
+<a href="#884" id="884">884</a>
+<a href="#885" id="885">885</a>
+<a href="#886" id="886">886</a>
+<a href="#887" id="887">887</a>
+<a href="#888" id="888">888</a>
+<a href="#889" id="889">889</a>
+<a href="#890" id="890">890</a>
+<a href="#891" id="891">891</a>
+<a href="#892" id="892">892</a>
+<a href="#893" id="893">893</a>
+<a href="#894" id="894">894</a>
+<a href="#895" id="895">895</a>
+<a href="#896" id="896">896</a>
+<a href="#897" id="897">897</a>
+<a href="#898" id="898">898</a>
+<a href="#899" id="899">899</a>
+<a href="#900" id="900">900</a>
+<a href="#901" id="901">901</a>
+<a href="#902" id="902">902</a>
+<a href="#903" id="903">903</a>
+<a href="#904" id="904">904</a>
+<a href="#905" id="905">905</a>
+<a href="#906" id="906">906</a>
+<a href="#907" id="907">907</a>
+<a href="#908" id="908">908</a>
+<a href="#909" id="909">909</a>
+<a href="#910" id="910">910</a>
+<a href="#911" id="911">911</a>
+<a href="#912" id="912">912</a>
+<a href="#913" id="913">913</a>
+<a href="#914" id="914">914</a>
+<a href="#915" id="915">915</a>
+<a href="#916" id="916">916</a>
+<a href="#917" id="917">917</a>
+<a href="#918" id="918">918</a>
+<a href="#919" id="919">919</a>
+<a href="#920" id="920">920</a>
+<a href="#921" id="921">921</a>
+<a href="#922" id="922">922</a>
+<a href="#923" id="923">923</a>
+<a href="#924" id="924">924</a>
+<a href="#925" id="925">925</a>
+<a href="#926" id="926">926</a>
+<a href="#927" id="927">927</a>
+<a href="#928" id="928">928</a>
+<a href="#929" id="929">929</a>
+<a href="#930" id="930">930</a>
+<a href="#931" id="931">931</a>
+<a href="#932" id="932">932</a>
+<a href="#933" id="933">933</a>
+<a href="#934" id="934">934</a>
+<a href="#935" id="935">935</a>
+<a href="#936" id="936">936</a>
+<a href="#937" id="937">937</a>
+<a href="#938" id="938">938</a>
+<a href="#939" id="939">939</a>
+<a href="#940" id="940">940</a>
+<a href="#941" id="941">941</a>
+<a href="#942" id="942">942</a>
+<a href="#943" id="943">943</a>
+<a href="#944" id="944">944</a>
+<a href="#945" id="945">945</a>
+<a href="#946" id="946">946</a>
+<a href="#947" id="947">947</a>
+<a href="#948" id="948">948</a>
+<a href="#949" id="949">949</a>
+<a href="#950" id="950">950</a>
+<a href="#951" id="951">951</a>
+<a href="#952" id="952">952</a>
+<a href="#953" id="953">953</a>
+<a href="#954" id="954">954</a>
+<a href="#955" id="955">955</a>
+<a href="#956" id="956">956</a>
+<a href="#957" id="957">957</a>
+<a href="#958" id="958">958</a>
+<a href="#959" id="959">959</a>
+<a href="#960" id="960">960</a>
+<a href="#961" id="961">961</a>
+<a href="#962" id="962">962</a>
+<a href="#963" id="963">963</a>
+<a href="#964" id="964">964</a>
+<a href="#965" id="965">965</a>
+<a href="#966" id="966">966</a>
+<a href="#967" id="967">967</a>
+<a href="#968" id="968">968</a>
+<a href="#969" id="969">969</a>
+<a href="#970" id="970">970</a>
+<a href="#971" id="971">971</a>
+<a href="#972" id="972">972</a>
+<a href="#973" id="973">973</a>
+<a href="#974" id="974">974</a>
+<a href="#975" id="975">975</a>
+<a href="#976" id="976">976</a>
+<a href="#977" id="977">977</a>
+<a href="#978" id="978">978</a>
+<a href="#979" id="979">979</a>
+<a href="#980" id="980">980</a>
+<a href="#981" id="981">981</a>
+<a href="#982" id="982">982</a>
+<a href="#983" id="983">983</a>
+<a href="#984" id="984">984</a>
+<a href="#985" id="985">985</a>
+<a href="#986" id="986">986</a>
+<a href="#987" id="987">987</a>
+<a href="#988" id="988">988</a>
+<a href="#989" id="989">989</a>
+<a href="#990" id="990">990</a>
+<a href="#991" id="991">991</a>
+<a href="#992" id="992">992</a>
+<a href="#993" id="993">993</a>
+<a href="#994" id="994">994</a>
+<a href="#995" id="995">995</a>
+<a href="#996" id="996">996</a>
+<a href="#997" id="997">997</a>
+<a href="#998" id="998">998</a>
+<a href="#999" id="999">999</a>
+<a href="#1000" id="1000">1000</a>
+<a href="#1001" id="1001">1001</a>
+<a href="#1002" id="1002">1002</a>
+<a href="#1003" id="1003">1003</a>
+<a href="#1004" id="1004">1004</a>
+<a href="#1005" id="1005">1005</a>
+<a href="#1006" id="1006">1006</a>
+<a href="#1007" id="1007">1007</a>
+<a href="#1008" id="1008">1008</a>
+</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
+// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
+//
+// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
+//
+// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
+// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// You may not use this file except in accordance with one or both of these
+// licenses.
+
+</span><span class="doccomment">//! Key formats
+
+</span><span class="kw">use </span><span class="kw">crate</span>::collections::HashSet;
+<span class="kw">use </span>alloc::string::{String, ToString};
+<span class="kw">use </span>alloc::vec::Vec;
+<span class="kw">use </span>core::any::TypeId;
+<span class="kw">use </span>core::fmt;
+<span class="kw">use </span>core::marker::PhantomData;
+<span class="kw">use </span>core::ops::Deref;
+<span class="kw">use </span>core::str::FromStr;
+
+<span class="kw">use </span>bitcoin::secp256k1::{<span class="self">self</span>, Secp256k1, Signing};
+
+<span class="kw">use </span>bitcoin::bip32;
+<span class="kw">use </span>bitcoin::{key::XOnlyPublicKey, Network, PrivateKey, PublicKey};
+
+<span class="kw">use </span>miniscript::descriptor::{Descriptor, DescriptorXKey, Wildcard};
+<span class="kw">pub use </span>miniscript::descriptor::{
+ DescriptorPublicKey, DescriptorSecretKey, KeyMap, SinglePriv, SinglePub, SinglePubKey,
+ SortedMultiVec,
+};
+<span class="kw">pub use </span>miniscript::ScriptContext;
+<span class="kw">use </span>miniscript::{Miniscript, Terminal};
+
+<span class="kw">use </span><span class="kw">crate</span>::descriptor::{CheckMiniscript, DescriptorError};
+<span class="kw">use </span><span class="kw">crate</span>::wallet::utils::SecpCtx;
+
+<span class="attr">#[cfg(feature = <span class="string">"keys-bip39"</span>)]
+#[cfg_attr(docsrs, doc(cfg(feature = <span class="string">"keys-bip39"</span>)))]
+</span><span class="kw">pub mod </span>bip39;
+
+<span class="doccomment">/// Set of valid networks for a key
+</span><span class="kw">pub type </span>ValidNetworks = HashSet<Network>;
+
+<span class="doccomment">/// Create a set containing mainnet, testnet, signet, and regtest
+</span><span class="kw">pub fn </span>any_network() -> ValidNetworks {
+ <span class="macro">vec!</span>[
+ Network::Bitcoin,
+ Network::Testnet,
+ Network::Regtest,
+ Network::Signet,
+ ]
+ .into_iter()
+ .collect()
+}
+<span class="doccomment">/// Create a set only containing mainnet
+</span><span class="kw">pub fn </span>mainnet_network() -> ValidNetworks {
+ <span class="macro">vec!</span>[Network::Bitcoin].into_iter().collect()
+}
+<span class="doccomment">/// Create a set containing testnet and regtest
+</span><span class="kw">pub fn </span>test_networks() -> ValidNetworks {
+ <span class="macro">vec!</span>[Network::Testnet, Network::Regtest, Network::Signet]
+ .into_iter()
+ .collect()
+}
+<span class="doccomment">/// Compute the intersection of two sets
+</span><span class="kw">pub fn </span>merge_networks(a: <span class="kw-2">&</span>ValidNetworks, b: <span class="kw-2">&</span>ValidNetworks) -> ValidNetworks {
+ a.intersection(b).cloned().collect()
+}
+
+<span class="doccomment">/// Container for public or secret keys
+</span><span class="attr">#[derive(Debug)]
+</span><span class="kw">pub enum </span>DescriptorKey<Ctx: ScriptContext> {
+ <span class="attr">#[doc(hidden)]
+ </span>Public(DescriptorPublicKey, ValidNetworks, PhantomData<Ctx>),
+ <span class="attr">#[doc(hidden)]
+ </span>Secret(DescriptorSecretKey, ValidNetworks, PhantomData<Ctx>),
+}
+
+<span class="kw">impl</span><Ctx: ScriptContext> DescriptorKey<Ctx> {
+ <span class="doccomment">/// Create an instance given a public key and a set of valid networks
+ </span><span class="kw">pub fn </span>from_public(public: DescriptorPublicKey, networks: ValidNetworks) -> <span class="self">Self </span>{
+ DescriptorKey::Public(public, networks, PhantomData)
+ }
+
+ <span class="doccomment">/// Create an instance given a secret key and a set of valid networks
+ </span><span class="kw">pub fn </span>from_secret(secret: DescriptorSecretKey, networks: ValidNetworks) -> <span class="self">Self </span>{
+ DescriptorKey::Secret(secret, networks, PhantomData)
+ }
+
+ <span class="doccomment">/// Override the computed set of valid networks
+ </span><span class="kw">pub fn </span>override_valid_networks(<span class="self">self</span>, networks: ValidNetworks) -> <span class="self">Self </span>{
+ <span class="kw">match </span><span class="self">self </span>{
+ DescriptorKey::Public(key, <span class="kw">_</span>, <span class="kw">_</span>) => DescriptorKey::Public(key, networks, PhantomData),
+ DescriptorKey::Secret(key, <span class="kw">_</span>, <span class="kw">_</span>) => DescriptorKey::Secret(key, networks, PhantomData),
+ }
+ }
+
+ <span class="comment">// This method is used internally by `bdk_wallet::fragment!` and `bdk_wallet::descriptor!`. It has to be
+ // public because it is effectively called by external crates once the macros are expanded,
+ // but since it is not meant to be part of the public api we hide it from the docs.
+ </span><span class="attr">#[doc(hidden)]
+ </span><span class="kw">pub fn </span>extract(
+ <span class="self">self</span>,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> <span class="prelude-ty">Result</span><(DescriptorPublicKey, KeyMap, ValidNetworks), KeyError> {
+ <span class="kw">match </span><span class="self">self </span>{
+ DescriptorKey::Public(public, valid_networks, <span class="kw">_</span>) => {
+ <span class="prelude-val">Ok</span>((public, KeyMap::default(), valid_networks))
+ }
+ DescriptorKey::Secret(secret, valid_networks, <span class="kw">_</span>) => {
+ <span class="kw">let </span><span class="kw-2">mut </span>key_map = KeyMap::new();
+
+ <span class="kw">let </span>public = secret
+ .to_public(secp)
+ .map_err(|e| miniscript::Error::Unexpected(e.to_string()))<span class="question-mark">?</span>;
+ key_map.insert(public.clone(), secret);
+
+ <span class="prelude-val">Ok</span>((public, key_map, valid_networks))
+ }
+ }
+ }
+}
+
+<span class="doccomment">/// Enum representation of the known valid [`ScriptContext`]s
+</span><span class="attr">#[derive(Debug, Eq, PartialEq, Copy, Clone)]
+</span><span class="kw">pub enum </span>ScriptContextEnum {
+ <span class="doccomment">/// Legacy scripts
+ </span>Legacy,
+ <span class="doccomment">/// Segwitv0 scripts
+ </span>Segwitv0,
+ <span class="doccomment">/// Taproot scripts
+ </span>Tap,
+}
+
+<span class="kw">impl </span>ScriptContextEnum {
+ <span class="doccomment">/// Returns whether the script context is [`ScriptContextEnum::Legacy`]
+ </span><span class="kw">pub fn </span>is_legacy(<span class="kw-2">&</span><span class="self">self</span>) -> bool {
+ <span class="self">self </span>== <span class="kw-2">&</span>ScriptContextEnum::Legacy
+ }
+
+ <span class="doccomment">/// Returns whether the script context is [`ScriptContextEnum::Segwitv0`]
+ </span><span class="kw">pub fn </span>is_segwit_v0(<span class="kw-2">&</span><span class="self">self</span>) -> bool {
+ <span class="self">self </span>== <span class="kw-2">&</span>ScriptContextEnum::Segwitv0
+ }
+
+ <span class="doccomment">/// Returns whether the script context is [`ScriptContextEnum::Tap`]
+ </span><span class="kw">pub fn </span>is_taproot(<span class="kw-2">&</span><span class="self">self</span>) -> bool {
+ <span class="self">self </span>== <span class="kw-2">&</span>ScriptContextEnum::Tap
+ }
+}
+
+<span class="doccomment">/// Trait that adds extra useful methods to [`ScriptContext`]s
+</span><span class="kw">pub trait </span>ExtScriptContext: ScriptContext {
+ <span class="doccomment">/// Returns the [`ScriptContext`] as a [`ScriptContextEnum`]
+ </span><span class="kw">fn </span>as_enum() -> ScriptContextEnum;
+
+ <span class="doccomment">/// Returns whether the script context is [`Legacy`](miniscript::Legacy)
+ </span><span class="kw">fn </span>is_legacy() -> bool {
+ <span class="self">Self</span>::as_enum().is_legacy()
+ }
+
+ <span class="doccomment">/// Returns whether the script context is [`Segwitv0`](miniscript::Segwitv0)
+ </span><span class="kw">fn </span>is_segwit_v0() -> bool {
+ <span class="self">Self</span>::as_enum().is_segwit_v0()
+ }
+
+ <span class="doccomment">/// Returns whether the script context is [`Tap`](miniscript::Tap), aka Taproot or Segwit V1
+ </span><span class="kw">fn </span>is_taproot() -> bool {
+ <span class="self">Self</span>::as_enum().is_taproot()
+ }
+}
+
+<span class="kw">impl</span><Ctx: ScriptContext + <span class="lifetime">'static</span>> ExtScriptContext <span class="kw">for </span>Ctx {
+ <span class="kw">fn </span>as_enum() -> ScriptContextEnum {
+ <span class="kw">match </span>TypeId::of::<Ctx>() {
+ t <span class="kw">if </span>t == TypeId::of::<miniscript::Legacy>() => ScriptContextEnum::Legacy,
+ t <span class="kw">if </span>t == TypeId::of::<miniscript::Segwitv0>() => ScriptContextEnum::Segwitv0,
+ t <span class="kw">if </span>t == TypeId::of::<miniscript::Tap>() => ScriptContextEnum::Tap,
+ <span class="kw">_ </span>=> <span class="macro">unimplemented!</span>(<span class="string">"Unknown ScriptContext type"</span>),
+ }
+ }
+}
+
+<span class="doccomment">/// Trait for objects that can be turned into a public or secret [`DescriptorKey`]
+///
+/// The generic type `Ctx` is used to define the context in which the key is valid: some key
+/// formats, like the mnemonics used by Electrum wallets, encode internally whether the wallet is
+/// legacy or segwit. Thus, trying to turn a valid legacy mnemonic into a `DescriptorKey`
+/// that would become part of a segwit descriptor should fail.
+///
+/// For key types that do care about this, the [`ExtScriptContext`] trait provides some useful
+/// methods that can be used to check at runtime which `Ctx` is being used.
+///
+/// For key types that can do this check statically (because they can only work within a
+/// single `Ctx`), the "specialized" trait can be implemented to make the compiler handle the type
+/// checking.
+///
+/// Keys also have control over the networks they support: constructing the return object with
+/// [`DescriptorKey::from_public`] or [`DescriptorKey::from_secret`] allows to specify a set of
+/// [`ValidNetworks`].
+///
+/// ## Examples
+///
+/// Key type valid in any context:
+///
+/// ```
+/// use bdk_wallet::bitcoin::PublicKey;
+///
+/// use bdk_wallet::keys::{DescriptorKey, IntoDescriptorKey, KeyError, ScriptContext};
+///
+/// pub struct MyKeyType {
+/// pubkey: PublicKey,
+/// }
+///
+/// impl<Ctx: ScriptContext> IntoDescriptorKey<Ctx> for MyKeyType {
+/// fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError> {
+/// self.pubkey.into_descriptor_key()
+/// }
+/// }
+/// ```
+///
+/// Key type that is only valid on mainnet:
+///
+/// ```
+/// use bdk_wallet::bitcoin::PublicKey;
+///
+/// use bdk_wallet::keys::{
+/// mainnet_network, DescriptorKey, DescriptorPublicKey, IntoDescriptorKey, KeyError,
+/// ScriptContext, SinglePub, SinglePubKey,
+/// };
+///
+/// pub struct MyKeyType {
+/// pubkey: PublicKey,
+/// }
+///
+/// impl<Ctx: ScriptContext> IntoDescriptorKey<Ctx> for MyKeyType {
+/// fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError> {
+/// Ok(DescriptorKey::from_public(
+/// DescriptorPublicKey::Single(SinglePub {
+/// origin: None,
+/// key: SinglePubKey::FullKey(self.pubkey),
+/// }),
+/// mainnet_network(),
+/// ))
+/// }
+/// }
+/// ```
+///
+/// Key type that internally encodes in which context it's valid. The context is checked at runtime:
+///
+/// ```
+/// use bdk_wallet::bitcoin::PublicKey;
+///
+/// use bdk_wallet::keys::{
+/// DescriptorKey, ExtScriptContext, IntoDescriptorKey, KeyError, ScriptContext,
+/// };
+///
+/// pub struct MyKeyType {
+/// is_legacy: bool,
+/// pubkey: PublicKey,
+/// }
+///
+/// impl<Ctx: ScriptContext + 'static> IntoDescriptorKey<Ctx> for MyKeyType {
+/// fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError> {
+/// if Ctx::is_legacy() == self.is_legacy {
+/// self.pubkey.into_descriptor_key()
+/// } else {
+/// Err(KeyError::InvalidScriptContext)
+/// }
+/// }
+/// }
+/// ```
+///
+/// Key type that can only work within [`miniscript::Segwitv0`] context. Only the specialized version
+/// of the trait is implemented.
+///
+/// This example deliberately fails to compile, to demonstrate how the compiler can catch when keys
+/// are misused. In this case, the "segwit-only" key is used to build a `pkh()` descriptor, which
+/// makes the compiler (correctly) fail.
+///
+/// ```compile_fail
+/// use bdk_wallet::bitcoin::PublicKey;
+/// use core::str::FromStr;
+///
+/// use bdk_wallet::keys::{DescriptorKey, IntoDescriptorKey, KeyError};
+///
+/// pub struct MySegwitOnlyKeyType {
+/// pubkey: PublicKey,
+/// }
+///
+/// impl IntoDescriptorKey<bdk_wallet::miniscript::Segwitv0> for MySegwitOnlyKeyType {
+/// fn into_descriptor_key(self) -> Result<DescriptorKey<bdk_wallet::miniscript::Segwitv0>, KeyError> {
+/// self.pubkey.into_descriptor_key()
+/// }
+/// }
+///
+/// let key = MySegwitOnlyKeyType {
+/// pubkey: PublicKey::from_str("...")?,
+/// };
+/// let (descriptor, _, _) = bdk_wallet::descriptor!(pkh(key))?;
+/// // ^^^^^ changing this to `wpkh` would make it compile
+///
+/// # Ok::<_, Box<dyn std::error::Error>>(())
+/// ```
+</span><span class="kw">pub trait </span>IntoDescriptorKey<Ctx: ScriptContext>: Sized {
+ <span class="doccomment">/// Turn the key into a [`DescriptorKey`] within the requested [`ScriptContext`]
+ </span><span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError>;
+}
+
+<span class="doccomment">/// Enum for extended keys that can be either `xprv` or `xpub`
+///
+/// An instance of [`ExtendedKey`] can be constructed from an [`Xpriv`](bip32::Xpriv)
+/// or an [`Xpub`](bip32::Xpub) by using the `From` trait.
+///
+/// Defaults to the [`Legacy`](miniscript::Legacy) context.
+</span><span class="kw">pub enum </span>ExtendedKey<Ctx: ScriptContext = miniscript::Legacy> {
+ <span class="doccomment">/// A private extended key, aka an `xprv`
+ </span>Private((bip32::Xpriv, PhantomData<Ctx>)),
+ <span class="doccomment">/// A public extended key, aka an `xpub`
+ </span>Public((bip32::Xpub, PhantomData<Ctx>)),
+}
+
+<span class="kw">impl</span><Ctx: ScriptContext> ExtendedKey<Ctx> {
+ <span class="doccomment">/// Return whether or not the key contains the private data
+ </span><span class="kw">pub fn </span>has_secret(<span class="kw-2">&</span><span class="self">self</span>) -> bool {
+ <span class="kw">match </span><span class="self">self </span>{
+ ExtendedKey::Private(<span class="kw">_</span>) => <span class="bool-val">true</span>,
+ ExtendedKey::Public(<span class="kw">_</span>) => <span class="bool-val">false</span>,
+ }
+ }
+
+ <span class="doccomment">/// Transform the [`ExtendedKey`] into an [`Xpriv`](bip32::Xpriv) for the
+ /// given [`Network`], if the key contains the private data
+ </span><span class="kw">pub fn </span>into_xprv(<span class="self">self</span>, network: Network) -> <span class="prelude-ty">Option</span><bip32::Xpriv> {
+ <span class="kw">match </span><span class="self">self </span>{
+ ExtendedKey::Private((<span class="kw-2">mut </span>xprv, <span class="kw">_</span>)) => {
+ xprv.network = network;
+ <span class="prelude-val">Some</span>(xprv)
+ }
+ ExtendedKey::Public(<span class="kw">_</span>) => <span class="prelude-val">None</span>,
+ }
+ }
+
+ <span class="doccomment">/// Transform the [`ExtendedKey`] into an [`Xpub`](bip32::Xpub) for the
+ /// given [`Network`]
+ </span><span class="kw">pub fn </span>into_xpub<C: Signing>(
+ <span class="self">self</span>,
+ network: bitcoin::Network,
+ secp: <span class="kw-2">&</span>Secp256k1<C>,
+ ) -> bip32::Xpub {
+ <span class="kw">let </span><span class="kw-2">mut </span>xpub = <span class="kw">match </span><span class="self">self </span>{
+ ExtendedKey::Private((xprv, <span class="kw">_</span>)) => bip32::Xpub::from_priv(secp, <span class="kw-2">&</span>xprv),
+ ExtendedKey::Public((xpub, <span class="kw">_</span>)) => xpub,
+ };
+
+ xpub.network = network;
+ xpub
+ }
+}
+
+<span class="kw">impl</span><Ctx: ScriptContext> From<bip32::Xpub> <span class="kw">for </span>ExtendedKey<Ctx> {
+ <span class="kw">fn </span>from(xpub: bip32::Xpub) -> <span class="self">Self </span>{
+ ExtendedKey::Public((xpub, PhantomData))
+ }
+}
+
+<span class="kw">impl</span><Ctx: ScriptContext> From<bip32::Xpriv> <span class="kw">for </span>ExtendedKey<Ctx> {
+ <span class="kw">fn </span>from(xprv: bip32::Xpriv) -> <span class="self">Self </span>{
+ ExtendedKey::Private((xprv, PhantomData))
+ }
+}
+
+<span class="doccomment">/// Trait for keys that can be derived.
+///
+/// When extra metadata are provided, a [`DerivableKey`] can be transformed into a
+/// [`DescriptorKey`]: the trait [`IntoDescriptorKey`] is automatically implemented
+/// for `(DerivableKey, DerivationPath)` and
+/// `(DerivableKey, KeySource, DerivationPath)` tuples.
+///
+/// For key types that don't encode any indication about the path to use (like bip39), it's
+/// generally recommended to implement this trait instead of [`IntoDescriptorKey`]. The same
+/// rules regarding script context and valid networks apply.
+///
+/// ## Examples
+///
+/// Key types that can be directly converted into an [`Xpriv`] or
+/// an [`Xpub`] can implement only the required `into_extended_key()` method.
+///
+/// ```
+/// use bdk_wallet::bitcoin;
+/// use bdk_wallet::bitcoin::bip32;
+/// use bdk_wallet::keys::{DerivableKey, ExtendedKey, KeyError, ScriptContext};
+///
+/// struct MyCustomKeyType {
+/// key_data: bitcoin::PrivateKey,
+/// chain_code: [u8; 32],
+/// network: bitcoin::Network,
+/// }
+///
+/// impl<Ctx: ScriptContext> DerivableKey<Ctx> for MyCustomKeyType {
+/// fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError> {
+/// let xprv = bip32::Xpriv {
+/// network: self.network,
+/// depth: 0,
+/// parent_fingerprint: bip32::Fingerprint::default(),
+/// private_key: self.key_data.inner,
+/// chain_code: bip32::ChainCode::from(&self.chain_code),
+/// child_number: bip32::ChildNumber::Normal { index: 0 },
+/// };
+///
+/// xprv.into_extended_key()
+/// }
+/// }
+/// ```
+///
+/// Types that don't internally encode the [`Network`] in which they are valid need some extra
+/// steps to override the set of valid networks, otherwise only the network specified in the
+/// [`Xpriv`] or [`Xpub`] will be considered valid.
+///
+/// ```
+/// use bdk_wallet::bitcoin;
+/// use bdk_wallet::bitcoin::bip32;
+/// use bdk_wallet::keys::{
+/// any_network, DerivableKey, DescriptorKey, ExtendedKey, KeyError, ScriptContext,
+/// };
+///
+/// struct MyCustomKeyType {
+/// key_data: bitcoin::PrivateKey,
+/// chain_code: [u8; 32],
+/// }
+///
+/// impl<Ctx: ScriptContext> DerivableKey<Ctx> for MyCustomKeyType {
+/// fn into_extended_key(self) -> Result<ExtendedKey<Ctx>, KeyError> {
+/// let xprv = bip32::Xpriv {
+/// network: bitcoin::Network::Bitcoin, // pick an arbitrary network here
+/// depth: 0,
+/// parent_fingerprint: bip32::Fingerprint::default(),
+/// private_key: self.key_data.inner,
+/// chain_code: bip32::ChainCode::from(&self.chain_code),
+/// child_number: bip32::ChildNumber::Normal { index: 0 },
+/// };
+///
+/// xprv.into_extended_key()
+/// }
+///
+/// fn into_descriptor_key(
+/// self,
+/// source: Option<bip32::KeySource>,
+/// derivation_path: bip32::DerivationPath,
+/// ) -> Result<DescriptorKey<Ctx>, KeyError> {
+/// let descriptor_key = self
+/// .into_extended_key()?
+/// .into_descriptor_key(source, derivation_path)?;
+///
+/// // Override the set of valid networks here
+/// Ok(descriptor_key.override_valid_networks(any_network()))
+/// }
+/// }
+/// ```
+///
+/// [`DerivationPath`]: (bip32::DerivationPath)
+/// [`Xpriv`]: (bip32::Xpriv)
+/// [`Xpub`]: (bip32::Xpub)
+</span><span class="kw">pub trait </span>DerivableKey<Ctx: ScriptContext = miniscript::Legacy>: Sized {
+ <span class="doccomment">/// Consume `self` and turn it into an [`ExtendedKey`]
+ </span><span class="attr">#[cfg_attr(
+ feature = <span class="string">"keys-bip39"</span>,
+ doc = <span class="string">r##"
+This can be used to get direct access to `xprv`s and `xpub`s for types that implement this trait,
+like [`Mnemonic`](bip39::Mnemonic) when the `keys-bip39` feature is enabled.
+```rust
+use bdk_wallet::bitcoin::Network;
+use bdk_wallet::keys::{DerivableKey, ExtendedKey};
+use bdk_wallet::keys::bip39::{Mnemonic, Language};
+
+# fn main() -> Result<(), Box<dyn std::error::Error>> {
+let xkey: ExtendedKey =
+ Mnemonic::parse_in(
+ Language::English,
+ "jelly crash boy whisper mouse ecology tuna soccer memory million news short",
+ )?
+ .into_extended_key()?;
+let xprv = xkey.into_xprv(Network::Bitcoin).unwrap();
+# Ok(()) }
+```
+"##
+ </span>)]
+ </span><span class="kw">fn </span>into_extended_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><ExtendedKey<Ctx>, KeyError>;
+
+ <span class="doccomment">/// Consume `self` and turn it into a [`DescriptorKey`] by adding the extra metadata, such as
+ /// key origin and derivation path
+ </span><span class="kw">fn </span>into_descriptor_key(
+ <span class="self">self</span>,
+ origin: <span class="prelude-ty">Option</span><bip32::KeySource>,
+ derivation_path: bip32::DerivationPath,
+ ) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
+ <span class="kw">match </span><span class="self">self</span>.into_extended_key()<span class="question-mark">? </span>{
+ ExtendedKey::Private((xprv, <span class="kw">_</span>)) => DescriptorSecretKey::XPrv(DescriptorXKey {
+ origin,
+ xkey: xprv,
+ derivation_path,
+ wildcard: Wildcard::Unhardened,
+ })
+ .into_descriptor_key(),
+ ExtendedKey::Public((xpub, <span class="kw">_</span>)) => DescriptorPublicKey::XPub(DescriptorXKey {
+ origin,
+ xkey: xpub,
+ derivation_path,
+ wildcard: Wildcard::Unhardened,
+ })
+ .into_descriptor_key(),
+ }
+ }
+}
+
+<span class="doccomment">/// Identity conversion
+</span><span class="kw">impl</span><Ctx: ScriptContext> DerivableKey<Ctx> <span class="kw">for </span>ExtendedKey<Ctx> {
+ <span class="kw">fn </span>into_extended_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><ExtendedKey<Ctx>, KeyError> {
+ <span class="prelude-val">Ok</span>(<span class="self">self</span>)
+ }
+}
+
+<span class="kw">impl</span><Ctx: ScriptContext> DerivableKey<Ctx> <span class="kw">for </span>bip32::Xpub {
+ <span class="kw">fn </span>into_extended_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><ExtendedKey<Ctx>, KeyError> {
+ <span class="prelude-val">Ok</span>(<span class="self">self</span>.into())
+ }
+}
+
+<span class="kw">impl</span><Ctx: ScriptContext> DerivableKey<Ctx> <span class="kw">for </span>bip32::Xpriv {
+ <span class="kw">fn </span>into_extended_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><ExtendedKey<Ctx>, KeyError> {
+ <span class="prelude-val">Ok</span>(<span class="self">self</span>.into())
+ }
+}
+
+<span class="doccomment">/// Output of a [`GeneratableKey`] key generation
+</span><span class="kw">pub struct </span>GeneratedKey<K, Ctx: ScriptContext> {
+ key: K,
+ valid_networks: ValidNetworks,
+ phantom: PhantomData<Ctx>,
+}
+
+<span class="kw">impl</span><K, Ctx: ScriptContext> GeneratedKey<K, Ctx> {
+ <span class="kw">fn </span>new(key: K, valid_networks: ValidNetworks) -> <span class="self">Self </span>{
+ GeneratedKey {
+ key,
+ valid_networks,
+ phantom: PhantomData,
+ }
+ }
+
+ <span class="doccomment">/// Consumes `self` and returns the key
+ </span><span class="kw">pub fn </span>into_key(<span class="self">self</span>) -> K {
+ <span class="self">self</span>.key
+ }
+}
+
+<span class="kw">impl</span><K, Ctx: ScriptContext> Deref <span class="kw">for </span>GeneratedKey<K, Ctx> {
+ <span class="kw">type </span>Target = K;
+
+ <span class="kw">fn </span>deref(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span><span class="self">Self</span>::Target {
+ <span class="kw-2">&</span><span class="self">self</span>.key
+ }
+}
+
+<span class="kw">impl</span><K: Clone, Ctx: ScriptContext> Clone <span class="kw">for </span>GeneratedKey<K, Ctx> {
+ <span class="kw">fn </span>clone(<span class="kw-2">&</span><span class="self">self</span>) -> GeneratedKey<K, Ctx> {
+ GeneratedKey {
+ key: <span class="self">self</span>.key.clone(),
+ valid_networks: <span class="self">self</span>.valid_networks.clone(),
+ phantom: <span class="self">self</span>.phantom,
+ }
+ }
+}
+
+<span class="comment">// Make generated "derivable" keys themselves "derivable". Also make sure they are assigned the
+// right `valid_networks`.
+</span><span class="kw">impl</span><Ctx, K> DerivableKey<Ctx> <span class="kw">for </span>GeneratedKey<K, Ctx>
+<span class="kw">where
+ </span>Ctx: ScriptContext,
+ K: DerivableKey<Ctx>,
+{
+ <span class="kw">fn </span>into_extended_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><ExtendedKey<Ctx>, KeyError> {
+ <span class="self">self</span>.key.into_extended_key()
+ }
+
+ <span class="kw">fn </span>into_descriptor_key(
+ <span class="self">self</span>,
+ origin: <span class="prelude-ty">Option</span><bip32::KeySource>,
+ derivation_path: bip32::DerivationPath,
+ ) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
+ <span class="kw">let </span>descriptor_key = <span class="self">self</span>.key.into_descriptor_key(origin, derivation_path)<span class="question-mark">?</span>;
+ <span class="prelude-val">Ok</span>(descriptor_key.override_valid_networks(<span class="self">self</span>.valid_networks))
+ }
+}
+
+<span class="comment">// Make generated keys directly usable in descriptors, and make sure they get assigned the right
+// `valid_networks`.
+</span><span class="kw">impl</span><Ctx, K> IntoDescriptorKey<Ctx> <span class="kw">for </span>GeneratedKey<K, Ctx>
+<span class="kw">where
+ </span>Ctx: ScriptContext,
+ K: IntoDescriptorKey<Ctx>,
+{
+ <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
+ <span class="kw">let </span>desc_key = <span class="self">self</span>.key.into_descriptor_key()<span class="question-mark">?</span>;
+ <span class="prelude-val">Ok</span>(desc_key.override_valid_networks(<span class="self">self</span>.valid_networks))
+ }
+}
+
+<span class="doccomment">/// Trait for keys that can be generated
+///
+/// The same rules about [`ScriptContext`] and [`ValidNetworks`] from [`IntoDescriptorKey`] apply.
+///
+/// This trait is particularly useful when combined with [`DerivableKey`]: if `Self`
+/// implements it, the returned [`GeneratedKey`] will also implement it. The same is true for
+/// [`IntoDescriptorKey`]: the generated keys can be directly used in descriptors if `Self` is also
+/// [`IntoDescriptorKey`].
+</span><span class="kw">pub trait </span>GeneratableKey<Ctx: ScriptContext>: Sized {
+ <span class="doccomment">/// Type specifying the amount of entropy required e.g. `[u8;32]`
+ </span><span class="kw">type </span>Entropy: AsMut<[u8]> + Default;
+
+ <span class="doccomment">/// Extra options required by the `generate_with_entropy`
+ </span><span class="kw">type </span>Options;
+ <span class="doccomment">/// Returned error in case of failure
+ </span><span class="kw">type </span>Error: core::fmt::Debug;
+
+ <span class="doccomment">/// Generate a key given the extra options and the entropy
+ </span><span class="kw">fn </span>generate_with_entropy(
+ options: <span class="self">Self</span>::Options,
+ entropy: <span class="self">Self</span>::Entropy,
+ ) -> <span class="prelude-ty">Result</span><GeneratedKey<<span class="self">Self</span>, Ctx>, <span class="self">Self</span>::Error>;
+
+ <span class="doccomment">/// Generate a key given the options with a random entropy
+ </span><span class="kw">fn </span>generate(options: <span class="self">Self</span>::Options) -> <span class="prelude-ty">Result</span><GeneratedKey<<span class="self">Self</span>, Ctx>, <span class="self">Self</span>::Error> {
+ <span class="kw">use </span>rand::{thread_rng, Rng};
+
+ <span class="kw">let </span><span class="kw-2">mut </span>entropy = <span class="self">Self</span>::Entropy::default();
+ thread_rng().fill(entropy.as_mut());
+ <span class="self">Self</span>::generate_with_entropy(options, entropy)
+ }
+}
+
+<span class="doccomment">/// Trait that allows generating a key with the default options
+///
+/// This trait is automatically implemented if the [`GeneratableKey::Options`] implements [`Default`].
+</span><span class="kw">pub trait </span>GeneratableDefaultOptions<Ctx>: GeneratableKey<Ctx>
+<span class="kw">where
+ </span>Ctx: ScriptContext,
+ <<span class="self">Self </span><span class="kw">as </span>GeneratableKey<Ctx>>::Options: Default,
+{
+ <span class="doccomment">/// Generate a key with the default options and a given entropy
+ </span><span class="kw">fn </span>generate_with_entropy_default(
+ entropy: <span class="self">Self</span>::Entropy,
+ ) -> <span class="prelude-ty">Result</span><GeneratedKey<<span class="self">Self</span>, Ctx>, <span class="self">Self</span>::Error> {
+ <span class="self">Self</span>::generate_with_entropy(Default::default(), entropy)
+ }
+
+ <span class="doccomment">/// Generate a key with the default options and a random entropy
+ </span><span class="kw">fn </span>generate_default() -> <span class="prelude-ty">Result</span><GeneratedKey<<span class="self">Self</span>, Ctx>, <span class="self">Self</span>::Error> {
+ <span class="self">Self</span>::generate(Default::default())
+ }
+}
+
+<span class="doccomment">/// Automatic implementation of [`GeneratableDefaultOptions`] for [`GeneratableKey`]s where
+/// `Options` implements `Default`
+</span><span class="kw">impl</span><Ctx, K> GeneratableDefaultOptions<Ctx> <span class="kw">for </span>K
+<span class="kw">where
+ </span>Ctx: ScriptContext,
+ K: GeneratableKey<Ctx>,
+ <K <span class="kw">as </span>GeneratableKey<Ctx>>::Options: Default,
+{
+}
+
+<span class="kw">impl</span><Ctx: ScriptContext> GeneratableKey<Ctx> <span class="kw">for </span>bip32::Xpriv {
+ <span class="kw">type </span>Entropy = [u8; <span class="number">32</span>];
+
+ <span class="kw">type </span>Options = ();
+ <span class="kw">type </span>Error = bip32::Error;
+
+ <span class="kw">fn </span>generate_with_entropy(
+ <span class="kw">_</span>: <span class="self">Self</span>::Options,
+ entropy: <span class="self">Self</span>::Entropy,
+ ) -> <span class="prelude-ty">Result</span><GeneratedKey<<span class="self">Self</span>, Ctx>, <span class="self">Self</span>::Error> {
+ <span class="comment">// pick a arbitrary network here, but say that we support all of them
+ </span><span class="kw">let </span>xprv = bip32::Xpriv::new_master(Network::Bitcoin, entropy.as_ref())<span class="question-mark">?</span>;
+ <span class="prelude-val">Ok</span>(GeneratedKey::new(xprv, any_network()))
+ }
+}
+
+<span class="doccomment">/// Options for generating a [`PrivateKey`]
+///
+/// Defaults to creating compressed keys, which save on-chain bytes and fees
+</span><span class="attr">#[derive(Debug, Copy, Clone)]
+</span><span class="kw">pub struct </span>PrivateKeyGenerateOptions {
+ <span class="doccomment">/// Whether the generated key should be "compressed" or not
+ </span><span class="kw">pub </span>compressed: bool,
+}
+
+<span class="kw">impl </span>Default <span class="kw">for </span>PrivateKeyGenerateOptions {
+ <span class="kw">fn </span>default() -> <span class="self">Self </span>{
+ PrivateKeyGenerateOptions { compressed: <span class="bool-val">true </span>}
+ }
+}
+
+<span class="kw">impl</span><Ctx: ScriptContext> GeneratableKey<Ctx> <span class="kw">for </span>PrivateKey {
+ <span class="kw">type </span>Entropy = [u8; secp256k1::constants::SECRET_KEY_SIZE];
+
+ <span class="kw">type </span>Options = PrivateKeyGenerateOptions;
+ <span class="kw">type </span>Error = bip32::Error;
+
+ <span class="kw">fn </span>generate_with_entropy(
+ options: <span class="self">Self</span>::Options,
+ entropy: <span class="self">Self</span>::Entropy,
+ ) -> <span class="prelude-ty">Result</span><GeneratedKey<<span class="self">Self</span>, Ctx>, <span class="self">Self</span>::Error> {
+ <span class="comment">// pick a arbitrary network here, but say that we support all of them
+ </span><span class="kw">let </span>inner = secp256k1::SecretKey::from_slice(<span class="kw-2">&</span>entropy)<span class="question-mark">?</span>;
+ <span class="kw">let </span>private_key = PrivateKey {
+ compressed: options.compressed,
+ network: Network::Bitcoin,
+ inner,
+ };
+
+ <span class="prelude-val">Ok</span>(GeneratedKey::new(private_key, any_network()))
+ }
+}
+
+<span class="kw">impl</span><Ctx: ScriptContext, T: DerivableKey<Ctx>> IntoDescriptorKey<Ctx>
+ <span class="kw">for </span>(T, bip32::DerivationPath)
+{
+ <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
+ <span class="self">self</span>.<span class="number">0</span>.into_descriptor_key(<span class="prelude-val">None</span>, <span class="self">self</span>.<span class="number">1</span>)
+ }
+}
+
+<span class="kw">impl</span><Ctx: ScriptContext, T: DerivableKey<Ctx>> IntoDescriptorKey<Ctx>
+ <span class="kw">for </span>(T, bip32::KeySource, bip32::DerivationPath)
+{
+ <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
+ <span class="self">self</span>.<span class="number">0</span>.into_descriptor_key(<span class="prelude-val">Some</span>(<span class="self">self</span>.<span class="number">1</span>), <span class="self">self</span>.<span class="number">2</span>)
+ }
+}
+
+<span class="kw">fn </span>expand_multi_keys<Pk: IntoDescriptorKey<Ctx>, Ctx: ScriptContext>(
+ pks: Vec<Pk>,
+ secp: <span class="kw-2">&</span>SecpCtx,
+) -> <span class="prelude-ty">Result</span><(Vec<DescriptorPublicKey>, KeyMap, ValidNetworks), KeyError> {
+ <span class="kw">let </span>(pks, key_maps_networks): (Vec<<span class="kw">_</span>>, Vec<<span class="kw">_</span>>) = pks
+ .into_iter()
+ .map(|key| key.into_descriptor_key()<span class="question-mark">?</span>.extract(secp))
+ .collect::<<span class="prelude-ty">Result</span><Vec<<span class="kw">_</span>>, <span class="kw">_</span>>>()<span class="question-mark">?
+ </span>.into_iter()
+ .map(|(a, b, c)| (a, (b, c)))
+ .unzip();
+
+ <span class="kw">let </span>(key_map, valid_networks) = key_maps_networks.into_iter().fold(
+ (KeyMap::default(), any_network()),
+ |(<span class="kw-2">mut </span>keys_acc, net_acc), (key, net)| {
+ keys_acc.extend(key);
+ <span class="kw">let </span>net_acc = merge_networks(<span class="kw-2">&</span>net_acc, <span class="kw-2">&</span>net);
+
+ (keys_acc, net_acc)
+ },
+ );
+
+ <span class="prelude-val">Ok</span>((pks, key_map, valid_networks))
+}
+
+<span class="comment">// Used internally by `bdk_wallet::fragment!` to build `pk_k()` fragments
+</span><span class="attr">#[doc(hidden)]
+</span><span class="kw">pub fn </span>make_pk<Pk: IntoDescriptorKey<Ctx>, Ctx: ScriptContext>(
+ descriptor_key: Pk,
+ secp: <span class="kw-2">&</span>SecpCtx,
+) -> <span class="prelude-ty">Result</span><(Miniscript<DescriptorPublicKey, Ctx>, KeyMap, ValidNetworks), DescriptorError> {
+ <span class="kw">let </span>(key, key_map, valid_networks) = descriptor_key.into_descriptor_key()<span class="question-mark">?</span>.extract(secp)<span class="question-mark">?</span>;
+ <span class="kw">let </span>minisc = Miniscript::from_ast(Terminal::PkK(key))<span class="question-mark">?</span>;
+
+ minisc.check_miniscript()<span class="question-mark">?</span>;
+
+ <span class="prelude-val">Ok</span>((minisc, key_map, valid_networks))
+}
+
+<span class="comment">// Used internally by `bdk_wallet::fragment!` to build `pk_h()` fragments
+</span><span class="attr">#[doc(hidden)]
+</span><span class="kw">pub fn </span>make_pkh<Pk: IntoDescriptorKey<Ctx>, Ctx: ScriptContext>(
+ descriptor_key: Pk,
+ secp: <span class="kw-2">&</span>SecpCtx,
+) -> <span class="prelude-ty">Result</span><(Miniscript<DescriptorPublicKey, Ctx>, KeyMap, ValidNetworks), DescriptorError> {
+ <span class="kw">let </span>(key, key_map, valid_networks) = descriptor_key.into_descriptor_key()<span class="question-mark">?</span>.extract(secp)<span class="question-mark">?</span>;
+ <span class="kw">let </span>minisc = Miniscript::from_ast(Terminal::PkH(key))<span class="question-mark">?</span>;
+
+ minisc.check_miniscript()<span class="question-mark">?</span>;
+
+ <span class="prelude-val">Ok</span>((minisc, key_map, valid_networks))
+}
+
+<span class="comment">// Used internally by `bdk_wallet::fragment!` to build `multi()` fragments
+</span><span class="attr">#[doc(hidden)]
+</span><span class="kw">pub fn </span>make_multi<
+ Pk: IntoDescriptorKey<Ctx>,
+ Ctx: ScriptContext,
+ V: Fn(usize, Vec<DescriptorPublicKey>) -> Terminal<DescriptorPublicKey, Ctx>,
+>(
+ thresh: usize,
+ variant: V,
+ pks: Vec<Pk>,
+ secp: <span class="kw-2">&</span>SecpCtx,
+) -> <span class="prelude-ty">Result</span><(Miniscript<DescriptorPublicKey, Ctx>, KeyMap, ValidNetworks), DescriptorError> {
+ <span class="kw">let </span>(pks, key_map, valid_networks) = expand_multi_keys(pks, secp)<span class="question-mark">?</span>;
+ <span class="kw">let </span>minisc = Miniscript::from_ast(variant(thresh, pks))<span class="question-mark">?</span>;
+
+ minisc.check_miniscript()<span class="question-mark">?</span>;
+
+ <span class="prelude-val">Ok</span>((minisc, key_map, valid_networks))
+}
+
+<span class="comment">// Used internally by `bdk_wallet::descriptor!` to build `sortedmulti()` fragments
+</span><span class="attr">#[doc(hidden)]
+</span><span class="kw">pub fn </span>make_sortedmulti<Pk, Ctx, F>(
+ thresh: usize,
+ pks: Vec<Pk>,
+ build_desc: F,
+ secp: <span class="kw-2">&</span>SecpCtx,
+) -> <span class="prelude-ty">Result</span><(Descriptor<DescriptorPublicKey>, KeyMap, ValidNetworks), DescriptorError>
+<span class="kw">where
+ </span>Pk: IntoDescriptorKey<Ctx>,
+ Ctx: ScriptContext,
+ F: Fn(
+ usize,
+ Vec<DescriptorPublicKey>,
+ ) -> <span class="prelude-ty">Result</span><(Descriptor<DescriptorPublicKey>, PhantomData<Ctx>), DescriptorError>,
+{
+ <span class="kw">let </span>(pks, key_map, valid_networks) = expand_multi_keys(pks, secp)<span class="question-mark">?</span>;
+ <span class="kw">let </span>descriptor = build_desc(thresh, pks)<span class="question-mark">?</span>.<span class="number">0</span>;
+
+ <span class="prelude-val">Ok</span>((descriptor, key_map, valid_networks))
+}
+
+<span class="doccomment">/// The "identity" conversion is used internally by some `bdk_wallet::fragment`s
+</span><span class="kw">impl</span><Ctx: ScriptContext> IntoDescriptorKey<Ctx> <span class="kw">for </span>DescriptorKey<Ctx> {
+ <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
+ <span class="prelude-val">Ok</span>(<span class="self">self</span>)
+ }
+}
+
+<span class="kw">impl</span><Ctx: ScriptContext> IntoDescriptorKey<Ctx> <span class="kw">for </span>DescriptorPublicKey {
+ <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
+ <span class="kw">let </span>networks = <span class="kw">match </span><span class="self">self </span>{
+ DescriptorPublicKey::Single(<span class="kw">_</span>) => any_network(),
+ DescriptorPublicKey::XPub(DescriptorXKey { xkey, .. })
+ <span class="kw">if </span>xkey.network == Network::Bitcoin =>
+ {
+ mainnet_network()
+ }
+ <span class="kw">_ </span>=> test_networks(),
+ };
+
+ <span class="prelude-val">Ok</span>(DescriptorKey::from_public(<span class="self">self</span>, networks))
+ }
+}
+
+<span class="kw">impl</span><Ctx: ScriptContext> IntoDescriptorKey<Ctx> <span class="kw">for </span>PublicKey {
+ <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
+ DescriptorPublicKey::Single(SinglePub {
+ key: SinglePubKey::FullKey(<span class="self">self</span>),
+ origin: <span class="prelude-val">None</span>,
+ })
+ .into_descriptor_key()
+ }
+}
+
+<span class="kw">impl</span><Ctx: ScriptContext> IntoDescriptorKey<Ctx> <span class="kw">for </span>XOnlyPublicKey {
+ <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
+ DescriptorPublicKey::Single(SinglePub {
+ key: SinglePubKey::XOnly(<span class="self">self</span>),
+ origin: <span class="prelude-val">None</span>,
+ })
+ .into_descriptor_key()
+ }
+}
+
+<span class="kw">impl</span><Ctx: ScriptContext> IntoDescriptorKey<Ctx> <span class="kw">for </span>DescriptorSecretKey {
+ <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
+ <span class="kw">let </span>networks = <span class="kw">match </span><span class="kw-2">&</span><span class="self">self </span>{
+ DescriptorSecretKey::Single(sk) <span class="kw">if </span>sk.key.network == Network::Bitcoin => {
+ mainnet_network()
+ }
+ DescriptorSecretKey::XPrv(DescriptorXKey { xkey, .. })
+ <span class="kw">if </span>xkey.network == Network::Bitcoin =>
+ {
+ mainnet_network()
+ }
+ <span class="kw">_ </span>=> test_networks(),
+ };
+
+ <span class="prelude-val">Ok</span>(DescriptorKey::from_secret(<span class="self">self</span>, networks))
+ }
+}
+
+<span class="kw">impl</span><Ctx: ScriptContext> IntoDescriptorKey<Ctx> <span class="kw">for </span><span class="kw-2">&</span><span class="lifetime">'_ </span>str {
+ <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
+ DescriptorSecretKey::from_str(<span class="self">self</span>)
+ .map_err(|e| KeyError::Message(e.to_string()))<span class="question-mark">?
+ </span>.into_descriptor_key()
+ }
+}
+
+<span class="kw">impl</span><Ctx: ScriptContext> IntoDescriptorKey<Ctx> <span class="kw">for </span>PrivateKey {
+ <span class="kw">fn </span>into_descriptor_key(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><DescriptorKey<Ctx>, KeyError> {
+ DescriptorSecretKey::Single(SinglePriv {
+ key: <span class="self">self</span>,
+ origin: <span class="prelude-val">None</span>,
+ })
+ .into_descriptor_key()
+ }
+}
+
+<span class="doccomment">/// Errors thrown while working with [`keys`](crate::keys)
+</span><span class="attr">#[derive(Debug)]
+</span><span class="kw">pub enum </span>KeyError {
+ <span class="doccomment">/// The key cannot exist in the given script context
+ </span>InvalidScriptContext,
+ <span class="doccomment">/// The key is not valid for the given network
+ </span>InvalidNetwork,
+ <span class="doccomment">/// The key has an invalid checksum
+ </span>InvalidChecksum,
+
+ <span class="doccomment">/// Custom error message
+ </span>Message(String),
+
+ <span class="doccomment">/// BIP32 error
+ </span>Bip32(bitcoin::bip32::Error),
+ <span class="doccomment">/// Miniscript error
+ </span>Miniscript(miniscript::Error),
+}
+
+<span class="kw">impl </span>From<miniscript::Error> <span class="kw">for </span>KeyError {
+ <span class="kw">fn </span>from(err: miniscript::Error) -> <span class="self">Self </span>{
+ KeyError::Miniscript(err)
+ }
+}
+
+<span class="kw">impl </span>From<bip32::Error> <span class="kw">for </span>KeyError {
+ <span class="kw">fn </span>from(err: bip32::Error) -> <span class="self">Self </span>{
+ KeyError::Bip32(err)
+ }
+}
+
+<span class="kw">impl </span>fmt::Display <span class="kw">for </span>KeyError {
+ <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
+ <span class="kw">match </span><span class="self">self </span>{
+ <span class="self">Self</span>::InvalidScriptContext => <span class="macro">write!</span>(f, <span class="string">"Invalid script context"</span>),
+ <span class="self">Self</span>::InvalidNetwork => <span class="macro">write!</span>(f, <span class="string">"Invalid network"</span>),
+ <span class="self">Self</span>::InvalidChecksum => <span class="macro">write!</span>(f, <span class="string">"Invalid checksum"</span>),
+ <span class="self">Self</span>::Message(err) => <span class="macro">write!</span>(f, <span class="string">"{}"</span>, err),
+ <span class="self">Self</span>::Bip32(err) => <span class="macro">write!</span>(f, <span class="string">"BIP32 error: {}"</span>, err),
+ <span class="self">Self</span>::Miniscript(err) => <span class="macro">write!</span>(f, <span class="string">"Miniscript error: {}"</span>, err),
+ }
+ }
+}
+
+<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
+</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>KeyError {}
+
+<span class="attr">#[cfg(test)]
+</span><span class="kw">pub mod </span>test {
+ <span class="kw">use </span>bitcoin::bip32;
+
+ <span class="kw">use super</span>::<span class="kw-2">*</span>;
+
+ <span class="kw">pub const </span>TEST_ENTROPY: [u8; <span class="number">32</span>] = [<span class="number">0xAA</span>; <span class="number">32</span>];
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_keys_generate_xprv() {
+ <span class="kw">let </span>generated_xprv: GeneratedKey<<span class="kw">_</span>, miniscript::Segwitv0> =
+ bip32::Xpriv::generate_with_entropy_default(TEST_ENTROPY).unwrap();
+
+ <span class="macro">assert_eq!</span>(generated_xprv.valid_networks, any_network());
+ <span class="macro">assert_eq!</span>(generated_xprv.to_string(), <span class="string">"xprv9s21ZrQH143K4Xr1cJyqTvuL2FWR8eicgY9boWqMBv8MDVUZ65AXHnzBrK1nyomu6wdcabRgmGTaAKawvhAno1V5FowGpTLVx3jxzE5uk3Q"</span>);
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_keys_generate_wif() {
+ <span class="kw">let </span>generated_wif: GeneratedKey<<span class="kw">_</span>, miniscript::Segwitv0> =
+ bitcoin::PrivateKey::generate_with_entropy_default(TEST_ENTROPY).unwrap();
+
+ <span class="macro">assert_eq!</span>(generated_wif.valid_networks, any_network());
+ <span class="macro">assert_eq!</span>(
+ generated_wif.to_string(),
+ <span class="string">"L2wTu6hQrnDMiFNWA5na6jB12ErGQqtXwqpSL7aWquJaZG8Ai3ch"
+ </span>);
+ }
+
+ <span class="attr">#[cfg(feature = <span class="string">"keys-bip39"</span>)]
+ #[test]
+ </span><span class="kw">fn </span>test_keys_wif_network_bip39() {
+ <span class="kw">let </span>xkey: ExtendedKey = bip39::Mnemonic::parse_in(
+ bip39::Language::English,
+ <span class="string">"jelly crash boy whisper mouse ecology tuna soccer memory million news short"</span>,
+ )
+ .unwrap()
+ .into_extended_key()
+ .unwrap();
+ <span class="kw">let </span>xprv = xkey.into_xprv(Network::Testnet).unwrap();
+
+ <span class="macro">assert_eq!</span>(xprv.network, Network::Testnet);
+ }
+}
+</code></pre></div>
+</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Source of the Rust file `crates/wallet/src/lib.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>lib.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../source-files.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../bdk_wallet/index.html">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
+<a href="#2" id="2">2</a>
+<a href="#3" id="3">3</a>
+<a href="#4" id="4">4</a>
+<a href="#5" id="5">5</a>
+<a href="#6" id="6">6</a>
+<a href="#7" id="7">7</a>
+<a href="#8" id="8">8</a>
+<a href="#9" id="9">9</a>
+<a href="#10" id="10">10</a>
+<a href="#11" id="11">11</a>
+<a href="#12" id="12">12</a>
+<a href="#13" id="13">13</a>
+<a href="#14" id="14">14</a>
+<a href="#15" id="15">15</a>
+<a href="#16" id="16">16</a>
+<a href="#17" id="17">17</a>
+<a href="#18" id="18">18</a>
+<a href="#19" id="19">19</a>
+<a href="#20" id="20">20</a>
+<a href="#21" id="21">21</a>
+<a href="#22" id="22">22</a>
+<a href="#23" id="23">23</a>
+<a href="#24" id="24">24</a>
+<a href="#25" id="25">25</a>
+<a href="#26" id="26">26</a>
+<a href="#27" id="27">27</a>
+<a href="#28" id="28">28</a>
+<a href="#29" id="29">29</a>
+<a href="#30" id="30">30</a>
+<a href="#31" id="31">31</a>
+<a href="#32" id="32">32</a>
+<a href="#33" id="33">33</a>
+<a href="#34" id="34">34</a>
+<a href="#35" id="35">35</a>
+<a href="#36" id="36">36</a>
+<a href="#37" id="37">37</a>
+<a href="#38" id="38">38</a>
+<a href="#39" id="39">39</a>
+<a href="#40" id="40">40</a>
+<a href="#41" id="41">41</a>
+<a href="#42" id="42">42</a>
+<a href="#43" id="43">43</a>
+<a href="#44" id="44">44</a>
+<a href="#45" id="45">45</a>
+<a href="#46" id="46">46</a>
+<a href="#47" id="47">47</a>
+</pre><pre class="rust"><code><span class="attr">#![doc = <span class="macro">include_str!</span>(<span class="string">"../README.md"</span>)]
+</span><span class="comment">// only enables the `doc_cfg` feature when the `docsrs` configuration attribute is defined
+</span><span class="attr">#![cfg_attr(docsrs, feature(doc_cfg))]
+#![cfg_attr(
+ docsrs,
+ doc(html_logo_url = <span class="string">"https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png"</span>)
+)]
+#![no_std]
+#![warn(missing_docs)]
+
+#[cfg(feature = <span class="string">"std"</span>)]
+#[macro_use]
+</span><span class="kw">extern crate </span>std;
+
+<span class="attr">#[doc(hidden)]
+#[macro_use]
+</span><span class="kw">pub extern crate </span>alloc;
+
+<span class="kw">pub extern crate </span>bitcoin;
+<span class="kw">pub extern crate </span>miniscript;
+<span class="kw">extern crate </span>serde;
+<span class="kw">extern crate </span>serde_json;
+
+<span class="attr">#[cfg(feature = <span class="string">"keys-bip39"</span>)]
+</span><span class="kw">extern crate </span>bip39;
+
+<span class="kw">pub mod </span>descriptor;
+<span class="kw">pub mod </span>keys;
+<span class="kw">pub mod </span>psbt;
+<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">mod </span>types;
+<span class="kw">pub mod </span>wallet;
+
+<span class="kw">pub use </span>descriptor::template;
+<span class="kw">pub use </span>descriptor::HdKeyPaths;
+<span class="kw">pub use </span>types::<span class="kw-2">*</span>;
+<span class="kw">pub use </span>wallet::signer;
+<span class="kw">pub use </span>wallet::signer::SignOptions;
+<span class="kw">pub use </span>wallet::tx_builder::TxBuilder;
+<span class="kw">pub use </span>wallet::Wallet;
+
+<span class="doccomment">/// Get the version of BDK at runtime
+</span><span class="kw">pub fn </span>version() -> <span class="kw-2">&</span><span class="lifetime">'static </span>str {
+ <span class="macro">env!</span>(<span class="string">"CARGO_PKG_VERSION"</span>, <span class="string">"unknown"</span>)
+}
+
+<span class="kw">pub use </span>bdk_chain <span class="kw">as </span>chain;
+<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">use </span>bdk_chain::collections;
+</code></pre></div>
+</section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Source of the Rust file `crates/wallet/src/psbt/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk_wallet/index.html">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
+<a href="#2" id="2">2</a>
+<a href="#3" id="3">3</a>
+<a href="#4" id="4">4</a>
+<a href="#5" id="5">5</a>
+<a href="#6" id="6">6</a>
+<a href="#7" id="7">7</a>
+<a href="#8" id="8">8</a>
+<a href="#9" id="9">9</a>
+<a href="#10" id="10">10</a>
+<a href="#11" id="11">11</a>
+<a href="#12" id="12">12</a>
+<a href="#13" id="13">13</a>
+<a href="#14" id="14">14</a>
+<a href="#15" id="15">15</a>
+<a href="#16" id="16">16</a>
+<a href="#17" id="17">17</a>
+<a href="#18" id="18">18</a>
+<a href="#19" id="19">19</a>
+<a href="#20" id="20">20</a>
+<a href="#21" id="21">21</a>
+<a href="#22" id="22">22</a>
+<a href="#23" id="23">23</a>
+<a href="#24" id="24">24</a>
+<a href="#25" id="25">25</a>
+<a href="#26" id="26">26</a>
+<a href="#27" id="27">27</a>
+<a href="#28" id="28">28</a>
+<a href="#29" id="29">29</a>
+<a href="#30" id="30">30</a>
+<a href="#31" id="31">31</a>
+<a href="#32" id="32">32</a>
+<a href="#33" id="33">33</a>
+<a href="#34" id="34">34</a>
+<a href="#35" id="35">35</a>
+<a href="#36" id="36">36</a>
+<a href="#37" id="37">37</a>
+<a href="#38" id="38">38</a>
+<a href="#39" id="39">39</a>
+<a href="#40" id="40">40</a>
+<a href="#41" id="41">41</a>
+<a href="#42" id="42">42</a>
+<a href="#43" id="43">43</a>
+<a href="#44" id="44">44</a>
+<a href="#45" id="45">45</a>
+<a href="#46" id="46">46</a>
+<a href="#47" id="47">47</a>
+<a href="#48" id="48">48</a>
+<a href="#49" id="49">49</a>
+<a href="#50" id="50">50</a>
+<a href="#51" id="51">51</a>
+<a href="#52" id="52">52</a>
+<a href="#53" id="53">53</a>
+<a href="#54" id="54">54</a>
+<a href="#55" id="55">55</a>
+<a href="#56" id="56">56</a>
+<a href="#57" id="57">57</a>
+<a href="#58" id="58">58</a>
+<a href="#59" id="59">59</a>
+<a href="#60" id="60">60</a>
+<a href="#61" id="61">61</a>
+<a href="#62" id="62">62</a>
+<a href="#63" id="63">63</a>
+<a href="#64" id="64">64</a>
+<a href="#65" id="65">65</a>
+<a href="#66" id="66">66</a>
+<a href="#67" id="67">67</a>
+<a href="#68" id="68">68</a>
+<a href="#69" id="69">69</a>
+<a href="#70" id="70">70</a>
+<a href="#71" id="71">71</a>
+<a href="#72" id="72">72</a>
+<a href="#73" id="73">73</a>
+<a href="#74" id="74">74</a>
+<a href="#75" id="75">75</a>
+</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
+// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
+//
+// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
+//
+// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
+// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// You may not use this file except in accordance with one or both of these
+// licenses.
+
+</span><span class="doccomment">//! Additional functions on the `rust-bitcoin` `Psbt` structure.
+
+</span><span class="kw">use </span>alloc::vec::Vec;
+<span class="kw">use </span>bitcoin::Amount;
+<span class="kw">use </span>bitcoin::FeeRate;
+<span class="kw">use </span>bitcoin::Psbt;
+<span class="kw">use </span>bitcoin::TxOut;
+
+<span class="comment">// TODO upstream the functions here to `rust-bitcoin`?
+
+</span><span class="doccomment">/// Trait to add functions to extract utxos and calculate fees.
+</span><span class="kw">pub trait </span>PsbtUtils {
+ <span class="doccomment">/// Get the `TxOut` for the specified input index, if it doesn't exist in the PSBT `None` is returned.
+ </span><span class="kw">fn </span>get_utxo_for(<span class="kw-2">&</span><span class="self">self</span>, input_index: usize) -> <span class="prelude-ty">Option</span><TxOut>;
+
+ <span class="doccomment">/// The total transaction fee amount, sum of input amounts minus sum of output amounts, in sats.
+ /// If the PSBT is missing a TxOut for an input returns None.
+ </span><span class="kw">fn </span>fee_amount(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Option</span><u64>;
+
+ <span class="doccomment">/// The transaction's fee rate. This value will only be accurate if calculated AFTER the
+ /// `Psbt` is finalized and all witness/signature data is added to the
+ /// transaction.
+ /// If the PSBT is missing a TxOut for an input returns None.
+ </span><span class="kw">fn </span>fee_rate(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Option</span><FeeRate>;
+}
+
+<span class="kw">impl </span>PsbtUtils <span class="kw">for </span>Psbt {
+ <span class="kw">fn </span>get_utxo_for(<span class="kw-2">&</span><span class="self">self</span>, input_index: usize) -> <span class="prelude-ty">Option</span><TxOut> {
+ <span class="kw">let </span>tx = <span class="kw-2">&</span><span class="self">self</span>.unsigned_tx;
+ <span class="kw">let </span>input = <span class="self">self</span>.inputs.get(input_index)<span class="question-mark">?</span>;
+
+ <span class="kw">match </span>(<span class="kw-2">&</span>input.witness_utxo, <span class="kw-2">&</span>input.non_witness_utxo) {
+ (<span class="prelude-val">Some</span>(<span class="kw">_</span>), <span class="kw">_</span>) => input.witness_utxo.clone(),
+ (<span class="kw">_</span>, <span class="prelude-val">Some</span>(<span class="kw">_</span>)) => input.non_witness_utxo.as_ref().map(|in_tx| {
+ in_tx.output[tx.input[input_index].previous_output.vout <span class="kw">as </span>usize].clone()
+ }),
+ <span class="kw">_ </span>=> <span class="prelude-val">None</span>,
+ }
+ }
+
+ <span class="kw">fn </span>fee_amount(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Option</span><u64> {
+ <span class="kw">let </span>tx = <span class="kw-2">&</span><span class="self">self</span>.unsigned_tx;
+ <span class="kw">let </span>utxos: <span class="prelude-ty">Option</span><Vec<TxOut>> = (<span class="number">0</span>..tx.input.len()).map(|i| <span class="self">self</span>.get_utxo_for(i)).collect();
+
+ utxos.map(|inputs| {
+ <span class="kw">let </span>input_amount: u64 = inputs.iter().map(|i| i.value.to_sat()).sum();
+ <span class="kw">let </span>output_amount: u64 = <span class="self">self
+ </span>.unsigned_tx
+ .output
+ .iter()
+ .map(|o| o.value.to_sat())
+ .sum();
+ input_amount
+ .checked_sub(output_amount)
+ .expect(<span class="string">"input amount must be greater than output amount"</span>)
+ })
+ }
+
+ <span class="kw">fn </span>fee_rate(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Option</span><FeeRate> {
+ <span class="kw">let </span>fee_amount = <span class="self">self</span>.fee_amount();
+ <span class="kw">let </span>weight = <span class="self">self</span>.clone().extract_tx().ok()<span class="question-mark">?</span>.weight();
+ fee_amount.map(|fee| Amount::from_sat(fee) / weight)
+ }
+}
+</code></pre></div>
+</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Source of the Rust file `crates/wallet/src/types.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>types.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../source-files.js"></script><script defer src="../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../bdk_wallet/index.html">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
+<a href="#2" id="2">2</a>
+<a href="#3" id="3">3</a>
+<a href="#4" id="4">4</a>
+<a href="#5" id="5">5</a>
+<a href="#6" id="6">6</a>
+<a href="#7" id="7">7</a>
+<a href="#8" id="8">8</a>
+<a href="#9" id="9">9</a>
+<a href="#10" id="10">10</a>
+<a href="#11" id="11">11</a>
+<a href="#12" id="12">12</a>
+<a href="#13" id="13">13</a>
+<a href="#14" id="14">14</a>
+<a href="#15" id="15">15</a>
+<a href="#16" id="16">16</a>
+<a href="#17" id="17">17</a>
+<a href="#18" id="18">18</a>
+<a href="#19" id="19">19</a>
+<a href="#20" id="20">20</a>
+<a href="#21" id="21">21</a>
+<a href="#22" id="22">22</a>
+<a href="#23" id="23">23</a>
+<a href="#24" id="24">24</a>
+<a href="#25" id="25">25</a>
+<a href="#26" id="26">26</a>
+<a href="#27" id="27">27</a>
+<a href="#28" id="28">28</a>
+<a href="#29" id="29">29</a>
+<a href="#30" id="30">30</a>
+<a href="#31" id="31">31</a>
+<a href="#32" id="32">32</a>
+<a href="#33" id="33">33</a>
+<a href="#34" id="34">34</a>
+<a href="#35" id="35">35</a>
+<a href="#36" id="36">36</a>
+<a href="#37" id="37">37</a>
+<a href="#38" id="38">38</a>
+<a href="#39" id="39">39</a>
+<a href="#40" id="40">40</a>
+<a href="#41" id="41">41</a>
+<a href="#42" id="42">42</a>
+<a href="#43" id="43">43</a>
+<a href="#44" id="44">44</a>
+<a href="#45" id="45">45</a>
+<a href="#46" id="46">46</a>
+<a href="#47" id="47">47</a>
+<a href="#48" id="48">48</a>
+<a href="#49" id="49">49</a>
+<a href="#50" id="50">50</a>
+<a href="#51" id="51">51</a>
+<a href="#52" id="52">52</a>
+<a href="#53" id="53">53</a>
+<a href="#54" id="54">54</a>
+<a href="#55" id="55">55</a>
+<a href="#56" id="56">56</a>
+<a href="#57" id="57">57</a>
+<a href="#58" id="58">58</a>
+<a href="#59" id="59">59</a>
+<a href="#60" id="60">60</a>
+<a href="#61" id="61">61</a>
+<a href="#62" id="62">62</a>
+<a href="#63" id="63">63</a>
+<a href="#64" id="64">64</a>
+<a href="#65" id="65">65</a>
+<a href="#66" id="66">66</a>
+<a href="#67" id="67">67</a>
+<a href="#68" id="68">68</a>
+<a href="#69" id="69">69</a>
+<a href="#70" id="70">70</a>
+<a href="#71" id="71">71</a>
+<a href="#72" id="72">72</a>
+<a href="#73" id="73">73</a>
+<a href="#74" id="74">74</a>
+<a href="#75" id="75">75</a>
+<a href="#76" id="76">76</a>
+<a href="#77" id="77">77</a>
+<a href="#78" id="78">78</a>
+<a href="#79" id="79">79</a>
+<a href="#80" id="80">80</a>
+<a href="#81" id="81">81</a>
+<a href="#82" id="82">82</a>
+<a href="#83" id="83">83</a>
+<a href="#84" id="84">84</a>
+<a href="#85" id="85">85</a>
+<a href="#86" id="86">86</a>
+<a href="#87" id="87">87</a>
+<a href="#88" id="88">88</a>
+<a href="#89" id="89">89</a>
+<a href="#90" id="90">90</a>
+<a href="#91" id="91">91</a>
+<a href="#92" id="92">92</a>
+<a href="#93" id="93">93</a>
+<a href="#94" id="94">94</a>
+<a href="#95" id="95">95</a>
+<a href="#96" id="96">96</a>
+<a href="#97" id="97">97</a>
+<a href="#98" id="98">98</a>
+<a href="#99" id="99">99</a>
+<a href="#100" id="100">100</a>
+<a href="#101" id="101">101</a>
+<a href="#102" id="102">102</a>
+<a href="#103" id="103">103</a>
+<a href="#104" id="104">104</a>
+<a href="#105" id="105">105</a>
+<a href="#106" id="106">106</a>
+<a href="#107" id="107">107</a>
+<a href="#108" id="108">108</a>
+<a href="#109" id="109">109</a>
+<a href="#110" id="110">110</a>
+<a href="#111" id="111">111</a>
+<a href="#112" id="112">112</a>
+<a href="#113" id="113">113</a>
+<a href="#114" id="114">114</a>
+<a href="#115" id="115">115</a>
+<a href="#116" id="116">116</a>
+<a href="#117" id="117">117</a>
+<a href="#118" id="118">118</a>
+<a href="#119" id="119">119</a>
+<a href="#120" id="120">120</a>
+<a href="#121" id="121">121</a>
+<a href="#122" id="122">122</a>
+<a href="#123" id="123">123</a>
+<a href="#124" id="124">124</a>
+<a href="#125" id="125">125</a>
+<a href="#126" id="126">126</a>
+<a href="#127" id="127">127</a>
+<a href="#128" id="128">128</a>
+<a href="#129" id="129">129</a>
+<a href="#130" id="130">130</a>
+<a href="#131" id="131">131</a>
+<a href="#132" id="132">132</a>
+<a href="#133" id="133">133</a>
+<a href="#134" id="134">134</a>
+<a href="#135" id="135">135</a>
+</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
+// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
+//
+// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
+//
+// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
+// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// You may not use this file except in accordance with one or both of these
+// licenses.
+
+</span><span class="kw">use </span>alloc::boxed::Box;
+<span class="kw">use </span>core::convert::AsRef;
+
+<span class="kw">use </span>bdk_chain::ConfirmationTime;
+<span class="kw">use </span>bitcoin::blockdata::transaction::{OutPoint, Sequence, TxOut};
+<span class="kw">use </span>bitcoin::psbt;
+
+<span class="kw">use </span>serde::{Deserialize, Serialize};
+
+<span class="doccomment">/// Types of keychains
+</span><span class="attr">#[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq, Hash, Ord, PartialOrd)]
+</span><span class="kw">pub enum </span>KeychainKind {
+ <span class="doccomment">/// External keychain, used for deriving recipient addresses.
+ </span>External = <span class="number">0</span>,
+ <span class="doccomment">/// Internal keychain, used for deriving change addresses.
+ </span>Internal = <span class="number">1</span>,
+}
+
+<span class="kw">impl </span>KeychainKind {
+ <span class="doccomment">/// Return [`KeychainKind`] as a byte
+ </span><span class="kw">pub fn </span>as_byte(<span class="kw-2">&</span><span class="self">self</span>) -> u8 {
+ <span class="kw">match </span><span class="self">self </span>{
+ KeychainKind::External => <span class="string">b'e'</span>,
+ KeychainKind::Internal => <span class="string">b'i'</span>,
+ }
+ }
+}
+
+<span class="kw">impl </span>AsRef<[u8]> <span class="kw">for </span>KeychainKind {
+ <span class="kw">fn </span>as_ref(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span>[u8] {
+ <span class="kw">match </span><span class="self">self </span>{
+ KeychainKind::External => <span class="string">b"e"</span>,
+ KeychainKind::Internal => <span class="string">b"i"</span>,
+ }
+ }
+}
+
+<span class="doccomment">/// An unspent output owned by a [`Wallet`].
+///
+/// [`Wallet`]: crate::Wallet
+</span><span class="attr">#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, Hash)]
+</span><span class="kw">pub struct </span>LocalOutput {
+ <span class="doccomment">/// Reference to a transaction output
+ </span><span class="kw">pub </span>outpoint: OutPoint,
+ <span class="doccomment">/// Transaction output
+ </span><span class="kw">pub </span>txout: TxOut,
+ <span class="doccomment">/// Type of keychain
+ </span><span class="kw">pub </span>keychain: KeychainKind,
+ <span class="doccomment">/// Whether this UTXO is spent or not
+ </span><span class="kw">pub </span>is_spent: bool,
+ <span class="doccomment">/// The derivation index for the script pubkey in the wallet
+ </span><span class="kw">pub </span>derivation_index: u32,
+ <span class="doccomment">/// The confirmation time for transaction containing this utxo
+ </span><span class="kw">pub </span>confirmation_time: ConfirmationTime,
+}
+
+<span class="doccomment">/// A [`Utxo`] with its `satisfaction_weight`.
+</span><span class="attr">#[derive(Debug, Clone, PartialEq, Eq)]
+</span><span class="kw">pub struct </span>WeightedUtxo {
+ <span class="doccomment">/// The weight of the witness data and `scriptSig` expressed in [weight units]. This is used to
+ /// properly maintain the feerate when adding this input to a transaction during coin selection.
+ ///
+ /// [weight units]: https://en.bitcoin.it/wiki/Weight_units
+ </span><span class="kw">pub </span>satisfaction_weight: usize,
+ <span class="doccomment">/// The UTXO
+ </span><span class="kw">pub </span>utxo: Utxo,
+}
+
+<span class="attr">#[derive(Debug, Clone, PartialEq, Eq)]
+</span><span class="doccomment">/// An unspent transaction output (UTXO).
+</span><span class="kw">pub enum </span>Utxo {
+ <span class="doccomment">/// A UTXO owned by the local wallet.
+ </span>Local(LocalOutput),
+ <span class="doccomment">/// A UTXO owned by another wallet.
+ </span>Foreign {
+ <span class="doccomment">/// The location of the output.
+ </span>outpoint: OutPoint,
+ <span class="doccomment">/// The nSequence value to set for this input.
+ </span>sequence: <span class="prelude-ty">Option</span><Sequence>,
+ <span class="doccomment">/// The information about the input we require to add it to a PSBT.
+ </span><span class="comment">// Box it to stop the type being too big.
+ </span>psbt_input: Box<psbt::Input>,
+ },
+}
+
+<span class="kw">impl </span>Utxo {
+ <span class="doccomment">/// Get the location of the UTXO
+ </span><span class="kw">pub fn </span>outpoint(<span class="kw-2">&</span><span class="self">self</span>) -> OutPoint {
+ <span class="kw">match </span><span class="kw-2">&</span><span class="self">self </span>{
+ Utxo::Local(local) => local.outpoint,
+ Utxo::Foreign { outpoint, .. } => <span class="kw-2">*</span>outpoint,
+ }
+ }
+
+ <span class="doccomment">/// Get the `TxOut` of the UTXO
+ </span><span class="kw">pub fn </span>txout(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span>TxOut {
+ <span class="kw">match </span><span class="kw-2">&</span><span class="self">self </span>{
+ Utxo::Local(local) => <span class="kw-2">&</span>local.txout,
+ Utxo::Foreign {
+ outpoint,
+ psbt_input,
+ ..
+ } => {
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(prev_tx) = <span class="kw-2">&</span>psbt_input.non_witness_utxo {
+ <span class="kw">return </span><span class="kw-2">&</span>prev_tx.output[outpoint.vout <span class="kw">as </span>usize];
+ }
+
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(txout) = <span class="kw-2">&</span>psbt_input.witness_utxo {
+ <span class="kw">return </span>txout;
+ }
+
+ <span class="macro">unreachable!</span>(<span class="string">"Foreign UTXOs will always have one of these set"</span>)
+ }
+ }
+ }
+
+ <span class="doccomment">/// Get the sequence number if an explicit sequence number has to be set for this input.
+ </span><span class="kw">pub fn </span>sequence(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Option</span><Sequence> {
+ <span class="kw">match </span><span class="self">self </span>{
+ Utxo::Local(<span class="kw">_</span>) => <span class="prelude-val">None</span>,
+ Utxo::Foreign { sequence, .. } => <span class="kw-2">*</span>sequence,
+ }
+ }
+}
+</code></pre></div>
+</section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Source of the Rust file `crates/wallet/src/wallet/coin_selection.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>coin_selection.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk_wallet/index.html">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
+<a href="#2" id="2">2</a>
+<a href="#3" id="3">3</a>
+<a href="#4" id="4">4</a>
+<a href="#5" id="5">5</a>
+<a href="#6" id="6">6</a>
+<a href="#7" id="7">7</a>
+<a href="#8" id="8">8</a>
+<a href="#9" id="9">9</a>
+<a href="#10" id="10">10</a>
+<a href="#11" id="11">11</a>
+<a href="#12" id="12">12</a>
+<a href="#13" id="13">13</a>
+<a href="#14" id="14">14</a>
+<a href="#15" id="15">15</a>
+<a href="#16" id="16">16</a>
+<a href="#17" id="17">17</a>
+<a href="#18" id="18">18</a>
+<a href="#19" id="19">19</a>
+<a href="#20" id="20">20</a>
+<a href="#21" id="21">21</a>
+<a href="#22" id="22">22</a>
+<a href="#23" id="23">23</a>
+<a href="#24" id="24">24</a>
+<a href="#25" id="25">25</a>
+<a href="#26" id="26">26</a>
+<a href="#27" id="27">27</a>
+<a href="#28" id="28">28</a>
+<a href="#29" id="29">29</a>
+<a href="#30" id="30">30</a>
+<a href="#31" id="31">31</a>
+<a href="#32" id="32">32</a>
+<a href="#33" id="33">33</a>
+<a href="#34" id="34">34</a>
+<a href="#35" id="35">35</a>
+<a href="#36" id="36">36</a>
+<a href="#37" id="37">37</a>
+<a href="#38" id="38">38</a>
+<a href="#39" id="39">39</a>
+<a href="#40" id="40">40</a>
+<a href="#41" id="41">41</a>
+<a href="#42" id="42">42</a>
+<a href="#43" id="43">43</a>
+<a href="#44" id="44">44</a>
+<a href="#45" id="45">45</a>
+<a href="#46" id="46">46</a>
+<a href="#47" id="47">47</a>
+<a href="#48" id="48">48</a>
+<a href="#49" id="49">49</a>
+<a href="#50" id="50">50</a>
+<a href="#51" id="51">51</a>
+<a href="#52" id="52">52</a>
+<a href="#53" id="53">53</a>
+<a href="#54" id="54">54</a>
+<a href="#55" id="55">55</a>
+<a href="#56" id="56">56</a>
+<a href="#57" id="57">57</a>
+<a href="#58" id="58">58</a>
+<a href="#59" id="59">59</a>
+<a href="#60" id="60">60</a>
+<a href="#61" id="61">61</a>
+<a href="#62" id="62">62</a>
+<a href="#63" id="63">63</a>
+<a href="#64" id="64">64</a>
+<a href="#65" id="65">65</a>
+<a href="#66" id="66">66</a>
+<a href="#67" id="67">67</a>
+<a href="#68" id="68">68</a>
+<a href="#69" id="69">69</a>
+<a href="#70" id="70">70</a>
+<a href="#71" id="71">71</a>
+<a href="#72" id="72">72</a>
+<a href="#73" id="73">73</a>
+<a href="#74" id="74">74</a>
+<a href="#75" id="75">75</a>
+<a href="#76" id="76">76</a>
+<a href="#77" id="77">77</a>
+<a href="#78" id="78">78</a>
+<a href="#79" id="79">79</a>
+<a href="#80" id="80">80</a>
+<a href="#81" id="81">81</a>
+<a href="#82" id="82">82</a>
+<a href="#83" id="83">83</a>
+<a href="#84" id="84">84</a>
+<a href="#85" id="85">85</a>
+<a href="#86" id="86">86</a>
+<a href="#87" id="87">87</a>
+<a href="#88" id="88">88</a>
+<a href="#89" id="89">89</a>
+<a href="#90" id="90">90</a>
+<a href="#91" id="91">91</a>
+<a href="#92" id="92">92</a>
+<a href="#93" id="93">93</a>
+<a href="#94" id="94">94</a>
+<a href="#95" id="95">95</a>
+<a href="#96" id="96">96</a>
+<a href="#97" id="97">97</a>
+<a href="#98" id="98">98</a>
+<a href="#99" id="99">99</a>
+<a href="#100" id="100">100</a>
+<a href="#101" id="101">101</a>
+<a href="#102" id="102">102</a>
+<a href="#103" id="103">103</a>
+<a href="#104" id="104">104</a>
+<a href="#105" id="105">105</a>
+<a href="#106" id="106">106</a>
+<a href="#107" id="107">107</a>
+<a href="#108" id="108">108</a>
+<a href="#109" id="109">109</a>
+<a href="#110" id="110">110</a>
+<a href="#111" id="111">111</a>
+<a href="#112" id="112">112</a>
+<a href="#113" id="113">113</a>
+<a href="#114" id="114">114</a>
+<a href="#115" id="115">115</a>
+<a href="#116" id="116">116</a>
+<a href="#117" id="117">117</a>
+<a href="#118" id="118">118</a>
+<a href="#119" id="119">119</a>
+<a href="#120" id="120">120</a>
+<a href="#121" id="121">121</a>
+<a href="#122" id="122">122</a>
+<a href="#123" id="123">123</a>
+<a href="#124" id="124">124</a>
+<a href="#125" id="125">125</a>
+<a href="#126" id="126">126</a>
+<a href="#127" id="127">127</a>
+<a href="#128" id="128">128</a>
+<a href="#129" id="129">129</a>
+<a href="#130" id="130">130</a>
+<a href="#131" id="131">131</a>
+<a href="#132" id="132">132</a>
+<a href="#133" id="133">133</a>
+<a href="#134" id="134">134</a>
+<a href="#135" id="135">135</a>
+<a href="#136" id="136">136</a>
+<a href="#137" id="137">137</a>
+<a href="#138" id="138">138</a>
+<a href="#139" id="139">139</a>
+<a href="#140" id="140">140</a>
+<a href="#141" id="141">141</a>
+<a href="#142" id="142">142</a>
+<a href="#143" id="143">143</a>
+<a href="#144" id="144">144</a>
+<a href="#145" id="145">145</a>
+<a href="#146" id="146">146</a>
+<a href="#147" id="147">147</a>
+<a href="#148" id="148">148</a>
+<a href="#149" id="149">149</a>
+<a href="#150" id="150">150</a>
+<a href="#151" id="151">151</a>
+<a href="#152" id="152">152</a>
+<a href="#153" id="153">153</a>
+<a href="#154" id="154">154</a>
+<a href="#155" id="155">155</a>
+<a href="#156" id="156">156</a>
+<a href="#157" id="157">157</a>
+<a href="#158" id="158">158</a>
+<a href="#159" id="159">159</a>
+<a href="#160" id="160">160</a>
+<a href="#161" id="161">161</a>
+<a href="#162" id="162">162</a>
+<a href="#163" id="163">163</a>
+<a href="#164" id="164">164</a>
+<a href="#165" id="165">165</a>
+<a href="#166" id="166">166</a>
+<a href="#167" id="167">167</a>
+<a href="#168" id="168">168</a>
+<a href="#169" id="169">169</a>
+<a href="#170" id="170">170</a>
+<a href="#171" id="171">171</a>
+<a href="#172" id="172">172</a>
+<a href="#173" id="173">173</a>
+<a href="#174" id="174">174</a>
+<a href="#175" id="175">175</a>
+<a href="#176" id="176">176</a>
+<a href="#177" id="177">177</a>
+<a href="#178" id="178">178</a>
+<a href="#179" id="179">179</a>
+<a href="#180" id="180">180</a>
+<a href="#181" id="181">181</a>
+<a href="#182" id="182">182</a>
+<a href="#183" id="183">183</a>
+<a href="#184" id="184">184</a>
+<a href="#185" id="185">185</a>
+<a href="#186" id="186">186</a>
+<a href="#187" id="187">187</a>
+<a href="#188" id="188">188</a>
+<a href="#189" id="189">189</a>
+<a href="#190" id="190">190</a>
+<a href="#191" id="191">191</a>
+<a href="#192" id="192">192</a>
+<a href="#193" id="193">193</a>
+<a href="#194" id="194">194</a>
+<a href="#195" id="195">195</a>
+<a href="#196" id="196">196</a>
+<a href="#197" id="197">197</a>
+<a href="#198" id="198">198</a>
+<a href="#199" id="199">199</a>
+<a href="#200" id="200">200</a>
+<a href="#201" id="201">201</a>
+<a href="#202" id="202">202</a>
+<a href="#203" id="203">203</a>
+<a href="#204" id="204">204</a>
+<a href="#205" id="205">205</a>
+<a href="#206" id="206">206</a>
+<a href="#207" id="207">207</a>
+<a href="#208" id="208">208</a>
+<a href="#209" id="209">209</a>
+<a href="#210" id="210">210</a>
+<a href="#211" id="211">211</a>
+<a href="#212" id="212">212</a>
+<a href="#213" id="213">213</a>
+<a href="#214" id="214">214</a>
+<a href="#215" id="215">215</a>
+<a href="#216" id="216">216</a>
+<a href="#217" id="217">217</a>
+<a href="#218" id="218">218</a>
+<a href="#219" id="219">219</a>
+<a href="#220" id="220">220</a>
+<a href="#221" id="221">221</a>
+<a href="#222" id="222">222</a>
+<a href="#223" id="223">223</a>
+<a href="#224" id="224">224</a>
+<a href="#225" id="225">225</a>
+<a href="#226" id="226">226</a>
+<a href="#227" id="227">227</a>
+<a href="#228" id="228">228</a>
+<a href="#229" id="229">229</a>
+<a href="#230" id="230">230</a>
+<a href="#231" id="231">231</a>
+<a href="#232" id="232">232</a>
+<a href="#233" id="233">233</a>
+<a href="#234" id="234">234</a>
+<a href="#235" id="235">235</a>
+<a href="#236" id="236">236</a>
+<a href="#237" id="237">237</a>
+<a href="#238" id="238">238</a>
+<a href="#239" id="239">239</a>
+<a href="#240" id="240">240</a>
+<a href="#241" id="241">241</a>
+<a href="#242" id="242">242</a>
+<a href="#243" id="243">243</a>
+<a href="#244" id="244">244</a>
+<a href="#245" id="245">245</a>
+<a href="#246" id="246">246</a>
+<a href="#247" id="247">247</a>
+<a href="#248" id="248">248</a>
+<a href="#249" id="249">249</a>
+<a href="#250" id="250">250</a>
+<a href="#251" id="251">251</a>
+<a href="#252" id="252">252</a>
+<a href="#253" id="253">253</a>
+<a href="#254" id="254">254</a>
+<a href="#255" id="255">255</a>
+<a href="#256" id="256">256</a>
+<a href="#257" id="257">257</a>
+<a href="#258" id="258">258</a>
+<a href="#259" id="259">259</a>
+<a href="#260" id="260">260</a>
+<a href="#261" id="261">261</a>
+<a href="#262" id="262">262</a>
+<a href="#263" id="263">263</a>
+<a href="#264" id="264">264</a>
+<a href="#265" id="265">265</a>
+<a href="#266" id="266">266</a>
+<a href="#267" id="267">267</a>
+<a href="#268" id="268">268</a>
+<a href="#269" id="269">269</a>
+<a href="#270" id="270">270</a>
+<a href="#271" id="271">271</a>
+<a href="#272" id="272">272</a>
+<a href="#273" id="273">273</a>
+<a href="#274" id="274">274</a>
+<a href="#275" id="275">275</a>
+<a href="#276" id="276">276</a>
+<a href="#277" id="277">277</a>
+<a href="#278" id="278">278</a>
+<a href="#279" id="279">279</a>
+<a href="#280" id="280">280</a>
+<a href="#281" id="281">281</a>
+<a href="#282" id="282">282</a>
+<a href="#283" id="283">283</a>
+<a href="#284" id="284">284</a>
+<a href="#285" id="285">285</a>
+<a href="#286" id="286">286</a>
+<a href="#287" id="287">287</a>
+<a href="#288" id="288">288</a>
+<a href="#289" id="289">289</a>
+<a href="#290" id="290">290</a>
+<a href="#291" id="291">291</a>
+<a href="#292" id="292">292</a>
+<a href="#293" id="293">293</a>
+<a href="#294" id="294">294</a>
+<a href="#295" id="295">295</a>
+<a href="#296" id="296">296</a>
+<a href="#297" id="297">297</a>
+<a href="#298" id="298">298</a>
+<a href="#299" id="299">299</a>
+<a href="#300" id="300">300</a>
+<a href="#301" id="301">301</a>
+<a href="#302" id="302">302</a>
+<a href="#303" id="303">303</a>
+<a href="#304" id="304">304</a>
+<a href="#305" id="305">305</a>
+<a href="#306" id="306">306</a>
+<a href="#307" id="307">307</a>
+<a href="#308" id="308">308</a>
+<a href="#309" id="309">309</a>
+<a href="#310" id="310">310</a>
+<a href="#311" id="311">311</a>
+<a href="#312" id="312">312</a>
+<a href="#313" id="313">313</a>
+<a href="#314" id="314">314</a>
+<a href="#315" id="315">315</a>
+<a href="#316" id="316">316</a>
+<a href="#317" id="317">317</a>
+<a href="#318" id="318">318</a>
+<a href="#319" id="319">319</a>
+<a href="#320" id="320">320</a>
+<a href="#321" id="321">321</a>
+<a href="#322" id="322">322</a>
+<a href="#323" id="323">323</a>
+<a href="#324" id="324">324</a>
+<a href="#325" id="325">325</a>
+<a href="#326" id="326">326</a>
+<a href="#327" id="327">327</a>
+<a href="#328" id="328">328</a>
+<a href="#329" id="329">329</a>
+<a href="#330" id="330">330</a>
+<a href="#331" id="331">331</a>
+<a href="#332" id="332">332</a>
+<a href="#333" id="333">333</a>
+<a href="#334" id="334">334</a>
+<a href="#335" id="335">335</a>
+<a href="#336" id="336">336</a>
+<a href="#337" id="337">337</a>
+<a href="#338" id="338">338</a>
+<a href="#339" id="339">339</a>
+<a href="#340" id="340">340</a>
+<a href="#341" id="341">341</a>
+<a href="#342" id="342">342</a>
+<a href="#343" id="343">343</a>
+<a href="#344" id="344">344</a>
+<a href="#345" id="345">345</a>
+<a href="#346" id="346">346</a>
+<a href="#347" id="347">347</a>
+<a href="#348" id="348">348</a>
+<a href="#349" id="349">349</a>
+<a href="#350" id="350">350</a>
+<a href="#351" id="351">351</a>
+<a href="#352" id="352">352</a>
+<a href="#353" id="353">353</a>
+<a href="#354" id="354">354</a>
+<a href="#355" id="355">355</a>
+<a href="#356" id="356">356</a>
+<a href="#357" id="357">357</a>
+<a href="#358" id="358">358</a>
+<a href="#359" id="359">359</a>
+<a href="#360" id="360">360</a>
+<a href="#361" id="361">361</a>
+<a href="#362" id="362">362</a>
+<a href="#363" id="363">363</a>
+<a href="#364" id="364">364</a>
+<a href="#365" id="365">365</a>
+<a href="#366" id="366">366</a>
+<a href="#367" id="367">367</a>
+<a href="#368" id="368">368</a>
+<a href="#369" id="369">369</a>
+<a href="#370" id="370">370</a>
+<a href="#371" id="371">371</a>
+<a href="#372" id="372">372</a>
+<a href="#373" id="373">373</a>
+<a href="#374" id="374">374</a>
+<a href="#375" id="375">375</a>
+<a href="#376" id="376">376</a>
+<a href="#377" id="377">377</a>
+<a href="#378" id="378">378</a>
+<a href="#379" id="379">379</a>
+<a href="#380" id="380">380</a>
+<a href="#381" id="381">381</a>
+<a href="#382" id="382">382</a>
+<a href="#383" id="383">383</a>
+<a href="#384" id="384">384</a>
+<a href="#385" id="385">385</a>
+<a href="#386" id="386">386</a>
+<a href="#387" id="387">387</a>
+<a href="#388" id="388">388</a>
+<a href="#389" id="389">389</a>
+<a href="#390" id="390">390</a>
+<a href="#391" id="391">391</a>
+<a href="#392" id="392">392</a>
+<a href="#393" id="393">393</a>
+<a href="#394" id="394">394</a>
+<a href="#395" id="395">395</a>
+<a href="#396" id="396">396</a>
+<a href="#397" id="397">397</a>
+<a href="#398" id="398">398</a>
+<a href="#399" id="399">399</a>
+<a href="#400" id="400">400</a>
+<a href="#401" id="401">401</a>
+<a href="#402" id="402">402</a>
+<a href="#403" id="403">403</a>
+<a href="#404" id="404">404</a>
+<a href="#405" id="405">405</a>
+<a href="#406" id="406">406</a>
+<a href="#407" id="407">407</a>
+<a href="#408" id="408">408</a>
+<a href="#409" id="409">409</a>
+<a href="#410" id="410">410</a>
+<a href="#411" id="411">411</a>
+<a href="#412" id="412">412</a>
+<a href="#413" id="413">413</a>
+<a href="#414" id="414">414</a>
+<a href="#415" id="415">415</a>
+<a href="#416" id="416">416</a>
+<a href="#417" id="417">417</a>
+<a href="#418" id="418">418</a>
+<a href="#419" id="419">419</a>
+<a href="#420" id="420">420</a>
+<a href="#421" id="421">421</a>
+<a href="#422" id="422">422</a>
+<a href="#423" id="423">423</a>
+<a href="#424" id="424">424</a>
+<a href="#425" id="425">425</a>
+<a href="#426" id="426">426</a>
+<a href="#427" id="427">427</a>
+<a href="#428" id="428">428</a>
+<a href="#429" id="429">429</a>
+<a href="#430" id="430">430</a>
+<a href="#431" id="431">431</a>
+<a href="#432" id="432">432</a>
+<a href="#433" id="433">433</a>
+<a href="#434" id="434">434</a>
+<a href="#435" id="435">435</a>
+<a href="#436" id="436">436</a>
+<a href="#437" id="437">437</a>
+<a href="#438" id="438">438</a>
+<a href="#439" id="439">439</a>
+<a href="#440" id="440">440</a>
+<a href="#441" id="441">441</a>
+<a href="#442" id="442">442</a>
+<a href="#443" id="443">443</a>
+<a href="#444" id="444">444</a>
+<a href="#445" id="445">445</a>
+<a href="#446" id="446">446</a>
+<a href="#447" id="447">447</a>
+<a href="#448" id="448">448</a>
+<a href="#449" id="449">449</a>
+<a href="#450" id="450">450</a>
+<a href="#451" id="451">451</a>
+<a href="#452" id="452">452</a>
+<a href="#453" id="453">453</a>
+<a href="#454" id="454">454</a>
+<a href="#455" id="455">455</a>
+<a href="#456" id="456">456</a>
+<a href="#457" id="457">457</a>
+<a href="#458" id="458">458</a>
+<a href="#459" id="459">459</a>
+<a href="#460" id="460">460</a>
+<a href="#461" id="461">461</a>
+<a href="#462" id="462">462</a>
+<a href="#463" id="463">463</a>
+<a href="#464" id="464">464</a>
+<a href="#465" id="465">465</a>
+<a href="#466" id="466">466</a>
+<a href="#467" id="467">467</a>
+<a href="#468" id="468">468</a>
+<a href="#469" id="469">469</a>
+<a href="#470" id="470">470</a>
+<a href="#471" id="471">471</a>
+<a href="#472" id="472">472</a>
+<a href="#473" id="473">473</a>
+<a href="#474" id="474">474</a>
+<a href="#475" id="475">475</a>
+<a href="#476" id="476">476</a>
+<a href="#477" id="477">477</a>
+<a href="#478" id="478">478</a>
+<a href="#479" id="479">479</a>
+<a href="#480" id="480">480</a>
+<a href="#481" id="481">481</a>
+<a href="#482" id="482">482</a>
+<a href="#483" id="483">483</a>
+<a href="#484" id="484">484</a>
+<a href="#485" id="485">485</a>
+<a href="#486" id="486">486</a>
+<a href="#487" id="487">487</a>
+<a href="#488" id="488">488</a>
+<a href="#489" id="489">489</a>
+<a href="#490" id="490">490</a>
+<a href="#491" id="491">491</a>
+<a href="#492" id="492">492</a>
+<a href="#493" id="493">493</a>
+<a href="#494" id="494">494</a>
+<a href="#495" id="495">495</a>
+<a href="#496" id="496">496</a>
+<a href="#497" id="497">497</a>
+<a href="#498" id="498">498</a>
+<a href="#499" id="499">499</a>
+<a href="#500" id="500">500</a>
+<a href="#501" id="501">501</a>
+<a href="#502" id="502">502</a>
+<a href="#503" id="503">503</a>
+<a href="#504" id="504">504</a>
+<a href="#505" id="505">505</a>
+<a href="#506" id="506">506</a>
+<a href="#507" id="507">507</a>
+<a href="#508" id="508">508</a>
+<a href="#509" id="509">509</a>
+<a href="#510" id="510">510</a>
+<a href="#511" id="511">511</a>
+<a href="#512" id="512">512</a>
+<a href="#513" id="513">513</a>
+<a href="#514" id="514">514</a>
+<a href="#515" id="515">515</a>
+<a href="#516" id="516">516</a>
+<a href="#517" id="517">517</a>
+<a href="#518" id="518">518</a>
+<a href="#519" id="519">519</a>
+<a href="#520" id="520">520</a>
+<a href="#521" id="521">521</a>
+<a href="#522" id="522">522</a>
+<a href="#523" id="523">523</a>
+<a href="#524" id="524">524</a>
+<a href="#525" id="525">525</a>
+<a href="#526" id="526">526</a>
+<a href="#527" id="527">527</a>
+<a href="#528" id="528">528</a>
+<a href="#529" id="529">529</a>
+<a href="#530" id="530">530</a>
+<a href="#531" id="531">531</a>
+<a href="#532" id="532">532</a>
+<a href="#533" id="533">533</a>
+<a href="#534" id="534">534</a>
+<a href="#535" id="535">535</a>
+<a href="#536" id="536">536</a>
+<a href="#537" id="537">537</a>
+<a href="#538" id="538">538</a>
+<a href="#539" id="539">539</a>
+<a href="#540" id="540">540</a>
+<a href="#541" id="541">541</a>
+<a href="#542" id="542">542</a>
+<a href="#543" id="543">543</a>
+<a href="#544" id="544">544</a>
+<a href="#545" id="545">545</a>
+<a href="#546" id="546">546</a>
+<a href="#547" id="547">547</a>
+<a href="#548" id="548">548</a>
+<a href="#549" id="549">549</a>
+<a href="#550" id="550">550</a>
+<a href="#551" id="551">551</a>
+<a href="#552" id="552">552</a>
+<a href="#553" id="553">553</a>
+<a href="#554" id="554">554</a>
+<a href="#555" id="555">555</a>
+<a href="#556" id="556">556</a>
+<a href="#557" id="557">557</a>
+<a href="#558" id="558">558</a>
+<a href="#559" id="559">559</a>
+<a href="#560" id="560">560</a>
+<a href="#561" id="561">561</a>
+<a href="#562" id="562">562</a>
+<a href="#563" id="563">563</a>
+<a href="#564" id="564">564</a>
+<a href="#565" id="565">565</a>
+<a href="#566" id="566">566</a>
+<a href="#567" id="567">567</a>
+<a href="#568" id="568">568</a>
+<a href="#569" id="569">569</a>
+<a href="#570" id="570">570</a>
+<a href="#571" id="571">571</a>
+<a href="#572" id="572">572</a>
+<a href="#573" id="573">573</a>
+<a href="#574" id="574">574</a>
+<a href="#575" id="575">575</a>
+<a href="#576" id="576">576</a>
+<a href="#577" id="577">577</a>
+<a href="#578" id="578">578</a>
+<a href="#579" id="579">579</a>
+<a href="#580" id="580">580</a>
+<a href="#581" id="581">581</a>
+<a href="#582" id="582">582</a>
+<a href="#583" id="583">583</a>
+<a href="#584" id="584">584</a>
+<a href="#585" id="585">585</a>
+<a href="#586" id="586">586</a>
+<a href="#587" id="587">587</a>
+<a href="#588" id="588">588</a>
+<a href="#589" id="589">589</a>
+<a href="#590" id="590">590</a>
+<a href="#591" id="591">591</a>
+<a href="#592" id="592">592</a>
+<a href="#593" id="593">593</a>
+<a href="#594" id="594">594</a>
+<a href="#595" id="595">595</a>
+<a href="#596" id="596">596</a>
+<a href="#597" id="597">597</a>
+<a href="#598" id="598">598</a>
+<a href="#599" id="599">599</a>
+<a href="#600" id="600">600</a>
+<a href="#601" id="601">601</a>
+<a href="#602" id="602">602</a>
+<a href="#603" id="603">603</a>
+<a href="#604" id="604">604</a>
+<a href="#605" id="605">605</a>
+<a href="#606" id="606">606</a>
+<a href="#607" id="607">607</a>
+<a href="#608" id="608">608</a>
+<a href="#609" id="609">609</a>
+<a href="#610" id="610">610</a>
+<a href="#611" id="611">611</a>
+<a href="#612" id="612">612</a>
+<a href="#613" id="613">613</a>
+<a href="#614" id="614">614</a>
+<a href="#615" id="615">615</a>
+<a href="#616" id="616">616</a>
+<a href="#617" id="617">617</a>
+<a href="#618" id="618">618</a>
+<a href="#619" id="619">619</a>
+<a href="#620" id="620">620</a>
+<a href="#621" id="621">621</a>
+<a href="#622" id="622">622</a>
+<a href="#623" id="623">623</a>
+<a href="#624" id="624">624</a>
+<a href="#625" id="625">625</a>
+<a href="#626" id="626">626</a>
+<a href="#627" id="627">627</a>
+<a href="#628" id="628">628</a>
+<a href="#629" id="629">629</a>
+<a href="#630" id="630">630</a>
+<a href="#631" id="631">631</a>
+<a href="#632" id="632">632</a>
+<a href="#633" id="633">633</a>
+<a href="#634" id="634">634</a>
+<a href="#635" id="635">635</a>
+<a href="#636" id="636">636</a>
+<a href="#637" id="637">637</a>
+<a href="#638" id="638">638</a>
+<a href="#639" id="639">639</a>
+<a href="#640" id="640">640</a>
+<a href="#641" id="641">641</a>
+<a href="#642" id="642">642</a>
+<a href="#643" id="643">643</a>
+<a href="#644" id="644">644</a>
+<a href="#645" id="645">645</a>
+<a href="#646" id="646">646</a>
+<a href="#647" id="647">647</a>
+<a href="#648" id="648">648</a>
+<a href="#649" id="649">649</a>
+<a href="#650" id="650">650</a>
+<a href="#651" id="651">651</a>
+<a href="#652" id="652">652</a>
+<a href="#653" id="653">653</a>
+<a href="#654" id="654">654</a>
+<a href="#655" id="655">655</a>
+<a href="#656" id="656">656</a>
+<a href="#657" id="657">657</a>
+<a href="#658" id="658">658</a>
+<a href="#659" id="659">659</a>
+<a href="#660" id="660">660</a>
+<a href="#661" id="661">661</a>
+<a href="#662" id="662">662</a>
+<a href="#663" id="663">663</a>
+<a href="#664" id="664">664</a>
+<a href="#665" id="665">665</a>
+<a href="#666" id="666">666</a>
+<a href="#667" id="667">667</a>
+<a href="#668" id="668">668</a>
+<a href="#669" id="669">669</a>
+<a href="#670" id="670">670</a>
+<a href="#671" id="671">671</a>
+<a href="#672" id="672">672</a>
+<a href="#673" id="673">673</a>
+<a href="#674" id="674">674</a>
+<a href="#675" id="675">675</a>
+<a href="#676" id="676">676</a>
+<a href="#677" id="677">677</a>
+<a href="#678" id="678">678</a>
+<a href="#679" id="679">679</a>
+<a href="#680" id="680">680</a>
+<a href="#681" id="681">681</a>
+<a href="#682" id="682">682</a>
+<a href="#683" id="683">683</a>
+<a href="#684" id="684">684</a>
+<a href="#685" id="685">685</a>
+<a href="#686" id="686">686</a>
+<a href="#687" id="687">687</a>
+<a href="#688" id="688">688</a>
+<a href="#689" id="689">689</a>
+<a href="#690" id="690">690</a>
+<a href="#691" id="691">691</a>
+<a href="#692" id="692">692</a>
+<a href="#693" id="693">693</a>
+<a href="#694" id="694">694</a>
+<a href="#695" id="695">695</a>
+<a href="#696" id="696">696</a>
+<a href="#697" id="697">697</a>
+<a href="#698" id="698">698</a>
+<a href="#699" id="699">699</a>
+<a href="#700" id="700">700</a>
+<a href="#701" id="701">701</a>
+<a href="#702" id="702">702</a>
+<a href="#703" id="703">703</a>
+<a href="#704" id="704">704</a>
+<a href="#705" id="705">705</a>
+<a href="#706" id="706">706</a>
+<a href="#707" id="707">707</a>
+<a href="#708" id="708">708</a>
+<a href="#709" id="709">709</a>
+<a href="#710" id="710">710</a>
+<a href="#711" id="711">711</a>
+<a href="#712" id="712">712</a>
+<a href="#713" id="713">713</a>
+<a href="#714" id="714">714</a>
+<a href="#715" id="715">715</a>
+<a href="#716" id="716">716</a>
+<a href="#717" id="717">717</a>
+<a href="#718" id="718">718</a>
+<a href="#719" id="719">719</a>
+<a href="#720" id="720">720</a>
+<a href="#721" id="721">721</a>
+<a href="#722" id="722">722</a>
+<a href="#723" id="723">723</a>
+<a href="#724" id="724">724</a>
+<a href="#725" id="725">725</a>
+<a href="#726" id="726">726</a>
+<a href="#727" id="727">727</a>
+<a href="#728" id="728">728</a>
+<a href="#729" id="729">729</a>
+<a href="#730" id="730">730</a>
+<a href="#731" id="731">731</a>
+<a href="#732" id="732">732</a>
+<a href="#733" id="733">733</a>
+<a href="#734" id="734">734</a>
+<a href="#735" id="735">735</a>
+<a href="#736" id="736">736</a>
+<a href="#737" id="737">737</a>
+<a href="#738" id="738">738</a>
+<a href="#739" id="739">739</a>
+<a href="#740" id="740">740</a>
+<a href="#741" id="741">741</a>
+<a href="#742" id="742">742</a>
+<a href="#743" id="743">743</a>
+<a href="#744" id="744">744</a>
+<a href="#745" id="745">745</a>
+<a href="#746" id="746">746</a>
+<a href="#747" id="747">747</a>
+<a href="#748" id="748">748</a>
+<a href="#749" id="749">749</a>
+<a href="#750" id="750">750</a>
+<a href="#751" id="751">751</a>
+<a href="#752" id="752">752</a>
+<a href="#753" id="753">753</a>
+<a href="#754" id="754">754</a>
+<a href="#755" id="755">755</a>
+<a href="#756" id="756">756</a>
+<a href="#757" id="757">757</a>
+<a href="#758" id="758">758</a>
+<a href="#759" id="759">759</a>
+<a href="#760" id="760">760</a>
+<a href="#761" id="761">761</a>
+<a href="#762" id="762">762</a>
+<a href="#763" id="763">763</a>
+<a href="#764" id="764">764</a>
+<a href="#765" id="765">765</a>
+<a href="#766" id="766">766</a>
+<a href="#767" id="767">767</a>
+<a href="#768" id="768">768</a>
+<a href="#769" id="769">769</a>
+<a href="#770" id="770">770</a>
+<a href="#771" id="771">771</a>
+<a href="#772" id="772">772</a>
+<a href="#773" id="773">773</a>
+<a href="#774" id="774">774</a>
+<a href="#775" id="775">775</a>
+<a href="#776" id="776">776</a>
+<a href="#777" id="777">777</a>
+<a href="#778" id="778">778</a>
+<a href="#779" id="779">779</a>
+<a href="#780" id="780">780</a>
+<a href="#781" id="781">781</a>
+<a href="#782" id="782">782</a>
+<a href="#783" id="783">783</a>
+<a href="#784" id="784">784</a>
+<a href="#785" id="785">785</a>
+<a href="#786" id="786">786</a>
+<a href="#787" id="787">787</a>
+<a href="#788" id="788">788</a>
+<a href="#789" id="789">789</a>
+<a href="#790" id="790">790</a>
+<a href="#791" id="791">791</a>
+<a href="#792" id="792">792</a>
+<a href="#793" id="793">793</a>
+<a href="#794" id="794">794</a>
+<a href="#795" id="795">795</a>
+<a href="#796" id="796">796</a>
+<a href="#797" id="797">797</a>
+<a href="#798" id="798">798</a>
+<a href="#799" id="799">799</a>
+<a href="#800" id="800">800</a>
+<a href="#801" id="801">801</a>
+<a href="#802" id="802">802</a>
+<a href="#803" id="803">803</a>
+<a href="#804" id="804">804</a>
+<a href="#805" id="805">805</a>
+<a href="#806" id="806">806</a>
+<a href="#807" id="807">807</a>
+<a href="#808" id="808">808</a>
+<a href="#809" id="809">809</a>
+<a href="#810" id="810">810</a>
+<a href="#811" id="811">811</a>
+<a href="#812" id="812">812</a>
+<a href="#813" id="813">813</a>
+<a href="#814" id="814">814</a>
+<a href="#815" id="815">815</a>
+<a href="#816" id="816">816</a>
+<a href="#817" id="817">817</a>
+<a href="#818" id="818">818</a>
+<a href="#819" id="819">819</a>
+<a href="#820" id="820">820</a>
+<a href="#821" id="821">821</a>
+<a href="#822" id="822">822</a>
+<a href="#823" id="823">823</a>
+<a href="#824" id="824">824</a>
+<a href="#825" id="825">825</a>
+<a href="#826" id="826">826</a>
+<a href="#827" id="827">827</a>
+<a href="#828" id="828">828</a>
+<a href="#829" id="829">829</a>
+<a href="#830" id="830">830</a>
+<a href="#831" id="831">831</a>
+<a href="#832" id="832">832</a>
+<a href="#833" id="833">833</a>
+<a href="#834" id="834">834</a>
+<a href="#835" id="835">835</a>
+<a href="#836" id="836">836</a>
+<a href="#837" id="837">837</a>
+<a href="#838" id="838">838</a>
+<a href="#839" id="839">839</a>
+<a href="#840" id="840">840</a>
+<a href="#841" id="841">841</a>
+<a href="#842" id="842">842</a>
+<a href="#843" id="843">843</a>
+<a href="#844" id="844">844</a>
+<a href="#845" id="845">845</a>
+<a href="#846" id="846">846</a>
+<a href="#847" id="847">847</a>
+<a href="#848" id="848">848</a>
+<a href="#849" id="849">849</a>
+<a href="#850" id="850">850</a>
+<a href="#851" id="851">851</a>
+<a href="#852" id="852">852</a>
+<a href="#853" id="853">853</a>
+<a href="#854" id="854">854</a>
+<a href="#855" id="855">855</a>
+<a href="#856" id="856">856</a>
+<a href="#857" id="857">857</a>
+<a href="#858" id="858">858</a>
+<a href="#859" id="859">859</a>
+<a href="#860" id="860">860</a>
+<a href="#861" id="861">861</a>
+<a href="#862" id="862">862</a>
+<a href="#863" id="863">863</a>
+<a href="#864" id="864">864</a>
+<a href="#865" id="865">865</a>
+<a href="#866" id="866">866</a>
+<a href="#867" id="867">867</a>
+<a href="#868" id="868">868</a>
+<a href="#869" id="869">869</a>
+<a href="#870" id="870">870</a>
+<a href="#871" id="871">871</a>
+<a href="#872" id="872">872</a>
+<a href="#873" id="873">873</a>
+<a href="#874" id="874">874</a>
+<a href="#875" id="875">875</a>
+<a href="#876" id="876">876</a>
+<a href="#877" id="877">877</a>
+<a href="#878" id="878">878</a>
+<a href="#879" id="879">879</a>
+<a href="#880" id="880">880</a>
+<a href="#881" id="881">881</a>
+<a href="#882" id="882">882</a>
+<a href="#883" id="883">883</a>
+<a href="#884" id="884">884</a>
+<a href="#885" id="885">885</a>
+<a href="#886" id="886">886</a>
+<a href="#887" id="887">887</a>
+<a href="#888" id="888">888</a>
+<a href="#889" id="889">889</a>
+<a href="#890" id="890">890</a>
+<a href="#891" id="891">891</a>
+<a href="#892" id="892">892</a>
+<a href="#893" id="893">893</a>
+<a href="#894" id="894">894</a>
+<a href="#895" id="895">895</a>
+<a href="#896" id="896">896</a>
+<a href="#897" id="897">897</a>
+<a href="#898" id="898">898</a>
+<a href="#899" id="899">899</a>
+<a href="#900" id="900">900</a>
+<a href="#901" id="901">901</a>
+<a href="#902" id="902">902</a>
+<a href="#903" id="903">903</a>
+<a href="#904" id="904">904</a>
+<a href="#905" id="905">905</a>
+<a href="#906" id="906">906</a>
+<a href="#907" id="907">907</a>
+<a href="#908" id="908">908</a>
+<a href="#909" id="909">909</a>
+<a href="#910" id="910">910</a>
+<a href="#911" id="911">911</a>
+<a href="#912" id="912">912</a>
+<a href="#913" id="913">913</a>
+<a href="#914" id="914">914</a>
+<a href="#915" id="915">915</a>
+<a href="#916" id="916">916</a>
+<a href="#917" id="917">917</a>
+<a href="#918" id="918">918</a>
+<a href="#919" id="919">919</a>
+<a href="#920" id="920">920</a>
+<a href="#921" id="921">921</a>
+<a href="#922" id="922">922</a>
+<a href="#923" id="923">923</a>
+<a href="#924" id="924">924</a>
+<a href="#925" id="925">925</a>
+<a href="#926" id="926">926</a>
+<a href="#927" id="927">927</a>
+<a href="#928" id="928">928</a>
+<a href="#929" id="929">929</a>
+<a href="#930" id="930">930</a>
+<a href="#931" id="931">931</a>
+<a href="#932" id="932">932</a>
+<a href="#933" id="933">933</a>
+<a href="#934" id="934">934</a>
+<a href="#935" id="935">935</a>
+<a href="#936" id="936">936</a>
+<a href="#937" id="937">937</a>
+<a href="#938" id="938">938</a>
+<a href="#939" id="939">939</a>
+<a href="#940" id="940">940</a>
+<a href="#941" id="941">941</a>
+<a href="#942" id="942">942</a>
+<a href="#943" id="943">943</a>
+<a href="#944" id="944">944</a>
+<a href="#945" id="945">945</a>
+<a href="#946" id="946">946</a>
+<a href="#947" id="947">947</a>
+<a href="#948" id="948">948</a>
+<a href="#949" id="949">949</a>
+<a href="#950" id="950">950</a>
+<a href="#951" id="951">951</a>
+<a href="#952" id="952">952</a>
+<a href="#953" id="953">953</a>
+<a href="#954" id="954">954</a>
+<a href="#955" id="955">955</a>
+<a href="#956" id="956">956</a>
+<a href="#957" id="957">957</a>
+<a href="#958" id="958">958</a>
+<a href="#959" id="959">959</a>
+<a href="#960" id="960">960</a>
+<a href="#961" id="961">961</a>
+<a href="#962" id="962">962</a>
+<a href="#963" id="963">963</a>
+<a href="#964" id="964">964</a>
+<a href="#965" id="965">965</a>
+<a href="#966" id="966">966</a>
+<a href="#967" id="967">967</a>
+<a href="#968" id="968">968</a>
+<a href="#969" id="969">969</a>
+<a href="#970" id="970">970</a>
+<a href="#971" id="971">971</a>
+<a href="#972" id="972">972</a>
+<a href="#973" id="973">973</a>
+<a href="#974" id="974">974</a>
+<a href="#975" id="975">975</a>
+<a href="#976" id="976">976</a>
+<a href="#977" id="977">977</a>
+<a href="#978" id="978">978</a>
+<a href="#979" id="979">979</a>
+<a href="#980" id="980">980</a>
+<a href="#981" id="981">981</a>
+<a href="#982" id="982">982</a>
+<a href="#983" id="983">983</a>
+<a href="#984" id="984">984</a>
+<a href="#985" id="985">985</a>
+<a href="#986" id="986">986</a>
+<a href="#987" id="987">987</a>
+<a href="#988" id="988">988</a>
+<a href="#989" id="989">989</a>
+<a href="#990" id="990">990</a>
+<a href="#991" id="991">991</a>
+<a href="#992" id="992">992</a>
+<a href="#993" id="993">993</a>
+<a href="#994" id="994">994</a>
+<a href="#995" id="995">995</a>
+<a href="#996" id="996">996</a>
+<a href="#997" id="997">997</a>
+<a href="#998" id="998">998</a>
+<a href="#999" id="999">999</a>
+<a href="#1000" id="1000">1000</a>
+<a href="#1001" id="1001">1001</a>
+<a href="#1002" id="1002">1002</a>
+<a href="#1003" id="1003">1003</a>
+<a href="#1004" id="1004">1004</a>
+<a href="#1005" id="1005">1005</a>
+<a href="#1006" id="1006">1006</a>
+<a href="#1007" id="1007">1007</a>
+<a href="#1008" id="1008">1008</a>
+<a href="#1009" id="1009">1009</a>
+<a href="#1010" id="1010">1010</a>
+<a href="#1011" id="1011">1011</a>
+<a href="#1012" id="1012">1012</a>
+<a href="#1013" id="1013">1013</a>
+<a href="#1014" id="1014">1014</a>
+<a href="#1015" id="1015">1015</a>
+<a href="#1016" id="1016">1016</a>
+<a href="#1017" id="1017">1017</a>
+<a href="#1018" id="1018">1018</a>
+<a href="#1019" id="1019">1019</a>
+<a href="#1020" id="1020">1020</a>
+<a href="#1021" id="1021">1021</a>
+<a href="#1022" id="1022">1022</a>
+<a href="#1023" id="1023">1023</a>
+<a href="#1024" id="1024">1024</a>
+<a href="#1025" id="1025">1025</a>
+<a href="#1026" id="1026">1026</a>
+<a href="#1027" id="1027">1027</a>
+<a href="#1028" id="1028">1028</a>
+<a href="#1029" id="1029">1029</a>
+<a href="#1030" id="1030">1030</a>
+<a href="#1031" id="1031">1031</a>
+<a href="#1032" id="1032">1032</a>
+<a href="#1033" id="1033">1033</a>
+<a href="#1034" id="1034">1034</a>
+<a href="#1035" id="1035">1035</a>
+<a href="#1036" id="1036">1036</a>
+<a href="#1037" id="1037">1037</a>
+<a href="#1038" id="1038">1038</a>
+<a href="#1039" id="1039">1039</a>
+<a href="#1040" id="1040">1040</a>
+<a href="#1041" id="1041">1041</a>
+<a href="#1042" id="1042">1042</a>
+<a href="#1043" id="1043">1043</a>
+<a href="#1044" id="1044">1044</a>
+<a href="#1045" id="1045">1045</a>
+<a href="#1046" id="1046">1046</a>
+<a href="#1047" id="1047">1047</a>
+<a href="#1048" id="1048">1048</a>
+<a href="#1049" id="1049">1049</a>
+<a href="#1050" id="1050">1050</a>
+<a href="#1051" id="1051">1051</a>
+<a href="#1052" id="1052">1052</a>
+<a href="#1053" id="1053">1053</a>
+<a href="#1054" id="1054">1054</a>
+<a href="#1055" id="1055">1055</a>
+<a href="#1056" id="1056">1056</a>
+<a href="#1057" id="1057">1057</a>
+<a href="#1058" id="1058">1058</a>
+<a href="#1059" id="1059">1059</a>
+<a href="#1060" id="1060">1060</a>
+<a href="#1061" id="1061">1061</a>
+<a href="#1062" id="1062">1062</a>
+<a href="#1063" id="1063">1063</a>
+<a href="#1064" id="1064">1064</a>
+<a href="#1065" id="1065">1065</a>
+<a href="#1066" id="1066">1066</a>
+<a href="#1067" id="1067">1067</a>
+<a href="#1068" id="1068">1068</a>
+<a href="#1069" id="1069">1069</a>
+<a href="#1070" id="1070">1070</a>
+<a href="#1071" id="1071">1071</a>
+<a href="#1072" id="1072">1072</a>
+<a href="#1073" id="1073">1073</a>
+<a href="#1074" id="1074">1074</a>
+<a href="#1075" id="1075">1075</a>
+<a href="#1076" id="1076">1076</a>
+<a href="#1077" id="1077">1077</a>
+<a href="#1078" id="1078">1078</a>
+<a href="#1079" id="1079">1079</a>
+<a href="#1080" id="1080">1080</a>
+<a href="#1081" id="1081">1081</a>
+<a href="#1082" id="1082">1082</a>
+<a href="#1083" id="1083">1083</a>
+<a href="#1084" id="1084">1084</a>
+<a href="#1085" id="1085">1085</a>
+<a href="#1086" id="1086">1086</a>
+<a href="#1087" id="1087">1087</a>
+<a href="#1088" id="1088">1088</a>
+<a href="#1089" id="1089">1089</a>
+<a href="#1090" id="1090">1090</a>
+<a href="#1091" id="1091">1091</a>
+<a href="#1092" id="1092">1092</a>
+<a href="#1093" id="1093">1093</a>
+<a href="#1094" id="1094">1094</a>
+<a href="#1095" id="1095">1095</a>
+<a href="#1096" id="1096">1096</a>
+<a href="#1097" id="1097">1097</a>
+<a href="#1098" id="1098">1098</a>
+<a href="#1099" id="1099">1099</a>
+<a href="#1100" id="1100">1100</a>
+<a href="#1101" id="1101">1101</a>
+<a href="#1102" id="1102">1102</a>
+<a href="#1103" id="1103">1103</a>
+<a href="#1104" id="1104">1104</a>
+<a href="#1105" id="1105">1105</a>
+<a href="#1106" id="1106">1106</a>
+<a href="#1107" id="1107">1107</a>
+<a href="#1108" id="1108">1108</a>
+<a href="#1109" id="1109">1109</a>
+<a href="#1110" id="1110">1110</a>
+<a href="#1111" id="1111">1111</a>
+<a href="#1112" id="1112">1112</a>
+<a href="#1113" id="1113">1113</a>
+<a href="#1114" id="1114">1114</a>
+<a href="#1115" id="1115">1115</a>
+<a href="#1116" id="1116">1116</a>
+<a href="#1117" id="1117">1117</a>
+<a href="#1118" id="1118">1118</a>
+<a href="#1119" id="1119">1119</a>
+<a href="#1120" id="1120">1120</a>
+<a href="#1121" id="1121">1121</a>
+<a href="#1122" id="1122">1122</a>
+<a href="#1123" id="1123">1123</a>
+<a href="#1124" id="1124">1124</a>
+<a href="#1125" id="1125">1125</a>
+<a href="#1126" id="1126">1126</a>
+<a href="#1127" id="1127">1127</a>
+<a href="#1128" id="1128">1128</a>
+<a href="#1129" id="1129">1129</a>
+<a href="#1130" id="1130">1130</a>
+<a href="#1131" id="1131">1131</a>
+<a href="#1132" id="1132">1132</a>
+<a href="#1133" id="1133">1133</a>
+<a href="#1134" id="1134">1134</a>
+<a href="#1135" id="1135">1135</a>
+<a href="#1136" id="1136">1136</a>
+<a href="#1137" id="1137">1137</a>
+<a href="#1138" id="1138">1138</a>
+<a href="#1139" id="1139">1139</a>
+<a href="#1140" id="1140">1140</a>
+<a href="#1141" id="1141">1141</a>
+<a href="#1142" id="1142">1142</a>
+<a href="#1143" id="1143">1143</a>
+<a href="#1144" id="1144">1144</a>
+<a href="#1145" id="1145">1145</a>
+<a href="#1146" id="1146">1146</a>
+<a href="#1147" id="1147">1147</a>
+<a href="#1148" id="1148">1148</a>
+<a href="#1149" id="1149">1149</a>
+<a href="#1150" id="1150">1150</a>
+<a href="#1151" id="1151">1151</a>
+<a href="#1152" id="1152">1152</a>
+<a href="#1153" id="1153">1153</a>
+<a href="#1154" id="1154">1154</a>
+<a href="#1155" id="1155">1155</a>
+<a href="#1156" id="1156">1156</a>
+<a href="#1157" id="1157">1157</a>
+<a href="#1158" id="1158">1158</a>
+<a href="#1159" id="1159">1159</a>
+<a href="#1160" id="1160">1160</a>
+<a href="#1161" id="1161">1161</a>
+<a href="#1162" id="1162">1162</a>
+<a href="#1163" id="1163">1163</a>
+<a href="#1164" id="1164">1164</a>
+<a href="#1165" id="1165">1165</a>
+<a href="#1166" id="1166">1166</a>
+<a href="#1167" id="1167">1167</a>
+<a href="#1168" id="1168">1168</a>
+<a href="#1169" id="1169">1169</a>
+<a href="#1170" id="1170">1170</a>
+<a href="#1171" id="1171">1171</a>
+<a href="#1172" id="1172">1172</a>
+<a href="#1173" id="1173">1173</a>
+<a href="#1174" id="1174">1174</a>
+<a href="#1175" id="1175">1175</a>
+<a href="#1176" id="1176">1176</a>
+<a href="#1177" id="1177">1177</a>
+<a href="#1178" id="1178">1178</a>
+<a href="#1179" id="1179">1179</a>
+<a href="#1180" id="1180">1180</a>
+<a href="#1181" id="1181">1181</a>
+<a href="#1182" id="1182">1182</a>
+<a href="#1183" id="1183">1183</a>
+<a href="#1184" id="1184">1184</a>
+<a href="#1185" id="1185">1185</a>
+<a href="#1186" id="1186">1186</a>
+<a href="#1187" id="1187">1187</a>
+<a href="#1188" id="1188">1188</a>
+<a href="#1189" id="1189">1189</a>
+<a href="#1190" id="1190">1190</a>
+<a href="#1191" id="1191">1191</a>
+<a href="#1192" id="1192">1192</a>
+<a href="#1193" id="1193">1193</a>
+<a href="#1194" id="1194">1194</a>
+<a href="#1195" id="1195">1195</a>
+<a href="#1196" id="1196">1196</a>
+<a href="#1197" id="1197">1197</a>
+<a href="#1198" id="1198">1198</a>
+<a href="#1199" id="1199">1199</a>
+<a href="#1200" id="1200">1200</a>
+<a href="#1201" id="1201">1201</a>
+<a href="#1202" id="1202">1202</a>
+<a href="#1203" id="1203">1203</a>
+<a href="#1204" id="1204">1204</a>
+<a href="#1205" id="1205">1205</a>
+<a href="#1206" id="1206">1206</a>
+<a href="#1207" id="1207">1207</a>
+<a href="#1208" id="1208">1208</a>
+<a href="#1209" id="1209">1209</a>
+<a href="#1210" id="1210">1210</a>
+<a href="#1211" id="1211">1211</a>
+<a href="#1212" id="1212">1212</a>
+<a href="#1213" id="1213">1213</a>
+<a href="#1214" id="1214">1214</a>
+<a href="#1215" id="1215">1215</a>
+<a href="#1216" id="1216">1216</a>
+<a href="#1217" id="1217">1217</a>
+<a href="#1218" id="1218">1218</a>
+<a href="#1219" id="1219">1219</a>
+<a href="#1220" id="1220">1220</a>
+<a href="#1221" id="1221">1221</a>
+<a href="#1222" id="1222">1222</a>
+<a href="#1223" id="1223">1223</a>
+<a href="#1224" id="1224">1224</a>
+<a href="#1225" id="1225">1225</a>
+<a href="#1226" id="1226">1226</a>
+<a href="#1227" id="1227">1227</a>
+<a href="#1228" id="1228">1228</a>
+<a href="#1229" id="1229">1229</a>
+<a href="#1230" id="1230">1230</a>
+<a href="#1231" id="1231">1231</a>
+<a href="#1232" id="1232">1232</a>
+<a href="#1233" id="1233">1233</a>
+<a href="#1234" id="1234">1234</a>
+<a href="#1235" id="1235">1235</a>
+<a href="#1236" id="1236">1236</a>
+<a href="#1237" id="1237">1237</a>
+<a href="#1238" id="1238">1238</a>
+<a href="#1239" id="1239">1239</a>
+<a href="#1240" id="1240">1240</a>
+<a href="#1241" id="1241">1241</a>
+<a href="#1242" id="1242">1242</a>
+<a href="#1243" id="1243">1243</a>
+<a href="#1244" id="1244">1244</a>
+<a href="#1245" id="1245">1245</a>
+<a href="#1246" id="1246">1246</a>
+<a href="#1247" id="1247">1247</a>
+<a href="#1248" id="1248">1248</a>
+<a href="#1249" id="1249">1249</a>
+<a href="#1250" id="1250">1250</a>
+<a href="#1251" id="1251">1251</a>
+<a href="#1252" id="1252">1252</a>
+<a href="#1253" id="1253">1253</a>
+<a href="#1254" id="1254">1254</a>
+<a href="#1255" id="1255">1255</a>
+<a href="#1256" id="1256">1256</a>
+<a href="#1257" id="1257">1257</a>
+<a href="#1258" id="1258">1258</a>
+<a href="#1259" id="1259">1259</a>
+<a href="#1260" id="1260">1260</a>
+<a href="#1261" id="1261">1261</a>
+<a href="#1262" id="1262">1262</a>
+<a href="#1263" id="1263">1263</a>
+<a href="#1264" id="1264">1264</a>
+<a href="#1265" id="1265">1265</a>
+<a href="#1266" id="1266">1266</a>
+<a href="#1267" id="1267">1267</a>
+<a href="#1268" id="1268">1268</a>
+<a href="#1269" id="1269">1269</a>
+<a href="#1270" id="1270">1270</a>
+<a href="#1271" id="1271">1271</a>
+<a href="#1272" id="1272">1272</a>
+<a href="#1273" id="1273">1273</a>
+<a href="#1274" id="1274">1274</a>
+<a href="#1275" id="1275">1275</a>
+<a href="#1276" id="1276">1276</a>
+<a href="#1277" id="1277">1277</a>
+<a href="#1278" id="1278">1278</a>
+<a href="#1279" id="1279">1279</a>
+<a href="#1280" id="1280">1280</a>
+<a href="#1281" id="1281">1281</a>
+<a href="#1282" id="1282">1282</a>
+<a href="#1283" id="1283">1283</a>
+<a href="#1284" id="1284">1284</a>
+<a href="#1285" id="1285">1285</a>
+<a href="#1286" id="1286">1286</a>
+<a href="#1287" id="1287">1287</a>
+<a href="#1288" id="1288">1288</a>
+<a href="#1289" id="1289">1289</a>
+<a href="#1290" id="1290">1290</a>
+<a href="#1291" id="1291">1291</a>
+<a href="#1292" id="1292">1292</a>
+<a href="#1293" id="1293">1293</a>
+<a href="#1294" id="1294">1294</a>
+<a href="#1295" id="1295">1295</a>
+<a href="#1296" id="1296">1296</a>
+<a href="#1297" id="1297">1297</a>
+<a href="#1298" id="1298">1298</a>
+<a href="#1299" id="1299">1299</a>
+<a href="#1300" id="1300">1300</a>
+<a href="#1301" id="1301">1301</a>
+<a href="#1302" id="1302">1302</a>
+<a href="#1303" id="1303">1303</a>
+<a href="#1304" id="1304">1304</a>
+<a href="#1305" id="1305">1305</a>
+<a href="#1306" id="1306">1306</a>
+<a href="#1307" id="1307">1307</a>
+<a href="#1308" id="1308">1308</a>
+<a href="#1309" id="1309">1309</a>
+<a href="#1310" id="1310">1310</a>
+<a href="#1311" id="1311">1311</a>
+<a href="#1312" id="1312">1312</a>
+<a href="#1313" id="1313">1313</a>
+<a href="#1314" id="1314">1314</a>
+<a href="#1315" id="1315">1315</a>
+<a href="#1316" id="1316">1316</a>
+<a href="#1317" id="1317">1317</a>
+<a href="#1318" id="1318">1318</a>
+<a href="#1319" id="1319">1319</a>
+<a href="#1320" id="1320">1320</a>
+<a href="#1321" id="1321">1321</a>
+<a href="#1322" id="1322">1322</a>
+<a href="#1323" id="1323">1323</a>
+<a href="#1324" id="1324">1324</a>
+<a href="#1325" id="1325">1325</a>
+<a href="#1326" id="1326">1326</a>
+<a href="#1327" id="1327">1327</a>
+<a href="#1328" id="1328">1328</a>
+<a href="#1329" id="1329">1329</a>
+<a href="#1330" id="1330">1330</a>
+<a href="#1331" id="1331">1331</a>
+<a href="#1332" id="1332">1332</a>
+<a href="#1333" id="1333">1333</a>
+<a href="#1334" id="1334">1334</a>
+<a href="#1335" id="1335">1335</a>
+<a href="#1336" id="1336">1336</a>
+<a href="#1337" id="1337">1337</a>
+<a href="#1338" id="1338">1338</a>
+<a href="#1339" id="1339">1339</a>
+<a href="#1340" id="1340">1340</a>
+<a href="#1341" id="1341">1341</a>
+<a href="#1342" id="1342">1342</a>
+<a href="#1343" id="1343">1343</a>
+<a href="#1344" id="1344">1344</a>
+<a href="#1345" id="1345">1345</a>
+<a href="#1346" id="1346">1346</a>
+<a href="#1347" id="1347">1347</a>
+<a href="#1348" id="1348">1348</a>
+<a href="#1349" id="1349">1349</a>
+<a href="#1350" id="1350">1350</a>
+<a href="#1351" id="1351">1351</a>
+<a href="#1352" id="1352">1352</a>
+<a href="#1353" id="1353">1353</a>
+<a href="#1354" id="1354">1354</a>
+<a href="#1355" id="1355">1355</a>
+<a href="#1356" id="1356">1356</a>
+<a href="#1357" id="1357">1357</a>
+<a href="#1358" id="1358">1358</a>
+<a href="#1359" id="1359">1359</a>
+<a href="#1360" id="1360">1360</a>
+<a href="#1361" id="1361">1361</a>
+<a href="#1362" id="1362">1362</a>
+<a href="#1363" id="1363">1363</a>
+<a href="#1364" id="1364">1364</a>
+<a href="#1365" id="1365">1365</a>
+<a href="#1366" id="1366">1366</a>
+<a href="#1367" id="1367">1367</a>
+<a href="#1368" id="1368">1368</a>
+<a href="#1369" id="1369">1369</a>
+<a href="#1370" id="1370">1370</a>
+<a href="#1371" id="1371">1371</a>
+<a href="#1372" id="1372">1372</a>
+<a href="#1373" id="1373">1373</a>
+<a href="#1374" id="1374">1374</a>
+<a href="#1375" id="1375">1375</a>
+<a href="#1376" id="1376">1376</a>
+<a href="#1377" id="1377">1377</a>
+<a href="#1378" id="1378">1378</a>
+<a href="#1379" id="1379">1379</a>
+<a href="#1380" id="1380">1380</a>
+<a href="#1381" id="1381">1381</a>
+<a href="#1382" id="1382">1382</a>
+<a href="#1383" id="1383">1383</a>
+<a href="#1384" id="1384">1384</a>
+<a href="#1385" id="1385">1385</a>
+<a href="#1386" id="1386">1386</a>
+<a href="#1387" id="1387">1387</a>
+<a href="#1388" id="1388">1388</a>
+<a href="#1389" id="1389">1389</a>
+<a href="#1390" id="1390">1390</a>
+<a href="#1391" id="1391">1391</a>
+<a href="#1392" id="1392">1392</a>
+<a href="#1393" id="1393">1393</a>
+<a href="#1394" id="1394">1394</a>
+<a href="#1395" id="1395">1395</a>
+<a href="#1396" id="1396">1396</a>
+<a href="#1397" id="1397">1397</a>
+<a href="#1398" id="1398">1398</a>
+<a href="#1399" id="1399">1399</a>
+<a href="#1400" id="1400">1400</a>
+<a href="#1401" id="1401">1401</a>
+<a href="#1402" id="1402">1402</a>
+<a href="#1403" id="1403">1403</a>
+<a href="#1404" id="1404">1404</a>
+<a href="#1405" id="1405">1405</a>
+<a href="#1406" id="1406">1406</a>
+<a href="#1407" id="1407">1407</a>
+<a href="#1408" id="1408">1408</a>
+<a href="#1409" id="1409">1409</a>
+<a href="#1410" id="1410">1410</a>
+<a href="#1411" id="1411">1411</a>
+<a href="#1412" id="1412">1412</a>
+<a href="#1413" id="1413">1413</a>
+<a href="#1414" id="1414">1414</a>
+<a href="#1415" id="1415">1415</a>
+<a href="#1416" id="1416">1416</a>
+<a href="#1417" id="1417">1417</a>
+<a href="#1418" id="1418">1418</a>
+<a href="#1419" id="1419">1419</a>
+<a href="#1420" id="1420">1420</a>
+<a href="#1421" id="1421">1421</a>
+<a href="#1422" id="1422">1422</a>
+<a href="#1423" id="1423">1423</a>
+<a href="#1424" id="1424">1424</a>
+<a href="#1425" id="1425">1425</a>
+<a href="#1426" id="1426">1426</a>
+<a href="#1427" id="1427">1427</a>
+<a href="#1428" id="1428">1428</a>
+<a href="#1429" id="1429">1429</a>
+<a href="#1430" id="1430">1430</a>
+<a href="#1431" id="1431">1431</a>
+<a href="#1432" id="1432">1432</a>
+<a href="#1433" id="1433">1433</a>
+<a href="#1434" id="1434">1434</a>
+<a href="#1435" id="1435">1435</a>
+<a href="#1436" id="1436">1436</a>
+<a href="#1437" id="1437">1437</a>
+<a href="#1438" id="1438">1438</a>
+<a href="#1439" id="1439">1439</a>
+<a href="#1440" id="1440">1440</a>
+<a href="#1441" id="1441">1441</a>
+<a href="#1442" id="1442">1442</a>
+<a href="#1443" id="1443">1443</a>
+<a href="#1444" id="1444">1444</a>
+<a href="#1445" id="1445">1445</a>
+<a href="#1446" id="1446">1446</a>
+<a href="#1447" id="1447">1447</a>
+<a href="#1448" id="1448">1448</a>
+<a href="#1449" id="1449">1449</a>
+<a href="#1450" id="1450">1450</a>
+<a href="#1451" id="1451">1451</a>
+<a href="#1452" id="1452">1452</a>
+<a href="#1453" id="1453">1453</a>
+<a href="#1454" id="1454">1454</a>
+<a href="#1455" id="1455">1455</a>
+<a href="#1456" id="1456">1456</a>
+<a href="#1457" id="1457">1457</a>
+<a href="#1458" id="1458">1458</a>
+<a href="#1459" id="1459">1459</a>
+<a href="#1460" id="1460">1460</a>
+<a href="#1461" id="1461">1461</a>
+<a href="#1462" id="1462">1462</a>
+<a href="#1463" id="1463">1463</a>
+<a href="#1464" id="1464">1464</a>
+<a href="#1465" id="1465">1465</a>
+<a href="#1466" id="1466">1466</a>
+<a href="#1467" id="1467">1467</a>
+<a href="#1468" id="1468">1468</a>
+<a href="#1469" id="1469">1469</a>
+<a href="#1470" id="1470">1470</a>
+<a href="#1471" id="1471">1471</a>
+<a href="#1472" id="1472">1472</a>
+<a href="#1473" id="1473">1473</a>
+<a href="#1474" id="1474">1474</a>
+<a href="#1475" id="1475">1475</a>
+<a href="#1476" id="1476">1476</a>
+<a href="#1477" id="1477">1477</a>
+<a href="#1478" id="1478">1478</a>
+<a href="#1479" id="1479">1479</a>
+<a href="#1480" id="1480">1480</a>
+<a href="#1481" id="1481">1481</a>
+<a href="#1482" id="1482">1482</a>
+<a href="#1483" id="1483">1483</a>
+<a href="#1484" id="1484">1484</a>
+<a href="#1485" id="1485">1485</a>
+<a href="#1486" id="1486">1486</a>
+<a href="#1487" id="1487">1487</a>
+<a href="#1488" id="1488">1488</a>
+<a href="#1489" id="1489">1489</a>
+<a href="#1490" id="1490">1490</a>
+<a href="#1491" id="1491">1491</a>
+<a href="#1492" id="1492">1492</a>
+<a href="#1493" id="1493">1493</a>
+<a href="#1494" id="1494">1494</a>
+<a href="#1495" id="1495">1495</a>
+<a href="#1496" id="1496">1496</a>
+<a href="#1497" id="1497">1497</a>
+<a href="#1498" id="1498">1498</a>
+<a href="#1499" id="1499">1499</a>
+<a href="#1500" id="1500">1500</a>
+<a href="#1501" id="1501">1501</a>
+<a href="#1502" id="1502">1502</a>
+<a href="#1503" id="1503">1503</a>
+<a href="#1504" id="1504">1504</a>
+<a href="#1505" id="1505">1505</a>
+<a href="#1506" id="1506">1506</a>
+<a href="#1507" id="1507">1507</a>
+<a href="#1508" id="1508">1508</a>
+<a href="#1509" id="1509">1509</a>
+<a href="#1510" id="1510">1510</a>
+<a href="#1511" id="1511">1511</a>
+<a href="#1512" id="1512">1512</a>
+<a href="#1513" id="1513">1513</a>
+<a href="#1514" id="1514">1514</a>
+<a href="#1515" id="1515">1515</a>
+<a href="#1516" id="1516">1516</a>
+<a href="#1517" id="1517">1517</a>
+<a href="#1518" id="1518">1518</a>
+<a href="#1519" id="1519">1519</a>
+<a href="#1520" id="1520">1520</a>
+<a href="#1521" id="1521">1521</a>
+<a href="#1522" id="1522">1522</a>
+<a href="#1523" id="1523">1523</a>
+<a href="#1524" id="1524">1524</a>
+<a href="#1525" id="1525">1525</a>
+<a href="#1526" id="1526">1526</a>
+<a href="#1527" id="1527">1527</a>
+<a href="#1528" id="1528">1528</a>
+<a href="#1529" id="1529">1529</a>
+<a href="#1530" id="1530">1530</a>
+<a href="#1531" id="1531">1531</a>
+<a href="#1532" id="1532">1532</a>
+<a href="#1533" id="1533">1533</a>
+<a href="#1534" id="1534">1534</a>
+<a href="#1535" id="1535">1535</a>
+<a href="#1536" id="1536">1536</a>
+<a href="#1537" id="1537">1537</a>
+<a href="#1538" id="1538">1538</a>
+<a href="#1539" id="1539">1539</a>
+<a href="#1540" id="1540">1540</a>
+<a href="#1541" id="1541">1541</a>
+<a href="#1542" id="1542">1542</a>
+<a href="#1543" id="1543">1543</a>
+<a href="#1544" id="1544">1544</a>
+<a href="#1545" id="1545">1545</a>
+<a href="#1546" id="1546">1546</a>
+<a href="#1547" id="1547">1547</a>
+<a href="#1548" id="1548">1548</a>
+<a href="#1549" id="1549">1549</a>
+<a href="#1550" id="1550">1550</a>
+<a href="#1551" id="1551">1551</a>
+<a href="#1552" id="1552">1552</a>
+<a href="#1553" id="1553">1553</a>
+<a href="#1554" id="1554">1554</a>
+<a href="#1555" id="1555">1555</a>
+<a href="#1556" id="1556">1556</a>
+<a href="#1557" id="1557">1557</a>
+<a href="#1558" id="1558">1558</a>
+<a href="#1559" id="1559">1559</a>
+<a href="#1560" id="1560">1560</a>
+<a href="#1561" id="1561">1561</a>
+<a href="#1562" id="1562">1562</a>
+<a href="#1563" id="1563">1563</a>
+<a href="#1564" id="1564">1564</a>
+<a href="#1565" id="1565">1565</a>
+<a href="#1566" id="1566">1566</a>
+<a href="#1567" id="1567">1567</a>
+<a href="#1568" id="1568">1568</a>
+<a href="#1569" id="1569">1569</a>
+<a href="#1570" id="1570">1570</a>
+<a href="#1571" id="1571">1571</a>
+<a href="#1572" id="1572">1572</a>
+<a href="#1573" id="1573">1573</a>
+<a href="#1574" id="1574">1574</a>
+<a href="#1575" id="1575">1575</a>
+<a href="#1576" id="1576">1576</a>
+<a href="#1577" id="1577">1577</a>
+<a href="#1578" id="1578">1578</a>
+<a href="#1579" id="1579">1579</a>
+<a href="#1580" id="1580">1580</a>
+<a href="#1581" id="1581">1581</a>
+<a href="#1582" id="1582">1582</a>
+<a href="#1583" id="1583">1583</a>
+<a href="#1584" id="1584">1584</a>
+<a href="#1585" id="1585">1585</a>
+<a href="#1586" id="1586">1586</a>
+<a href="#1587" id="1587">1587</a>
+<a href="#1588" id="1588">1588</a>
+<a href="#1589" id="1589">1589</a>
+<a href="#1590" id="1590">1590</a>
+<a href="#1591" id="1591">1591</a>
+<a href="#1592" id="1592">1592</a>
+<a href="#1593" id="1593">1593</a>
+<a href="#1594" id="1594">1594</a>
+<a href="#1595" id="1595">1595</a>
+<a href="#1596" id="1596">1596</a>
+<a href="#1597" id="1597">1597</a>
+<a href="#1598" id="1598">1598</a>
+<a href="#1599" id="1599">1599</a>
+<a href="#1600" id="1600">1600</a>
+<a href="#1601" id="1601">1601</a>
+<a href="#1602" id="1602">1602</a>
+</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
+// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
+//
+// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
+//
+// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
+// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// You may not use this file except in accordance with one or both of these
+// licenses.
+
+</span><span class="doccomment">//! Coin selection
+//!
+//! This module provides the trait [`CoinSelectionAlgorithm`] that can be implemented to
+//! define custom coin selection algorithms.
+//!
+//! You can specify a custom coin selection algorithm through the [`coin_selection`] method on
+//! [`TxBuilder`]. [`DefaultCoinSelectionAlgorithm`] aliases the coin selection algorithm that will
+//! be used if it is not explicitly set.
+//!
+//! [`TxBuilder`]: super::tx_builder::TxBuilder
+//! [`coin_selection`]: super::tx_builder::TxBuilder::coin_selection
+//!
+//! ## Example
+//!
+//! ```
+//! # use std::str::FromStr;
+//! # use bitcoin::*;
+//! # use bdk_wallet::wallet::{self, ChangeSet, coin_selection::*, coin_selection};
+//! # use bdk_wallet::wallet::error::CreateTxError;
+//! # use bdk_persist::PersistBackend;
+//! # use bdk_wallet::*;
+//! # use bdk_wallet::wallet::coin_selection::decide_change;
+//! # use anyhow::Error;
+//! #[derive(Debug)]
+//! struct AlwaysSpendEverything;
+//!
+//! impl CoinSelectionAlgorithm for AlwaysSpendEverything {
+//! fn coin_select(
+//! &self,
+//! required_utxos: Vec<WeightedUtxo>,
+//! optional_utxos: Vec<WeightedUtxo>,
+//! fee_rate: FeeRate,
+//! target_amount: u64,
+//! drain_script: &Script,
+//! ) -> Result<CoinSelectionResult, coin_selection::Error> {
+//! let mut selected_amount = 0;
+//! let mut additional_weight = Weight::ZERO;
+//! let all_utxos_selected = required_utxos
+//! .into_iter()
+//! .chain(optional_utxos)
+//! .scan(
+//! (&mut selected_amount, &mut additional_weight),
+//! |(selected_amount, additional_weight), weighted_utxo| {
+//! **selected_amount += weighted_utxo.utxo.txout().value.to_sat();
+//! **additional_weight += Weight::from_wu(
+//! (TxIn::default().segwit_weight().to_wu()
+//! + weighted_utxo.satisfaction_weight as u64)
+//! as u64,
+//! );
+//! Some(weighted_utxo.utxo)
+//! },
+//! )
+//! .collect::<Vec<_>>();
+//! let additional_fees = (fee_rate * additional_weight).to_sat();
+//! let amount_needed_with_fees = additional_fees + target_amount;
+//! if selected_amount < amount_needed_with_fees {
+//! return Err(coin_selection::Error::InsufficientFunds {
+//! needed: amount_needed_with_fees,
+//! available: selected_amount,
+//! });
+//! }
+//!
+//! let remaining_amount = selected_amount - amount_needed_with_fees;
+//!
+//! let excess = decide_change(remaining_amount, fee_rate, drain_script);
+//!
+//! Ok(CoinSelectionResult {
+//! selected: all_utxos_selected,
+//! fee_amount: additional_fees,
+//! excess,
+//! })
+//! }
+//! }
+//!
+//! # let mut wallet = doctest_wallet!();
+//! // create wallet, sync, ...
+//!
+//! let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt")
+//! .unwrap()
+//! .require_network(Network::Testnet)
+//! .unwrap();
+//! let psbt = {
+//! let mut builder = wallet.build_tx().coin_selection(AlwaysSpendEverything);
+//! builder.add_recipient(to_address.script_pubkey(), Amount::from_sat(50_000));
+//! builder.finish()?
+//! };
+//!
+//! // inspect, sign, broadcast, ...
+//!
+//! # Ok::<(), anyhow::Error>(())
+//! ```
+
+</span><span class="kw">use </span><span class="kw">crate</span>::chain::collections::HashSet;
+<span class="kw">use </span><span class="kw">crate</span>::wallet::utils::IsDust;
+<span class="kw">use </span><span class="kw">crate</span>::Utxo;
+<span class="kw">use </span><span class="kw">crate</span>::WeightedUtxo;
+<span class="kw">use </span>bitcoin::FeeRate;
+
+<span class="kw">use </span>alloc::vec::Vec;
+<span class="kw">use </span>bitcoin::consensus::encode::serialize;
+<span class="kw">use </span>bitcoin::OutPoint;
+<span class="kw">use </span>bitcoin::TxIn;
+<span class="kw">use </span>bitcoin::{Script, Weight};
+
+<span class="kw">use </span>core::convert::TryInto;
+<span class="kw">use </span>core::fmt::{<span class="self">self</span>, Formatter};
+<span class="kw">use </span>rand::seq::SliceRandom;
+
+<span class="doccomment">/// Default coin selection algorithm used by [`TxBuilder`](super::tx_builder::TxBuilder) if not
+/// overridden
+</span><span class="kw">pub type </span>DefaultCoinSelectionAlgorithm = BranchAndBoundCoinSelection;
+
+<span class="doccomment">/// Errors that can be thrown by the [`coin_selection`](crate::wallet::coin_selection) module
+</span><span class="attr">#[derive(Debug)]
+</span><span class="kw">pub enum </span>Error {
+ <span class="doccomment">/// Wallet's UTXO set is not enough to cover recipient's requested plus fee
+ </span>InsufficientFunds {
+ <span class="doccomment">/// Sats needed for some transaction
+ </span>needed: u64,
+ <span class="doccomment">/// Sats available for spending
+ </span>available: u64,
+ },
+ <span class="doccomment">/// Branch and bound coin selection tries to avoid needing a change by finding the right inputs for
+ /// the desired outputs plus fee, if there is not such combination this error is thrown
+ </span>BnBNoExactMatch,
+ <span class="doccomment">/// Branch and bound coin selection possible attempts with sufficiently big UTXO set could grow
+ /// exponentially, thus a limit is set, and when hit, this error is thrown
+ </span>BnBTotalTriesExceeded,
+}
+
+<span class="kw">impl </span>fmt::Display <span class="kw">for </span>Error {
+ <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
+ <span class="kw">match </span><span class="self">self </span>{
+ <span class="self">Self</span>::InsufficientFunds { needed, available } => <span class="macro">write!</span>(
+ f,
+ <span class="string">"Insufficient funds: {} sat available of {} sat needed"</span>,
+ available, needed
+ ),
+ <span class="self">Self</span>::BnBTotalTriesExceeded => {
+ <span class="macro">write!</span>(f, <span class="string">"Branch and bound coin selection: total tries exceeded"</span>)
+ }
+ <span class="self">Self</span>::BnBNoExactMatch => <span class="macro">write!</span>(f, <span class="string">"Branch and bound coin selection: not exact match"</span>),
+ }
+ }
+}
+
+<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
+</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>Error {}
+
+<span class="attr">#[derive(Debug)]
+</span><span class="doccomment">/// Remaining amount after performing coin selection
+</span><span class="kw">pub enum </span>Excess {
+ <span class="doccomment">/// It's not possible to create spendable output from excess using the current drain output
+ </span>NoChange {
+ <span class="doccomment">/// Threshold to consider amount as dust for this particular change script_pubkey
+ </span>dust_threshold: u64,
+ <span class="doccomment">/// Exceeding amount of current selection over outgoing value and fee costs
+ </span>remaining_amount: u64,
+ <span class="doccomment">/// The calculated fee for the drain TxOut with the selected script_pubkey
+ </span>change_fee: u64,
+ },
+ <span class="doccomment">/// It's possible to create spendable output from excess using the current drain output
+ </span>Change {
+ <span class="doccomment">/// Effective amount available to create change after deducting the change output fee
+ </span>amount: u64,
+ <span class="doccomment">/// The deducted change output fee
+ </span>fee: u64,
+ },
+}
+
+<span class="doccomment">/// Result of a successful coin selection
+</span><span class="attr">#[derive(Debug)]
+</span><span class="kw">pub struct </span>CoinSelectionResult {
+ <span class="doccomment">/// List of outputs selected for use as inputs
+ </span><span class="kw">pub </span>selected: Vec<Utxo>,
+ <span class="doccomment">/// Total fee amount for the selected utxos in satoshis
+ </span><span class="kw">pub </span>fee_amount: u64,
+ <span class="doccomment">/// Remaining amount after deducing fees and outgoing outputs
+ </span><span class="kw">pub </span>excess: Excess,
+}
+
+<span class="kw">impl </span>CoinSelectionResult {
+ <span class="doccomment">/// The total value of the inputs selected.
+ </span><span class="kw">pub fn </span>selected_amount(<span class="kw-2">&</span><span class="self">self</span>) -> u64 {
+ <span class="self">self</span>.selected.iter().map(|u| u.txout().value.to_sat()).sum()
+ }
+
+ <span class="doccomment">/// The total value of the inputs selected from the local wallet.
+ </span><span class="kw">pub fn </span>local_selected_amount(<span class="kw-2">&</span><span class="self">self</span>) -> u64 {
+ <span class="self">self</span>.selected
+ .iter()
+ .filter_map(|u| <span class="kw">match </span>u {
+ Utxo::Local(<span class="kw">_</span>) => <span class="prelude-val">Some</span>(u.txout().value.to_sat()),
+ <span class="kw">_ </span>=> <span class="prelude-val">None</span>,
+ })
+ .sum()
+ }
+}
+
+<span class="doccomment">/// Trait for generalized coin selection algorithms
+///
+/// This trait can be implemented to make the [`Wallet`](super::Wallet) use a customized coin
+/// selection algorithm when it creates transactions.
+///
+/// For an example see [this module](crate::wallet::coin_selection)'s documentation.
+</span><span class="kw">pub trait </span>CoinSelectionAlgorithm: core::fmt::Debug {
+ <span class="doccomment">/// Perform the coin selection
+ ///
+ /// - `database`: a reference to the wallet's database that can be used to lookup additional
+ /// details for a specific UTXO
+ /// - `required_utxos`: the utxos that must be spent regardless of `target_amount` with their
+ /// weight cost
+ /// - `optional_utxos`: the remaining available utxos to satisfy `target_amount` with their
+ /// weight cost
+ /// - `fee_rate`: fee rate to use
+ /// - `target_amount`: the outgoing amount in satoshis and the fees already
+ /// accumulated from added outputs and transaction’s header.
+ /// - `drain_script`: the script to use in case of change
+ </span><span class="attr">#[allow(clippy::too_many_arguments)]
+ </span><span class="kw">fn </span>coin_select(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ required_utxos: Vec<WeightedUtxo>,
+ optional_utxos: Vec<WeightedUtxo>,
+ fee_rate: FeeRate,
+ target_amount: u64,
+ drain_script: <span class="kw-2">&</span>Script,
+ ) -> <span class="prelude-ty">Result</span><CoinSelectionResult, Error>;
+}
+
+<span class="doccomment">/// Simple and dumb coin selection
+///
+/// This coin selection algorithm sorts the available UTXOs by value and then picks them starting
+/// from the largest ones until the required amount is reached.
+</span><span class="attr">#[derive(Debug, Default, Clone, Copy)]
+</span><span class="kw">pub struct </span>LargestFirstCoinSelection;
+
+<span class="kw">impl </span>CoinSelectionAlgorithm <span class="kw">for </span>LargestFirstCoinSelection {
+ <span class="kw">fn </span>coin_select(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ required_utxos: Vec<WeightedUtxo>,
+ <span class="kw-2">mut </span>optional_utxos: Vec<WeightedUtxo>,
+ fee_rate: FeeRate,
+ target_amount: u64,
+ drain_script: <span class="kw-2">&</span>Script,
+ ) -> <span class="prelude-ty">Result</span><CoinSelectionResult, Error> {
+ <span class="comment">// We put the "required UTXOs" first and make sure the optional UTXOs are sorted,
+ // initially smallest to largest, before being reversed with `.rev()`.
+ </span><span class="kw">let </span>utxos = {
+ optional_utxos.sort_unstable_by_key(|wu| wu.utxo.txout().value);
+ required_utxos
+ .into_iter()
+ .map(|utxo| (<span class="bool-val">true</span>, utxo))
+ .chain(optional_utxos.into_iter().rev().map(|utxo| (<span class="bool-val">false</span>, utxo)))
+ };
+
+ select_sorted_utxos(utxos, fee_rate, target_amount, drain_script)
+ }
+}
+
+<span class="doccomment">/// OldestFirstCoinSelection always picks the utxo with the smallest blockheight to add to the selected coins next
+///
+/// This coin selection algorithm sorts the available UTXOs by blockheight and then picks them starting
+/// from the oldest ones until the required amount is reached.
+</span><span class="attr">#[derive(Debug, Default, Clone, Copy)]
+</span><span class="kw">pub struct </span>OldestFirstCoinSelection;
+
+<span class="kw">impl </span>CoinSelectionAlgorithm <span class="kw">for </span>OldestFirstCoinSelection {
+ <span class="kw">fn </span>coin_select(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ required_utxos: Vec<WeightedUtxo>,
+ <span class="kw-2">mut </span>optional_utxos: Vec<WeightedUtxo>,
+ fee_rate: FeeRate,
+ target_amount: u64,
+ drain_script: <span class="kw-2">&</span>Script,
+ ) -> <span class="prelude-ty">Result</span><CoinSelectionResult, Error> {
+ <span class="comment">// We put the "required UTXOs" first and make sure the optional UTXOs are sorted from
+ // oldest to newest according to blocktime
+ // For utxo that doesn't exist in DB, they will have lowest priority to be selected
+ </span><span class="kw">let </span>utxos = {
+ optional_utxos.sort_unstable_by_key(|wu| <span class="kw">match </span><span class="kw-2">&</span>wu.utxo {
+ Utxo::Local(local) => <span class="prelude-val">Some</span>(local.confirmation_time),
+ Utxo::Foreign { .. } => <span class="prelude-val">None</span>,
+ });
+
+ required_utxos
+ .into_iter()
+ .map(|utxo| (<span class="bool-val">true</span>, utxo))
+ .chain(optional_utxos.into_iter().map(|utxo| (<span class="bool-val">false</span>, utxo)))
+ };
+
+ select_sorted_utxos(utxos, fee_rate, target_amount, drain_script)
+ }
+}
+
+<span class="doccomment">/// Decide if change can be created
+///
+/// - `remaining_amount`: the amount in which the selected coins exceed the target amount
+/// - `fee_rate`: required fee rate for the current selection
+/// - `drain_script`: script to consider change creation
+</span><span class="kw">pub fn </span>decide_change(remaining_amount: u64, fee_rate: FeeRate, drain_script: <span class="kw-2">&</span>Script) -> Excess {
+ <span class="comment">// drain_output_len = size(len(script_pubkey)) + len(script_pubkey) + size(output_value)
+ </span><span class="kw">let </span>drain_output_len = serialize(drain_script).len() + <span class="number">8usize</span>;
+ <span class="kw">let </span>change_fee =
+ (fee_rate * Weight::from_vb(drain_output_len <span class="kw">as </span>u64).expect(<span class="string">"overflow occurred"</span>)).to_sat();
+ <span class="kw">let </span>drain_val = remaining_amount.saturating_sub(change_fee);
+
+ <span class="kw">if </span>drain_val.is_dust(drain_script) {
+ <span class="kw">let </span>dust_threshold = drain_script.dust_value().to_sat();
+ Excess::NoChange {
+ dust_threshold,
+ change_fee,
+ remaining_amount,
+ }
+ } <span class="kw">else </span>{
+ Excess::Change {
+ amount: drain_val,
+ fee: change_fee,
+ }
+ }
+}
+
+<span class="kw">fn </span>select_sorted_utxos(
+ utxos: <span class="kw">impl </span>Iterator<Item = (bool, WeightedUtxo)>,
+ fee_rate: FeeRate,
+ target_amount: u64,
+ drain_script: <span class="kw-2">&</span>Script,
+) -> <span class="prelude-ty">Result</span><CoinSelectionResult, Error> {
+ <span class="kw">let </span><span class="kw-2">mut </span>selected_amount = <span class="number">0</span>;
+ <span class="kw">let </span><span class="kw-2">mut </span>fee_amount = <span class="number">0</span>;
+ <span class="kw">let </span>selected = utxos
+ .scan(
+ (<span class="kw-2">&mut </span>selected_amount, <span class="kw-2">&mut </span>fee_amount),
+ |(selected_amount, fee_amount), (must_use, weighted_utxo)| {
+ <span class="kw">if </span>must_use || <span class="kw-2">**</span>selected_amount < target_amount + <span class="kw-2">**</span>fee_amount {
+ <span class="kw-2">**</span>fee_amount += (fee_rate
+ * Weight::from_wu(
+ TxIn::default().segwit_weight().to_wu()
+ + weighted_utxo.satisfaction_weight <span class="kw">as </span>u64,
+ ))
+ .to_sat();
+ <span class="kw-2">**</span>selected_amount += weighted_utxo.utxo.txout().value.to_sat();
+ <span class="prelude-val">Some</span>(weighted_utxo.utxo)
+ } <span class="kw">else </span>{
+ <span class="prelude-val">None
+ </span>}
+ },
+ )
+ .collect::<Vec<<span class="kw">_</span>>>();
+
+ <span class="kw">let </span>amount_needed_with_fees = target_amount + fee_amount;
+ <span class="kw">if </span>selected_amount < amount_needed_with_fees {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(Error::InsufficientFunds {
+ needed: amount_needed_with_fees,
+ available: selected_amount,
+ });
+ }
+
+ <span class="kw">let </span>remaining_amount = selected_amount - amount_needed_with_fees;
+
+ <span class="kw">let </span>excess = decide_change(remaining_amount, fee_rate, drain_script);
+
+ <span class="prelude-val">Ok</span>(CoinSelectionResult {
+ selected,
+ fee_amount,
+ excess,
+ })
+}
+
+<span class="attr">#[derive(Debug, Clone)]
+</span><span class="comment">// Adds fee information to an UTXO.
+</span><span class="kw">struct </span>OutputGroup {
+ weighted_utxo: WeightedUtxo,
+ <span class="comment">// Amount of fees for spending a certain utxo, calculated using a certain FeeRate
+ </span>fee: u64,
+ <span class="comment">// The effective value of the UTXO, i.e., the utxo value minus the fee for spending it
+ </span>effective_value: i64,
+}
+
+<span class="kw">impl </span>OutputGroup {
+ <span class="kw">fn </span>new(weighted_utxo: WeightedUtxo, fee_rate: FeeRate) -> <span class="self">Self </span>{
+ <span class="kw">let </span>fee = (fee_rate
+ * Weight::from_wu(
+ TxIn::default().segwit_weight().to_wu() + weighted_utxo.satisfaction_weight <span class="kw">as </span>u64,
+ ))
+ .to_sat();
+ <span class="kw">let </span>effective_value = weighted_utxo.utxo.txout().value.to_sat() <span class="kw">as </span>i64 - fee <span class="kw">as </span>i64;
+ OutputGroup {
+ weighted_utxo,
+ fee,
+ effective_value,
+ }
+ }
+}
+
+<span class="doccomment">/// Branch and bound coin selection
+///
+/// Code adapted from Bitcoin Core's implementation and from Mark Erhardt Master's Thesis: <http://murch.one/wp-content/uploads/2016/11/erhardt2016coinselection.pdf>
+</span><span class="attr">#[derive(Debug, Clone)]
+</span><span class="kw">pub struct </span>BranchAndBoundCoinSelection {
+ size_of_change: u64,
+}
+
+<span class="kw">impl </span>Default <span class="kw">for </span>BranchAndBoundCoinSelection {
+ <span class="kw">fn </span>default() -> <span class="self">Self </span>{
+ <span class="self">Self </span>{
+ <span class="comment">// P2WPKH cost of change -> value (8 bytes) + script len (1 bytes) + script (22 bytes)
+ </span>size_of_change: <span class="number">8 </span>+ <span class="number">1 </span>+ <span class="number">22</span>,
+ }
+ }
+}
+
+<span class="kw">impl </span>BranchAndBoundCoinSelection {
+ <span class="doccomment">/// Create new instance with target size for change output
+ </span><span class="kw">pub fn </span>new(size_of_change: u64) -> <span class="self">Self </span>{
+ <span class="self">Self </span>{ size_of_change }
+ }
+}
+
+<span class="kw">const </span>BNB_TOTAL_TRIES: usize = <span class="number">100_000</span>;
+
+<span class="kw">impl </span>CoinSelectionAlgorithm <span class="kw">for </span>BranchAndBoundCoinSelection {
+ <span class="kw">fn </span>coin_select(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ required_utxos: Vec<WeightedUtxo>,
+ optional_utxos: Vec<WeightedUtxo>,
+ fee_rate: FeeRate,
+ target_amount: u64,
+ drain_script: <span class="kw-2">&</span>Script,
+ ) -> <span class="prelude-ty">Result</span><CoinSelectionResult, Error> {
+ <span class="comment">// Mapping every (UTXO, usize) to an output group
+ </span><span class="kw">let </span>required_utxos: Vec<OutputGroup> = required_utxos
+ .into_iter()
+ .map(|u| OutputGroup::new(u, fee_rate))
+ .collect();
+
+ <span class="comment">// Mapping every (UTXO, usize) to an output group, filtering UTXOs with a negative
+ // effective value
+ </span><span class="kw">let </span>optional_utxos: Vec<OutputGroup> = optional_utxos
+ .into_iter()
+ .map(|u| OutputGroup::new(u, fee_rate))
+ .filter(|u| u.effective_value.is_positive())
+ .collect();
+
+ <span class="kw">let </span>curr_value = required_utxos
+ .iter()
+ .fold(<span class="number">0</span>, |acc, x| acc + x.effective_value);
+
+ <span class="kw">let </span>curr_available_value = optional_utxos
+ .iter()
+ .fold(<span class="number">0</span>, |acc, x| acc + x.effective_value);
+
+ <span class="kw">let </span>cost_of_change =
+ (Weight::from_vb(<span class="self">self</span>.size_of_change).expect(<span class="string">"overflow occurred"</span>) * fee_rate).to_sat();
+
+ <span class="comment">// `curr_value` and `curr_available_value` are both the sum of *effective_values* of
+ // the UTXOs. For the optional UTXOs (curr_available_value) we filter out UTXOs with
+ // negative effective value, so it will always be positive.
+ //
+ // Since we are required to spend the required UTXOs (curr_value) we have to consider
+ // all their effective values, even when negative, which means that curr_value could
+ // be negative as well.
+ //
+ // If the sum of curr_value and curr_available_value is negative or lower than our target,
+ // we can immediately exit with an error, as it's guaranteed we will never find a solution
+ // if we actually run the BnB.
+ </span><span class="kw">let </span>total_value: <span class="prelude-ty">Result</span><u64, <span class="kw">_</span>> = (curr_available_value + curr_value).try_into();
+ <span class="kw">match </span>total_value {
+ <span class="prelude-val">Ok</span>(v) <span class="kw">if </span>v >= target_amount => {}
+ <span class="kw">_ </span>=> {
+ <span class="comment">// Assume we spend all the UTXOs we can (all the required + all the optional with
+ // positive effective value), sum their value and their fee cost.
+ </span><span class="kw">let </span>(utxo_fees, utxo_value) = required_utxos
+ .iter()
+ .chain(optional_utxos.iter())
+ .fold((<span class="number">0</span>, <span class="number">0</span>), |(<span class="kw-2">mut </span>fees, <span class="kw-2">mut </span>value), utxo| {
+ fees += utxo.fee;
+ value += utxo.weighted_utxo.utxo.txout().value.to_sat();
+
+ (fees, value)
+ });
+
+ <span class="comment">// Add to the target the fee cost of the UTXOs
+ </span><span class="kw">return </span><span class="prelude-val">Err</span>(Error::InsufficientFunds {
+ needed: target_amount + utxo_fees,
+ available: utxo_value,
+ });
+ }
+ }
+
+ <span class="kw">let </span>target_amount = target_amount
+ .try_into()
+ .expect(<span class="string">"Bitcoin amount to fit into i64"</span>);
+
+ <span class="kw">if </span>curr_value > target_amount {
+ <span class="comment">// remaining_amount can't be negative as that would mean the
+ // selection wasn't successful
+ // target_amount = amount_needed + (fee_amount - vin_fees)
+ </span><span class="kw">let </span>remaining_amount = (curr_value - target_amount) <span class="kw">as </span>u64;
+
+ <span class="kw">let </span>excess = decide_change(remaining_amount, fee_rate, drain_script);
+
+ <span class="kw">return </span><span class="prelude-val">Ok</span>(BranchAndBoundCoinSelection::calculate_cs_result(
+ <span class="macro">vec!</span>[],
+ required_utxos,
+ excess,
+ ));
+ }
+
+ <span class="prelude-val">Ok</span>(<span class="self">self
+ </span>.bnb(
+ required_utxos.clone(),
+ optional_utxos.clone(),
+ curr_value,
+ curr_available_value,
+ target_amount,
+ cost_of_change,
+ drain_script,
+ fee_rate,
+ )
+ .unwrap_or_else(|<span class="kw">_</span>| {
+ <span class="self">self</span>.single_random_draw(
+ required_utxos,
+ optional_utxos,
+ curr_value,
+ target_amount,
+ drain_script,
+ fee_rate,
+ )
+ }))
+ }
+}
+
+<span class="kw">impl </span>BranchAndBoundCoinSelection {
+ <span class="comment">// TODO: make this more Rust-onic :)
+ // (And perhaps refactor with less arguments?)
+ </span><span class="attr">#[allow(clippy::too_many_arguments)]
+ </span><span class="kw">fn </span>bnb(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ required_utxos: Vec<OutputGroup>,
+ <span class="kw-2">mut </span>optional_utxos: Vec<OutputGroup>,
+ <span class="kw-2">mut </span>curr_value: i64,
+ <span class="kw-2">mut </span>curr_available_value: i64,
+ target_amount: i64,
+ cost_of_change: u64,
+ drain_script: <span class="kw-2">&</span>Script,
+ fee_rate: FeeRate,
+ ) -> <span class="prelude-ty">Result</span><CoinSelectionResult, Error> {
+ <span class="comment">// current_selection[i] will contain true if we are using optional_utxos[i],
+ // false otherwise. Note that current_selection.len() could be less than
+ // optional_utxos.len(), it just means that we still haven't decided if we should keep
+ // certain optional_utxos or not.
+ </span><span class="kw">let </span><span class="kw-2">mut </span>current_selection: Vec<bool> = Vec::with_capacity(optional_utxos.len());
+
+ <span class="comment">// Sort the utxo_pool
+ </span>optional_utxos.sort_unstable_by_key(|a| a.effective_value);
+ optional_utxos.reverse();
+
+ <span class="comment">// Contains the best selection we found
+ </span><span class="kw">let </span><span class="kw-2">mut </span>best_selection = Vec::new();
+ <span class="kw">let </span><span class="kw-2">mut </span>best_selection_value = <span class="prelude-val">None</span>;
+
+ <span class="comment">// Depth First search loop for choosing the UTXOs
+ </span><span class="kw">for _ in </span><span class="number">0</span>..BNB_TOTAL_TRIES {
+ <span class="comment">// Conditions for starting a backtrack
+ </span><span class="kw">let </span><span class="kw-2">mut </span>backtrack = <span class="bool-val">false</span>;
+ <span class="comment">// Cannot possibly reach target with the amount remaining in the curr_available_value,
+ // or the selected value is out of range.
+ // Go back and try other branch
+ </span><span class="kw">if </span>curr_value + curr_available_value < target_amount
+ || curr_value > target_amount + cost_of_change <span class="kw">as </span>i64
+ {
+ backtrack = <span class="bool-val">true</span>;
+ } <span class="kw">else if </span>curr_value >= target_amount {
+ <span class="comment">// Selected value is within range, there's no point in going forward. Start
+ // backtracking
+ </span>backtrack = <span class="bool-val">true</span>;
+
+ <span class="comment">// If we found a solution better than the previous one, or if there wasn't previous
+ // solution, update the best solution
+ </span><span class="kw">if </span>best_selection_value.is_none() || curr_value < best_selection_value.unwrap() {
+ best_selection.clone_from(<span class="kw-2">&</span>current_selection);
+ best_selection_value = <span class="prelude-val">Some</span>(curr_value);
+ }
+
+ <span class="comment">// If we found a perfect match, break here
+ </span><span class="kw">if </span>curr_value == target_amount {
+ <span class="kw">break</span>;
+ }
+ }
+
+ <span class="comment">// Backtracking, moving backwards
+ </span><span class="kw">if </span>backtrack {
+ <span class="comment">// Walk backwards to find the last included UTXO that still needs to have its omission branch traversed.
+ </span><span class="kw">while let </span><span class="prelude-val">Some</span>(<span class="bool-val">false</span>) = current_selection.last() {
+ current_selection.pop();
+ curr_available_value += optional_utxos[current_selection.len()].effective_value;
+ }
+
+ <span class="kw">if </span>current_selection.last_mut().is_none() {
+ <span class="comment">// We have walked back to the first utxo and no branch is untraversed. All solutions searched
+ // If best selection is empty, then there's no exact match
+ </span><span class="kw">if </span>best_selection.is_empty() {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(Error::BnBNoExactMatch);
+ }
+ <span class="kw">break</span>;
+ }
+
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(c) = current_selection.last_mut() {
+ <span class="comment">// Output was included on previous iterations, try excluding now.
+ </span><span class="kw-2">*</span>c = <span class="bool-val">false</span>;
+ }
+
+ <span class="kw">let </span>utxo = <span class="kw-2">&</span>optional_utxos[current_selection.len() - <span class="number">1</span>];
+ curr_value -= utxo.effective_value;
+ } <span class="kw">else </span>{
+ <span class="comment">// Moving forwards, continuing down this branch
+ </span><span class="kw">let </span>utxo = <span class="kw-2">&</span>optional_utxos[current_selection.len()];
+
+ <span class="comment">// Remove this utxo from the curr_available_value utxo amount
+ </span>curr_available_value -= utxo.effective_value;
+
+ <span class="comment">// Inclusion branch first (Largest First Exploration)
+ </span>current_selection.push(<span class="bool-val">true</span>);
+ curr_value += utxo.effective_value;
+ }
+ }
+
+ <span class="comment">// Check for solution
+ </span><span class="kw">if </span>best_selection.is_empty() {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(Error::BnBTotalTriesExceeded);
+ }
+
+ <span class="comment">// Set output set
+ </span><span class="kw">let </span>selected_utxos = optional_utxos
+ .into_iter()
+ .zip(best_selection)
+ .filter_map(|(optional, is_in_best)| <span class="kw">if </span>is_in_best { <span class="prelude-val">Some</span>(optional) } <span class="kw">else </span>{ <span class="prelude-val">None </span>})
+ .collect::<Vec<OutputGroup>>();
+
+ <span class="kw">let </span>selected_amount = best_selection_value.unwrap();
+
+ <span class="comment">// remaining_amount can't be negative as that would mean the
+ // selection wasn't successful
+ // target_amount = amount_needed + (fee_amount - vin_fees)
+ </span><span class="kw">let </span>remaining_amount = (selected_amount - target_amount) <span class="kw">as </span>u64;
+
+ <span class="kw">let </span>excess = decide_change(remaining_amount, fee_rate, drain_script);
+
+ <span class="prelude-val">Ok</span>(BranchAndBoundCoinSelection::calculate_cs_result(
+ selected_utxos,
+ required_utxos,
+ excess,
+ ))
+ }
+
+ <span class="attr">#[allow(clippy::too_many_arguments)]
+ </span><span class="kw">fn </span>single_random_draw(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ required_utxos: Vec<OutputGroup>,
+ <span class="kw-2">mut </span>optional_utxos: Vec<OutputGroup>,
+ curr_value: i64,
+ target_amount: i64,
+ drain_script: <span class="kw-2">&</span>Script,
+ fee_rate: FeeRate,
+ ) -> CoinSelectionResult {
+ optional_utxos.shuffle(<span class="kw-2">&mut </span>rand::thread_rng());
+ <span class="kw">let </span>selected_utxos = optional_utxos.into_iter().fold(
+ (curr_value, <span class="macro">vec!</span>[]),
+ |(<span class="kw-2">mut </span>amount, <span class="kw-2">mut </span>utxos), utxo| {
+ <span class="kw">if </span>amount >= target_amount {
+ (amount, utxos)
+ } <span class="kw">else </span>{
+ amount += utxo.effective_value;
+ utxos.push(utxo);
+ (amount, utxos)
+ }
+ },
+ );
+
+ <span class="comment">// remaining_amount can't be negative as that would mean the
+ // selection wasn't successful
+ // target_amount = amount_needed + (fee_amount - vin_fees)
+ </span><span class="kw">let </span>remaining_amount = (selected_utxos.<span class="number">0 </span>- target_amount) <span class="kw">as </span>u64;
+
+ <span class="kw">let </span>excess = decide_change(remaining_amount, fee_rate, drain_script);
+
+ BranchAndBoundCoinSelection::calculate_cs_result(selected_utxos.<span class="number">1</span>, required_utxos, excess)
+ }
+
+ <span class="kw">fn </span>calculate_cs_result(
+ <span class="kw-2">mut </span>selected_utxos: Vec<OutputGroup>,
+ <span class="kw-2">mut </span>required_utxos: Vec<OutputGroup>,
+ excess: Excess,
+ ) -> CoinSelectionResult {
+ selected_utxos.append(<span class="kw-2">&mut </span>required_utxos);
+ <span class="kw">let </span>fee_amount = selected_utxos.iter().map(|u| u.fee).sum::<u64>();
+ <span class="kw">let </span>selected = selected_utxos
+ .into_iter()
+ .map(|u| u.weighted_utxo.utxo)
+ .collect::<Vec<<span class="kw">_</span>>>();
+
+ CoinSelectionResult {
+ selected,
+ fee_amount,
+ excess,
+ }
+ }
+}
+
+<span class="doccomment">/// Remove duplicate UTXOs.
+///
+/// If a UTXO appears in both `required` and `optional`, the appearance in `required` is kept.
+</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>filter_duplicates<I>(required: I, optional: I) -> (I, I)
+<span class="kw">where
+ </span>I: IntoIterator<Item = WeightedUtxo> + FromIterator<WeightedUtxo>,
+{
+ <span class="kw">let </span><span class="kw-2">mut </span>visited = HashSet::<OutPoint>::new();
+ <span class="kw">let </span>required = required
+ .into_iter()
+ .filter(|utxo| visited.insert(utxo.utxo.outpoint()))
+ .collect::<I>();
+ <span class="kw">let </span>optional = optional
+ .into_iter()
+ .filter(|utxo| visited.insert(utxo.utxo.outpoint()))
+ .collect::<I>();
+ (required, optional)
+}
+
+<span class="attr">#[cfg(test)]
+</span><span class="kw">mod </span>test {
+ <span class="kw">use </span>assert_matches::assert_matches;
+ <span class="kw">use </span>core::str::FromStr;
+
+ <span class="kw">use </span>bdk_chain::ConfirmationTime;
+ <span class="kw">use </span>bitcoin::{Amount, ScriptBuf, TxIn, TxOut};
+
+ <span class="kw">use super</span>::<span class="kw-2">*</span>;
+ <span class="kw">use </span><span class="kw">crate</span>::types::<span class="kw-2">*</span>;
+ <span class="kw">use </span><span class="kw">crate</span>::wallet::coin_selection::filter_duplicates;
+
+ <span class="kw">use </span>rand::rngs::StdRng;
+ <span class="kw">use </span>rand::seq::SliceRandom;
+ <span class="kw">use </span>rand::{Rng, RngCore, SeedableRng};
+
+ <span class="comment">// signature len (1WU) + signature and sighash (72WU)
+ // + pubkey len (1WU) + pubkey (33WU)
+ </span><span class="kw">const </span>P2WPKH_SATISFACTION_SIZE: usize = <span class="number">1 </span>+ <span class="number">72 </span>+ <span class="number">1 </span>+ <span class="number">33</span>;
+
+ <span class="kw">const </span>FEE_AMOUNT: u64 = <span class="number">50</span>;
+
+ <span class="kw">fn </span>utxo(value: u64, index: u32, confirmation_time: ConfirmationTime) -> WeightedUtxo {
+ <span class="macro">assert!</span>(index < <span class="number">10</span>);
+ <span class="kw">let </span>outpoint = OutPoint::from_str(<span class="kw-2">&</span><span class="macro">format!</span>(
+ <span class="string">"000000000000000000000000000000000000000000000000000000000000000{}:0"</span>,
+ index
+ ))
+ .unwrap();
+ WeightedUtxo {
+ satisfaction_weight: P2WPKH_SATISFACTION_SIZE,
+ utxo: Utxo::Local(LocalOutput {
+ outpoint,
+ txout: TxOut {
+ value: Amount::from_sat(value),
+ script_pubkey: ScriptBuf::new(),
+ },
+ keychain: KeychainKind::External,
+ is_spent: <span class="bool-val">false</span>,
+ derivation_index: <span class="number">42</span>,
+ confirmation_time,
+ }),
+ }
+ }
+
+ <span class="kw">fn </span>get_test_utxos() -> Vec<WeightedUtxo> {
+ <span class="macro">vec!</span>[
+ utxo(<span class="number">100_000</span>, <span class="number">0</span>, ConfirmationTime::Unconfirmed { last_seen: <span class="number">0 </span>}),
+ utxo(
+ FEE_AMOUNT - <span class="number">40</span>,
+ <span class="number">1</span>,
+ ConfirmationTime::Unconfirmed { last_seen: <span class="number">0 </span>},
+ ),
+ utxo(<span class="number">200_000</span>, <span class="number">2</span>, ConfirmationTime::Unconfirmed { last_seen: <span class="number">0 </span>}),
+ ]
+ }
+
+ <span class="kw">fn </span>get_oldest_first_test_utxos() -> Vec<WeightedUtxo> {
+ <span class="comment">// ensure utxos are from different tx
+ </span><span class="kw">let </span>utxo1 = utxo(
+ <span class="number">120_000</span>,
+ <span class="number">1</span>,
+ ConfirmationTime::Confirmed {
+ height: <span class="number">1</span>,
+ time: <span class="number">1231006505</span>,
+ },
+ );
+ <span class="kw">let </span>utxo2 = utxo(
+ <span class="number">80_000</span>,
+ <span class="number">2</span>,
+ ConfirmationTime::Confirmed {
+ height: <span class="number">2</span>,
+ time: <span class="number">1231006505</span>,
+ },
+ );
+ <span class="kw">let </span>utxo3 = utxo(
+ <span class="number">300_000</span>,
+ <span class="number">3</span>,
+ ConfirmationTime::Confirmed {
+ height: <span class="number">3</span>,
+ time: <span class="number">1231006505</span>,
+ },
+ );
+ <span class="macro">vec!</span>[utxo1, utxo2, utxo3]
+ }
+
+ <span class="kw">fn </span>generate_random_utxos(rng: <span class="kw-2">&mut </span>StdRng, utxos_number: usize) -> Vec<WeightedUtxo> {
+ <span class="kw">let </span><span class="kw-2">mut </span>res = Vec::new();
+ <span class="kw">for </span>i <span class="kw">in </span><span class="number">0</span>..utxos_number {
+ res.push(WeightedUtxo {
+ satisfaction_weight: P2WPKH_SATISFACTION_SIZE,
+ utxo: Utxo::Local(LocalOutput {
+ outpoint: OutPoint::from_str(<span class="kw-2">&</span><span class="macro">format!</span>(
+ <span class="string">"ebd9813ecebc57ff8f30797de7c205e3c7498ca950ea4341ee51a685ff2fa30a:{}"</span>,
+ i
+ ))
+ .unwrap(),
+ txout: TxOut {
+ value: Amount::from_sat(rng.gen_range(<span class="number">0</span>..<span class="number">200000000</span>)),
+ script_pubkey: ScriptBuf::new(),
+ },
+ keychain: KeychainKind::External,
+ is_spent: <span class="bool-val">false</span>,
+ derivation_index: rng.next_u32(),
+ confirmation_time: <span class="kw">if </span>rng.gen_bool(<span class="number">0.5</span>) {
+ ConfirmationTime::Confirmed {
+ height: rng.next_u32(),
+ time: rng.next_u64(),
+ }
+ } <span class="kw">else </span>{
+ ConfirmationTime::Unconfirmed { last_seen: <span class="number">0 </span>}
+ },
+ }),
+ });
+ }
+ res
+ }
+
+ <span class="kw">fn </span>generate_same_value_utxos(utxos_value: u64, utxos_number: usize) -> Vec<WeightedUtxo> {
+ (<span class="number">0</span>..utxos_number)
+ .map(|i| WeightedUtxo {
+ satisfaction_weight: P2WPKH_SATISFACTION_SIZE,
+ utxo: Utxo::Local(LocalOutput {
+ outpoint: OutPoint::from_str(<span class="kw-2">&</span><span class="macro">format!</span>(
+ <span class="string">"ebd9813ecebc57ff8f30797de7c205e3c7498ca950ea4341ee51a685ff2fa30a:{}"</span>,
+ i
+ ))
+ .unwrap(),
+ txout: TxOut {
+ value: Amount::from_sat(utxos_value),
+ script_pubkey: ScriptBuf::new(),
+ },
+ keychain: KeychainKind::External,
+ is_spent: <span class="bool-val">false</span>,
+ derivation_index: <span class="number">42</span>,
+ confirmation_time: ConfirmationTime::Unconfirmed { last_seen: <span class="number">0 </span>},
+ }),
+ })
+ .collect()
+ }
+
+ <span class="kw">fn </span>sum_random_utxos(<span class="kw-2">mut </span>rng: <span class="kw-2">&mut </span>StdRng, utxos: <span class="kw-2">&mut </span>Vec<WeightedUtxo>) -> u64 {
+ <span class="kw">let </span>utxos_picked_len = rng.gen_range(<span class="number">2</span>..utxos.len() / <span class="number">2</span>);
+ utxos.shuffle(<span class="kw-2">&mut </span>rng);
+ utxos[..utxos_picked_len]
+ .iter()
+ .map(|u| u.utxo.txout().value.to_sat())
+ .sum()
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_largest_first_coin_selection_success() {
+ <span class="kw">let </span>utxos = get_test_utxos();
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+ <span class="kw">let </span>target_amount = <span class="number">250_000 </span>+ FEE_AMOUNT;
+
+ <span class="kw">let </span>result = LargestFirstCoinSelection
+ .coin_select(
+ utxos,
+ <span class="macro">vec!</span>[],
+ FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
+ target_amount,
+ <span class="kw-2">&</span>drain_script,
+ )
+ .unwrap();
+
+ <span class="macro">assert_eq!</span>(result.selected.len(), <span class="number">3</span>);
+ <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">300_010</span>);
+ <span class="macro">assert_eq!</span>(result.fee_amount, <span class="number">204</span>)
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_largest_first_coin_selection_use_all() {
+ <span class="kw">let </span>utxos = get_test_utxos();
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+ <span class="kw">let </span>target_amount = <span class="number">20_000 </span>+ FEE_AMOUNT;
+
+ <span class="kw">let </span>result = LargestFirstCoinSelection
+ .coin_select(
+ utxos,
+ <span class="macro">vec!</span>[],
+ FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
+ target_amount,
+ <span class="kw-2">&</span>drain_script,
+ )
+ .unwrap();
+
+ <span class="macro">assert_eq!</span>(result.selected.len(), <span class="number">3</span>);
+ <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">300_010</span>);
+ <span class="macro">assert_eq!</span>(result.fee_amount, <span class="number">204</span>);
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_largest_first_coin_selection_use_only_necessary() {
+ <span class="kw">let </span>utxos = get_test_utxos();
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+ <span class="kw">let </span>target_amount = <span class="number">20_000 </span>+ FEE_AMOUNT;
+
+ <span class="kw">let </span>result = LargestFirstCoinSelection
+ .coin_select(
+ <span class="macro">vec!</span>[],
+ utxos,
+ FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
+ target_amount,
+ <span class="kw-2">&</span>drain_script,
+ )
+ .unwrap();
+
+ <span class="macro">assert_eq!</span>(result.selected.len(), <span class="number">1</span>);
+ <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">200_000</span>);
+ <span class="macro">assert_eq!</span>(result.fee_amount, <span class="number">68</span>);
+ }
+
+ <span class="attr">#[test]
+ #[should_panic(expected = <span class="string">"InsufficientFunds"</span>)]
+ </span><span class="kw">fn </span>test_largest_first_coin_selection_insufficient_funds() {
+ <span class="kw">let </span>utxos = get_test_utxos();
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+ <span class="kw">let </span>target_amount = <span class="number">500_000 </span>+ FEE_AMOUNT;
+
+ LargestFirstCoinSelection
+ .coin_select(
+ <span class="macro">vec!</span>[],
+ utxos,
+ FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
+ target_amount,
+ <span class="kw-2">&</span>drain_script,
+ )
+ .unwrap();
+ }
+
+ <span class="attr">#[test]
+ #[should_panic(expected = <span class="string">"InsufficientFunds"</span>)]
+ </span><span class="kw">fn </span>test_largest_first_coin_selection_insufficient_funds_high_fees() {
+ <span class="kw">let </span>utxos = get_test_utxos();
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+ <span class="kw">let </span>target_amount = <span class="number">250_000 </span>+ FEE_AMOUNT;
+
+ LargestFirstCoinSelection
+ .coin_select(
+ <span class="macro">vec!</span>[],
+ utxos,
+ FeeRate::from_sat_per_vb_unchecked(<span class="number">1000</span>),
+ target_amount,
+ <span class="kw-2">&</span>drain_script,
+ )
+ .unwrap();
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_oldest_first_coin_selection_success() {
+ <span class="kw">let </span>utxos = get_oldest_first_test_utxos();
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+ <span class="kw">let </span>target_amount = <span class="number">180_000 </span>+ FEE_AMOUNT;
+
+ <span class="kw">let </span>result = OldestFirstCoinSelection
+ .coin_select(
+ <span class="macro">vec!</span>[],
+ utxos,
+ FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
+ target_amount,
+ <span class="kw-2">&</span>drain_script,
+ )
+ .unwrap();
+
+ <span class="macro">assert_eq!</span>(result.selected.len(), <span class="number">2</span>);
+ <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">200_000</span>);
+ <span class="macro">assert_eq!</span>(result.fee_amount, <span class="number">136</span>)
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_oldest_first_coin_selection_use_all() {
+ <span class="kw">let </span>utxos = get_oldest_first_test_utxos();
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+ <span class="kw">let </span>target_amount = <span class="number">20_000 </span>+ FEE_AMOUNT;
+
+ <span class="kw">let </span>result = OldestFirstCoinSelection
+ .coin_select(
+ utxos,
+ <span class="macro">vec!</span>[],
+ FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
+ target_amount,
+ <span class="kw-2">&</span>drain_script,
+ )
+ .unwrap();
+
+ <span class="macro">assert_eq!</span>(result.selected.len(), <span class="number">3</span>);
+ <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">500_000</span>);
+ <span class="macro">assert_eq!</span>(result.fee_amount, <span class="number">204</span>);
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_oldest_first_coin_selection_use_only_necessary() {
+ <span class="kw">let </span>utxos = get_oldest_first_test_utxos();
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+ <span class="kw">let </span>target_amount = <span class="number">20_000 </span>+ FEE_AMOUNT;
+
+ <span class="kw">let </span>result = OldestFirstCoinSelection
+ .coin_select(
+ <span class="macro">vec!</span>[],
+ utxos,
+ FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
+ target_amount,
+ <span class="kw-2">&</span>drain_script,
+ )
+ .unwrap();
+
+ <span class="macro">assert_eq!</span>(result.selected.len(), <span class="number">1</span>);
+ <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">120_000</span>);
+ <span class="macro">assert_eq!</span>(result.fee_amount, <span class="number">68</span>);
+ }
+
+ <span class="attr">#[test]
+ #[should_panic(expected = <span class="string">"InsufficientFunds"</span>)]
+ </span><span class="kw">fn </span>test_oldest_first_coin_selection_insufficient_funds() {
+ <span class="kw">let </span>utxos = get_oldest_first_test_utxos();
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+ <span class="kw">let </span>target_amount = <span class="number">600_000 </span>+ FEE_AMOUNT;
+
+ OldestFirstCoinSelection
+ .coin_select(
+ <span class="macro">vec!</span>[],
+ utxos,
+ FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
+ target_amount,
+ <span class="kw-2">&</span>drain_script,
+ )
+ .unwrap();
+ }
+
+ <span class="attr">#[test]
+ #[should_panic(expected = <span class="string">"InsufficientFunds"</span>)]
+ </span><span class="kw">fn </span>test_oldest_first_coin_selection_insufficient_funds_high_fees() {
+ <span class="kw">let </span>utxos = get_oldest_first_test_utxos();
+
+ <span class="kw">let </span>target_amount: u64 = utxos
+ .iter()
+ .map(|wu| wu.utxo.txout().value.to_sat())
+ .sum::<u64>()
+ - <span class="number">50</span>;
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+
+ OldestFirstCoinSelection
+ .coin_select(
+ <span class="macro">vec!</span>[],
+ utxos,
+ FeeRate::from_sat_per_vb_unchecked(<span class="number">1000</span>),
+ target_amount,
+ <span class="kw-2">&</span>drain_script,
+ )
+ .unwrap();
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_bnb_coin_selection_success() {
+ <span class="comment">// In this case bnb won't find a suitable match and single random draw will
+ // select three outputs
+ </span><span class="kw">let </span>utxos = generate_same_value_utxos(<span class="number">100_000</span>, <span class="number">20</span>);
+
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+
+ <span class="kw">let </span>target_amount = <span class="number">250_000 </span>+ FEE_AMOUNT;
+
+ <span class="kw">let </span>result = BranchAndBoundCoinSelection::default()
+ .coin_select(
+ <span class="macro">vec!</span>[],
+ utxos,
+ FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
+ target_amount,
+ <span class="kw-2">&</span>drain_script,
+ )
+ .unwrap();
+
+ <span class="macro">assert_eq!</span>(result.selected.len(), <span class="number">3</span>);
+ <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">300_000</span>);
+ <span class="macro">assert_eq!</span>(result.fee_amount, <span class="number">204</span>);
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_bnb_coin_selection_required_are_enough() {
+ <span class="kw">let </span>utxos = get_test_utxos();
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+ <span class="kw">let </span>target_amount = <span class="number">20_000 </span>+ FEE_AMOUNT;
+
+ <span class="kw">let </span>result = BranchAndBoundCoinSelection::default()
+ .coin_select(
+ utxos.clone(),
+ utxos,
+ FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
+ target_amount,
+ <span class="kw-2">&</span>drain_script,
+ )
+ .unwrap();
+
+ <span class="macro">assert_eq!</span>(result.selected.len(), <span class="number">3</span>);
+ <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">300_010</span>);
+ <span class="macro">assert_eq!</span>(result.fee_amount, <span class="number">204</span>);
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_bnb_coin_selection_optional_are_enough() {
+ <span class="kw">let </span>utxos = get_test_utxos();
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+ <span class="kw">let </span>target_amount = <span class="number">299756 </span>+ FEE_AMOUNT;
+
+ <span class="kw">let </span>result = BranchAndBoundCoinSelection::default()
+ .coin_select(
+ <span class="macro">vec!</span>[],
+ utxos,
+ FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
+ target_amount,
+ <span class="kw-2">&</span>drain_script,
+ )
+ .unwrap();
+
+ <span class="macro">assert_eq!</span>(result.selected.len(), <span class="number">2</span>);
+ <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">300000</span>);
+ <span class="macro">assert_eq!</span>(result.fee_amount, <span class="number">136</span>);
+ }
+
+ <span class="attr">#[test]
+ #[ignore]
+ </span><span class="kw">fn </span>test_bnb_coin_selection_required_not_enough() {
+ <span class="kw">let </span>utxos = get_test_utxos();
+
+ <span class="kw">let </span>required = <span class="macro">vec!</span>[utxos[<span class="number">0</span>].clone()];
+ <span class="kw">let </span><span class="kw-2">mut </span>optional = utxos[<span class="number">1</span>..].to_vec();
+ optional.push(utxo(
+ <span class="number">500_000</span>,
+ <span class="number">3</span>,
+ ConfirmationTime::Unconfirmed { last_seen: <span class="number">0 </span>},
+ ));
+
+ <span class="comment">// Defensive assertions, for sanity and in case someone changes the test utxos vector.
+ </span><span class="kw">let </span>amount: u64 = required.iter().map(|u| u.utxo.txout().value.to_sat()).sum();
+ <span class="macro">assert_eq!</span>(amount, <span class="number">100_000</span>);
+ <span class="kw">let </span>amount: u64 = optional.iter().map(|u| u.utxo.txout().value.to_sat()).sum();
+ <span class="macro">assert!</span>(amount > <span class="number">150_000</span>);
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+
+ <span class="kw">let </span>target_amount = <span class="number">150_000 </span>+ FEE_AMOUNT;
+
+ <span class="kw">let </span>result = BranchAndBoundCoinSelection::default()
+ .coin_select(
+ required,
+ optional,
+ FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
+ target_amount,
+ <span class="kw-2">&</span>drain_script,
+ )
+ .unwrap();
+
+ <span class="macro">assert_eq!</span>(result.selected.len(), <span class="number">2</span>);
+ <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">300_000</span>);
+ <span class="macro">assert_eq!</span>(result.fee_amount, <span class="number">136</span>);
+ }
+
+ <span class="attr">#[test]
+ #[should_panic(expected = <span class="string">"InsufficientFunds"</span>)]
+ </span><span class="kw">fn </span>test_bnb_coin_selection_insufficient_funds() {
+ <span class="kw">let </span>utxos = get_test_utxos();
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+ <span class="kw">let </span>target_amount = <span class="number">500_000 </span>+ FEE_AMOUNT;
+
+ BranchAndBoundCoinSelection::default()
+ .coin_select(
+ <span class="macro">vec!</span>[],
+ utxos,
+ FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>),
+ target_amount,
+ <span class="kw-2">&</span>drain_script,
+ )
+ .unwrap();
+ }
+
+ <span class="attr">#[test]
+ #[should_panic(expected = <span class="string">"InsufficientFunds"</span>)]
+ </span><span class="kw">fn </span>test_bnb_coin_selection_insufficient_funds_high_fees() {
+ <span class="kw">let </span>utxos = get_test_utxos();
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+ <span class="kw">let </span>target_amount = <span class="number">250_000 </span>+ FEE_AMOUNT;
+
+ BranchAndBoundCoinSelection::default()
+ .coin_select(
+ <span class="macro">vec!</span>[],
+ utxos,
+ FeeRate::from_sat_per_vb_unchecked(<span class="number">1000</span>),
+ target_amount,
+ <span class="kw-2">&</span>drain_script,
+ )
+ .unwrap();
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_bnb_coin_selection_check_fee_rate() {
+ <span class="kw">let </span>utxos = get_test_utxos();
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+ <span class="kw">let </span>target_amount = <span class="number">99932</span>; <span class="comment">// first utxo's effective value
+ </span><span class="kw">let </span>feerate = FeeRate::BROADCAST_MIN;
+
+ <span class="kw">let </span>result = BranchAndBoundCoinSelection::new(<span class="number">0</span>)
+ .coin_select(<span class="macro">vec!</span>[], utxos, feerate, target_amount, <span class="kw-2">&</span>drain_script)
+ .unwrap();
+
+ <span class="macro">assert_eq!</span>(result.selected.len(), <span class="number">1</span>);
+ <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">100_000</span>);
+ <span class="kw">let </span>input_weight =
+ TxIn::default().segwit_weight().to_wu() + P2WPKH_SATISFACTION_SIZE <span class="kw">as </span>u64;
+ <span class="comment">// the final fee rate should be exactly the same as the fee rate given
+ </span><span class="kw">let </span>result_feerate = Amount::from_sat(result.fee_amount) / Weight::from_wu(input_weight);
+ <span class="macro">assert_eq!</span>(result_feerate, feerate);
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_bnb_coin_selection_exact_match() {
+ <span class="kw">let </span>seed = [<span class="number">0</span>; <span class="number">32</span>];
+ <span class="kw">let </span><span class="kw-2">mut </span>rng: StdRng = SeedableRng::from_seed(seed);
+
+ <span class="kw">for </span>_i <span class="kw">in </span><span class="number">0</span>..<span class="number">200 </span>{
+ <span class="kw">let </span><span class="kw-2">mut </span>optional_utxos = generate_random_utxos(<span class="kw-2">&mut </span>rng, <span class="number">16</span>);
+ <span class="kw">let </span>target_amount = sum_random_utxos(<span class="kw-2">&mut </span>rng, <span class="kw-2">&mut </span>optional_utxos);
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+ <span class="kw">let </span>result = BranchAndBoundCoinSelection::new(<span class="number">0</span>)
+ .coin_select(
+ <span class="macro">vec!</span>[],
+ optional_utxos,
+ FeeRate::ZERO,
+ target_amount,
+ <span class="kw-2">&</span>drain_script,
+ )
+ .unwrap();
+ <span class="macro">assert_eq!</span>(result.selected_amount(), target_amount);
+ }
+ }
+
+ <span class="attr">#[test]
+ #[should_panic(expected = <span class="string">"BnBNoExactMatch"</span>)]
+ </span><span class="kw">fn </span>test_bnb_function_no_exact_match() {
+ <span class="kw">let </span>fee_rate = FeeRate::from_sat_per_vb_unchecked(<span class="number">10</span>);
+ <span class="kw">let </span>utxos: Vec<OutputGroup> = get_test_utxos()
+ .into_iter()
+ .map(|u| OutputGroup::new(u, fee_rate))
+ .collect();
+
+ <span class="kw">let </span>curr_available_value = utxos.iter().fold(<span class="number">0</span>, |acc, x| acc + x.effective_value);
+
+ <span class="kw">let </span>size_of_change = <span class="number">31</span>;
+ <span class="kw">let </span>cost_of_change = (Weight::from_vb_unchecked(size_of_change) * fee_rate).to_sat();
+
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+ <span class="kw">let </span>target_amount = <span class="number">20_000 </span>+ FEE_AMOUNT;
+ BranchAndBoundCoinSelection::new(size_of_change)
+ .bnb(
+ <span class="macro">vec!</span>[],
+ utxos,
+ <span class="number">0</span>,
+ curr_available_value,
+ target_amount <span class="kw">as </span>i64,
+ cost_of_change,
+ <span class="kw-2">&</span>drain_script,
+ fee_rate,
+ )
+ .unwrap();
+ }
+
+ <span class="attr">#[test]
+ #[should_panic(expected = <span class="string">"BnBTotalTriesExceeded"</span>)]
+ </span><span class="kw">fn </span>test_bnb_function_tries_exceeded() {
+ <span class="kw">let </span>fee_rate = FeeRate::from_sat_per_vb_unchecked(<span class="number">10</span>);
+ <span class="kw">let </span>utxos: Vec<OutputGroup> = generate_same_value_utxos(<span class="number">100_000</span>, <span class="number">100_000</span>)
+ .into_iter()
+ .map(|u| OutputGroup::new(u, fee_rate))
+ .collect();
+
+ <span class="kw">let </span>curr_available_value = utxos.iter().fold(<span class="number">0</span>, |acc, x| acc + x.effective_value);
+
+ <span class="kw">let </span>size_of_change = <span class="number">31</span>;
+ <span class="kw">let </span>cost_of_change = (Weight::from_vb_unchecked(size_of_change) * fee_rate).to_sat();
+ <span class="kw">let </span>target_amount = <span class="number">20_000 </span>+ FEE_AMOUNT;
+
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+
+ BranchAndBoundCoinSelection::new(size_of_change)
+ .bnb(
+ <span class="macro">vec!</span>[],
+ utxos,
+ <span class="number">0</span>,
+ curr_available_value,
+ target_amount <span class="kw">as </span>i64,
+ cost_of_change,
+ <span class="kw-2">&</span>drain_script,
+ fee_rate,
+ )
+ .unwrap();
+ }
+
+ <span class="comment">// The match won't be exact but still in the range
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_bnb_function_almost_exact_match_with_fees() {
+ <span class="kw">let </span>fee_rate = FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>);
+ <span class="kw">let </span>size_of_change = <span class="number">31</span>;
+ <span class="kw">let </span>cost_of_change = (Weight::from_vb_unchecked(size_of_change) * fee_rate).to_sat();
+
+ <span class="kw">let </span>utxos: Vec<<span class="kw">_</span>> = generate_same_value_utxos(<span class="number">50_000</span>, <span class="number">10</span>)
+ .into_iter()
+ .map(|u| OutputGroup::new(u, fee_rate))
+ .collect();
+
+ <span class="kw">let </span>curr_value = <span class="number">0</span>;
+
+ <span class="kw">let </span>curr_available_value = utxos.iter().fold(<span class="number">0</span>, |acc, x| acc + x.effective_value);
+
+ <span class="comment">// 2*(value of 1 utxo) - 2*(1 utxo fees with 1.0sat/vbyte fee rate) -
+ // cost_of_change + 5.
+ </span><span class="kw">let </span>target_amount = <span class="number">2 </span>* <span class="number">50_000 </span>- <span class="number">2 </span>* <span class="number">67 </span>- cost_of_change <span class="kw">as </span>i64 + <span class="number">5</span>;
+
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+
+ <span class="kw">let </span>result = BranchAndBoundCoinSelection::new(size_of_change)
+ .bnb(
+ <span class="macro">vec!</span>[],
+ utxos,
+ curr_value,
+ curr_available_value,
+ target_amount,
+ cost_of_change,
+ <span class="kw-2">&</span>drain_script,
+ fee_rate,
+ )
+ .unwrap();
+ <span class="macro">assert_eq!</span>(result.selected_amount(), <span class="number">100_000</span>);
+ <span class="macro">assert_eq!</span>(result.fee_amount, <span class="number">136</span>);
+ }
+
+ <span class="comment">// TODO: bnb() function should be optimized, and this test should be done with more utxos
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>test_bnb_function_exact_match_more_utxos() {
+ <span class="kw">let </span>seed = [<span class="number">0</span>; <span class="number">32</span>];
+ <span class="kw">let </span><span class="kw-2">mut </span>rng: StdRng = SeedableRng::from_seed(seed);
+ <span class="kw">let </span>fee_rate = FeeRate::ZERO;
+
+ <span class="kw">for _ in </span><span class="number">0</span>..<span class="number">200 </span>{
+ <span class="kw">let </span>optional_utxos: Vec<<span class="kw">_</span>> = generate_random_utxos(<span class="kw-2">&mut </span>rng, <span class="number">40</span>)
+ .into_iter()
+ .map(|u| OutputGroup::new(u, fee_rate))
+ .collect();
+
+ <span class="kw">let </span>curr_value = <span class="number">0</span>;
+
+ <span class="kw">let </span>curr_available_value = optional_utxos
+ .iter()
+ .fold(<span class="number">0</span>, |acc, x| acc + x.effective_value);
+
+ <span class="kw">let </span>target_amount =
+ optional_utxos[<span class="number">3</span>].effective_value + optional_utxos[<span class="number">23</span>].effective_value;
+
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+
+ <span class="kw">let </span>result = BranchAndBoundCoinSelection::new(<span class="number">0</span>)
+ .bnb(
+ <span class="macro">vec!</span>[],
+ optional_utxos,
+ curr_value,
+ curr_available_value,
+ target_amount,
+ <span class="number">0</span>,
+ <span class="kw-2">&</span>drain_script,
+ fee_rate,
+ )
+ .unwrap();
+ <span class="macro">assert_eq!</span>(result.selected_amount(), target_amount <span class="kw">as </span>u64);
+ }
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_single_random_draw_function_success() {
+ <span class="kw">let </span>seed = [<span class="number">0</span>; <span class="number">32</span>];
+ <span class="kw">let </span><span class="kw-2">mut </span>rng: StdRng = SeedableRng::from_seed(seed);
+ <span class="kw">let </span><span class="kw-2">mut </span>utxos = generate_random_utxos(<span class="kw-2">&mut </span>rng, <span class="number">300</span>);
+ <span class="kw">let </span>target_amount = sum_random_utxos(<span class="kw-2">&mut </span>rng, <span class="kw-2">&mut </span>utxos) + FEE_AMOUNT;
+
+ <span class="kw">let </span>fee_rate = FeeRate::from_sat_per_vb_unchecked(<span class="number">1</span>);
+ <span class="kw">let </span>utxos: Vec<OutputGroup> = utxos
+ .into_iter()
+ .map(|u| OutputGroup::new(u, fee_rate))
+ .collect();
+
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+
+ <span class="kw">let </span>result = BranchAndBoundCoinSelection::default().single_random_draw(
+ <span class="macro">vec!</span>[],
+ utxos,
+ <span class="number">0</span>,
+ target_amount <span class="kw">as </span>i64,
+ <span class="kw-2">&</span>drain_script,
+ fee_rate,
+ );
+
+ <span class="macro">assert!</span>(result.selected_amount() > target_amount);
+ <span class="macro">assert_eq!</span>(result.fee_amount, (result.selected.len() * <span class="number">68</span>) <span class="kw">as </span>u64);
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_bnb_exclude_negative_effective_value() {
+ <span class="kw">let </span>utxos = get_test_utxos();
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+
+ <span class="kw">let </span>selection = BranchAndBoundCoinSelection::default().coin_select(
+ <span class="macro">vec!</span>[],
+ utxos,
+ FeeRate::from_sat_per_vb_unchecked(<span class="number">10</span>),
+ <span class="number">500_000</span>,
+ <span class="kw-2">&</span>drain_script,
+ );
+
+ <span class="macro">assert_matches!</span>(
+ selection,
+ <span class="prelude-val">Err</span>(Error::InsufficientFunds {
+ available: <span class="number">300_000</span>,
+ ..
+ })
+ );
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_bnb_include_negative_effective_value_when_required() {
+ <span class="kw">let </span>utxos = get_test_utxos();
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+
+ <span class="kw">let </span>(required, optional) = utxos.into_iter().partition(
+ |u| <span class="macro">matches!</span>(u, WeightedUtxo { utxo, .. } <span class="kw">if </span>utxo.txout().value.to_sat() < <span class="number">1000</span>),
+ );
+
+ <span class="kw">let </span>selection = BranchAndBoundCoinSelection::default().coin_select(
+ required,
+ optional,
+ FeeRate::from_sat_per_vb_unchecked(<span class="number">10</span>),
+ <span class="number">500_000</span>,
+ <span class="kw-2">&</span>drain_script,
+ );
+
+ <span class="macro">assert_matches!</span>(
+ selection,
+ <span class="prelude-val">Err</span>(Error::InsufficientFunds {
+ available: <span class="number">300_010</span>,
+ ..
+ })
+ );
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_bnb_sum_of_effective_value_negative() {
+ <span class="kw">let </span>utxos = get_test_utxos();
+ <span class="kw">let </span>drain_script = ScriptBuf::default();
+
+ <span class="kw">let </span>selection = BranchAndBoundCoinSelection::default().coin_select(
+ utxos,
+ <span class="macro">vec!</span>[],
+ FeeRate::from_sat_per_vb_unchecked(<span class="number">10_000</span>),
+ <span class="number">500_000</span>,
+ <span class="kw-2">&</span>drain_script,
+ );
+
+ <span class="macro">assert_matches!</span>(
+ selection,
+ <span class="prelude-val">Err</span>(Error::InsufficientFunds {
+ available: <span class="number">300_010</span>,
+ ..
+ })
+ );
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_filter_duplicates() {
+ <span class="kw">fn </span>utxo(txid: <span class="kw-2">&</span>str, value: u64) -> WeightedUtxo {
+ WeightedUtxo {
+ satisfaction_weight: <span class="number">0</span>,
+ utxo: Utxo::Local(LocalOutput {
+ outpoint: OutPoint::new(bitcoin::hashes::Hash::hash(txid.as_bytes()), <span class="number">0</span>),
+ txout: TxOut {
+ value: Amount::from_sat(value),
+ script_pubkey: ScriptBuf::new(),
+ },
+ keychain: KeychainKind::External,
+ is_spent: <span class="bool-val">false</span>,
+ derivation_index: <span class="number">0</span>,
+ confirmation_time: ConfirmationTime::Confirmed {
+ height: <span class="number">12345</span>,
+ time: <span class="number">12345</span>,
+ },
+ }),
+ }
+ }
+
+ <span class="kw">fn </span>to_utxo_vec(utxos: <span class="kw-2">&</span>[(<span class="kw-2">&</span>str, u64)]) -> Vec<WeightedUtxo> {
+ <span class="kw">let </span><span class="kw-2">mut </span>v = utxos
+ .iter()
+ .map(|<span class="kw-2">&</span>(txid, value)| utxo(txid, value))
+ .collect::<Vec<<span class="kw">_</span>>>();
+ v.sort_by_key(|u| u.utxo.outpoint());
+ v
+ }
+
+ <span class="kw">struct </span>TestCase<<span class="lifetime">'a</span>> {
+ name: <span class="kw-2">&</span><span class="lifetime">'a </span>str,
+ required: <span class="kw-2">&</span><span class="lifetime">'a </span>[(<span class="kw-2">&</span><span class="lifetime">'a </span>str, u64)],
+ optional: <span class="kw-2">&</span><span class="lifetime">'a </span>[(<span class="kw-2">&</span><span class="lifetime">'a </span>str, u64)],
+ exp_required: <span class="kw-2">&</span><span class="lifetime">'a </span>[(<span class="kw-2">&</span><span class="lifetime">'a </span>str, u64)],
+ exp_optional: <span class="kw-2">&</span><span class="lifetime">'a </span>[(<span class="kw-2">&</span><span class="lifetime">'a </span>str, u64)],
+ }
+
+ <span class="kw">let </span>test_cases = [
+ TestCase {
+ name: <span class="string">"no_duplicates"</span>,
+ required: <span class="kw-2">&</span>[(<span class="string">"A"</span>, <span class="number">1000</span>), (<span class="string">"B"</span>, <span class="number">2100</span>)],
+ optional: <span class="kw-2">&</span>[(<span class="string">"C"</span>, <span class="number">1000</span>)],
+ exp_required: <span class="kw-2">&</span>[(<span class="string">"A"</span>, <span class="number">1000</span>), (<span class="string">"B"</span>, <span class="number">2100</span>)],
+ exp_optional: <span class="kw-2">&</span>[(<span class="string">"C"</span>, <span class="number">1000</span>)],
+ },
+ TestCase {
+ name: <span class="string">"duplicate_required_utxos"</span>,
+ required: <span class="kw-2">&</span>[(<span class="string">"A"</span>, <span class="number">3000</span>), (<span class="string">"B"</span>, <span class="number">1200</span>), (<span class="string">"C"</span>, <span class="number">1234</span>), (<span class="string">"A"</span>, <span class="number">3000</span>)],
+ optional: <span class="kw-2">&</span>[(<span class="string">"D"</span>, <span class="number">2100</span>)],
+ exp_required: <span class="kw-2">&</span>[(<span class="string">"A"</span>, <span class="number">3000</span>), (<span class="string">"B"</span>, <span class="number">1200</span>), (<span class="string">"C"</span>, <span class="number">1234</span>)],
+ exp_optional: <span class="kw-2">&</span>[(<span class="string">"D"</span>, <span class="number">2100</span>)],
+ },
+ TestCase {
+ name: <span class="string">"duplicate_optional_utxos"</span>,
+ required: <span class="kw-2">&</span>[(<span class="string">"A"</span>, <span class="number">3000</span>), (<span class="string">"B"</span>, <span class="number">1200</span>)],
+ optional: <span class="kw-2">&</span>[(<span class="string">"C"</span>, <span class="number">5000</span>), (<span class="string">"D"</span>, <span class="number">1300</span>), (<span class="string">"C"</span>, <span class="number">5000</span>)],
+ exp_required: <span class="kw-2">&</span>[(<span class="string">"A"</span>, <span class="number">3000</span>), (<span class="string">"B"</span>, <span class="number">1200</span>)],
+ exp_optional: <span class="kw-2">&</span>[(<span class="string">"C"</span>, <span class="number">5000</span>), (<span class="string">"D"</span>, <span class="number">1300</span>)],
+ },
+ TestCase {
+ name: <span class="string">"duplicate_across_required_and_optional_utxos"</span>,
+ required: <span class="kw-2">&</span>[(<span class="string">"A"</span>, <span class="number">3000</span>), (<span class="string">"B"</span>, <span class="number">1200</span>), (<span class="string">"C"</span>, <span class="number">2100</span>)],
+ optional: <span class="kw-2">&</span>[(<span class="string">"A"</span>, <span class="number">3000</span>), (<span class="string">"D"</span>, <span class="number">1200</span>), (<span class="string">"E"</span>, <span class="number">5000</span>)],
+ exp_required: <span class="kw-2">&</span>[(<span class="string">"A"</span>, <span class="number">3000</span>), (<span class="string">"B"</span>, <span class="number">1200</span>), (<span class="string">"C"</span>, <span class="number">2100</span>)],
+ exp_optional: <span class="kw-2">&</span>[(<span class="string">"D"</span>, <span class="number">1200</span>), (<span class="string">"E"</span>, <span class="number">5000</span>)],
+ },
+ ];
+
+ <span class="kw">for </span>(i, t) <span class="kw">in </span>test_cases.into_iter().enumerate() {
+ <span class="macro">println!</span>(<span class="string">"Case {}: {}"</span>, i, t.name);
+ <span class="kw">let </span>(required, optional) =
+ filter_duplicates(to_utxo_vec(t.required), to_utxo_vec(t.optional));
+ <span class="macro">assert_eq!</span>(
+ required,
+ to_utxo_vec(t.exp_required),
+ <span class="string">"[{}:{}] unexpected `required` result"</span>,
+ i,
+ t.name
+ );
+ <span class="macro">assert_eq!</span>(
+ optional,
+ to_utxo_vec(t.exp_optional),
+ <span class="string">"[{}:{}] unexpected `optional` result"</span>,
+ i,
+ t.name
+ );
+ }
+ }
+}
+</code></pre></div>
+</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Source of the Rust file `crates/wallet/src/wallet/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk_wallet/index.html">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
+<a href="#2" id="2">2</a>
+<a href="#3" id="3">3</a>
+<a href="#4" id="4">4</a>
+<a href="#5" id="5">5</a>
+<a href="#6" id="6">6</a>
+<a href="#7" id="7">7</a>
+<a href="#8" id="8">8</a>
+<a href="#9" id="9">9</a>
+<a href="#10" id="10">10</a>
+<a href="#11" id="11">11</a>
+<a href="#12" id="12">12</a>
+<a href="#13" id="13">13</a>
+<a href="#14" id="14">14</a>
+<a href="#15" id="15">15</a>
+<a href="#16" id="16">16</a>
+<a href="#17" id="17">17</a>
+<a href="#18" id="18">18</a>
+<a href="#19" id="19">19</a>
+<a href="#20" id="20">20</a>
+<a href="#21" id="21">21</a>
+<a href="#22" id="22">22</a>
+<a href="#23" id="23">23</a>
+<a href="#24" id="24">24</a>
+<a href="#25" id="25">25</a>
+<a href="#26" id="26">26</a>
+<a href="#27" id="27">27</a>
+<a href="#28" id="28">28</a>
+<a href="#29" id="29">29</a>
+<a href="#30" id="30">30</a>
+<a href="#31" id="31">31</a>
+<a href="#32" id="32">32</a>
+<a href="#33" id="33">33</a>
+<a href="#34" id="34">34</a>
+<a href="#35" id="35">35</a>
+<a href="#36" id="36">36</a>
+<a href="#37" id="37">37</a>
+<a href="#38" id="38">38</a>
+<a href="#39" id="39">39</a>
+<a href="#40" id="40">40</a>
+<a href="#41" id="41">41</a>
+<a href="#42" id="42">42</a>
+<a href="#43" id="43">43</a>
+<a href="#44" id="44">44</a>
+<a href="#45" id="45">45</a>
+<a href="#46" id="46">46</a>
+<a href="#47" id="47">47</a>
+<a href="#48" id="48">48</a>
+<a href="#49" id="49">49</a>
+<a href="#50" id="50">50</a>
+<a href="#51" id="51">51</a>
+<a href="#52" id="52">52</a>
+<a href="#53" id="53">53</a>
+<a href="#54" id="54">54</a>
+<a href="#55" id="55">55</a>
+<a href="#56" id="56">56</a>
+<a href="#57" id="57">57</a>
+<a href="#58" id="58">58</a>
+<a href="#59" id="59">59</a>
+<a href="#60" id="60">60</a>
+<a href="#61" id="61">61</a>
+<a href="#62" id="62">62</a>
+<a href="#63" id="63">63</a>
+<a href="#64" id="64">64</a>
+<a href="#65" id="65">65</a>
+<a href="#66" id="66">66</a>
+<a href="#67" id="67">67</a>
+<a href="#68" id="68">68</a>
+<a href="#69" id="69">69</a>
+<a href="#70" id="70">70</a>
+<a href="#71" id="71">71</a>
+<a href="#72" id="72">72</a>
+<a href="#73" id="73">73</a>
+<a href="#74" id="74">74</a>
+<a href="#75" id="75">75</a>
+<a href="#76" id="76">76</a>
+<a href="#77" id="77">77</a>
+<a href="#78" id="78">78</a>
+<a href="#79" id="79">79</a>
+<a href="#80" id="80">80</a>
+<a href="#81" id="81">81</a>
+<a href="#82" id="82">82</a>
+<a href="#83" id="83">83</a>
+<a href="#84" id="84">84</a>
+<a href="#85" id="85">85</a>
+<a href="#86" id="86">86</a>
+<a href="#87" id="87">87</a>
+<a href="#88" id="88">88</a>
+<a href="#89" id="89">89</a>
+<a href="#90" id="90">90</a>
+<a href="#91" id="91">91</a>
+<a href="#92" id="92">92</a>
+<a href="#93" id="93">93</a>
+<a href="#94" id="94">94</a>
+<a href="#95" id="95">95</a>
+<a href="#96" id="96">96</a>
+<a href="#97" id="97">97</a>
+<a href="#98" id="98">98</a>
+<a href="#99" id="99">99</a>
+<a href="#100" id="100">100</a>
+<a href="#101" id="101">101</a>
+<a href="#102" id="102">102</a>
+<a href="#103" id="103">103</a>
+<a href="#104" id="104">104</a>
+<a href="#105" id="105">105</a>
+<a href="#106" id="106">106</a>
+<a href="#107" id="107">107</a>
+<a href="#108" id="108">108</a>
+<a href="#109" id="109">109</a>
+<a href="#110" id="110">110</a>
+<a href="#111" id="111">111</a>
+<a href="#112" id="112">112</a>
+<a href="#113" id="113">113</a>
+<a href="#114" id="114">114</a>
+<a href="#115" id="115">115</a>
+<a href="#116" id="116">116</a>
+<a href="#117" id="117">117</a>
+<a href="#118" id="118">118</a>
+<a href="#119" id="119">119</a>
+<a href="#120" id="120">120</a>
+<a href="#121" id="121">121</a>
+<a href="#122" id="122">122</a>
+<a href="#123" id="123">123</a>
+<a href="#124" id="124">124</a>
+<a href="#125" id="125">125</a>
+<a href="#126" id="126">126</a>
+<a href="#127" id="127">127</a>
+<a href="#128" id="128">128</a>
+<a href="#129" id="129">129</a>
+<a href="#130" id="130">130</a>
+<a href="#131" id="131">131</a>
+<a href="#132" id="132">132</a>
+<a href="#133" id="133">133</a>
+<a href="#134" id="134">134</a>
+<a href="#135" id="135">135</a>
+<a href="#136" id="136">136</a>
+<a href="#137" id="137">137</a>
+<a href="#138" id="138">138</a>
+<a href="#139" id="139">139</a>
+<a href="#140" id="140">140</a>
+<a href="#141" id="141">141</a>
+<a href="#142" id="142">142</a>
+<a href="#143" id="143">143</a>
+<a href="#144" id="144">144</a>
+<a href="#145" id="145">145</a>
+<a href="#146" id="146">146</a>
+<a href="#147" id="147">147</a>
+<a href="#148" id="148">148</a>
+<a href="#149" id="149">149</a>
+<a href="#150" id="150">150</a>
+<a href="#151" id="151">151</a>
+<a href="#152" id="152">152</a>
+<a href="#153" id="153">153</a>
+<a href="#154" id="154">154</a>
+<a href="#155" id="155">155</a>
+<a href="#156" id="156">156</a>
+<a href="#157" id="157">157</a>
+<a href="#158" id="158">158</a>
+<a href="#159" id="159">159</a>
+<a href="#160" id="160">160</a>
+<a href="#161" id="161">161</a>
+<a href="#162" id="162">162</a>
+<a href="#163" id="163">163</a>
+<a href="#164" id="164">164</a>
+<a href="#165" id="165">165</a>
+<a href="#166" id="166">166</a>
+<a href="#167" id="167">167</a>
+<a href="#168" id="168">168</a>
+<a href="#169" id="169">169</a>
+<a href="#170" id="170">170</a>
+<a href="#171" id="171">171</a>
+<a href="#172" id="172">172</a>
+<a href="#173" id="173">173</a>
+<a href="#174" id="174">174</a>
+<a href="#175" id="175">175</a>
+<a href="#176" id="176">176</a>
+<a href="#177" id="177">177</a>
+<a href="#178" id="178">178</a>
+<a href="#179" id="179">179</a>
+<a href="#180" id="180">180</a>
+<a href="#181" id="181">181</a>
+<a href="#182" id="182">182</a>
+<a href="#183" id="183">183</a>
+<a href="#184" id="184">184</a>
+<a href="#185" id="185">185</a>
+<a href="#186" id="186">186</a>
+<a href="#187" id="187">187</a>
+<a href="#188" id="188">188</a>
+<a href="#189" id="189">189</a>
+<a href="#190" id="190">190</a>
+<a href="#191" id="191">191</a>
+<a href="#192" id="192">192</a>
+<a href="#193" id="193">193</a>
+<a href="#194" id="194">194</a>
+<a href="#195" id="195">195</a>
+<a href="#196" id="196">196</a>
+<a href="#197" id="197">197</a>
+<a href="#198" id="198">198</a>
+<a href="#199" id="199">199</a>
+<a href="#200" id="200">200</a>
+<a href="#201" id="201">201</a>
+<a href="#202" id="202">202</a>
+<a href="#203" id="203">203</a>
+<a href="#204" id="204">204</a>
+<a href="#205" id="205">205</a>
+<a href="#206" id="206">206</a>
+<a href="#207" id="207">207</a>
+<a href="#208" id="208">208</a>
+<a href="#209" id="209">209</a>
+<a href="#210" id="210">210</a>
+<a href="#211" id="211">211</a>
+<a href="#212" id="212">212</a>
+<a href="#213" id="213">213</a>
+<a href="#214" id="214">214</a>
+<a href="#215" id="215">215</a>
+<a href="#216" id="216">216</a>
+<a href="#217" id="217">217</a>
+<a href="#218" id="218">218</a>
+<a href="#219" id="219">219</a>
+<a href="#220" id="220">220</a>
+<a href="#221" id="221">221</a>
+<a href="#222" id="222">222</a>
+<a href="#223" id="223">223</a>
+<a href="#224" id="224">224</a>
+<a href="#225" id="225">225</a>
+<a href="#226" id="226">226</a>
+<a href="#227" id="227">227</a>
+<a href="#228" id="228">228</a>
+<a href="#229" id="229">229</a>
+<a href="#230" id="230">230</a>
+<a href="#231" id="231">231</a>
+<a href="#232" id="232">232</a>
+<a href="#233" id="233">233</a>
+<a href="#234" id="234">234</a>
+<a href="#235" id="235">235</a>
+<a href="#236" id="236">236</a>
+<a href="#237" id="237">237</a>
+<a href="#238" id="238">238</a>
+<a href="#239" id="239">239</a>
+<a href="#240" id="240">240</a>
+<a href="#241" id="241">241</a>
+<a href="#242" id="242">242</a>
+<a href="#243" id="243">243</a>
+<a href="#244" id="244">244</a>
+<a href="#245" id="245">245</a>
+<a href="#246" id="246">246</a>
+<a href="#247" id="247">247</a>
+<a href="#248" id="248">248</a>
+<a href="#249" id="249">249</a>
+<a href="#250" id="250">250</a>
+<a href="#251" id="251">251</a>
+<a href="#252" id="252">252</a>
+<a href="#253" id="253">253</a>
+<a href="#254" id="254">254</a>
+<a href="#255" id="255">255</a>
+<a href="#256" id="256">256</a>
+<a href="#257" id="257">257</a>
+<a href="#258" id="258">258</a>
+<a href="#259" id="259">259</a>
+<a href="#260" id="260">260</a>
+<a href="#261" id="261">261</a>
+<a href="#262" id="262">262</a>
+<a href="#263" id="263">263</a>
+<a href="#264" id="264">264</a>
+<a href="#265" id="265">265</a>
+<a href="#266" id="266">266</a>
+<a href="#267" id="267">267</a>
+<a href="#268" id="268">268</a>
+<a href="#269" id="269">269</a>
+<a href="#270" id="270">270</a>
+<a href="#271" id="271">271</a>
+<a href="#272" id="272">272</a>
+<a href="#273" id="273">273</a>
+<a href="#274" id="274">274</a>
+<a href="#275" id="275">275</a>
+<a href="#276" id="276">276</a>
+<a href="#277" id="277">277</a>
+<a href="#278" id="278">278</a>
+<a href="#279" id="279">279</a>
+<a href="#280" id="280">280</a>
+<a href="#281" id="281">281</a>
+<a href="#282" id="282">282</a>
+<a href="#283" id="283">283</a>
+<a href="#284" id="284">284</a>
+<a href="#285" id="285">285</a>
+<a href="#286" id="286">286</a>
+<a href="#287" id="287">287</a>
+<a href="#288" id="288">288</a>
+<a href="#289" id="289">289</a>
+<a href="#290" id="290">290</a>
+<a href="#291" id="291">291</a>
+</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
+// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
+//
+// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
+//
+// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
+// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// You may not use this file except in accordance with one or both of these
+// licenses.
+
+</span><span class="doccomment">//! Errors that can be thrown by the [`Wallet`](crate::wallet::Wallet)
+
+</span><span class="kw">use </span><span class="kw">crate</span>::descriptor::policy::PolicyError;
+<span class="kw">use </span><span class="kw">crate</span>::descriptor::DescriptorError;
+<span class="kw">use </span><span class="kw">crate</span>::wallet::coin_selection;
+<span class="kw">use crate</span>::{descriptor, KeychainKind};
+<span class="kw">use </span>alloc::string::String;
+<span class="kw">use </span>bitcoin::{absolute, psbt, OutPoint, Sequence, Txid};
+<span class="kw">use </span>core::fmt;
+
+<span class="doccomment">/// Errors returned by miniscript when updating inconsistent PSBTs
+</span><span class="attr">#[derive(Debug, Clone)]
+</span><span class="kw">pub enum </span>MiniscriptPsbtError {
+ <span class="doccomment">/// Descriptor key conversion error
+ </span>Conversion(miniscript::descriptor::ConversionError),
+ <span class="doccomment">/// Return error type for PsbtExt::update_input_with_descriptor
+ </span>UtxoUpdate(miniscript::psbt::UtxoUpdateError),
+ <span class="doccomment">/// Return error type for PsbtExt::update_output_with_descriptor
+ </span>OutputUpdate(miniscript::psbt::OutputUpdateError),
+}
+
+<span class="kw">impl </span>fmt::Display <span class="kw">for </span>MiniscriptPsbtError {
+ <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
+ <span class="kw">match </span><span class="self">self </span>{
+ <span class="self">Self</span>::Conversion(err) => <span class="macro">write!</span>(f, <span class="string">"Conversion error: {}"</span>, err),
+ <span class="self">Self</span>::UtxoUpdate(err) => <span class="macro">write!</span>(f, <span class="string">"UTXO update error: {}"</span>, err),
+ <span class="self">Self</span>::OutputUpdate(err) => <span class="macro">write!</span>(f, <span class="string">"Output update error: {}"</span>, err),
+ }
+ }
+}
+
+<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
+</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>MiniscriptPsbtError {}
+
+<span class="attr">#[derive(Debug)]
+</span><span class="doccomment">/// Error returned from [`TxBuilder::finish`]
+///
+/// [`TxBuilder::finish`]: crate::wallet::tx_builder::TxBuilder::finish
+</span><span class="kw">pub enum </span>CreateTxError {
+ <span class="doccomment">/// There was a problem with the descriptors passed in
+ </span>Descriptor(DescriptorError),
+ <span class="doccomment">/// We were unable to load wallet data from or write wallet data to the persistence backend
+ </span>Persist(anyhow::Error),
+ <span class="doccomment">/// There was a problem while extracting and manipulating policies
+ </span>Policy(PolicyError),
+ <span class="doccomment">/// Spending policy is not compatible with this [`KeychainKind`]
+ </span>SpendingPolicyRequired(KeychainKind),
+ <span class="doccomment">/// Requested invalid transaction version '0'
+ </span>Version0,
+ <span class="doccomment">/// Requested transaction version `1`, but at least `2` is needed to use OP_CSV
+ </span>Version1Csv,
+ <span class="doccomment">/// Requested `LockTime` is less than is required to spend from this script
+ </span>LockTime {
+ <span class="doccomment">/// Requested `LockTime`
+ </span>requested: absolute::LockTime,
+ <span class="doccomment">/// Required `LockTime`
+ </span>required: absolute::LockTime,
+ },
+ <span class="doccomment">/// Cannot enable RBF with a `Sequence` >= 0xFFFFFFFE
+ </span>RbfSequence,
+ <span class="doccomment">/// Cannot enable RBF with `Sequence` given a required OP_CSV
+ </span>RbfSequenceCsv {
+ <span class="doccomment">/// Given RBF `Sequence`
+ </span>rbf: Sequence,
+ <span class="doccomment">/// Required OP_CSV `Sequence`
+ </span>csv: Sequence,
+ },
+ <span class="doccomment">/// When bumping a tx the absolute fee requested is lower than replaced tx absolute fee
+ </span>FeeTooLow {
+ <span class="doccomment">/// Required fee absolute value (satoshi)
+ </span>required: u64,
+ },
+ <span class="doccomment">/// When bumping a tx the fee rate requested is lower than required
+ </span>FeeRateTooLow {
+ <span class="doccomment">/// Required fee rate
+ </span>required: bitcoin::FeeRate,
+ },
+ <span class="doccomment">/// `manually_selected_only` option is selected but no utxo has been passed
+ </span>NoUtxosSelected,
+ <span class="doccomment">/// Output created is under the dust limit, 546 satoshis
+ </span>OutputBelowDustLimit(usize),
+ <span class="doccomment">/// The `change_policy` was set but the wallet does not have a change_descriptor
+ </span>ChangePolicyDescriptor,
+ <span class="doccomment">/// There was an error with coin selection
+ </span>CoinSelection(coin_selection::Error),
+ <span class="doccomment">/// Wallet's UTXO set is not enough to cover recipient's requested plus fee
+ </span>InsufficientFunds {
+ <span class="doccomment">/// Sats needed for some transaction
+ </span>needed: u64,
+ <span class="doccomment">/// Sats available for spending
+ </span>available: u64,
+ },
+ <span class="doccomment">/// Cannot build a tx without recipients
+ </span>NoRecipients,
+ <span class="doccomment">/// Partially signed bitcoin transaction error
+ </span>Psbt(psbt::Error),
+ <span class="doccomment">/// In order to use the [`TxBuilder::add_global_xpubs`] option every extended
+ /// key in the descriptor must either be a master key itself (having depth = 0) or have an
+ /// explicit origin provided
+ ///
+ /// [`TxBuilder::add_global_xpubs`]: crate::wallet::tx_builder::TxBuilder::add_global_xpubs
+ </span>MissingKeyOrigin(String),
+ <span class="doccomment">/// Happens when trying to spend an UTXO that is not in the internal database
+ </span>UnknownUtxo,
+ <span class="doccomment">/// Missing non_witness_utxo on foreign utxo for given `OutPoint`
+ </span>MissingNonWitnessUtxo(OutPoint),
+ <span class="doccomment">/// Miniscript PSBT error
+ </span>MiniscriptPsbt(MiniscriptPsbtError),
+}
+
+<span class="kw">impl </span>fmt::Display <span class="kw">for </span>CreateTxError {
+ <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
+ <span class="kw">match </span><span class="self">self </span>{
+ <span class="self">Self</span>::Descriptor(e) => e.fmt(f),
+ <span class="self">Self</span>::Persist(e) => {
+ <span class="macro">write!</span>(
+ f,
+ <span class="string">"failed to load wallet data from or write wallet data to persistence backend: {}"</span>,
+ e
+ )
+ }
+ <span class="self">Self</span>::Policy(e) => e.fmt(f),
+ CreateTxError::SpendingPolicyRequired(keychain_kind) => {
+ <span class="macro">write!</span>(f, <span class="string">"Spending policy required: {:?}"</span>, keychain_kind)
+ }
+ CreateTxError::Version0 => {
+ <span class="macro">write!</span>(f, <span class="string">"Invalid version `0`"</span>)
+ }
+ CreateTxError::Version1Csv => {
+ <span class="macro">write!</span>(
+ f,
+ <span class="string">"TxBuilder requested version `1`, but at least `2` is needed to use OP_CSV"
+ </span>)
+ }
+ CreateTxError::LockTime {
+ requested,
+ required,
+ } => {
+ <span class="macro">write!</span>(f, <span class="string">"TxBuilder requested timelock of `{:?}`, but at least `{:?}` is required to spend from this script"</span>, required, requested)
+ }
+ CreateTxError::RbfSequence => {
+ <span class="macro">write!</span>(f, <span class="string">"Cannot enable RBF with a nSequence >= 0xFFFFFFFE"</span>)
+ }
+ CreateTxError::RbfSequenceCsv { rbf, csv } => {
+ <span class="macro">write!</span>(
+ f,
+ <span class="string">"Cannot enable RBF with nSequence `{:?}` given a required OP_CSV of `{:?}`"</span>,
+ rbf, csv
+ )
+ }
+ CreateTxError::FeeTooLow { required } => {
+ <span class="macro">write!</span>(f, <span class="string">"Fee to low: required {} sat"</span>, required)
+ }
+ CreateTxError::FeeRateTooLow { required } => {
+ <span class="macro">write!</span>(
+ f,
+ <span class="comment">// Note: alternate fmt as sat/vb (ceil) available in bitcoin-0.31
+ //"Fee rate too low: required {required:#}"
+ </span><span class="string">"Fee rate too low: required {} sat/vb"</span>,
+ <span class="macro">crate::floating_rate!</span>(required)
+ )
+ }
+ CreateTxError::NoUtxosSelected => {
+ <span class="macro">write!</span>(f, <span class="string">"No UTXO selected"</span>)
+ }
+ CreateTxError::OutputBelowDustLimit(limit) => {
+ <span class="macro">write!</span>(f, <span class="string">"Output below the dust limit: {}"</span>, limit)
+ }
+ CreateTxError::ChangePolicyDescriptor => {
+ <span class="macro">write!</span>(
+ f,
+ <span class="string">"The `change_policy` can be set only if the wallet has a change_descriptor"
+ </span>)
+ }
+ CreateTxError::CoinSelection(e) => e.fmt(f),
+ CreateTxError::InsufficientFunds { needed, available } => {
+ <span class="macro">write!</span>(
+ f,
+ <span class="string">"Insufficient funds: {} sat available of {} sat needed"</span>,
+ available, needed
+ )
+ }
+ CreateTxError::NoRecipients => {
+ <span class="macro">write!</span>(f, <span class="string">"Cannot build tx without recipients"</span>)
+ }
+ CreateTxError::Psbt(e) => e.fmt(f),
+ CreateTxError::MissingKeyOrigin(err) => {
+ <span class="macro">write!</span>(f, <span class="string">"Missing key origin: {}"</span>, err)
+ }
+ CreateTxError::UnknownUtxo => {
+ <span class="macro">write!</span>(f, <span class="string">"UTXO not found in the internal database"</span>)
+ }
+ CreateTxError::MissingNonWitnessUtxo(outpoint) => {
+ <span class="macro">write!</span>(f, <span class="string">"Missing non_witness_utxo on foreign utxo {}"</span>, outpoint)
+ }
+ CreateTxError::MiniscriptPsbt(err) => {
+ <span class="macro">write!</span>(f, <span class="string">"Miniscript PSBT error: {}"</span>, err)
+ }
+ }
+ }
+}
+
+<span class="kw">impl </span>From<descriptor::error::Error> <span class="kw">for </span>CreateTxError {
+ <span class="kw">fn </span>from(err: descriptor::error::Error) -> <span class="self">Self </span>{
+ CreateTxError::Descriptor(err)
+ }
+}
+
+<span class="kw">impl </span>From<PolicyError> <span class="kw">for </span>CreateTxError {
+ <span class="kw">fn </span>from(err: PolicyError) -> <span class="self">Self </span>{
+ CreateTxError::Policy(err)
+ }
+}
+
+<span class="kw">impl </span>From<MiniscriptPsbtError> <span class="kw">for </span>CreateTxError {
+ <span class="kw">fn </span>from(err: MiniscriptPsbtError) -> <span class="self">Self </span>{
+ CreateTxError::MiniscriptPsbt(err)
+ }
+}
+
+<span class="kw">impl </span>From<psbt::Error> <span class="kw">for </span>CreateTxError {
+ <span class="kw">fn </span>from(err: psbt::Error) -> <span class="self">Self </span>{
+ CreateTxError::Psbt(err)
+ }
+}
+
+<span class="kw">impl </span>From<coin_selection::Error> <span class="kw">for </span>CreateTxError {
+ <span class="kw">fn </span>from(err: coin_selection::Error) -> <span class="self">Self </span>{
+ CreateTxError::CoinSelection(err)
+ }
+}
+
+<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
+</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>CreateTxError {}
+
+<span class="attr">#[derive(Debug)]
+</span><span class="doccomment">/// Error returned from [`Wallet::build_fee_bump`]
+///
+/// [`Wallet::build_fee_bump`]: super::Wallet::build_fee_bump
+</span><span class="kw">pub enum </span>BuildFeeBumpError {
+ <span class="doccomment">/// Happens when trying to spend an UTXO that is not in the internal database
+ </span>UnknownUtxo(OutPoint),
+ <span class="doccomment">/// Thrown when a tx is not found in the internal database
+ </span>TransactionNotFound(Txid),
+ <span class="doccomment">/// Happens when trying to bump a transaction that is already confirmed
+ </span>TransactionConfirmed(Txid),
+ <span class="doccomment">/// Trying to replace a tx that has a sequence >= `0xFFFFFFFE`
+ </span>IrreplaceableTransaction(Txid),
+ <span class="doccomment">/// Node doesn't have data to estimate a fee rate
+ </span>FeeRateUnavailable,
+}
+
+<span class="kw">impl </span>fmt::Display <span class="kw">for </span>BuildFeeBumpError {
+ <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
+ <span class="kw">match </span><span class="self">self </span>{
+ <span class="self">Self</span>::UnknownUtxo(outpoint) => <span class="macro">write!</span>(
+ f,
+ <span class="string">"UTXO not found in the internal database with txid: {}, vout: {}"</span>,
+ outpoint.txid, outpoint.vout
+ ),
+ <span class="self">Self</span>::TransactionNotFound(txid) => {
+ <span class="macro">write!</span>(
+ f,
+ <span class="string">"Transaction not found in the internal database with txid: {}"</span>,
+ txid
+ )
+ }
+ <span class="self">Self</span>::TransactionConfirmed(txid) => {
+ <span class="macro">write!</span>(f, <span class="string">"Transaction already confirmed with txid: {}"</span>, txid)
+ }
+ <span class="self">Self</span>::IrreplaceableTransaction(txid) => {
+ <span class="macro">write!</span>(f, <span class="string">"Transaction can't be replaced with txid: {}"</span>, txid)
+ }
+ <span class="self">Self</span>::FeeRateUnavailable => <span class="macro">write!</span>(f, <span class="string">"Fee rate unavailable"</span>),
+ }
+ }
+}
+
+<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
+</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>BuildFeeBumpError {}
+</code></pre></div>
+</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Source of the Rust file `crates/wallet/src/wallet/export.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>export.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk_wallet/index.html">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
+<a href="#2" id="2">2</a>
+<a href="#3" id="3">3</a>
+<a href="#4" id="4">4</a>
+<a href="#5" id="5">5</a>
+<a href="#6" id="6">6</a>
+<a href="#7" id="7">7</a>
+<a href="#8" id="8">8</a>
+<a href="#9" id="9">9</a>
+<a href="#10" id="10">10</a>
+<a href="#11" id="11">11</a>
+<a href="#12" id="12">12</a>
+<a href="#13" id="13">13</a>
+<a href="#14" id="14">14</a>
+<a href="#15" id="15">15</a>
+<a href="#16" id="16">16</a>
+<a href="#17" id="17">17</a>
+<a href="#18" id="18">18</a>
+<a href="#19" id="19">19</a>
+<a href="#20" id="20">20</a>
+<a href="#21" id="21">21</a>
+<a href="#22" id="22">22</a>
+<a href="#23" id="23">23</a>
+<a href="#24" id="24">24</a>
+<a href="#25" id="25">25</a>
+<a href="#26" id="26">26</a>
+<a href="#27" id="27">27</a>
+<a href="#28" id="28">28</a>
+<a href="#29" id="29">29</a>
+<a href="#30" id="30">30</a>
+<a href="#31" id="31">31</a>
+<a href="#32" id="32">32</a>
+<a href="#33" id="33">33</a>
+<a href="#34" id="34">34</a>
+<a href="#35" id="35">35</a>
+<a href="#36" id="36">36</a>
+<a href="#37" id="37">37</a>
+<a href="#38" id="38">38</a>
+<a href="#39" id="39">39</a>
+<a href="#40" id="40">40</a>
+<a href="#41" id="41">41</a>
+<a href="#42" id="42">42</a>
+<a href="#43" id="43">43</a>
+<a href="#44" id="44">44</a>
+<a href="#45" id="45">45</a>
+<a href="#46" id="46">46</a>
+<a href="#47" id="47">47</a>
+<a href="#48" id="48">48</a>
+<a href="#49" id="49">49</a>
+<a href="#50" id="50">50</a>
+<a href="#51" id="51">51</a>
+<a href="#52" id="52">52</a>
+<a href="#53" id="53">53</a>
+<a href="#54" id="54">54</a>
+<a href="#55" id="55">55</a>
+<a href="#56" id="56">56</a>
+<a href="#57" id="57">57</a>
+<a href="#58" id="58">58</a>
+<a href="#59" id="59">59</a>
+<a href="#60" id="60">60</a>
+<a href="#61" id="61">61</a>
+<a href="#62" id="62">62</a>
+<a href="#63" id="63">63</a>
+<a href="#64" id="64">64</a>
+<a href="#65" id="65">65</a>
+<a href="#66" id="66">66</a>
+<a href="#67" id="67">67</a>
+<a href="#68" id="68">68</a>
+<a href="#69" id="69">69</a>
+<a href="#70" id="70">70</a>
+<a href="#71" id="71">71</a>
+<a href="#72" id="72">72</a>
+<a href="#73" id="73">73</a>
+<a href="#74" id="74">74</a>
+<a href="#75" id="75">75</a>
+<a href="#76" id="76">76</a>
+<a href="#77" id="77">77</a>
+<a href="#78" id="78">78</a>
+<a href="#79" id="79">79</a>
+<a href="#80" id="80">80</a>
+<a href="#81" id="81">81</a>
+<a href="#82" id="82">82</a>
+<a href="#83" id="83">83</a>
+<a href="#84" id="84">84</a>
+<a href="#85" id="85">85</a>
+<a href="#86" id="86">86</a>
+<a href="#87" id="87">87</a>
+<a href="#88" id="88">88</a>
+<a href="#89" id="89">89</a>
+<a href="#90" id="90">90</a>
+<a href="#91" id="91">91</a>
+<a href="#92" id="92">92</a>
+<a href="#93" id="93">93</a>
+<a href="#94" id="94">94</a>
+<a href="#95" id="95">95</a>
+<a href="#96" id="96">96</a>
+<a href="#97" id="97">97</a>
+<a href="#98" id="98">98</a>
+<a href="#99" id="99">99</a>
+<a href="#100" id="100">100</a>
+<a href="#101" id="101">101</a>
+<a href="#102" id="102">102</a>
+<a href="#103" id="103">103</a>
+<a href="#104" id="104">104</a>
+<a href="#105" id="105">105</a>
+<a href="#106" id="106">106</a>
+<a href="#107" id="107">107</a>
+<a href="#108" id="108">108</a>
+<a href="#109" id="109">109</a>
+<a href="#110" id="110">110</a>
+<a href="#111" id="111">111</a>
+<a href="#112" id="112">112</a>
+<a href="#113" id="113">113</a>
+<a href="#114" id="114">114</a>
+<a href="#115" id="115">115</a>
+<a href="#116" id="116">116</a>
+<a href="#117" id="117">117</a>
+<a href="#118" id="118">118</a>
+<a href="#119" id="119">119</a>
+<a href="#120" id="120">120</a>
+<a href="#121" id="121">121</a>
+<a href="#122" id="122">122</a>
+<a href="#123" id="123">123</a>
+<a href="#124" id="124">124</a>
+<a href="#125" id="125">125</a>
+<a href="#126" id="126">126</a>
+<a href="#127" id="127">127</a>
+<a href="#128" id="128">128</a>
+<a href="#129" id="129">129</a>
+<a href="#130" id="130">130</a>
+<a href="#131" id="131">131</a>
+<a href="#132" id="132">132</a>
+<a href="#133" id="133">133</a>
+<a href="#134" id="134">134</a>
+<a href="#135" id="135">135</a>
+<a href="#136" id="136">136</a>
+<a href="#137" id="137">137</a>
+<a href="#138" id="138">138</a>
+<a href="#139" id="139">139</a>
+<a href="#140" id="140">140</a>
+<a href="#141" id="141">141</a>
+<a href="#142" id="142">142</a>
+<a href="#143" id="143">143</a>
+<a href="#144" id="144">144</a>
+<a href="#145" id="145">145</a>
+<a href="#146" id="146">146</a>
+<a href="#147" id="147">147</a>
+<a href="#148" id="148">148</a>
+<a href="#149" id="149">149</a>
+<a href="#150" id="150">150</a>
+<a href="#151" id="151">151</a>
+<a href="#152" id="152">152</a>
+<a href="#153" id="153">153</a>
+<a href="#154" id="154">154</a>
+<a href="#155" id="155">155</a>
+<a href="#156" id="156">156</a>
+<a href="#157" id="157">157</a>
+<a href="#158" id="158">158</a>
+<a href="#159" id="159">159</a>
+<a href="#160" id="160">160</a>
+<a href="#161" id="161">161</a>
+<a href="#162" id="162">162</a>
+<a href="#163" id="163">163</a>
+<a href="#164" id="164">164</a>
+<a href="#165" id="165">165</a>
+<a href="#166" id="166">166</a>
+<a href="#167" id="167">167</a>
+<a href="#168" id="168">168</a>
+<a href="#169" id="169">169</a>
+<a href="#170" id="170">170</a>
+<a href="#171" id="171">171</a>
+<a href="#172" id="172">172</a>
+<a href="#173" id="173">173</a>
+<a href="#174" id="174">174</a>
+<a href="#175" id="175">175</a>
+<a href="#176" id="176">176</a>
+<a href="#177" id="177">177</a>
+<a href="#178" id="178">178</a>
+<a href="#179" id="179">179</a>
+<a href="#180" id="180">180</a>
+<a href="#181" id="181">181</a>
+<a href="#182" id="182">182</a>
+<a href="#183" id="183">183</a>
+<a href="#184" id="184">184</a>
+<a href="#185" id="185">185</a>
+<a href="#186" id="186">186</a>
+<a href="#187" id="187">187</a>
+<a href="#188" id="188">188</a>
+<a href="#189" id="189">189</a>
+<a href="#190" id="190">190</a>
+<a href="#191" id="191">191</a>
+<a href="#192" id="192">192</a>
+<a href="#193" id="193">193</a>
+<a href="#194" id="194">194</a>
+<a href="#195" id="195">195</a>
+<a href="#196" id="196">196</a>
+<a href="#197" id="197">197</a>
+<a href="#198" id="198">198</a>
+<a href="#199" id="199">199</a>
+<a href="#200" id="200">200</a>
+<a href="#201" id="201">201</a>
+<a href="#202" id="202">202</a>
+<a href="#203" id="203">203</a>
+<a href="#204" id="204">204</a>
+<a href="#205" id="205">205</a>
+<a href="#206" id="206">206</a>
+<a href="#207" id="207">207</a>
+<a href="#208" id="208">208</a>
+<a href="#209" id="209">209</a>
+<a href="#210" id="210">210</a>
+<a href="#211" id="211">211</a>
+<a href="#212" id="212">212</a>
+<a href="#213" id="213">213</a>
+<a href="#214" id="214">214</a>
+<a href="#215" id="215">215</a>
+<a href="#216" id="216">216</a>
+<a href="#217" id="217">217</a>
+<a href="#218" id="218">218</a>
+<a href="#219" id="219">219</a>
+<a href="#220" id="220">220</a>
+<a href="#221" id="221">221</a>
+<a href="#222" id="222">222</a>
+<a href="#223" id="223">223</a>
+<a href="#224" id="224">224</a>
+<a href="#225" id="225">225</a>
+<a href="#226" id="226">226</a>
+<a href="#227" id="227">227</a>
+<a href="#228" id="228">228</a>
+<a href="#229" id="229">229</a>
+<a href="#230" id="230">230</a>
+<a href="#231" id="231">231</a>
+<a href="#232" id="232">232</a>
+<a href="#233" id="233">233</a>
+<a href="#234" id="234">234</a>
+<a href="#235" id="235">235</a>
+<a href="#236" id="236">236</a>
+<a href="#237" id="237">237</a>
+<a href="#238" id="238">238</a>
+<a href="#239" id="239">239</a>
+<a href="#240" id="240">240</a>
+<a href="#241" id="241">241</a>
+<a href="#242" id="242">242</a>
+<a href="#243" id="243">243</a>
+<a href="#244" id="244">244</a>
+<a href="#245" id="245">245</a>
+<a href="#246" id="246">246</a>
+<a href="#247" id="247">247</a>
+<a href="#248" id="248">248</a>
+<a href="#249" id="249">249</a>
+<a href="#250" id="250">250</a>
+<a href="#251" id="251">251</a>
+<a href="#252" id="252">252</a>
+<a href="#253" id="253">253</a>
+<a href="#254" id="254">254</a>
+<a href="#255" id="255">255</a>
+<a href="#256" id="256">256</a>
+<a href="#257" id="257">257</a>
+<a href="#258" id="258">258</a>
+<a href="#259" id="259">259</a>
+<a href="#260" id="260">260</a>
+<a href="#261" id="261">261</a>
+<a href="#262" id="262">262</a>
+<a href="#263" id="263">263</a>
+<a href="#264" id="264">264</a>
+<a href="#265" id="265">265</a>
+<a href="#266" id="266">266</a>
+<a href="#267" id="267">267</a>
+<a href="#268" id="268">268</a>
+<a href="#269" id="269">269</a>
+<a href="#270" id="270">270</a>
+<a href="#271" id="271">271</a>
+<a href="#272" id="272">272</a>
+<a href="#273" id="273">273</a>
+<a href="#274" id="274">274</a>
+<a href="#275" id="275">275</a>
+<a href="#276" id="276">276</a>
+<a href="#277" id="277">277</a>
+<a href="#278" id="278">278</a>
+<a href="#279" id="279">279</a>
+<a href="#280" id="280">280</a>
+<a href="#281" id="281">281</a>
+<a href="#282" id="282">282</a>
+<a href="#283" id="283">283</a>
+<a href="#284" id="284">284</a>
+<a href="#285" id="285">285</a>
+<a href="#286" id="286">286</a>
+<a href="#287" id="287">287</a>
+<a href="#288" id="288">288</a>
+<a href="#289" id="289">289</a>
+<a href="#290" id="290">290</a>
+<a href="#291" id="291">291</a>
+<a href="#292" id="292">292</a>
+<a href="#293" id="293">293</a>
+<a href="#294" id="294">294</a>
+<a href="#295" id="295">295</a>
+<a href="#296" id="296">296</a>
+<a href="#297" id="297">297</a>
+<a href="#298" id="298">298</a>
+<a href="#299" id="299">299</a>
+<a href="#300" id="300">300</a>
+<a href="#301" id="301">301</a>
+<a href="#302" id="302">302</a>
+<a href="#303" id="303">303</a>
+<a href="#304" id="304">304</a>
+<a href="#305" id="305">305</a>
+<a href="#306" id="306">306</a>
+<a href="#307" id="307">307</a>
+<a href="#308" id="308">308</a>
+<a href="#309" id="309">309</a>
+<a href="#310" id="310">310</a>
+<a href="#311" id="311">311</a>
+<a href="#312" id="312">312</a>
+<a href="#313" id="313">313</a>
+<a href="#314" id="314">314</a>
+<a href="#315" id="315">315</a>
+<a href="#316" id="316">316</a>
+<a href="#317" id="317">317</a>
+<a href="#318" id="318">318</a>
+<a href="#319" id="319">319</a>
+<a href="#320" id="320">320</a>
+<a href="#321" id="321">321</a>
+<a href="#322" id="322">322</a>
+<a href="#323" id="323">323</a>
+<a href="#324" id="324">324</a>
+<a href="#325" id="325">325</a>
+<a href="#326" id="326">326</a>
+<a href="#327" id="327">327</a>
+<a href="#328" id="328">328</a>
+<a href="#329" id="329">329</a>
+<a href="#330" id="330">330</a>
+<a href="#331" id="331">331</a>
+<a href="#332" id="332">332</a>
+<a href="#333" id="333">333</a>
+<a href="#334" id="334">334</a>
+<a href="#335" id="335">335</a>
+<a href="#336" id="336">336</a>
+<a href="#337" id="337">337</a>
+<a href="#338" id="338">338</a>
+<a href="#339" id="339">339</a>
+<a href="#340" id="340">340</a>
+<a href="#341" id="341">341</a>
+</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
+// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
+//
+// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
+//
+// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
+// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// You may not use this file except in accordance with one or both of these
+// licenses.
+
+</span><span class="doccomment">//! Wallet export
+//!
+//! This modules implements the wallet export format used by [FullyNoded](https://github.com/Fonta1n3/FullyNoded/blob/10b7808c8b929b171cca537fb50522d015168ac9/Docs/Wallets/Wallet-Export-Spec.md).
+//!
+//! ## Examples
+//!
+//! ### Import from JSON
+//!
+//! ```
+//! # use std::str::FromStr;
+//! # use bitcoin::*;
+//! # use bdk_wallet::wallet::export::*;
+//! # use bdk_wallet::*;
+//! let import = r#"{
+//! "descriptor": "wpkh([c258d2e4\/84h\/1h\/0h]tpubDD3ynpHgJQW8VvWRzQ5WFDCrs4jqVFGHB3vLC3r49XHJSqP8bHKdK4AriuUKLccK68zfzowx7YhmDN8SiSkgCDENUFx9qVw65YyqM78vyVe\/0\/*)",
+//! "blockheight":1782088,
+//! "label":"testnet"
+//! }"#;
+//!
+//! let import = FullyNodedExport::from_str(import)?;
+//! let wallet = Wallet::new_no_persist(
+//! &import.descriptor(),
+//! import.change_descriptor().as_ref(),
+//! Network::Testnet,
+//! )?;
+//! # Ok::<_, Box<dyn std::error::Error>>(())
+//! ```
+//!
+//! ### Export a `Wallet`
+//! ```
+//! # use bitcoin::*;
+//! # use bdk_wallet::wallet::export::*;
+//! # use bdk_wallet::*;
+//! let wallet = Wallet::new_no_persist(
+//! "wpkh([c258d2e4/84h/1h/0h]tpubDD3ynpHgJQW8VvWRzQ5WFDCrs4jqVFGHB3vLC3r49XHJSqP8bHKdK4AriuUKLccK68zfzowx7YhmDN8SiSkgCDENUFx9qVw65YyqM78vyVe/0/*)",
+//! Some("wpkh([c258d2e4/84h/1h/0h]tpubDD3ynpHgJQW8VvWRzQ5WFDCrs4jqVFGHB3vLC3r49XHJSqP8bHKdK4AriuUKLccK68zfzowx7YhmDN8SiSkgCDENUFx9qVw65YyqM78vyVe/1/*)"),
+//! Network::Testnet,
+//! )?;
+//! let export = FullyNodedExport::export_wallet(&wallet, "exported wallet", true).unwrap();
+//!
+//! println!("Exported: {}", export.to_string());
+//! # Ok::<_, Box<dyn std::error::Error>>(())
+//! ```
+
+</span><span class="kw">use </span>alloc::string::String;
+<span class="kw">use </span>core::fmt;
+<span class="kw">use </span>core::str::FromStr;
+<span class="kw">use </span>serde::{Deserialize, Serialize};
+
+<span class="kw">use </span>miniscript::descriptor::{ShInner, WshInner};
+<span class="kw">use </span>miniscript::{Descriptor, ScriptContext, Terminal};
+
+<span class="kw">use </span><span class="kw">crate</span>::types::KeychainKind;
+<span class="kw">use </span><span class="kw">crate</span>::wallet::Wallet;
+
+<span class="doccomment">/// Alias for [`FullyNodedExport`]
+</span><span class="attr">#[deprecated(since = <span class="string">"0.18.0"</span>, note = <span class="string">"Please use [`FullyNodedExport`] instead"</span>)]
+</span><span class="kw">pub type </span>WalletExport = FullyNodedExport;
+
+<span class="doccomment">/// Structure that contains the export of a wallet
+///
+/// For a usage example see [this module](crate::wallet::export)'s documentation.
+</span><span class="attr">#[derive(Debug, Serialize, Deserialize)]
+</span><span class="kw">pub struct </span>FullyNodedExport {
+ descriptor: String,
+ <span class="doccomment">/// Earliest block to rescan when looking for the wallet's transactions
+ </span><span class="kw">pub </span>blockheight: u32,
+ <span class="doccomment">/// Arbitrary label for the wallet
+ </span><span class="kw">pub </span>label: String,
+}
+
+<span class="kw">impl </span>fmt::Display <span class="kw">for </span>FullyNodedExport {
+ <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
+ <span class="macro">write!</span>(f, <span class="string">"{}"</span>, serde_json::to_string(<span class="self">self</span>).unwrap())
+ }
+}
+
+<span class="kw">impl </span>FromStr <span class="kw">for </span>FullyNodedExport {
+ <span class="kw">type </span><span class="prelude-val">Err </span>= serde_json::Error;
+
+ <span class="kw">fn </span>from_str(s: <span class="kw-2">&</span>str) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>, <span class="self">Self</span>::Err> {
+ serde_json::from_str(s)
+ }
+}
+
+<span class="kw">fn </span>remove_checksum(s: String) -> String {
+ s.split_once(<span class="string">'#'</span>).map(|(a, <span class="kw">_</span>)| String::from(a)).unwrap()
+}
+
+<span class="kw">impl </span>FullyNodedExport {
+ <span class="doccomment">/// Export a wallet
+ ///
+ /// This function returns an error if it determines that the `wallet`'s descriptor(s) are not
+ /// supported by Bitcoin Core or don't follow the standard derivation paths defined by BIP44
+ /// and others.
+ ///
+ /// If `include_blockheight` is `true`, this function will look into the `wallet`'s database
+ /// for the oldest transaction it knows and use that as the earliest block to rescan.
+ ///
+ /// If the database is empty or `include_blockheight` is false, the `blockheight` field
+ /// returned will be `0`.
+ </span><span class="kw">pub fn </span>export_wallet(
+ wallet: <span class="kw-2">&</span>Wallet,
+ label: <span class="kw-2">&</span>str,
+ include_blockheight: bool,
+ ) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>, <span class="kw-2">&</span><span class="lifetime">'static </span>str> {
+ <span class="kw">let </span>descriptor = wallet
+ .get_descriptor_for_keychain(KeychainKind::External)
+ .to_string_with_secret(
+ <span class="kw-2">&</span>wallet
+ .get_signers(KeychainKind::External)
+ .as_key_map(wallet.secp_ctx()),
+ );
+ <span class="kw">let </span>descriptor = remove_checksum(descriptor);
+ <span class="self">Self</span>::is_compatible_with_core(<span class="kw-2">&</span>descriptor)<span class="question-mark">?</span>;
+
+ <span class="kw">let </span>blockheight = <span class="kw">if </span>include_blockheight {
+ wallet.transactions().next().map_or(<span class="number">0</span>, |canonical_tx| {
+ <span class="kw">match </span>canonical_tx.chain_position {
+ bdk_chain::ChainPosition::Confirmed(a) => a.confirmation_height,
+ bdk_chain::ChainPosition::Unconfirmed(<span class="kw">_</span>) => <span class="number">0</span>,
+ }
+ })
+ } <span class="kw">else </span>{
+ <span class="number">0
+ </span>};
+
+ <span class="kw">let </span>export = FullyNodedExport {
+ descriptor,
+ label: label.into(),
+ blockheight,
+ };
+
+ <span class="kw">let </span>change_descriptor = <span class="kw">match </span>wallet.public_descriptor(KeychainKind::Internal).is_some() {
+ <span class="bool-val">false </span>=> <span class="prelude-val">None</span>,
+ <span class="bool-val">true </span>=> {
+ <span class="kw">let </span>descriptor = wallet
+ .get_descriptor_for_keychain(KeychainKind::Internal)
+ .to_string_with_secret(
+ <span class="kw-2">&</span>wallet
+ .get_signers(KeychainKind::Internal)
+ .as_key_map(wallet.secp_ctx()),
+ );
+ <span class="prelude-val">Some</span>(remove_checksum(descriptor))
+ }
+ };
+ <span class="kw">if </span>export.change_descriptor() != change_descriptor {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(<span class="string">"Incompatible change descriptor"</span>);
+ }
+
+ <span class="prelude-val">Ok</span>(export)
+ }
+
+ <span class="kw">fn </span>is_compatible_with_core(descriptor: <span class="kw-2">&</span>str) -> <span class="prelude-ty">Result</span><(), <span class="kw-2">&</span><span class="lifetime">'static </span>str> {
+ <span class="kw">fn </span>check_ms<Ctx: ScriptContext>(
+ terminal: <span class="kw-2">&</span>Terminal<String, Ctx>,
+ ) -> <span class="prelude-ty">Result</span><(), <span class="kw-2">&</span><span class="lifetime">'static </span>str> {
+ <span class="kw">if let </span>Terminal::Multi(<span class="kw">_</span>, <span class="kw">_</span>) = terminal {
+ <span class="prelude-val">Ok</span>(())
+ } <span class="kw">else </span>{
+ <span class="prelude-val">Err</span>(<span class="string">"The descriptor contains operators not supported by Bitcoin Core"</span>)
+ }
+ }
+
+ <span class="comment">// pkh(), wpkh(), sh(wpkh()) are always fine, as well as multi() and sortedmulti()
+ </span><span class="kw">match </span>Descriptor::<String>::from_str(descriptor).map_err(|<span class="kw">_</span>| <span class="string">"Invalid descriptor"</span>)<span class="question-mark">? </span>{
+ Descriptor::Pkh(<span class="kw">_</span>) | Descriptor::Wpkh(<span class="kw">_</span>) => <span class="prelude-val">Ok</span>(()),
+ Descriptor::Sh(sh) => <span class="kw">match </span>sh.as_inner() {
+ ShInner::Wpkh(<span class="kw">_</span>) => <span class="prelude-val">Ok</span>(()),
+ ShInner::SortedMulti(<span class="kw">_</span>) => <span class="prelude-val">Ok</span>(()),
+ ShInner::Wsh(wsh) => <span class="kw">match </span>wsh.as_inner() {
+ WshInner::SortedMulti(<span class="kw">_</span>) => <span class="prelude-val">Ok</span>(()),
+ WshInner::Ms(ms) => check_ms(<span class="kw-2">&</span>ms.node),
+ },
+ ShInner::Ms(ms) => check_ms(<span class="kw-2">&</span>ms.node),
+ },
+ Descriptor::Wsh(wsh) => <span class="kw">match </span>wsh.as_inner() {
+ WshInner::SortedMulti(<span class="kw">_</span>) => <span class="prelude-val">Ok</span>(()),
+ WshInner::Ms(ms) => check_ms(<span class="kw-2">&</span>ms.node),
+ },
+ <span class="kw">_ </span>=> <span class="prelude-val">Err</span>(<span class="string">"The descriptor is not compatible with Bitcoin Core"</span>),
+ }
+ }
+
+ <span class="doccomment">/// Return the external descriptor
+ </span><span class="kw">pub fn </span>descriptor(<span class="kw-2">&</span><span class="self">self</span>) -> String {
+ <span class="self">self</span>.descriptor.clone()
+ }
+
+ <span class="doccomment">/// Return the internal descriptor, if present
+ </span><span class="kw">pub fn </span>change_descriptor(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Option</span><String> {
+ <span class="kw">let </span>replaced = <span class="self">self</span>.descriptor.replace(<span class="string">"/0/*"</span>, <span class="string">"/1/*"</span>);
+
+ <span class="kw">if </span>replaced != <span class="self">self</span>.descriptor {
+ <span class="prelude-val">Some</span>(replaced)
+ } <span class="kw">else </span>{
+ <span class="prelude-val">None
+ </span>}
+ }
+}
+
+<span class="attr">#[cfg(test)]
+</span><span class="kw">mod </span>test {
+ <span class="kw">use </span>core::str::FromStr;
+
+ <span class="kw">use </span><span class="kw">crate</span>::std::string::ToString;
+ <span class="kw">use </span>bdk_chain::{BlockId, ConfirmationTime};
+ <span class="kw">use </span>bitcoin::hashes::Hash;
+ <span class="kw">use </span>bitcoin::{transaction, BlockHash, Network, Transaction};
+
+ <span class="kw">use super</span>::<span class="kw-2">*</span>;
+ <span class="kw">use </span><span class="kw">crate</span>::wallet::Wallet;
+
+ <span class="kw">fn </span>get_test_wallet(
+ descriptor: <span class="kw-2">&</span>str,
+ change_descriptor: <span class="prelude-ty">Option</span><<span class="kw-2">&</span>str>,
+ network: Network,
+ ) -> Wallet {
+ <span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(descriptor, change_descriptor, network).unwrap();
+ <span class="kw">let </span>transaction = Transaction {
+ input: <span class="macro">vec!</span>[],
+ output: <span class="macro">vec!</span>[],
+ version: transaction::Version::non_standard(<span class="number">0</span>),
+ lock_time: bitcoin::absolute::LockTime::ZERO,
+ };
+ wallet
+ .insert_checkpoint(BlockId {
+ height: <span class="number">5001</span>,
+ hash: BlockHash::all_zeros(),
+ })
+ .unwrap();
+ wallet
+ .insert_tx(
+ transaction,
+ ConfirmationTime::Confirmed {
+ height: <span class="number">5000</span>,
+ time: <span class="number">0</span>,
+ },
+ )
+ .unwrap();
+ wallet
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_export_bip44() {
+ <span class="kw">let </span>descriptor = <span class="string">"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/0/*)"</span>;
+ <span class="kw">let </span>change_descriptor = <span class="string">"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/1/*)"</span>;
+
+ <span class="kw">let </span>wallet = get_test_wallet(descriptor, <span class="prelude-val">Some</span>(change_descriptor), Network::Bitcoin);
+ <span class="kw">let </span>export = FullyNodedExport::export_wallet(<span class="kw-2">&</span>wallet, <span class="string">"Test Label"</span>, <span class="bool-val">true</span>).unwrap();
+
+ <span class="macro">assert_eq!</span>(export.descriptor(), descriptor);
+ <span class="macro">assert_eq!</span>(export.change_descriptor(), <span class="prelude-val">Some</span>(change_descriptor.into()));
+ <span class="macro">assert_eq!</span>(export.blockheight, <span class="number">5000</span>);
+ <span class="macro">assert_eq!</span>(export.label, <span class="string">"Test Label"</span>);
+ }
+
+ <span class="attr">#[test]
+ #[should_panic(expected = <span class="string">"Incompatible change descriptor"</span>)]
+ </span><span class="kw">fn </span>test_export_no_change() {
+ <span class="comment">// This wallet explicitly doesn't have a change descriptor. It should be impossible to
+ // export, because exporting this kind of external descriptor normally implies the
+ // existence of an internal descriptor
+
+ </span><span class="kw">let </span>descriptor = <span class="string">"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/0/*)"</span>;
+
+ <span class="kw">let </span>wallet = get_test_wallet(descriptor, <span class="prelude-val">None</span>, Network::Bitcoin);
+ FullyNodedExport::export_wallet(<span class="kw-2">&</span>wallet, <span class="string">"Test Label"</span>, <span class="bool-val">true</span>).unwrap();
+ }
+
+ <span class="attr">#[test]
+ #[should_panic(expected = <span class="string">"Incompatible change descriptor"</span>)]
+ </span><span class="kw">fn </span>test_export_incompatible_change() {
+ <span class="comment">// This wallet has a change descriptor, but the derivation path is not in the "standard"
+ // bip44/49/etc format
+
+ </span><span class="kw">let </span>descriptor = <span class="string">"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/0/*)"</span>;
+ <span class="kw">let </span>change_descriptor = <span class="string">"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/50'/0'/1/*)"</span>;
+
+ <span class="kw">let </span>wallet = get_test_wallet(descriptor, <span class="prelude-val">Some</span>(change_descriptor), Network::Bitcoin);
+ FullyNodedExport::export_wallet(<span class="kw-2">&</span>wallet, <span class="string">"Test Label"</span>, <span class="bool-val">true</span>).unwrap();
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_export_multi() {
+ <span class="kw">let </span>descriptor = <span class="string">"wsh(multi(2,\
+ [73756c7f/48'/0'/0'/2']tpubDCKxNyM3bLgbEX13Mcd8mYxbVg9ajDkWXMh29hMWBurKfVmBfWAM96QVP3zaUcN51HvkZ3ar4VwP82kC8JZhhux8vFQoJintSpVBwpFvyU3/0/*,\
+ [f9f62194/48'/0'/0'/2']tpubDDp3ZSH1yCwusRppH7zgSxq2t1VEUyXSeEp8E5aFS8m43MknUjiF1bSLo3CGWAxbDyhF1XowA5ukPzyJZjznYk3kYi6oe7QxtX2euvKWsk4/0/*,\
+ [c98b1535/48'/0'/0'/2']tpubDCDi5W4sP6zSnzJeowy8rQDVhBdRARaPhK1axABi8V1661wEPeanpEXj4ZLAUEoikVtoWcyK26TKKJSecSfeKxwHCcRrge9k1ybuiL71z4a/0/*\
+ ))"</span>;
+ <span class="kw">let </span>change_descriptor = <span class="string">"wsh(multi(2,\
+ [73756c7f/48'/0'/0'/2']tpubDCKxNyM3bLgbEX13Mcd8mYxbVg9ajDkWXMh29hMWBurKfVmBfWAM96QVP3zaUcN51HvkZ3ar4VwP82kC8JZhhux8vFQoJintSpVBwpFvyU3/1/*,\
+ [f9f62194/48'/0'/0'/2']tpubDDp3ZSH1yCwusRppH7zgSxq2t1VEUyXSeEp8E5aFS8m43MknUjiF1bSLo3CGWAxbDyhF1XowA5ukPzyJZjznYk3kYi6oe7QxtX2euvKWsk4/1/*,\
+ [c98b1535/48'/0'/0'/2']tpubDCDi5W4sP6zSnzJeowy8rQDVhBdRARaPhK1axABi8V1661wEPeanpEXj4ZLAUEoikVtoWcyK26TKKJSecSfeKxwHCcRrge9k1ybuiL71z4a/1/*\
+ ))"</span>;
+
+ <span class="kw">let </span>wallet = get_test_wallet(descriptor, <span class="prelude-val">Some</span>(change_descriptor), Network::Testnet);
+ <span class="kw">let </span>export = FullyNodedExport::export_wallet(<span class="kw-2">&</span>wallet, <span class="string">"Test Label"</span>, <span class="bool-val">true</span>).unwrap();
+
+ <span class="macro">assert_eq!</span>(export.descriptor(), descriptor);
+ <span class="macro">assert_eq!</span>(export.change_descriptor(), <span class="prelude-val">Some</span>(change_descriptor.into()));
+ <span class="macro">assert_eq!</span>(export.blockheight, <span class="number">5000</span>);
+ <span class="macro">assert_eq!</span>(export.label, <span class="string">"Test Label"</span>);
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_export_to_json() {
+ <span class="kw">let </span>descriptor = <span class="string">"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/0/*)"</span>;
+ <span class="kw">let </span>change_descriptor = <span class="string">"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/1/*)"</span>;
+
+ <span class="kw">let </span>wallet = get_test_wallet(descriptor, <span class="prelude-val">Some</span>(change_descriptor), Network::Bitcoin);
+ <span class="kw">let </span>export = FullyNodedExport::export_wallet(<span class="kw-2">&</span>wallet, <span class="string">"Test Label"</span>, <span class="bool-val">true</span>).unwrap();
+
+ <span class="macro">assert_eq!</span>(export.to_string(), <span class="string">"{\"descriptor\":\"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44\'/0\'/0\'/0/*)\",\"blockheight\":5000,\"label\":\"Test Label\"}"</span>);
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_export_from_json() {
+ <span class="kw">let </span>descriptor = <span class="string">"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/0/*)"</span>;
+ <span class="kw">let </span>change_descriptor = <span class="string">"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/1/*)"</span>;
+
+ <span class="kw">let </span>import_str = <span class="string">"{\"descriptor\":\"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44\'/0\'/0\'/0/*)\",\"blockheight\":5000,\"label\":\"Test Label\"}"</span>;
+ <span class="kw">let </span>export = FullyNodedExport::from_str(import_str).unwrap();
+
+ <span class="macro">assert_eq!</span>(export.descriptor(), descriptor);
+ <span class="macro">assert_eq!</span>(export.change_descriptor(), <span class="prelude-val">Some</span>(change_descriptor.into()));
+ <span class="macro">assert_eq!</span>(export.blockheight, <span class="number">5000</span>);
+ <span class="macro">assert_eq!</span>(export.label, <span class="string">"Test Label"</span>);
+ }
+}
+</code></pre></div>
+</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Source of the Rust file `crates/wallet/src/wallet/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk_wallet/index.html">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
+<a href="#2" id="2">2</a>
+<a href="#3" id="3">3</a>
+<a href="#4" id="4">4</a>
+<a href="#5" id="5">5</a>
+<a href="#6" id="6">6</a>
+<a href="#7" id="7">7</a>
+<a href="#8" id="8">8</a>
+<a href="#9" id="9">9</a>
+<a href="#10" id="10">10</a>
+<a href="#11" id="11">11</a>
+<a href="#12" id="12">12</a>
+<a href="#13" id="13">13</a>
+<a href="#14" id="14">14</a>
+<a href="#15" id="15">15</a>
+<a href="#16" id="16">16</a>
+<a href="#17" id="17">17</a>
+<a href="#18" id="18">18</a>
+<a href="#19" id="19">19</a>
+<a href="#20" id="20">20</a>
+<a href="#21" id="21">21</a>
+<a href="#22" id="22">22</a>
+<a href="#23" id="23">23</a>
+<a href="#24" id="24">24</a>
+<a href="#25" id="25">25</a>
+<a href="#26" id="26">26</a>
+<a href="#27" id="27">27</a>
+<a href="#28" id="28">28</a>
+<a href="#29" id="29">29</a>
+<a href="#30" id="30">30</a>
+<a href="#31" id="31">31</a>
+<a href="#32" id="32">32</a>
+<a href="#33" id="33">33</a>
+<a href="#34" id="34">34</a>
+<a href="#35" id="35">35</a>
+<a href="#36" id="36">36</a>
+<a href="#37" id="37">37</a>
+<a href="#38" id="38">38</a>
+<a href="#39" id="39">39</a>
+<a href="#40" id="40">40</a>
+<a href="#41" id="41">41</a>
+<a href="#42" id="42">42</a>
+<a href="#43" id="43">43</a>
+<a href="#44" id="44">44</a>
+<a href="#45" id="45">45</a>
+<a href="#46" id="46">46</a>
+<a href="#47" id="47">47</a>
+<a href="#48" id="48">48</a>
+<a href="#49" id="49">49</a>
+<a href="#50" id="50">50</a>
+<a href="#51" id="51">51</a>
+<a href="#52" id="52">52</a>
+<a href="#53" id="53">53</a>
+<a href="#54" id="54">54</a>
+<a href="#55" id="55">55</a>
+<a href="#56" id="56">56</a>
+<a href="#57" id="57">57</a>
+<a href="#58" id="58">58</a>
+<a href="#59" id="59">59</a>
+<a href="#60" id="60">60</a>
+<a href="#61" id="61">61</a>
+<a href="#62" id="62">62</a>
+<a href="#63" id="63">63</a>
+<a href="#64" id="64">64</a>
+<a href="#65" id="65">65</a>
+<a href="#66" id="66">66</a>
+<a href="#67" id="67">67</a>
+<a href="#68" id="68">68</a>
+<a href="#69" id="69">69</a>
+<a href="#70" id="70">70</a>
+<a href="#71" id="71">71</a>
+<a href="#72" id="72">72</a>
+<a href="#73" id="73">73</a>
+<a href="#74" id="74">74</a>
+<a href="#75" id="75">75</a>
+<a href="#76" id="76">76</a>
+<a href="#77" id="77">77</a>
+<a href="#78" id="78">78</a>
+<a href="#79" id="79">79</a>
+<a href="#80" id="80">80</a>
+<a href="#81" id="81">81</a>
+<a href="#82" id="82">82</a>
+<a href="#83" id="83">83</a>
+<a href="#84" id="84">84</a>
+<a href="#85" id="85">85</a>
+<a href="#86" id="86">86</a>
+<a href="#87" id="87">87</a>
+<a href="#88" id="88">88</a>
+<a href="#89" id="89">89</a>
+<a href="#90" id="90">90</a>
+<a href="#91" id="91">91</a>
+<a href="#92" id="92">92</a>
+<a href="#93" id="93">93</a>
+<a href="#94" id="94">94</a>
+<a href="#95" id="95">95</a>
+<a href="#96" id="96">96</a>
+<a href="#97" id="97">97</a>
+<a href="#98" id="98">98</a>
+<a href="#99" id="99">99</a>
+<a href="#100" id="100">100</a>
+<a href="#101" id="101">101</a>
+<a href="#102" id="102">102</a>
+<a href="#103" id="103">103</a>
+<a href="#104" id="104">104</a>
+<a href="#105" id="105">105</a>
+<a href="#106" id="106">106</a>
+<a href="#107" id="107">107</a>
+<a href="#108" id="108">108</a>
+<a href="#109" id="109">109</a>
+<a href="#110" id="110">110</a>
+<a href="#111" id="111">111</a>
+<a href="#112" id="112">112</a>
+<a href="#113" id="113">113</a>
+<a href="#114" id="114">114</a>
+<a href="#115" id="115">115</a>
+<a href="#116" id="116">116</a>
+<a href="#117" id="117">117</a>
+<a href="#118" id="118">118</a>
+<a href="#119" id="119">119</a>
+<a href="#120" id="120">120</a>
+<a href="#121" id="121">121</a>
+<a href="#122" id="122">122</a>
+<a href="#123" id="123">123</a>
+<a href="#124" id="124">124</a>
+<a href="#125" id="125">125</a>
+<a href="#126" id="126">126</a>
+<a href="#127" id="127">127</a>
+<a href="#128" id="128">128</a>
+<a href="#129" id="129">129</a>
+<a href="#130" id="130">130</a>
+<a href="#131" id="131">131</a>
+<a href="#132" id="132">132</a>
+<a href="#133" id="133">133</a>
+<a href="#134" id="134">134</a>
+<a href="#135" id="135">135</a>
+<a href="#136" id="136">136</a>
+<a href="#137" id="137">137</a>
+<a href="#138" id="138">138</a>
+<a href="#139" id="139">139</a>
+<a href="#140" id="140">140</a>
+<a href="#141" id="141">141</a>
+<a href="#142" id="142">142</a>
+<a href="#143" id="143">143</a>
+<a href="#144" id="144">144</a>
+<a href="#145" id="145">145</a>
+<a href="#146" id="146">146</a>
+<a href="#147" id="147">147</a>
+<a href="#148" id="148">148</a>
+<a href="#149" id="149">149</a>
+<a href="#150" id="150">150</a>
+<a href="#151" id="151">151</a>
+<a href="#152" id="152">152</a>
+<a href="#153" id="153">153</a>
+<a href="#154" id="154">154</a>
+<a href="#155" id="155">155</a>
+<a href="#156" id="156">156</a>
+<a href="#157" id="157">157</a>
+<a href="#158" id="158">158</a>
+<a href="#159" id="159">159</a>
+<a href="#160" id="160">160</a>
+<a href="#161" id="161">161</a>
+<a href="#162" id="162">162</a>
+<a href="#163" id="163">163</a>
+<a href="#164" id="164">164</a>
+<a href="#165" id="165">165</a>
+<a href="#166" id="166">166</a>
+<a href="#167" id="167">167</a>
+<a href="#168" id="168">168</a>
+<a href="#169" id="169">169</a>
+<a href="#170" id="170">170</a>
+<a href="#171" id="171">171</a>
+<a href="#172" id="172">172</a>
+<a href="#173" id="173">173</a>
+<a href="#174" id="174">174</a>
+<a href="#175" id="175">175</a>
+<a href="#176" id="176">176</a>
+<a href="#177" id="177">177</a>
+<a href="#178" id="178">178</a>
+<a href="#179" id="179">179</a>
+<a href="#180" id="180">180</a>
+<a href="#181" id="181">181</a>
+<a href="#182" id="182">182</a>
+<a href="#183" id="183">183</a>
+<a href="#184" id="184">184</a>
+<a href="#185" id="185">185</a>
+<a href="#186" id="186">186</a>
+<a href="#187" id="187">187</a>
+<a href="#188" id="188">188</a>
+<a href="#189" id="189">189</a>
+<a href="#190" id="190">190</a>
+<a href="#191" id="191">191</a>
+<a href="#192" id="192">192</a>
+<a href="#193" id="193">193</a>
+<a href="#194" id="194">194</a>
+<a href="#195" id="195">195</a>
+<a href="#196" id="196">196</a>
+<a href="#197" id="197">197</a>
+<a href="#198" id="198">198</a>
+<a href="#199" id="199">199</a>
+<a href="#200" id="200">200</a>
+<a href="#201" id="201">201</a>
+<a href="#202" id="202">202</a>
+<a href="#203" id="203">203</a>
+<a href="#204" id="204">204</a>
+<a href="#205" id="205">205</a>
+<a href="#206" id="206">206</a>
+<a href="#207" id="207">207</a>
+<a href="#208" id="208">208</a>
+<a href="#209" id="209">209</a>
+<a href="#210" id="210">210</a>
+<a href="#211" id="211">211</a>
+<a href="#212" id="212">212</a>
+<a href="#213" id="213">213</a>
+<a href="#214" id="214">214</a>
+<a href="#215" id="215">215</a>
+<a href="#216" id="216">216</a>
+<a href="#217" id="217">217</a>
+<a href="#218" id="218">218</a>
+<a href="#219" id="219">219</a>
+<a href="#220" id="220">220</a>
+<a href="#221" id="221">221</a>
+<a href="#222" id="222">222</a>
+<a href="#223" id="223">223</a>
+<a href="#224" id="224">224</a>
+<a href="#225" id="225">225</a>
+<a href="#226" id="226">226</a>
+<a href="#227" id="227">227</a>
+<a href="#228" id="228">228</a>
+<a href="#229" id="229">229</a>
+<a href="#230" id="230">230</a>
+<a href="#231" id="231">231</a>
+<a href="#232" id="232">232</a>
+<a href="#233" id="233">233</a>
+<a href="#234" id="234">234</a>
+<a href="#235" id="235">235</a>
+<a href="#236" id="236">236</a>
+<a href="#237" id="237">237</a>
+<a href="#238" id="238">238</a>
+<a href="#239" id="239">239</a>
+<a href="#240" id="240">240</a>
+<a href="#241" id="241">241</a>
+<a href="#242" id="242">242</a>
+<a href="#243" id="243">243</a>
+<a href="#244" id="244">244</a>
+<a href="#245" id="245">245</a>
+<a href="#246" id="246">246</a>
+<a href="#247" id="247">247</a>
+<a href="#248" id="248">248</a>
+<a href="#249" id="249">249</a>
+<a href="#250" id="250">250</a>
+<a href="#251" id="251">251</a>
+<a href="#252" id="252">252</a>
+<a href="#253" id="253">253</a>
+<a href="#254" id="254">254</a>
+<a href="#255" id="255">255</a>
+<a href="#256" id="256">256</a>
+<a href="#257" id="257">257</a>
+<a href="#258" id="258">258</a>
+<a href="#259" id="259">259</a>
+<a href="#260" id="260">260</a>
+<a href="#261" id="261">261</a>
+<a href="#262" id="262">262</a>
+<a href="#263" id="263">263</a>
+<a href="#264" id="264">264</a>
+<a href="#265" id="265">265</a>
+<a href="#266" id="266">266</a>
+<a href="#267" id="267">267</a>
+<a href="#268" id="268">268</a>
+<a href="#269" id="269">269</a>
+<a href="#270" id="270">270</a>
+<a href="#271" id="271">271</a>
+<a href="#272" id="272">272</a>
+<a href="#273" id="273">273</a>
+<a href="#274" id="274">274</a>
+<a href="#275" id="275">275</a>
+<a href="#276" id="276">276</a>
+<a href="#277" id="277">277</a>
+<a href="#278" id="278">278</a>
+<a href="#279" id="279">279</a>
+<a href="#280" id="280">280</a>
+<a href="#281" id="281">281</a>
+<a href="#282" id="282">282</a>
+<a href="#283" id="283">283</a>
+<a href="#284" id="284">284</a>
+<a href="#285" id="285">285</a>
+<a href="#286" id="286">286</a>
+<a href="#287" id="287">287</a>
+<a href="#288" id="288">288</a>
+<a href="#289" id="289">289</a>
+<a href="#290" id="290">290</a>
+<a href="#291" id="291">291</a>
+<a href="#292" id="292">292</a>
+<a href="#293" id="293">293</a>
+<a href="#294" id="294">294</a>
+<a href="#295" id="295">295</a>
+<a href="#296" id="296">296</a>
+<a href="#297" id="297">297</a>
+<a href="#298" id="298">298</a>
+<a href="#299" id="299">299</a>
+<a href="#300" id="300">300</a>
+<a href="#301" id="301">301</a>
+<a href="#302" id="302">302</a>
+<a href="#303" id="303">303</a>
+<a href="#304" id="304">304</a>
+<a href="#305" id="305">305</a>
+<a href="#306" id="306">306</a>
+<a href="#307" id="307">307</a>
+<a href="#308" id="308">308</a>
+<a href="#309" id="309">309</a>
+<a href="#310" id="310">310</a>
+<a href="#311" id="311">311</a>
+<a href="#312" id="312">312</a>
+<a href="#313" id="313">313</a>
+<a href="#314" id="314">314</a>
+<a href="#315" id="315">315</a>
+<a href="#316" id="316">316</a>
+<a href="#317" id="317">317</a>
+<a href="#318" id="318">318</a>
+<a href="#319" id="319">319</a>
+<a href="#320" id="320">320</a>
+<a href="#321" id="321">321</a>
+<a href="#322" id="322">322</a>
+<a href="#323" id="323">323</a>
+<a href="#324" id="324">324</a>
+<a href="#325" id="325">325</a>
+<a href="#326" id="326">326</a>
+<a href="#327" id="327">327</a>
+<a href="#328" id="328">328</a>
+<a href="#329" id="329">329</a>
+<a href="#330" id="330">330</a>
+<a href="#331" id="331">331</a>
+<a href="#332" id="332">332</a>
+<a href="#333" id="333">333</a>
+<a href="#334" id="334">334</a>
+<a href="#335" id="335">335</a>
+<a href="#336" id="336">336</a>
+<a href="#337" id="337">337</a>
+<a href="#338" id="338">338</a>
+<a href="#339" id="339">339</a>
+<a href="#340" id="340">340</a>
+<a href="#341" id="341">341</a>
+<a href="#342" id="342">342</a>
+<a href="#343" id="343">343</a>
+<a href="#344" id="344">344</a>
+<a href="#345" id="345">345</a>
+<a href="#346" id="346">346</a>
+<a href="#347" id="347">347</a>
+<a href="#348" id="348">348</a>
+<a href="#349" id="349">349</a>
+<a href="#350" id="350">350</a>
+<a href="#351" id="351">351</a>
+<a href="#352" id="352">352</a>
+<a href="#353" id="353">353</a>
+<a href="#354" id="354">354</a>
+<a href="#355" id="355">355</a>
+<a href="#356" id="356">356</a>
+<a href="#357" id="357">357</a>
+<a href="#358" id="358">358</a>
+<a href="#359" id="359">359</a>
+<a href="#360" id="360">360</a>
+<a href="#361" id="361">361</a>
+<a href="#362" id="362">362</a>
+<a href="#363" id="363">363</a>
+<a href="#364" id="364">364</a>
+<a href="#365" id="365">365</a>
+<a href="#366" id="366">366</a>
+<a href="#367" id="367">367</a>
+<a href="#368" id="368">368</a>
+<a href="#369" id="369">369</a>
+<a href="#370" id="370">370</a>
+<a href="#371" id="371">371</a>
+<a href="#372" id="372">372</a>
+<a href="#373" id="373">373</a>
+<a href="#374" id="374">374</a>
+<a href="#375" id="375">375</a>
+<a href="#376" id="376">376</a>
+<a href="#377" id="377">377</a>
+<a href="#378" id="378">378</a>
+<a href="#379" id="379">379</a>
+<a href="#380" id="380">380</a>
+<a href="#381" id="381">381</a>
+<a href="#382" id="382">382</a>
+<a href="#383" id="383">383</a>
+<a href="#384" id="384">384</a>
+<a href="#385" id="385">385</a>
+<a href="#386" id="386">386</a>
+<a href="#387" id="387">387</a>
+<a href="#388" id="388">388</a>
+<a href="#389" id="389">389</a>
+<a href="#390" id="390">390</a>
+<a href="#391" id="391">391</a>
+<a href="#392" id="392">392</a>
+<a href="#393" id="393">393</a>
+<a href="#394" id="394">394</a>
+<a href="#395" id="395">395</a>
+<a href="#396" id="396">396</a>
+<a href="#397" id="397">397</a>
+<a href="#398" id="398">398</a>
+<a href="#399" id="399">399</a>
+<a href="#400" id="400">400</a>
+<a href="#401" id="401">401</a>
+<a href="#402" id="402">402</a>
+<a href="#403" id="403">403</a>
+<a href="#404" id="404">404</a>
+<a href="#405" id="405">405</a>
+<a href="#406" id="406">406</a>
+<a href="#407" id="407">407</a>
+<a href="#408" id="408">408</a>
+<a href="#409" id="409">409</a>
+<a href="#410" id="410">410</a>
+<a href="#411" id="411">411</a>
+<a href="#412" id="412">412</a>
+<a href="#413" id="413">413</a>
+<a href="#414" id="414">414</a>
+<a href="#415" id="415">415</a>
+<a href="#416" id="416">416</a>
+<a href="#417" id="417">417</a>
+<a href="#418" id="418">418</a>
+<a href="#419" id="419">419</a>
+<a href="#420" id="420">420</a>
+<a href="#421" id="421">421</a>
+<a href="#422" id="422">422</a>
+<a href="#423" id="423">423</a>
+<a href="#424" id="424">424</a>
+<a href="#425" id="425">425</a>
+<a href="#426" id="426">426</a>
+<a href="#427" id="427">427</a>
+<a href="#428" id="428">428</a>
+<a href="#429" id="429">429</a>
+<a href="#430" id="430">430</a>
+<a href="#431" id="431">431</a>
+<a href="#432" id="432">432</a>
+<a href="#433" id="433">433</a>
+<a href="#434" id="434">434</a>
+<a href="#435" id="435">435</a>
+<a href="#436" id="436">436</a>
+<a href="#437" id="437">437</a>
+<a href="#438" id="438">438</a>
+<a href="#439" id="439">439</a>
+<a href="#440" id="440">440</a>
+<a href="#441" id="441">441</a>
+<a href="#442" id="442">442</a>
+<a href="#443" id="443">443</a>
+<a href="#444" id="444">444</a>
+<a href="#445" id="445">445</a>
+<a href="#446" id="446">446</a>
+<a href="#447" id="447">447</a>
+<a href="#448" id="448">448</a>
+<a href="#449" id="449">449</a>
+<a href="#450" id="450">450</a>
+<a href="#451" id="451">451</a>
+<a href="#452" id="452">452</a>
+<a href="#453" id="453">453</a>
+<a href="#454" id="454">454</a>
+<a href="#455" id="455">455</a>
+<a href="#456" id="456">456</a>
+<a href="#457" id="457">457</a>
+<a href="#458" id="458">458</a>
+<a href="#459" id="459">459</a>
+<a href="#460" id="460">460</a>
+<a href="#461" id="461">461</a>
+<a href="#462" id="462">462</a>
+<a href="#463" id="463">463</a>
+<a href="#464" id="464">464</a>
+<a href="#465" id="465">465</a>
+<a href="#466" id="466">466</a>
+<a href="#467" id="467">467</a>
+<a href="#468" id="468">468</a>
+<a href="#469" id="469">469</a>
+<a href="#470" id="470">470</a>
+<a href="#471" id="471">471</a>
+<a href="#472" id="472">472</a>
+<a href="#473" id="473">473</a>
+<a href="#474" id="474">474</a>
+<a href="#475" id="475">475</a>
+<a href="#476" id="476">476</a>
+<a href="#477" id="477">477</a>
+<a href="#478" id="478">478</a>
+<a href="#479" id="479">479</a>
+<a href="#480" id="480">480</a>
+<a href="#481" id="481">481</a>
+<a href="#482" id="482">482</a>
+<a href="#483" id="483">483</a>
+<a href="#484" id="484">484</a>
+<a href="#485" id="485">485</a>
+<a href="#486" id="486">486</a>
+<a href="#487" id="487">487</a>
+<a href="#488" id="488">488</a>
+<a href="#489" id="489">489</a>
+<a href="#490" id="490">490</a>
+<a href="#491" id="491">491</a>
+<a href="#492" id="492">492</a>
+<a href="#493" id="493">493</a>
+<a href="#494" id="494">494</a>
+<a href="#495" id="495">495</a>
+<a href="#496" id="496">496</a>
+<a href="#497" id="497">497</a>
+<a href="#498" id="498">498</a>
+<a href="#499" id="499">499</a>
+<a href="#500" id="500">500</a>
+<a href="#501" id="501">501</a>
+<a href="#502" id="502">502</a>
+<a href="#503" id="503">503</a>
+<a href="#504" id="504">504</a>
+<a href="#505" id="505">505</a>
+<a href="#506" id="506">506</a>
+<a href="#507" id="507">507</a>
+<a href="#508" id="508">508</a>
+<a href="#509" id="509">509</a>
+<a href="#510" id="510">510</a>
+<a href="#511" id="511">511</a>
+<a href="#512" id="512">512</a>
+<a href="#513" id="513">513</a>
+<a href="#514" id="514">514</a>
+<a href="#515" id="515">515</a>
+<a href="#516" id="516">516</a>
+<a href="#517" id="517">517</a>
+<a href="#518" id="518">518</a>
+<a href="#519" id="519">519</a>
+<a href="#520" id="520">520</a>
+<a href="#521" id="521">521</a>
+<a href="#522" id="522">522</a>
+<a href="#523" id="523">523</a>
+<a href="#524" id="524">524</a>
+<a href="#525" id="525">525</a>
+<a href="#526" id="526">526</a>
+<a href="#527" id="527">527</a>
+<a href="#528" id="528">528</a>
+<a href="#529" id="529">529</a>
+<a href="#530" id="530">530</a>
+<a href="#531" id="531">531</a>
+<a href="#532" id="532">532</a>
+<a href="#533" id="533">533</a>
+<a href="#534" id="534">534</a>
+<a href="#535" id="535">535</a>
+<a href="#536" id="536">536</a>
+<a href="#537" id="537">537</a>
+<a href="#538" id="538">538</a>
+<a href="#539" id="539">539</a>
+<a href="#540" id="540">540</a>
+<a href="#541" id="541">541</a>
+<a href="#542" id="542">542</a>
+<a href="#543" id="543">543</a>
+<a href="#544" id="544">544</a>
+<a href="#545" id="545">545</a>
+<a href="#546" id="546">546</a>
+<a href="#547" id="547">547</a>
+<a href="#548" id="548">548</a>
+<a href="#549" id="549">549</a>
+<a href="#550" id="550">550</a>
+<a href="#551" id="551">551</a>
+<a href="#552" id="552">552</a>
+<a href="#553" id="553">553</a>
+<a href="#554" id="554">554</a>
+<a href="#555" id="555">555</a>
+<a href="#556" id="556">556</a>
+<a href="#557" id="557">557</a>
+<a href="#558" id="558">558</a>
+<a href="#559" id="559">559</a>
+<a href="#560" id="560">560</a>
+<a href="#561" id="561">561</a>
+<a href="#562" id="562">562</a>
+<a href="#563" id="563">563</a>
+<a href="#564" id="564">564</a>
+<a href="#565" id="565">565</a>
+<a href="#566" id="566">566</a>
+<a href="#567" id="567">567</a>
+<a href="#568" id="568">568</a>
+<a href="#569" id="569">569</a>
+<a href="#570" id="570">570</a>
+<a href="#571" id="571">571</a>
+<a href="#572" id="572">572</a>
+<a href="#573" id="573">573</a>
+<a href="#574" id="574">574</a>
+<a href="#575" id="575">575</a>
+<a href="#576" id="576">576</a>
+<a href="#577" id="577">577</a>
+<a href="#578" id="578">578</a>
+<a href="#579" id="579">579</a>
+<a href="#580" id="580">580</a>
+<a href="#581" id="581">581</a>
+<a href="#582" id="582">582</a>
+<a href="#583" id="583">583</a>
+<a href="#584" id="584">584</a>
+<a href="#585" id="585">585</a>
+<a href="#586" id="586">586</a>
+<a href="#587" id="587">587</a>
+<a href="#588" id="588">588</a>
+<a href="#589" id="589">589</a>
+<a href="#590" id="590">590</a>
+<a href="#591" id="591">591</a>
+<a href="#592" id="592">592</a>
+<a href="#593" id="593">593</a>
+<a href="#594" id="594">594</a>
+<a href="#595" id="595">595</a>
+<a href="#596" id="596">596</a>
+<a href="#597" id="597">597</a>
+<a href="#598" id="598">598</a>
+<a href="#599" id="599">599</a>
+<a href="#600" id="600">600</a>
+<a href="#601" id="601">601</a>
+<a href="#602" id="602">602</a>
+<a href="#603" id="603">603</a>
+<a href="#604" id="604">604</a>
+<a href="#605" id="605">605</a>
+<a href="#606" id="606">606</a>
+<a href="#607" id="607">607</a>
+<a href="#608" id="608">608</a>
+<a href="#609" id="609">609</a>
+<a href="#610" id="610">610</a>
+<a href="#611" id="611">611</a>
+<a href="#612" id="612">612</a>
+<a href="#613" id="613">613</a>
+<a href="#614" id="614">614</a>
+<a href="#615" id="615">615</a>
+<a href="#616" id="616">616</a>
+<a href="#617" id="617">617</a>
+<a href="#618" id="618">618</a>
+<a href="#619" id="619">619</a>
+<a href="#620" id="620">620</a>
+<a href="#621" id="621">621</a>
+<a href="#622" id="622">622</a>
+<a href="#623" id="623">623</a>
+<a href="#624" id="624">624</a>
+<a href="#625" id="625">625</a>
+<a href="#626" id="626">626</a>
+<a href="#627" id="627">627</a>
+<a href="#628" id="628">628</a>
+<a href="#629" id="629">629</a>
+<a href="#630" id="630">630</a>
+<a href="#631" id="631">631</a>
+<a href="#632" id="632">632</a>
+<a href="#633" id="633">633</a>
+<a href="#634" id="634">634</a>
+<a href="#635" id="635">635</a>
+<a href="#636" id="636">636</a>
+<a href="#637" id="637">637</a>
+<a href="#638" id="638">638</a>
+<a href="#639" id="639">639</a>
+<a href="#640" id="640">640</a>
+<a href="#641" id="641">641</a>
+<a href="#642" id="642">642</a>
+<a href="#643" id="643">643</a>
+<a href="#644" id="644">644</a>
+<a href="#645" id="645">645</a>
+<a href="#646" id="646">646</a>
+<a href="#647" id="647">647</a>
+<a href="#648" id="648">648</a>
+<a href="#649" id="649">649</a>
+<a href="#650" id="650">650</a>
+<a href="#651" id="651">651</a>
+<a href="#652" id="652">652</a>
+<a href="#653" id="653">653</a>
+<a href="#654" id="654">654</a>
+<a href="#655" id="655">655</a>
+<a href="#656" id="656">656</a>
+<a href="#657" id="657">657</a>
+<a href="#658" id="658">658</a>
+<a href="#659" id="659">659</a>
+<a href="#660" id="660">660</a>
+<a href="#661" id="661">661</a>
+<a href="#662" id="662">662</a>
+<a href="#663" id="663">663</a>
+<a href="#664" id="664">664</a>
+<a href="#665" id="665">665</a>
+<a href="#666" id="666">666</a>
+<a href="#667" id="667">667</a>
+<a href="#668" id="668">668</a>
+<a href="#669" id="669">669</a>
+<a href="#670" id="670">670</a>
+<a href="#671" id="671">671</a>
+<a href="#672" id="672">672</a>
+<a href="#673" id="673">673</a>
+<a href="#674" id="674">674</a>
+<a href="#675" id="675">675</a>
+<a href="#676" id="676">676</a>
+<a href="#677" id="677">677</a>
+<a href="#678" id="678">678</a>
+<a href="#679" id="679">679</a>
+<a href="#680" id="680">680</a>
+<a href="#681" id="681">681</a>
+<a href="#682" id="682">682</a>
+<a href="#683" id="683">683</a>
+<a href="#684" id="684">684</a>
+<a href="#685" id="685">685</a>
+<a href="#686" id="686">686</a>
+<a href="#687" id="687">687</a>
+<a href="#688" id="688">688</a>
+<a href="#689" id="689">689</a>
+<a href="#690" id="690">690</a>
+<a href="#691" id="691">691</a>
+<a href="#692" id="692">692</a>
+<a href="#693" id="693">693</a>
+<a href="#694" id="694">694</a>
+<a href="#695" id="695">695</a>
+<a href="#696" id="696">696</a>
+<a href="#697" id="697">697</a>
+<a href="#698" id="698">698</a>
+<a href="#699" id="699">699</a>
+<a href="#700" id="700">700</a>
+<a href="#701" id="701">701</a>
+<a href="#702" id="702">702</a>
+<a href="#703" id="703">703</a>
+<a href="#704" id="704">704</a>
+<a href="#705" id="705">705</a>
+<a href="#706" id="706">706</a>
+<a href="#707" id="707">707</a>
+<a href="#708" id="708">708</a>
+<a href="#709" id="709">709</a>
+<a href="#710" id="710">710</a>
+<a href="#711" id="711">711</a>
+<a href="#712" id="712">712</a>
+<a href="#713" id="713">713</a>
+<a href="#714" id="714">714</a>
+<a href="#715" id="715">715</a>
+<a href="#716" id="716">716</a>
+<a href="#717" id="717">717</a>
+<a href="#718" id="718">718</a>
+<a href="#719" id="719">719</a>
+<a href="#720" id="720">720</a>
+<a href="#721" id="721">721</a>
+<a href="#722" id="722">722</a>
+<a href="#723" id="723">723</a>
+<a href="#724" id="724">724</a>
+<a href="#725" id="725">725</a>
+<a href="#726" id="726">726</a>
+<a href="#727" id="727">727</a>
+<a href="#728" id="728">728</a>
+<a href="#729" id="729">729</a>
+<a href="#730" id="730">730</a>
+<a href="#731" id="731">731</a>
+<a href="#732" id="732">732</a>
+<a href="#733" id="733">733</a>
+<a href="#734" id="734">734</a>
+<a href="#735" id="735">735</a>
+<a href="#736" id="736">736</a>
+<a href="#737" id="737">737</a>
+<a href="#738" id="738">738</a>
+<a href="#739" id="739">739</a>
+<a href="#740" id="740">740</a>
+<a href="#741" id="741">741</a>
+<a href="#742" id="742">742</a>
+<a href="#743" id="743">743</a>
+<a href="#744" id="744">744</a>
+<a href="#745" id="745">745</a>
+<a href="#746" id="746">746</a>
+<a href="#747" id="747">747</a>
+<a href="#748" id="748">748</a>
+<a href="#749" id="749">749</a>
+<a href="#750" id="750">750</a>
+<a href="#751" id="751">751</a>
+<a href="#752" id="752">752</a>
+<a href="#753" id="753">753</a>
+<a href="#754" id="754">754</a>
+<a href="#755" id="755">755</a>
+<a href="#756" id="756">756</a>
+<a href="#757" id="757">757</a>
+<a href="#758" id="758">758</a>
+<a href="#759" id="759">759</a>
+<a href="#760" id="760">760</a>
+<a href="#761" id="761">761</a>
+<a href="#762" id="762">762</a>
+<a href="#763" id="763">763</a>
+<a href="#764" id="764">764</a>
+<a href="#765" id="765">765</a>
+<a href="#766" id="766">766</a>
+<a href="#767" id="767">767</a>
+<a href="#768" id="768">768</a>
+<a href="#769" id="769">769</a>
+<a href="#770" id="770">770</a>
+<a href="#771" id="771">771</a>
+<a href="#772" id="772">772</a>
+<a href="#773" id="773">773</a>
+<a href="#774" id="774">774</a>
+<a href="#775" id="775">775</a>
+<a href="#776" id="776">776</a>
+<a href="#777" id="777">777</a>
+<a href="#778" id="778">778</a>
+<a href="#779" id="779">779</a>
+<a href="#780" id="780">780</a>
+<a href="#781" id="781">781</a>
+<a href="#782" id="782">782</a>
+<a href="#783" id="783">783</a>
+<a href="#784" id="784">784</a>
+<a href="#785" id="785">785</a>
+<a href="#786" id="786">786</a>
+<a href="#787" id="787">787</a>
+<a href="#788" id="788">788</a>
+<a href="#789" id="789">789</a>
+<a href="#790" id="790">790</a>
+<a href="#791" id="791">791</a>
+<a href="#792" id="792">792</a>
+<a href="#793" id="793">793</a>
+<a href="#794" id="794">794</a>
+<a href="#795" id="795">795</a>
+<a href="#796" id="796">796</a>
+<a href="#797" id="797">797</a>
+<a href="#798" id="798">798</a>
+<a href="#799" id="799">799</a>
+<a href="#800" id="800">800</a>
+<a href="#801" id="801">801</a>
+<a href="#802" id="802">802</a>
+<a href="#803" id="803">803</a>
+<a href="#804" id="804">804</a>
+<a href="#805" id="805">805</a>
+<a href="#806" id="806">806</a>
+<a href="#807" id="807">807</a>
+<a href="#808" id="808">808</a>
+<a href="#809" id="809">809</a>
+<a href="#810" id="810">810</a>
+<a href="#811" id="811">811</a>
+<a href="#812" id="812">812</a>
+<a href="#813" id="813">813</a>
+<a href="#814" id="814">814</a>
+<a href="#815" id="815">815</a>
+<a href="#816" id="816">816</a>
+<a href="#817" id="817">817</a>
+<a href="#818" id="818">818</a>
+<a href="#819" id="819">819</a>
+<a href="#820" id="820">820</a>
+<a href="#821" id="821">821</a>
+<a href="#822" id="822">822</a>
+<a href="#823" id="823">823</a>
+<a href="#824" id="824">824</a>
+<a href="#825" id="825">825</a>
+<a href="#826" id="826">826</a>
+<a href="#827" id="827">827</a>
+<a href="#828" id="828">828</a>
+<a href="#829" id="829">829</a>
+<a href="#830" id="830">830</a>
+<a href="#831" id="831">831</a>
+<a href="#832" id="832">832</a>
+<a href="#833" id="833">833</a>
+<a href="#834" id="834">834</a>
+<a href="#835" id="835">835</a>
+<a href="#836" id="836">836</a>
+<a href="#837" id="837">837</a>
+<a href="#838" id="838">838</a>
+<a href="#839" id="839">839</a>
+<a href="#840" id="840">840</a>
+<a href="#841" id="841">841</a>
+<a href="#842" id="842">842</a>
+<a href="#843" id="843">843</a>
+<a href="#844" id="844">844</a>
+<a href="#845" id="845">845</a>
+<a href="#846" id="846">846</a>
+<a href="#847" id="847">847</a>
+<a href="#848" id="848">848</a>
+<a href="#849" id="849">849</a>
+<a href="#850" id="850">850</a>
+<a href="#851" id="851">851</a>
+<a href="#852" id="852">852</a>
+<a href="#853" id="853">853</a>
+<a href="#854" id="854">854</a>
+<a href="#855" id="855">855</a>
+<a href="#856" id="856">856</a>
+<a href="#857" id="857">857</a>
+<a href="#858" id="858">858</a>
+<a href="#859" id="859">859</a>
+<a href="#860" id="860">860</a>
+<a href="#861" id="861">861</a>
+<a href="#862" id="862">862</a>
+<a href="#863" id="863">863</a>
+<a href="#864" id="864">864</a>
+<a href="#865" id="865">865</a>
+<a href="#866" id="866">866</a>
+<a href="#867" id="867">867</a>
+<a href="#868" id="868">868</a>
+<a href="#869" id="869">869</a>
+<a href="#870" id="870">870</a>
+<a href="#871" id="871">871</a>
+<a href="#872" id="872">872</a>
+<a href="#873" id="873">873</a>
+<a href="#874" id="874">874</a>
+<a href="#875" id="875">875</a>
+<a href="#876" id="876">876</a>
+<a href="#877" id="877">877</a>
+<a href="#878" id="878">878</a>
+<a href="#879" id="879">879</a>
+<a href="#880" id="880">880</a>
+<a href="#881" id="881">881</a>
+<a href="#882" id="882">882</a>
+<a href="#883" id="883">883</a>
+<a href="#884" id="884">884</a>
+<a href="#885" id="885">885</a>
+<a href="#886" id="886">886</a>
+<a href="#887" id="887">887</a>
+<a href="#888" id="888">888</a>
+<a href="#889" id="889">889</a>
+<a href="#890" id="890">890</a>
+<a href="#891" id="891">891</a>
+<a href="#892" id="892">892</a>
+<a href="#893" id="893">893</a>
+<a href="#894" id="894">894</a>
+<a href="#895" id="895">895</a>
+<a href="#896" id="896">896</a>
+<a href="#897" id="897">897</a>
+<a href="#898" id="898">898</a>
+<a href="#899" id="899">899</a>
+<a href="#900" id="900">900</a>
+<a href="#901" id="901">901</a>
+<a href="#902" id="902">902</a>
+<a href="#903" id="903">903</a>
+<a href="#904" id="904">904</a>
+<a href="#905" id="905">905</a>
+<a href="#906" id="906">906</a>
+<a href="#907" id="907">907</a>
+<a href="#908" id="908">908</a>
+<a href="#909" id="909">909</a>
+<a href="#910" id="910">910</a>
+<a href="#911" id="911">911</a>
+<a href="#912" id="912">912</a>
+<a href="#913" id="913">913</a>
+<a href="#914" id="914">914</a>
+<a href="#915" id="915">915</a>
+<a href="#916" id="916">916</a>
+<a href="#917" id="917">917</a>
+<a href="#918" id="918">918</a>
+<a href="#919" id="919">919</a>
+<a href="#920" id="920">920</a>
+<a href="#921" id="921">921</a>
+<a href="#922" id="922">922</a>
+<a href="#923" id="923">923</a>
+<a href="#924" id="924">924</a>
+<a href="#925" id="925">925</a>
+<a href="#926" id="926">926</a>
+<a href="#927" id="927">927</a>
+<a href="#928" id="928">928</a>
+<a href="#929" id="929">929</a>
+<a href="#930" id="930">930</a>
+<a href="#931" id="931">931</a>
+<a href="#932" id="932">932</a>
+<a href="#933" id="933">933</a>
+<a href="#934" id="934">934</a>
+<a href="#935" id="935">935</a>
+<a href="#936" id="936">936</a>
+<a href="#937" id="937">937</a>
+<a href="#938" id="938">938</a>
+<a href="#939" id="939">939</a>
+<a href="#940" id="940">940</a>
+<a href="#941" id="941">941</a>
+<a href="#942" id="942">942</a>
+<a href="#943" id="943">943</a>
+<a href="#944" id="944">944</a>
+<a href="#945" id="945">945</a>
+<a href="#946" id="946">946</a>
+<a href="#947" id="947">947</a>
+<a href="#948" id="948">948</a>
+<a href="#949" id="949">949</a>
+<a href="#950" id="950">950</a>
+<a href="#951" id="951">951</a>
+<a href="#952" id="952">952</a>
+<a href="#953" id="953">953</a>
+<a href="#954" id="954">954</a>
+<a href="#955" id="955">955</a>
+<a href="#956" id="956">956</a>
+<a href="#957" id="957">957</a>
+<a href="#958" id="958">958</a>
+<a href="#959" id="959">959</a>
+<a href="#960" id="960">960</a>
+<a href="#961" id="961">961</a>
+<a href="#962" id="962">962</a>
+<a href="#963" id="963">963</a>
+<a href="#964" id="964">964</a>
+<a href="#965" id="965">965</a>
+<a href="#966" id="966">966</a>
+<a href="#967" id="967">967</a>
+<a href="#968" id="968">968</a>
+<a href="#969" id="969">969</a>
+<a href="#970" id="970">970</a>
+<a href="#971" id="971">971</a>
+<a href="#972" id="972">972</a>
+<a href="#973" id="973">973</a>
+<a href="#974" id="974">974</a>
+<a href="#975" id="975">975</a>
+<a href="#976" id="976">976</a>
+<a href="#977" id="977">977</a>
+<a href="#978" id="978">978</a>
+<a href="#979" id="979">979</a>
+<a href="#980" id="980">980</a>
+<a href="#981" id="981">981</a>
+<a href="#982" id="982">982</a>
+<a href="#983" id="983">983</a>
+<a href="#984" id="984">984</a>
+<a href="#985" id="985">985</a>
+<a href="#986" id="986">986</a>
+<a href="#987" id="987">987</a>
+<a href="#988" id="988">988</a>
+<a href="#989" id="989">989</a>
+<a href="#990" id="990">990</a>
+<a href="#991" id="991">991</a>
+<a href="#992" id="992">992</a>
+<a href="#993" id="993">993</a>
+<a href="#994" id="994">994</a>
+<a href="#995" id="995">995</a>
+<a href="#996" id="996">996</a>
+<a href="#997" id="997">997</a>
+<a href="#998" id="998">998</a>
+<a href="#999" id="999">999</a>
+<a href="#1000" id="1000">1000</a>
+<a href="#1001" id="1001">1001</a>
+<a href="#1002" id="1002">1002</a>
+<a href="#1003" id="1003">1003</a>
+<a href="#1004" id="1004">1004</a>
+<a href="#1005" id="1005">1005</a>
+<a href="#1006" id="1006">1006</a>
+<a href="#1007" id="1007">1007</a>
+<a href="#1008" id="1008">1008</a>
+<a href="#1009" id="1009">1009</a>
+<a href="#1010" id="1010">1010</a>
+<a href="#1011" id="1011">1011</a>
+<a href="#1012" id="1012">1012</a>
+<a href="#1013" id="1013">1013</a>
+<a href="#1014" id="1014">1014</a>
+<a href="#1015" id="1015">1015</a>
+<a href="#1016" id="1016">1016</a>
+<a href="#1017" id="1017">1017</a>
+<a href="#1018" id="1018">1018</a>
+<a href="#1019" id="1019">1019</a>
+<a href="#1020" id="1020">1020</a>
+<a href="#1021" id="1021">1021</a>
+<a href="#1022" id="1022">1022</a>
+<a href="#1023" id="1023">1023</a>
+<a href="#1024" id="1024">1024</a>
+<a href="#1025" id="1025">1025</a>
+<a href="#1026" id="1026">1026</a>
+<a href="#1027" id="1027">1027</a>
+<a href="#1028" id="1028">1028</a>
+<a href="#1029" id="1029">1029</a>
+<a href="#1030" id="1030">1030</a>
+<a href="#1031" id="1031">1031</a>
+<a href="#1032" id="1032">1032</a>
+<a href="#1033" id="1033">1033</a>
+<a href="#1034" id="1034">1034</a>
+<a href="#1035" id="1035">1035</a>
+<a href="#1036" id="1036">1036</a>
+<a href="#1037" id="1037">1037</a>
+<a href="#1038" id="1038">1038</a>
+<a href="#1039" id="1039">1039</a>
+<a href="#1040" id="1040">1040</a>
+<a href="#1041" id="1041">1041</a>
+<a href="#1042" id="1042">1042</a>
+<a href="#1043" id="1043">1043</a>
+<a href="#1044" id="1044">1044</a>
+<a href="#1045" id="1045">1045</a>
+<a href="#1046" id="1046">1046</a>
+<a href="#1047" id="1047">1047</a>
+<a href="#1048" id="1048">1048</a>
+<a href="#1049" id="1049">1049</a>
+<a href="#1050" id="1050">1050</a>
+<a href="#1051" id="1051">1051</a>
+<a href="#1052" id="1052">1052</a>
+<a href="#1053" id="1053">1053</a>
+<a href="#1054" id="1054">1054</a>
+<a href="#1055" id="1055">1055</a>
+<a href="#1056" id="1056">1056</a>
+<a href="#1057" id="1057">1057</a>
+<a href="#1058" id="1058">1058</a>
+<a href="#1059" id="1059">1059</a>
+<a href="#1060" id="1060">1060</a>
+<a href="#1061" id="1061">1061</a>
+<a href="#1062" id="1062">1062</a>
+<a href="#1063" id="1063">1063</a>
+<a href="#1064" id="1064">1064</a>
+<a href="#1065" id="1065">1065</a>
+<a href="#1066" id="1066">1066</a>
+<a href="#1067" id="1067">1067</a>
+<a href="#1068" id="1068">1068</a>
+<a href="#1069" id="1069">1069</a>
+<a href="#1070" id="1070">1070</a>
+<a href="#1071" id="1071">1071</a>
+<a href="#1072" id="1072">1072</a>
+<a href="#1073" id="1073">1073</a>
+<a href="#1074" id="1074">1074</a>
+<a href="#1075" id="1075">1075</a>
+<a href="#1076" id="1076">1076</a>
+<a href="#1077" id="1077">1077</a>
+<a href="#1078" id="1078">1078</a>
+<a href="#1079" id="1079">1079</a>
+<a href="#1080" id="1080">1080</a>
+<a href="#1081" id="1081">1081</a>
+<a href="#1082" id="1082">1082</a>
+<a href="#1083" id="1083">1083</a>
+<a href="#1084" id="1084">1084</a>
+<a href="#1085" id="1085">1085</a>
+<a href="#1086" id="1086">1086</a>
+<a href="#1087" id="1087">1087</a>
+<a href="#1088" id="1088">1088</a>
+<a href="#1089" id="1089">1089</a>
+<a href="#1090" id="1090">1090</a>
+<a href="#1091" id="1091">1091</a>
+<a href="#1092" id="1092">1092</a>
+<a href="#1093" id="1093">1093</a>
+<a href="#1094" id="1094">1094</a>
+<a href="#1095" id="1095">1095</a>
+<a href="#1096" id="1096">1096</a>
+<a href="#1097" id="1097">1097</a>
+<a href="#1098" id="1098">1098</a>
+<a href="#1099" id="1099">1099</a>
+<a href="#1100" id="1100">1100</a>
+<a href="#1101" id="1101">1101</a>
+<a href="#1102" id="1102">1102</a>
+<a href="#1103" id="1103">1103</a>
+<a href="#1104" id="1104">1104</a>
+<a href="#1105" id="1105">1105</a>
+<a href="#1106" id="1106">1106</a>
+<a href="#1107" id="1107">1107</a>
+<a href="#1108" id="1108">1108</a>
+<a href="#1109" id="1109">1109</a>
+<a href="#1110" id="1110">1110</a>
+<a href="#1111" id="1111">1111</a>
+<a href="#1112" id="1112">1112</a>
+<a href="#1113" id="1113">1113</a>
+<a href="#1114" id="1114">1114</a>
+<a href="#1115" id="1115">1115</a>
+<a href="#1116" id="1116">1116</a>
+<a href="#1117" id="1117">1117</a>
+<a href="#1118" id="1118">1118</a>
+<a href="#1119" id="1119">1119</a>
+<a href="#1120" id="1120">1120</a>
+<a href="#1121" id="1121">1121</a>
+<a href="#1122" id="1122">1122</a>
+<a href="#1123" id="1123">1123</a>
+<a href="#1124" id="1124">1124</a>
+<a href="#1125" id="1125">1125</a>
+<a href="#1126" id="1126">1126</a>
+<a href="#1127" id="1127">1127</a>
+<a href="#1128" id="1128">1128</a>
+<a href="#1129" id="1129">1129</a>
+<a href="#1130" id="1130">1130</a>
+<a href="#1131" id="1131">1131</a>
+<a href="#1132" id="1132">1132</a>
+<a href="#1133" id="1133">1133</a>
+<a href="#1134" id="1134">1134</a>
+<a href="#1135" id="1135">1135</a>
+<a href="#1136" id="1136">1136</a>
+<a href="#1137" id="1137">1137</a>
+<a href="#1138" id="1138">1138</a>
+<a href="#1139" id="1139">1139</a>
+<a href="#1140" id="1140">1140</a>
+<a href="#1141" id="1141">1141</a>
+<a href="#1142" id="1142">1142</a>
+<a href="#1143" id="1143">1143</a>
+<a href="#1144" id="1144">1144</a>
+<a href="#1145" id="1145">1145</a>
+<a href="#1146" id="1146">1146</a>
+<a href="#1147" id="1147">1147</a>
+<a href="#1148" id="1148">1148</a>
+<a href="#1149" id="1149">1149</a>
+<a href="#1150" id="1150">1150</a>
+<a href="#1151" id="1151">1151</a>
+<a href="#1152" id="1152">1152</a>
+<a href="#1153" id="1153">1153</a>
+<a href="#1154" id="1154">1154</a>
+<a href="#1155" id="1155">1155</a>
+<a href="#1156" id="1156">1156</a>
+<a href="#1157" id="1157">1157</a>
+<a href="#1158" id="1158">1158</a>
+<a href="#1159" id="1159">1159</a>
+<a href="#1160" id="1160">1160</a>
+<a href="#1161" id="1161">1161</a>
+<a href="#1162" id="1162">1162</a>
+<a href="#1163" id="1163">1163</a>
+<a href="#1164" id="1164">1164</a>
+<a href="#1165" id="1165">1165</a>
+<a href="#1166" id="1166">1166</a>
+<a href="#1167" id="1167">1167</a>
+<a href="#1168" id="1168">1168</a>
+<a href="#1169" id="1169">1169</a>
+<a href="#1170" id="1170">1170</a>
+<a href="#1171" id="1171">1171</a>
+<a href="#1172" id="1172">1172</a>
+<a href="#1173" id="1173">1173</a>
+<a href="#1174" id="1174">1174</a>
+<a href="#1175" id="1175">1175</a>
+<a href="#1176" id="1176">1176</a>
+<a href="#1177" id="1177">1177</a>
+<a href="#1178" id="1178">1178</a>
+<a href="#1179" id="1179">1179</a>
+<a href="#1180" id="1180">1180</a>
+<a href="#1181" id="1181">1181</a>
+<a href="#1182" id="1182">1182</a>
+<a href="#1183" id="1183">1183</a>
+<a href="#1184" id="1184">1184</a>
+<a href="#1185" id="1185">1185</a>
+<a href="#1186" id="1186">1186</a>
+<a href="#1187" id="1187">1187</a>
+<a href="#1188" id="1188">1188</a>
+<a href="#1189" id="1189">1189</a>
+<a href="#1190" id="1190">1190</a>
+<a href="#1191" id="1191">1191</a>
+<a href="#1192" id="1192">1192</a>
+<a href="#1193" id="1193">1193</a>
+<a href="#1194" id="1194">1194</a>
+<a href="#1195" id="1195">1195</a>
+<a href="#1196" id="1196">1196</a>
+<a href="#1197" id="1197">1197</a>
+<a href="#1198" id="1198">1198</a>
+<a href="#1199" id="1199">1199</a>
+<a href="#1200" id="1200">1200</a>
+<a href="#1201" id="1201">1201</a>
+<a href="#1202" id="1202">1202</a>
+<a href="#1203" id="1203">1203</a>
+<a href="#1204" id="1204">1204</a>
+<a href="#1205" id="1205">1205</a>
+<a href="#1206" id="1206">1206</a>
+<a href="#1207" id="1207">1207</a>
+<a href="#1208" id="1208">1208</a>
+<a href="#1209" id="1209">1209</a>
+<a href="#1210" id="1210">1210</a>
+<a href="#1211" id="1211">1211</a>
+<a href="#1212" id="1212">1212</a>
+<a href="#1213" id="1213">1213</a>
+<a href="#1214" id="1214">1214</a>
+<a href="#1215" id="1215">1215</a>
+<a href="#1216" id="1216">1216</a>
+<a href="#1217" id="1217">1217</a>
+<a href="#1218" id="1218">1218</a>
+<a href="#1219" id="1219">1219</a>
+<a href="#1220" id="1220">1220</a>
+<a href="#1221" id="1221">1221</a>
+<a href="#1222" id="1222">1222</a>
+<a href="#1223" id="1223">1223</a>
+<a href="#1224" id="1224">1224</a>
+<a href="#1225" id="1225">1225</a>
+<a href="#1226" id="1226">1226</a>
+<a href="#1227" id="1227">1227</a>
+<a href="#1228" id="1228">1228</a>
+<a href="#1229" id="1229">1229</a>
+<a href="#1230" id="1230">1230</a>
+<a href="#1231" id="1231">1231</a>
+<a href="#1232" id="1232">1232</a>
+<a href="#1233" id="1233">1233</a>
+<a href="#1234" id="1234">1234</a>
+<a href="#1235" id="1235">1235</a>
+<a href="#1236" id="1236">1236</a>
+<a href="#1237" id="1237">1237</a>
+<a href="#1238" id="1238">1238</a>
+<a href="#1239" id="1239">1239</a>
+<a href="#1240" id="1240">1240</a>
+<a href="#1241" id="1241">1241</a>
+<a href="#1242" id="1242">1242</a>
+<a href="#1243" id="1243">1243</a>
+<a href="#1244" id="1244">1244</a>
+<a href="#1245" id="1245">1245</a>
+<a href="#1246" id="1246">1246</a>
+<a href="#1247" id="1247">1247</a>
+<a href="#1248" id="1248">1248</a>
+<a href="#1249" id="1249">1249</a>
+<a href="#1250" id="1250">1250</a>
+<a href="#1251" id="1251">1251</a>
+<a href="#1252" id="1252">1252</a>
+<a href="#1253" id="1253">1253</a>
+<a href="#1254" id="1254">1254</a>
+<a href="#1255" id="1255">1255</a>
+<a href="#1256" id="1256">1256</a>
+<a href="#1257" id="1257">1257</a>
+<a href="#1258" id="1258">1258</a>
+<a href="#1259" id="1259">1259</a>
+<a href="#1260" id="1260">1260</a>
+<a href="#1261" id="1261">1261</a>
+<a href="#1262" id="1262">1262</a>
+<a href="#1263" id="1263">1263</a>
+<a href="#1264" id="1264">1264</a>
+<a href="#1265" id="1265">1265</a>
+<a href="#1266" id="1266">1266</a>
+<a href="#1267" id="1267">1267</a>
+<a href="#1268" id="1268">1268</a>
+<a href="#1269" id="1269">1269</a>
+<a href="#1270" id="1270">1270</a>
+<a href="#1271" id="1271">1271</a>
+<a href="#1272" id="1272">1272</a>
+<a href="#1273" id="1273">1273</a>
+<a href="#1274" id="1274">1274</a>
+<a href="#1275" id="1275">1275</a>
+<a href="#1276" id="1276">1276</a>
+<a href="#1277" id="1277">1277</a>
+<a href="#1278" id="1278">1278</a>
+<a href="#1279" id="1279">1279</a>
+<a href="#1280" id="1280">1280</a>
+<a href="#1281" id="1281">1281</a>
+<a href="#1282" id="1282">1282</a>
+<a href="#1283" id="1283">1283</a>
+<a href="#1284" id="1284">1284</a>
+<a href="#1285" id="1285">1285</a>
+<a href="#1286" id="1286">1286</a>
+<a href="#1287" id="1287">1287</a>
+<a href="#1288" id="1288">1288</a>
+<a href="#1289" id="1289">1289</a>
+<a href="#1290" id="1290">1290</a>
+<a href="#1291" id="1291">1291</a>
+<a href="#1292" id="1292">1292</a>
+<a href="#1293" id="1293">1293</a>
+<a href="#1294" id="1294">1294</a>
+<a href="#1295" id="1295">1295</a>
+<a href="#1296" id="1296">1296</a>
+<a href="#1297" id="1297">1297</a>
+<a href="#1298" id="1298">1298</a>
+<a href="#1299" id="1299">1299</a>
+<a href="#1300" id="1300">1300</a>
+<a href="#1301" id="1301">1301</a>
+<a href="#1302" id="1302">1302</a>
+<a href="#1303" id="1303">1303</a>
+<a href="#1304" id="1304">1304</a>
+<a href="#1305" id="1305">1305</a>
+<a href="#1306" id="1306">1306</a>
+<a href="#1307" id="1307">1307</a>
+<a href="#1308" id="1308">1308</a>
+<a href="#1309" id="1309">1309</a>
+<a href="#1310" id="1310">1310</a>
+<a href="#1311" id="1311">1311</a>
+<a href="#1312" id="1312">1312</a>
+<a href="#1313" id="1313">1313</a>
+<a href="#1314" id="1314">1314</a>
+<a href="#1315" id="1315">1315</a>
+<a href="#1316" id="1316">1316</a>
+<a href="#1317" id="1317">1317</a>
+<a href="#1318" id="1318">1318</a>
+<a href="#1319" id="1319">1319</a>
+<a href="#1320" id="1320">1320</a>
+<a href="#1321" id="1321">1321</a>
+<a href="#1322" id="1322">1322</a>
+<a href="#1323" id="1323">1323</a>
+<a href="#1324" id="1324">1324</a>
+<a href="#1325" id="1325">1325</a>
+<a href="#1326" id="1326">1326</a>
+<a href="#1327" id="1327">1327</a>
+<a href="#1328" id="1328">1328</a>
+<a href="#1329" id="1329">1329</a>
+<a href="#1330" id="1330">1330</a>
+<a href="#1331" id="1331">1331</a>
+<a href="#1332" id="1332">1332</a>
+<a href="#1333" id="1333">1333</a>
+<a href="#1334" id="1334">1334</a>
+<a href="#1335" id="1335">1335</a>
+<a href="#1336" id="1336">1336</a>
+<a href="#1337" id="1337">1337</a>
+<a href="#1338" id="1338">1338</a>
+<a href="#1339" id="1339">1339</a>
+<a href="#1340" id="1340">1340</a>
+<a href="#1341" id="1341">1341</a>
+<a href="#1342" id="1342">1342</a>
+<a href="#1343" id="1343">1343</a>
+<a href="#1344" id="1344">1344</a>
+<a href="#1345" id="1345">1345</a>
+<a href="#1346" id="1346">1346</a>
+<a href="#1347" id="1347">1347</a>
+<a href="#1348" id="1348">1348</a>
+<a href="#1349" id="1349">1349</a>
+<a href="#1350" id="1350">1350</a>
+<a href="#1351" id="1351">1351</a>
+<a href="#1352" id="1352">1352</a>
+<a href="#1353" id="1353">1353</a>
+<a href="#1354" id="1354">1354</a>
+<a href="#1355" id="1355">1355</a>
+<a href="#1356" id="1356">1356</a>
+<a href="#1357" id="1357">1357</a>
+<a href="#1358" id="1358">1358</a>
+<a href="#1359" id="1359">1359</a>
+<a href="#1360" id="1360">1360</a>
+<a href="#1361" id="1361">1361</a>
+<a href="#1362" id="1362">1362</a>
+<a href="#1363" id="1363">1363</a>
+<a href="#1364" id="1364">1364</a>
+<a href="#1365" id="1365">1365</a>
+<a href="#1366" id="1366">1366</a>
+<a href="#1367" id="1367">1367</a>
+<a href="#1368" id="1368">1368</a>
+<a href="#1369" id="1369">1369</a>
+<a href="#1370" id="1370">1370</a>
+<a href="#1371" id="1371">1371</a>
+<a href="#1372" id="1372">1372</a>
+<a href="#1373" id="1373">1373</a>
+<a href="#1374" id="1374">1374</a>
+<a href="#1375" id="1375">1375</a>
+<a href="#1376" id="1376">1376</a>
+<a href="#1377" id="1377">1377</a>
+<a href="#1378" id="1378">1378</a>
+<a href="#1379" id="1379">1379</a>
+<a href="#1380" id="1380">1380</a>
+<a href="#1381" id="1381">1381</a>
+<a href="#1382" id="1382">1382</a>
+<a href="#1383" id="1383">1383</a>
+<a href="#1384" id="1384">1384</a>
+<a href="#1385" id="1385">1385</a>
+<a href="#1386" id="1386">1386</a>
+<a href="#1387" id="1387">1387</a>
+<a href="#1388" id="1388">1388</a>
+<a href="#1389" id="1389">1389</a>
+<a href="#1390" id="1390">1390</a>
+<a href="#1391" id="1391">1391</a>
+<a href="#1392" id="1392">1392</a>
+<a href="#1393" id="1393">1393</a>
+<a href="#1394" id="1394">1394</a>
+<a href="#1395" id="1395">1395</a>
+<a href="#1396" id="1396">1396</a>
+<a href="#1397" id="1397">1397</a>
+<a href="#1398" id="1398">1398</a>
+<a href="#1399" id="1399">1399</a>
+<a href="#1400" id="1400">1400</a>
+<a href="#1401" id="1401">1401</a>
+<a href="#1402" id="1402">1402</a>
+<a href="#1403" id="1403">1403</a>
+<a href="#1404" id="1404">1404</a>
+<a href="#1405" id="1405">1405</a>
+<a href="#1406" id="1406">1406</a>
+<a href="#1407" id="1407">1407</a>
+<a href="#1408" id="1408">1408</a>
+<a href="#1409" id="1409">1409</a>
+<a href="#1410" id="1410">1410</a>
+<a href="#1411" id="1411">1411</a>
+<a href="#1412" id="1412">1412</a>
+<a href="#1413" id="1413">1413</a>
+<a href="#1414" id="1414">1414</a>
+<a href="#1415" id="1415">1415</a>
+<a href="#1416" id="1416">1416</a>
+<a href="#1417" id="1417">1417</a>
+<a href="#1418" id="1418">1418</a>
+<a href="#1419" id="1419">1419</a>
+<a href="#1420" id="1420">1420</a>
+<a href="#1421" id="1421">1421</a>
+<a href="#1422" id="1422">1422</a>
+<a href="#1423" id="1423">1423</a>
+<a href="#1424" id="1424">1424</a>
+<a href="#1425" id="1425">1425</a>
+<a href="#1426" id="1426">1426</a>
+<a href="#1427" id="1427">1427</a>
+<a href="#1428" id="1428">1428</a>
+<a href="#1429" id="1429">1429</a>
+<a href="#1430" id="1430">1430</a>
+<a href="#1431" id="1431">1431</a>
+<a href="#1432" id="1432">1432</a>
+<a href="#1433" id="1433">1433</a>
+<a href="#1434" id="1434">1434</a>
+<a href="#1435" id="1435">1435</a>
+<a href="#1436" id="1436">1436</a>
+<a href="#1437" id="1437">1437</a>
+<a href="#1438" id="1438">1438</a>
+<a href="#1439" id="1439">1439</a>
+<a href="#1440" id="1440">1440</a>
+<a href="#1441" id="1441">1441</a>
+<a href="#1442" id="1442">1442</a>
+<a href="#1443" id="1443">1443</a>
+<a href="#1444" id="1444">1444</a>
+<a href="#1445" id="1445">1445</a>
+<a href="#1446" id="1446">1446</a>
+<a href="#1447" id="1447">1447</a>
+<a href="#1448" id="1448">1448</a>
+<a href="#1449" id="1449">1449</a>
+<a href="#1450" id="1450">1450</a>
+<a href="#1451" id="1451">1451</a>
+<a href="#1452" id="1452">1452</a>
+<a href="#1453" id="1453">1453</a>
+<a href="#1454" id="1454">1454</a>
+<a href="#1455" id="1455">1455</a>
+<a href="#1456" id="1456">1456</a>
+<a href="#1457" id="1457">1457</a>
+<a href="#1458" id="1458">1458</a>
+<a href="#1459" id="1459">1459</a>
+<a href="#1460" id="1460">1460</a>
+<a href="#1461" id="1461">1461</a>
+<a href="#1462" id="1462">1462</a>
+<a href="#1463" id="1463">1463</a>
+<a href="#1464" id="1464">1464</a>
+<a href="#1465" id="1465">1465</a>
+<a href="#1466" id="1466">1466</a>
+<a href="#1467" id="1467">1467</a>
+<a href="#1468" id="1468">1468</a>
+<a href="#1469" id="1469">1469</a>
+<a href="#1470" id="1470">1470</a>
+<a href="#1471" id="1471">1471</a>
+<a href="#1472" id="1472">1472</a>
+<a href="#1473" id="1473">1473</a>
+<a href="#1474" id="1474">1474</a>
+<a href="#1475" id="1475">1475</a>
+<a href="#1476" id="1476">1476</a>
+<a href="#1477" id="1477">1477</a>
+<a href="#1478" id="1478">1478</a>
+<a href="#1479" id="1479">1479</a>
+<a href="#1480" id="1480">1480</a>
+<a href="#1481" id="1481">1481</a>
+<a href="#1482" id="1482">1482</a>
+<a href="#1483" id="1483">1483</a>
+<a href="#1484" id="1484">1484</a>
+<a href="#1485" id="1485">1485</a>
+<a href="#1486" id="1486">1486</a>
+<a href="#1487" id="1487">1487</a>
+<a href="#1488" id="1488">1488</a>
+<a href="#1489" id="1489">1489</a>
+<a href="#1490" id="1490">1490</a>
+<a href="#1491" id="1491">1491</a>
+<a href="#1492" id="1492">1492</a>
+<a href="#1493" id="1493">1493</a>
+<a href="#1494" id="1494">1494</a>
+<a href="#1495" id="1495">1495</a>
+<a href="#1496" id="1496">1496</a>
+<a href="#1497" id="1497">1497</a>
+<a href="#1498" id="1498">1498</a>
+<a href="#1499" id="1499">1499</a>
+<a href="#1500" id="1500">1500</a>
+<a href="#1501" id="1501">1501</a>
+<a href="#1502" id="1502">1502</a>
+<a href="#1503" id="1503">1503</a>
+<a href="#1504" id="1504">1504</a>
+<a href="#1505" id="1505">1505</a>
+<a href="#1506" id="1506">1506</a>
+<a href="#1507" id="1507">1507</a>
+<a href="#1508" id="1508">1508</a>
+<a href="#1509" id="1509">1509</a>
+<a href="#1510" id="1510">1510</a>
+<a href="#1511" id="1511">1511</a>
+<a href="#1512" id="1512">1512</a>
+<a href="#1513" id="1513">1513</a>
+<a href="#1514" id="1514">1514</a>
+<a href="#1515" id="1515">1515</a>
+<a href="#1516" id="1516">1516</a>
+<a href="#1517" id="1517">1517</a>
+<a href="#1518" id="1518">1518</a>
+<a href="#1519" id="1519">1519</a>
+<a href="#1520" id="1520">1520</a>
+<a href="#1521" id="1521">1521</a>
+<a href="#1522" id="1522">1522</a>
+<a href="#1523" id="1523">1523</a>
+<a href="#1524" id="1524">1524</a>
+<a href="#1525" id="1525">1525</a>
+<a href="#1526" id="1526">1526</a>
+<a href="#1527" id="1527">1527</a>
+<a href="#1528" id="1528">1528</a>
+<a href="#1529" id="1529">1529</a>
+<a href="#1530" id="1530">1530</a>
+<a href="#1531" id="1531">1531</a>
+<a href="#1532" id="1532">1532</a>
+<a href="#1533" id="1533">1533</a>
+<a href="#1534" id="1534">1534</a>
+<a href="#1535" id="1535">1535</a>
+<a href="#1536" id="1536">1536</a>
+<a href="#1537" id="1537">1537</a>
+<a href="#1538" id="1538">1538</a>
+<a href="#1539" id="1539">1539</a>
+<a href="#1540" id="1540">1540</a>
+<a href="#1541" id="1541">1541</a>
+<a href="#1542" id="1542">1542</a>
+<a href="#1543" id="1543">1543</a>
+<a href="#1544" id="1544">1544</a>
+<a href="#1545" id="1545">1545</a>
+<a href="#1546" id="1546">1546</a>
+<a href="#1547" id="1547">1547</a>
+<a href="#1548" id="1548">1548</a>
+<a href="#1549" id="1549">1549</a>
+<a href="#1550" id="1550">1550</a>
+<a href="#1551" id="1551">1551</a>
+<a href="#1552" id="1552">1552</a>
+<a href="#1553" id="1553">1553</a>
+<a href="#1554" id="1554">1554</a>
+<a href="#1555" id="1555">1555</a>
+<a href="#1556" id="1556">1556</a>
+<a href="#1557" id="1557">1557</a>
+<a href="#1558" id="1558">1558</a>
+<a href="#1559" id="1559">1559</a>
+<a href="#1560" id="1560">1560</a>
+<a href="#1561" id="1561">1561</a>
+<a href="#1562" id="1562">1562</a>
+<a href="#1563" id="1563">1563</a>
+<a href="#1564" id="1564">1564</a>
+<a href="#1565" id="1565">1565</a>
+<a href="#1566" id="1566">1566</a>
+<a href="#1567" id="1567">1567</a>
+<a href="#1568" id="1568">1568</a>
+<a href="#1569" id="1569">1569</a>
+<a href="#1570" id="1570">1570</a>
+<a href="#1571" id="1571">1571</a>
+<a href="#1572" id="1572">1572</a>
+<a href="#1573" id="1573">1573</a>
+<a href="#1574" id="1574">1574</a>
+<a href="#1575" id="1575">1575</a>
+<a href="#1576" id="1576">1576</a>
+<a href="#1577" id="1577">1577</a>
+<a href="#1578" id="1578">1578</a>
+<a href="#1579" id="1579">1579</a>
+<a href="#1580" id="1580">1580</a>
+<a href="#1581" id="1581">1581</a>
+<a href="#1582" id="1582">1582</a>
+<a href="#1583" id="1583">1583</a>
+<a href="#1584" id="1584">1584</a>
+<a href="#1585" id="1585">1585</a>
+<a href="#1586" id="1586">1586</a>
+<a href="#1587" id="1587">1587</a>
+<a href="#1588" id="1588">1588</a>
+<a href="#1589" id="1589">1589</a>
+<a href="#1590" id="1590">1590</a>
+<a href="#1591" id="1591">1591</a>
+<a href="#1592" id="1592">1592</a>
+<a href="#1593" id="1593">1593</a>
+<a href="#1594" id="1594">1594</a>
+<a href="#1595" id="1595">1595</a>
+<a href="#1596" id="1596">1596</a>
+<a href="#1597" id="1597">1597</a>
+<a href="#1598" id="1598">1598</a>
+<a href="#1599" id="1599">1599</a>
+<a href="#1600" id="1600">1600</a>
+<a href="#1601" id="1601">1601</a>
+<a href="#1602" id="1602">1602</a>
+<a href="#1603" id="1603">1603</a>
+<a href="#1604" id="1604">1604</a>
+<a href="#1605" id="1605">1605</a>
+<a href="#1606" id="1606">1606</a>
+<a href="#1607" id="1607">1607</a>
+<a href="#1608" id="1608">1608</a>
+<a href="#1609" id="1609">1609</a>
+<a href="#1610" id="1610">1610</a>
+<a href="#1611" id="1611">1611</a>
+<a href="#1612" id="1612">1612</a>
+<a href="#1613" id="1613">1613</a>
+<a href="#1614" id="1614">1614</a>
+<a href="#1615" id="1615">1615</a>
+<a href="#1616" id="1616">1616</a>
+<a href="#1617" id="1617">1617</a>
+<a href="#1618" id="1618">1618</a>
+<a href="#1619" id="1619">1619</a>
+<a href="#1620" id="1620">1620</a>
+<a href="#1621" id="1621">1621</a>
+<a href="#1622" id="1622">1622</a>
+<a href="#1623" id="1623">1623</a>
+<a href="#1624" id="1624">1624</a>
+<a href="#1625" id="1625">1625</a>
+<a href="#1626" id="1626">1626</a>
+<a href="#1627" id="1627">1627</a>
+<a href="#1628" id="1628">1628</a>
+<a href="#1629" id="1629">1629</a>
+<a href="#1630" id="1630">1630</a>
+<a href="#1631" id="1631">1631</a>
+<a href="#1632" id="1632">1632</a>
+<a href="#1633" id="1633">1633</a>
+<a href="#1634" id="1634">1634</a>
+<a href="#1635" id="1635">1635</a>
+<a href="#1636" id="1636">1636</a>
+<a href="#1637" id="1637">1637</a>
+<a href="#1638" id="1638">1638</a>
+<a href="#1639" id="1639">1639</a>
+<a href="#1640" id="1640">1640</a>
+<a href="#1641" id="1641">1641</a>
+<a href="#1642" id="1642">1642</a>
+<a href="#1643" id="1643">1643</a>
+<a href="#1644" id="1644">1644</a>
+<a href="#1645" id="1645">1645</a>
+<a href="#1646" id="1646">1646</a>
+<a href="#1647" id="1647">1647</a>
+<a href="#1648" id="1648">1648</a>
+<a href="#1649" id="1649">1649</a>
+<a href="#1650" id="1650">1650</a>
+<a href="#1651" id="1651">1651</a>
+<a href="#1652" id="1652">1652</a>
+<a href="#1653" id="1653">1653</a>
+<a href="#1654" id="1654">1654</a>
+<a href="#1655" id="1655">1655</a>
+<a href="#1656" id="1656">1656</a>
+<a href="#1657" id="1657">1657</a>
+<a href="#1658" id="1658">1658</a>
+<a href="#1659" id="1659">1659</a>
+<a href="#1660" id="1660">1660</a>
+<a href="#1661" id="1661">1661</a>
+<a href="#1662" id="1662">1662</a>
+<a href="#1663" id="1663">1663</a>
+<a href="#1664" id="1664">1664</a>
+<a href="#1665" id="1665">1665</a>
+<a href="#1666" id="1666">1666</a>
+<a href="#1667" id="1667">1667</a>
+<a href="#1668" id="1668">1668</a>
+<a href="#1669" id="1669">1669</a>
+<a href="#1670" id="1670">1670</a>
+<a href="#1671" id="1671">1671</a>
+<a href="#1672" id="1672">1672</a>
+<a href="#1673" id="1673">1673</a>
+<a href="#1674" id="1674">1674</a>
+<a href="#1675" id="1675">1675</a>
+<a href="#1676" id="1676">1676</a>
+<a href="#1677" id="1677">1677</a>
+<a href="#1678" id="1678">1678</a>
+<a href="#1679" id="1679">1679</a>
+<a href="#1680" id="1680">1680</a>
+<a href="#1681" id="1681">1681</a>
+<a href="#1682" id="1682">1682</a>
+<a href="#1683" id="1683">1683</a>
+<a href="#1684" id="1684">1684</a>
+<a href="#1685" id="1685">1685</a>
+<a href="#1686" id="1686">1686</a>
+<a href="#1687" id="1687">1687</a>
+<a href="#1688" id="1688">1688</a>
+<a href="#1689" id="1689">1689</a>
+<a href="#1690" id="1690">1690</a>
+<a href="#1691" id="1691">1691</a>
+<a href="#1692" id="1692">1692</a>
+<a href="#1693" id="1693">1693</a>
+<a href="#1694" id="1694">1694</a>
+<a href="#1695" id="1695">1695</a>
+<a href="#1696" id="1696">1696</a>
+<a href="#1697" id="1697">1697</a>
+<a href="#1698" id="1698">1698</a>
+<a href="#1699" id="1699">1699</a>
+<a href="#1700" id="1700">1700</a>
+<a href="#1701" id="1701">1701</a>
+<a href="#1702" id="1702">1702</a>
+<a href="#1703" id="1703">1703</a>
+<a href="#1704" id="1704">1704</a>
+<a href="#1705" id="1705">1705</a>
+<a href="#1706" id="1706">1706</a>
+<a href="#1707" id="1707">1707</a>
+<a href="#1708" id="1708">1708</a>
+<a href="#1709" id="1709">1709</a>
+<a href="#1710" id="1710">1710</a>
+<a href="#1711" id="1711">1711</a>
+<a href="#1712" id="1712">1712</a>
+<a href="#1713" id="1713">1713</a>
+<a href="#1714" id="1714">1714</a>
+<a href="#1715" id="1715">1715</a>
+<a href="#1716" id="1716">1716</a>
+<a href="#1717" id="1717">1717</a>
+<a href="#1718" id="1718">1718</a>
+<a href="#1719" id="1719">1719</a>
+<a href="#1720" id="1720">1720</a>
+<a href="#1721" id="1721">1721</a>
+<a href="#1722" id="1722">1722</a>
+<a href="#1723" id="1723">1723</a>
+<a href="#1724" id="1724">1724</a>
+<a href="#1725" id="1725">1725</a>
+<a href="#1726" id="1726">1726</a>
+<a href="#1727" id="1727">1727</a>
+<a href="#1728" id="1728">1728</a>
+<a href="#1729" id="1729">1729</a>
+<a href="#1730" id="1730">1730</a>
+<a href="#1731" id="1731">1731</a>
+<a href="#1732" id="1732">1732</a>
+<a href="#1733" id="1733">1733</a>
+<a href="#1734" id="1734">1734</a>
+<a href="#1735" id="1735">1735</a>
+<a href="#1736" id="1736">1736</a>
+<a href="#1737" id="1737">1737</a>
+<a href="#1738" id="1738">1738</a>
+<a href="#1739" id="1739">1739</a>
+<a href="#1740" id="1740">1740</a>
+<a href="#1741" id="1741">1741</a>
+<a href="#1742" id="1742">1742</a>
+<a href="#1743" id="1743">1743</a>
+<a href="#1744" id="1744">1744</a>
+<a href="#1745" id="1745">1745</a>
+<a href="#1746" id="1746">1746</a>
+<a href="#1747" id="1747">1747</a>
+<a href="#1748" id="1748">1748</a>
+<a href="#1749" id="1749">1749</a>
+<a href="#1750" id="1750">1750</a>
+<a href="#1751" id="1751">1751</a>
+<a href="#1752" id="1752">1752</a>
+<a href="#1753" id="1753">1753</a>
+<a href="#1754" id="1754">1754</a>
+<a href="#1755" id="1755">1755</a>
+<a href="#1756" id="1756">1756</a>
+<a href="#1757" id="1757">1757</a>
+<a href="#1758" id="1758">1758</a>
+<a href="#1759" id="1759">1759</a>
+<a href="#1760" id="1760">1760</a>
+<a href="#1761" id="1761">1761</a>
+<a href="#1762" id="1762">1762</a>
+<a href="#1763" id="1763">1763</a>
+<a href="#1764" id="1764">1764</a>
+<a href="#1765" id="1765">1765</a>
+<a href="#1766" id="1766">1766</a>
+<a href="#1767" id="1767">1767</a>
+<a href="#1768" id="1768">1768</a>
+<a href="#1769" id="1769">1769</a>
+<a href="#1770" id="1770">1770</a>
+<a href="#1771" id="1771">1771</a>
+<a href="#1772" id="1772">1772</a>
+<a href="#1773" id="1773">1773</a>
+<a href="#1774" id="1774">1774</a>
+<a href="#1775" id="1775">1775</a>
+<a href="#1776" id="1776">1776</a>
+<a href="#1777" id="1777">1777</a>
+<a href="#1778" id="1778">1778</a>
+<a href="#1779" id="1779">1779</a>
+<a href="#1780" id="1780">1780</a>
+<a href="#1781" id="1781">1781</a>
+<a href="#1782" id="1782">1782</a>
+<a href="#1783" id="1783">1783</a>
+<a href="#1784" id="1784">1784</a>
+<a href="#1785" id="1785">1785</a>
+<a href="#1786" id="1786">1786</a>
+<a href="#1787" id="1787">1787</a>
+<a href="#1788" id="1788">1788</a>
+<a href="#1789" id="1789">1789</a>
+<a href="#1790" id="1790">1790</a>
+<a href="#1791" id="1791">1791</a>
+<a href="#1792" id="1792">1792</a>
+<a href="#1793" id="1793">1793</a>
+<a href="#1794" id="1794">1794</a>
+<a href="#1795" id="1795">1795</a>
+<a href="#1796" id="1796">1796</a>
+<a href="#1797" id="1797">1797</a>
+<a href="#1798" id="1798">1798</a>
+<a href="#1799" id="1799">1799</a>
+<a href="#1800" id="1800">1800</a>
+<a href="#1801" id="1801">1801</a>
+<a href="#1802" id="1802">1802</a>
+<a href="#1803" id="1803">1803</a>
+<a href="#1804" id="1804">1804</a>
+<a href="#1805" id="1805">1805</a>
+<a href="#1806" id="1806">1806</a>
+<a href="#1807" id="1807">1807</a>
+<a href="#1808" id="1808">1808</a>
+<a href="#1809" id="1809">1809</a>
+<a href="#1810" id="1810">1810</a>
+<a href="#1811" id="1811">1811</a>
+<a href="#1812" id="1812">1812</a>
+<a href="#1813" id="1813">1813</a>
+<a href="#1814" id="1814">1814</a>
+<a href="#1815" id="1815">1815</a>
+<a href="#1816" id="1816">1816</a>
+<a href="#1817" id="1817">1817</a>
+<a href="#1818" id="1818">1818</a>
+<a href="#1819" id="1819">1819</a>
+<a href="#1820" id="1820">1820</a>
+<a href="#1821" id="1821">1821</a>
+<a href="#1822" id="1822">1822</a>
+<a href="#1823" id="1823">1823</a>
+<a href="#1824" id="1824">1824</a>
+<a href="#1825" id="1825">1825</a>
+<a href="#1826" id="1826">1826</a>
+<a href="#1827" id="1827">1827</a>
+<a href="#1828" id="1828">1828</a>
+<a href="#1829" id="1829">1829</a>
+<a href="#1830" id="1830">1830</a>
+<a href="#1831" id="1831">1831</a>
+<a href="#1832" id="1832">1832</a>
+<a href="#1833" id="1833">1833</a>
+<a href="#1834" id="1834">1834</a>
+<a href="#1835" id="1835">1835</a>
+<a href="#1836" id="1836">1836</a>
+<a href="#1837" id="1837">1837</a>
+<a href="#1838" id="1838">1838</a>
+<a href="#1839" id="1839">1839</a>
+<a href="#1840" id="1840">1840</a>
+<a href="#1841" id="1841">1841</a>
+<a href="#1842" id="1842">1842</a>
+<a href="#1843" id="1843">1843</a>
+<a href="#1844" id="1844">1844</a>
+<a href="#1845" id="1845">1845</a>
+<a href="#1846" id="1846">1846</a>
+<a href="#1847" id="1847">1847</a>
+<a href="#1848" id="1848">1848</a>
+<a href="#1849" id="1849">1849</a>
+<a href="#1850" id="1850">1850</a>
+<a href="#1851" id="1851">1851</a>
+<a href="#1852" id="1852">1852</a>
+<a href="#1853" id="1853">1853</a>
+<a href="#1854" id="1854">1854</a>
+<a href="#1855" id="1855">1855</a>
+<a href="#1856" id="1856">1856</a>
+<a href="#1857" id="1857">1857</a>
+<a href="#1858" id="1858">1858</a>
+<a href="#1859" id="1859">1859</a>
+<a href="#1860" id="1860">1860</a>
+<a href="#1861" id="1861">1861</a>
+<a href="#1862" id="1862">1862</a>
+<a href="#1863" id="1863">1863</a>
+<a href="#1864" id="1864">1864</a>
+<a href="#1865" id="1865">1865</a>
+<a href="#1866" id="1866">1866</a>
+<a href="#1867" id="1867">1867</a>
+<a href="#1868" id="1868">1868</a>
+<a href="#1869" id="1869">1869</a>
+<a href="#1870" id="1870">1870</a>
+<a href="#1871" id="1871">1871</a>
+<a href="#1872" id="1872">1872</a>
+<a href="#1873" id="1873">1873</a>
+<a href="#1874" id="1874">1874</a>
+<a href="#1875" id="1875">1875</a>
+<a href="#1876" id="1876">1876</a>
+<a href="#1877" id="1877">1877</a>
+<a href="#1878" id="1878">1878</a>
+<a href="#1879" id="1879">1879</a>
+<a href="#1880" id="1880">1880</a>
+<a href="#1881" id="1881">1881</a>
+<a href="#1882" id="1882">1882</a>
+<a href="#1883" id="1883">1883</a>
+<a href="#1884" id="1884">1884</a>
+<a href="#1885" id="1885">1885</a>
+<a href="#1886" id="1886">1886</a>
+<a href="#1887" id="1887">1887</a>
+<a href="#1888" id="1888">1888</a>
+<a href="#1889" id="1889">1889</a>
+<a href="#1890" id="1890">1890</a>
+<a href="#1891" id="1891">1891</a>
+<a href="#1892" id="1892">1892</a>
+<a href="#1893" id="1893">1893</a>
+<a href="#1894" id="1894">1894</a>
+<a href="#1895" id="1895">1895</a>
+<a href="#1896" id="1896">1896</a>
+<a href="#1897" id="1897">1897</a>
+<a href="#1898" id="1898">1898</a>
+<a href="#1899" id="1899">1899</a>
+<a href="#1900" id="1900">1900</a>
+<a href="#1901" id="1901">1901</a>
+<a href="#1902" id="1902">1902</a>
+<a href="#1903" id="1903">1903</a>
+<a href="#1904" id="1904">1904</a>
+<a href="#1905" id="1905">1905</a>
+<a href="#1906" id="1906">1906</a>
+<a href="#1907" id="1907">1907</a>
+<a href="#1908" id="1908">1908</a>
+<a href="#1909" id="1909">1909</a>
+<a href="#1910" id="1910">1910</a>
+<a href="#1911" id="1911">1911</a>
+<a href="#1912" id="1912">1912</a>
+<a href="#1913" id="1913">1913</a>
+<a href="#1914" id="1914">1914</a>
+<a href="#1915" id="1915">1915</a>
+<a href="#1916" id="1916">1916</a>
+<a href="#1917" id="1917">1917</a>
+<a href="#1918" id="1918">1918</a>
+<a href="#1919" id="1919">1919</a>
+<a href="#1920" id="1920">1920</a>
+<a href="#1921" id="1921">1921</a>
+<a href="#1922" id="1922">1922</a>
+<a href="#1923" id="1923">1923</a>
+<a href="#1924" id="1924">1924</a>
+<a href="#1925" id="1925">1925</a>
+<a href="#1926" id="1926">1926</a>
+<a href="#1927" id="1927">1927</a>
+<a href="#1928" id="1928">1928</a>
+<a href="#1929" id="1929">1929</a>
+<a href="#1930" id="1930">1930</a>
+<a href="#1931" id="1931">1931</a>
+<a href="#1932" id="1932">1932</a>
+<a href="#1933" id="1933">1933</a>
+<a href="#1934" id="1934">1934</a>
+<a href="#1935" id="1935">1935</a>
+<a href="#1936" id="1936">1936</a>
+<a href="#1937" id="1937">1937</a>
+<a href="#1938" id="1938">1938</a>
+<a href="#1939" id="1939">1939</a>
+<a href="#1940" id="1940">1940</a>
+<a href="#1941" id="1941">1941</a>
+<a href="#1942" id="1942">1942</a>
+<a href="#1943" id="1943">1943</a>
+<a href="#1944" id="1944">1944</a>
+<a href="#1945" id="1945">1945</a>
+<a href="#1946" id="1946">1946</a>
+<a href="#1947" id="1947">1947</a>
+<a href="#1948" id="1948">1948</a>
+<a href="#1949" id="1949">1949</a>
+<a href="#1950" id="1950">1950</a>
+<a href="#1951" id="1951">1951</a>
+<a href="#1952" id="1952">1952</a>
+<a href="#1953" id="1953">1953</a>
+<a href="#1954" id="1954">1954</a>
+<a href="#1955" id="1955">1955</a>
+<a href="#1956" id="1956">1956</a>
+<a href="#1957" id="1957">1957</a>
+<a href="#1958" id="1958">1958</a>
+<a href="#1959" id="1959">1959</a>
+<a href="#1960" id="1960">1960</a>
+<a href="#1961" id="1961">1961</a>
+<a href="#1962" id="1962">1962</a>
+<a href="#1963" id="1963">1963</a>
+<a href="#1964" id="1964">1964</a>
+<a href="#1965" id="1965">1965</a>
+<a href="#1966" id="1966">1966</a>
+<a href="#1967" id="1967">1967</a>
+<a href="#1968" id="1968">1968</a>
+<a href="#1969" id="1969">1969</a>
+<a href="#1970" id="1970">1970</a>
+<a href="#1971" id="1971">1971</a>
+<a href="#1972" id="1972">1972</a>
+<a href="#1973" id="1973">1973</a>
+<a href="#1974" id="1974">1974</a>
+<a href="#1975" id="1975">1975</a>
+<a href="#1976" id="1976">1976</a>
+<a href="#1977" id="1977">1977</a>
+<a href="#1978" id="1978">1978</a>
+<a href="#1979" id="1979">1979</a>
+<a href="#1980" id="1980">1980</a>
+<a href="#1981" id="1981">1981</a>
+<a href="#1982" id="1982">1982</a>
+<a href="#1983" id="1983">1983</a>
+<a href="#1984" id="1984">1984</a>
+<a href="#1985" id="1985">1985</a>
+<a href="#1986" id="1986">1986</a>
+<a href="#1987" id="1987">1987</a>
+<a href="#1988" id="1988">1988</a>
+<a href="#1989" id="1989">1989</a>
+<a href="#1990" id="1990">1990</a>
+<a href="#1991" id="1991">1991</a>
+<a href="#1992" id="1992">1992</a>
+<a href="#1993" id="1993">1993</a>
+<a href="#1994" id="1994">1994</a>
+<a href="#1995" id="1995">1995</a>
+<a href="#1996" id="1996">1996</a>
+<a href="#1997" id="1997">1997</a>
+<a href="#1998" id="1998">1998</a>
+<a href="#1999" id="1999">1999</a>
+<a href="#2000" id="2000">2000</a>
+<a href="#2001" id="2001">2001</a>
+<a href="#2002" id="2002">2002</a>
+<a href="#2003" id="2003">2003</a>
+<a href="#2004" id="2004">2004</a>
+<a href="#2005" id="2005">2005</a>
+<a href="#2006" id="2006">2006</a>
+<a href="#2007" id="2007">2007</a>
+<a href="#2008" id="2008">2008</a>
+<a href="#2009" id="2009">2009</a>
+<a href="#2010" id="2010">2010</a>
+<a href="#2011" id="2011">2011</a>
+<a href="#2012" id="2012">2012</a>
+<a href="#2013" id="2013">2013</a>
+<a href="#2014" id="2014">2014</a>
+<a href="#2015" id="2015">2015</a>
+<a href="#2016" id="2016">2016</a>
+<a href="#2017" id="2017">2017</a>
+<a href="#2018" id="2018">2018</a>
+<a href="#2019" id="2019">2019</a>
+<a href="#2020" id="2020">2020</a>
+<a href="#2021" id="2021">2021</a>
+<a href="#2022" id="2022">2022</a>
+<a href="#2023" id="2023">2023</a>
+<a href="#2024" id="2024">2024</a>
+<a href="#2025" id="2025">2025</a>
+<a href="#2026" id="2026">2026</a>
+<a href="#2027" id="2027">2027</a>
+<a href="#2028" id="2028">2028</a>
+<a href="#2029" id="2029">2029</a>
+<a href="#2030" id="2030">2030</a>
+<a href="#2031" id="2031">2031</a>
+<a href="#2032" id="2032">2032</a>
+<a href="#2033" id="2033">2033</a>
+<a href="#2034" id="2034">2034</a>
+<a href="#2035" id="2035">2035</a>
+<a href="#2036" id="2036">2036</a>
+<a href="#2037" id="2037">2037</a>
+<a href="#2038" id="2038">2038</a>
+<a href="#2039" id="2039">2039</a>
+<a href="#2040" id="2040">2040</a>
+<a href="#2041" id="2041">2041</a>
+<a href="#2042" id="2042">2042</a>
+<a href="#2043" id="2043">2043</a>
+<a href="#2044" id="2044">2044</a>
+<a href="#2045" id="2045">2045</a>
+<a href="#2046" id="2046">2046</a>
+<a href="#2047" id="2047">2047</a>
+<a href="#2048" id="2048">2048</a>
+<a href="#2049" id="2049">2049</a>
+<a href="#2050" id="2050">2050</a>
+<a href="#2051" id="2051">2051</a>
+<a href="#2052" id="2052">2052</a>
+<a href="#2053" id="2053">2053</a>
+<a href="#2054" id="2054">2054</a>
+<a href="#2055" id="2055">2055</a>
+<a href="#2056" id="2056">2056</a>
+<a href="#2057" id="2057">2057</a>
+<a href="#2058" id="2058">2058</a>
+<a href="#2059" id="2059">2059</a>
+<a href="#2060" id="2060">2060</a>
+<a href="#2061" id="2061">2061</a>
+<a href="#2062" id="2062">2062</a>
+<a href="#2063" id="2063">2063</a>
+<a href="#2064" id="2064">2064</a>
+<a href="#2065" id="2065">2065</a>
+<a href="#2066" id="2066">2066</a>
+<a href="#2067" id="2067">2067</a>
+<a href="#2068" id="2068">2068</a>
+<a href="#2069" id="2069">2069</a>
+<a href="#2070" id="2070">2070</a>
+<a href="#2071" id="2071">2071</a>
+<a href="#2072" id="2072">2072</a>
+<a href="#2073" id="2073">2073</a>
+<a href="#2074" id="2074">2074</a>
+<a href="#2075" id="2075">2075</a>
+<a href="#2076" id="2076">2076</a>
+<a href="#2077" id="2077">2077</a>
+<a href="#2078" id="2078">2078</a>
+<a href="#2079" id="2079">2079</a>
+<a href="#2080" id="2080">2080</a>
+<a href="#2081" id="2081">2081</a>
+<a href="#2082" id="2082">2082</a>
+<a href="#2083" id="2083">2083</a>
+<a href="#2084" id="2084">2084</a>
+<a href="#2085" id="2085">2085</a>
+<a href="#2086" id="2086">2086</a>
+<a href="#2087" id="2087">2087</a>
+<a href="#2088" id="2088">2088</a>
+<a href="#2089" id="2089">2089</a>
+<a href="#2090" id="2090">2090</a>
+<a href="#2091" id="2091">2091</a>
+<a href="#2092" id="2092">2092</a>
+<a href="#2093" id="2093">2093</a>
+<a href="#2094" id="2094">2094</a>
+<a href="#2095" id="2095">2095</a>
+<a href="#2096" id="2096">2096</a>
+<a href="#2097" id="2097">2097</a>
+<a href="#2098" id="2098">2098</a>
+<a href="#2099" id="2099">2099</a>
+<a href="#2100" id="2100">2100</a>
+<a href="#2101" id="2101">2101</a>
+<a href="#2102" id="2102">2102</a>
+<a href="#2103" id="2103">2103</a>
+<a href="#2104" id="2104">2104</a>
+<a href="#2105" id="2105">2105</a>
+<a href="#2106" id="2106">2106</a>
+<a href="#2107" id="2107">2107</a>
+<a href="#2108" id="2108">2108</a>
+<a href="#2109" id="2109">2109</a>
+<a href="#2110" id="2110">2110</a>
+<a href="#2111" id="2111">2111</a>
+<a href="#2112" id="2112">2112</a>
+<a href="#2113" id="2113">2113</a>
+<a href="#2114" id="2114">2114</a>
+<a href="#2115" id="2115">2115</a>
+<a href="#2116" id="2116">2116</a>
+<a href="#2117" id="2117">2117</a>
+<a href="#2118" id="2118">2118</a>
+<a href="#2119" id="2119">2119</a>
+<a href="#2120" id="2120">2120</a>
+<a href="#2121" id="2121">2121</a>
+<a href="#2122" id="2122">2122</a>
+<a href="#2123" id="2123">2123</a>
+<a href="#2124" id="2124">2124</a>
+<a href="#2125" id="2125">2125</a>
+<a href="#2126" id="2126">2126</a>
+<a href="#2127" id="2127">2127</a>
+<a href="#2128" id="2128">2128</a>
+<a href="#2129" id="2129">2129</a>
+<a href="#2130" id="2130">2130</a>
+<a href="#2131" id="2131">2131</a>
+<a href="#2132" id="2132">2132</a>
+<a href="#2133" id="2133">2133</a>
+<a href="#2134" id="2134">2134</a>
+<a href="#2135" id="2135">2135</a>
+<a href="#2136" id="2136">2136</a>
+<a href="#2137" id="2137">2137</a>
+<a href="#2138" id="2138">2138</a>
+<a href="#2139" id="2139">2139</a>
+<a href="#2140" id="2140">2140</a>
+<a href="#2141" id="2141">2141</a>
+<a href="#2142" id="2142">2142</a>
+<a href="#2143" id="2143">2143</a>
+<a href="#2144" id="2144">2144</a>
+<a href="#2145" id="2145">2145</a>
+<a href="#2146" id="2146">2146</a>
+<a href="#2147" id="2147">2147</a>
+<a href="#2148" id="2148">2148</a>
+<a href="#2149" id="2149">2149</a>
+<a href="#2150" id="2150">2150</a>
+<a href="#2151" id="2151">2151</a>
+<a href="#2152" id="2152">2152</a>
+<a href="#2153" id="2153">2153</a>
+<a href="#2154" id="2154">2154</a>
+<a href="#2155" id="2155">2155</a>
+<a href="#2156" id="2156">2156</a>
+<a href="#2157" id="2157">2157</a>
+<a href="#2158" id="2158">2158</a>
+<a href="#2159" id="2159">2159</a>
+<a href="#2160" id="2160">2160</a>
+<a href="#2161" id="2161">2161</a>
+<a href="#2162" id="2162">2162</a>
+<a href="#2163" id="2163">2163</a>
+<a href="#2164" id="2164">2164</a>
+<a href="#2165" id="2165">2165</a>
+<a href="#2166" id="2166">2166</a>
+<a href="#2167" id="2167">2167</a>
+<a href="#2168" id="2168">2168</a>
+<a href="#2169" id="2169">2169</a>
+<a href="#2170" id="2170">2170</a>
+<a href="#2171" id="2171">2171</a>
+<a href="#2172" id="2172">2172</a>
+<a href="#2173" id="2173">2173</a>
+<a href="#2174" id="2174">2174</a>
+<a href="#2175" id="2175">2175</a>
+<a href="#2176" id="2176">2176</a>
+<a href="#2177" id="2177">2177</a>
+<a href="#2178" id="2178">2178</a>
+<a href="#2179" id="2179">2179</a>
+<a href="#2180" id="2180">2180</a>
+<a href="#2181" id="2181">2181</a>
+<a href="#2182" id="2182">2182</a>
+<a href="#2183" id="2183">2183</a>
+<a href="#2184" id="2184">2184</a>
+<a href="#2185" id="2185">2185</a>
+<a href="#2186" id="2186">2186</a>
+<a href="#2187" id="2187">2187</a>
+<a href="#2188" id="2188">2188</a>
+<a href="#2189" id="2189">2189</a>
+<a href="#2190" id="2190">2190</a>
+<a href="#2191" id="2191">2191</a>
+<a href="#2192" id="2192">2192</a>
+<a href="#2193" id="2193">2193</a>
+<a href="#2194" id="2194">2194</a>
+<a href="#2195" id="2195">2195</a>
+<a href="#2196" id="2196">2196</a>
+<a href="#2197" id="2197">2197</a>
+<a href="#2198" id="2198">2198</a>
+<a href="#2199" id="2199">2199</a>
+<a href="#2200" id="2200">2200</a>
+<a href="#2201" id="2201">2201</a>
+<a href="#2202" id="2202">2202</a>
+<a href="#2203" id="2203">2203</a>
+<a href="#2204" id="2204">2204</a>
+<a href="#2205" id="2205">2205</a>
+<a href="#2206" id="2206">2206</a>
+<a href="#2207" id="2207">2207</a>
+<a href="#2208" id="2208">2208</a>
+<a href="#2209" id="2209">2209</a>
+<a href="#2210" id="2210">2210</a>
+<a href="#2211" id="2211">2211</a>
+<a href="#2212" id="2212">2212</a>
+<a href="#2213" id="2213">2213</a>
+<a href="#2214" id="2214">2214</a>
+<a href="#2215" id="2215">2215</a>
+<a href="#2216" id="2216">2216</a>
+<a href="#2217" id="2217">2217</a>
+<a href="#2218" id="2218">2218</a>
+<a href="#2219" id="2219">2219</a>
+<a href="#2220" id="2220">2220</a>
+<a href="#2221" id="2221">2221</a>
+<a href="#2222" id="2222">2222</a>
+<a href="#2223" id="2223">2223</a>
+<a href="#2224" id="2224">2224</a>
+<a href="#2225" id="2225">2225</a>
+<a href="#2226" id="2226">2226</a>
+<a href="#2227" id="2227">2227</a>
+<a href="#2228" id="2228">2228</a>
+<a href="#2229" id="2229">2229</a>
+<a href="#2230" id="2230">2230</a>
+<a href="#2231" id="2231">2231</a>
+<a href="#2232" id="2232">2232</a>
+<a href="#2233" id="2233">2233</a>
+<a href="#2234" id="2234">2234</a>
+<a href="#2235" id="2235">2235</a>
+<a href="#2236" id="2236">2236</a>
+<a href="#2237" id="2237">2237</a>
+<a href="#2238" id="2238">2238</a>
+<a href="#2239" id="2239">2239</a>
+<a href="#2240" id="2240">2240</a>
+<a href="#2241" id="2241">2241</a>
+<a href="#2242" id="2242">2242</a>
+<a href="#2243" id="2243">2243</a>
+<a href="#2244" id="2244">2244</a>
+<a href="#2245" id="2245">2245</a>
+<a href="#2246" id="2246">2246</a>
+<a href="#2247" id="2247">2247</a>
+<a href="#2248" id="2248">2248</a>
+<a href="#2249" id="2249">2249</a>
+<a href="#2250" id="2250">2250</a>
+<a href="#2251" id="2251">2251</a>
+<a href="#2252" id="2252">2252</a>
+<a href="#2253" id="2253">2253</a>
+<a href="#2254" id="2254">2254</a>
+<a href="#2255" id="2255">2255</a>
+<a href="#2256" id="2256">2256</a>
+<a href="#2257" id="2257">2257</a>
+<a href="#2258" id="2258">2258</a>
+<a href="#2259" id="2259">2259</a>
+<a href="#2260" id="2260">2260</a>
+<a href="#2261" id="2261">2261</a>
+<a href="#2262" id="2262">2262</a>
+<a href="#2263" id="2263">2263</a>
+<a href="#2264" id="2264">2264</a>
+<a href="#2265" id="2265">2265</a>
+<a href="#2266" id="2266">2266</a>
+<a href="#2267" id="2267">2267</a>
+<a href="#2268" id="2268">2268</a>
+<a href="#2269" id="2269">2269</a>
+<a href="#2270" id="2270">2270</a>
+<a href="#2271" id="2271">2271</a>
+<a href="#2272" id="2272">2272</a>
+<a href="#2273" id="2273">2273</a>
+<a href="#2274" id="2274">2274</a>
+<a href="#2275" id="2275">2275</a>
+<a href="#2276" id="2276">2276</a>
+<a href="#2277" id="2277">2277</a>
+<a href="#2278" id="2278">2278</a>
+<a href="#2279" id="2279">2279</a>
+<a href="#2280" id="2280">2280</a>
+<a href="#2281" id="2281">2281</a>
+<a href="#2282" id="2282">2282</a>
+<a href="#2283" id="2283">2283</a>
+<a href="#2284" id="2284">2284</a>
+<a href="#2285" id="2285">2285</a>
+<a href="#2286" id="2286">2286</a>
+<a href="#2287" id="2287">2287</a>
+<a href="#2288" id="2288">2288</a>
+<a href="#2289" id="2289">2289</a>
+<a href="#2290" id="2290">2290</a>
+<a href="#2291" id="2291">2291</a>
+<a href="#2292" id="2292">2292</a>
+<a href="#2293" id="2293">2293</a>
+<a href="#2294" id="2294">2294</a>
+<a href="#2295" id="2295">2295</a>
+<a href="#2296" id="2296">2296</a>
+<a href="#2297" id="2297">2297</a>
+<a href="#2298" id="2298">2298</a>
+<a href="#2299" id="2299">2299</a>
+<a href="#2300" id="2300">2300</a>
+<a href="#2301" id="2301">2301</a>
+<a href="#2302" id="2302">2302</a>
+<a href="#2303" id="2303">2303</a>
+<a href="#2304" id="2304">2304</a>
+<a href="#2305" id="2305">2305</a>
+<a href="#2306" id="2306">2306</a>
+<a href="#2307" id="2307">2307</a>
+<a href="#2308" id="2308">2308</a>
+<a href="#2309" id="2309">2309</a>
+<a href="#2310" id="2310">2310</a>
+<a href="#2311" id="2311">2311</a>
+<a href="#2312" id="2312">2312</a>
+<a href="#2313" id="2313">2313</a>
+<a href="#2314" id="2314">2314</a>
+<a href="#2315" id="2315">2315</a>
+<a href="#2316" id="2316">2316</a>
+<a href="#2317" id="2317">2317</a>
+<a href="#2318" id="2318">2318</a>
+<a href="#2319" id="2319">2319</a>
+<a href="#2320" id="2320">2320</a>
+<a href="#2321" id="2321">2321</a>
+<a href="#2322" id="2322">2322</a>
+<a href="#2323" id="2323">2323</a>
+<a href="#2324" id="2324">2324</a>
+<a href="#2325" id="2325">2325</a>
+<a href="#2326" id="2326">2326</a>
+<a href="#2327" id="2327">2327</a>
+<a href="#2328" id="2328">2328</a>
+<a href="#2329" id="2329">2329</a>
+<a href="#2330" id="2330">2330</a>
+<a href="#2331" id="2331">2331</a>
+<a href="#2332" id="2332">2332</a>
+<a href="#2333" id="2333">2333</a>
+<a href="#2334" id="2334">2334</a>
+<a href="#2335" id="2335">2335</a>
+<a href="#2336" id="2336">2336</a>
+<a href="#2337" id="2337">2337</a>
+<a href="#2338" id="2338">2338</a>
+<a href="#2339" id="2339">2339</a>
+<a href="#2340" id="2340">2340</a>
+<a href="#2341" id="2341">2341</a>
+<a href="#2342" id="2342">2342</a>
+<a href="#2343" id="2343">2343</a>
+<a href="#2344" id="2344">2344</a>
+<a href="#2345" id="2345">2345</a>
+<a href="#2346" id="2346">2346</a>
+<a href="#2347" id="2347">2347</a>
+<a href="#2348" id="2348">2348</a>
+<a href="#2349" id="2349">2349</a>
+<a href="#2350" id="2350">2350</a>
+<a href="#2351" id="2351">2351</a>
+<a href="#2352" id="2352">2352</a>
+<a href="#2353" id="2353">2353</a>
+<a href="#2354" id="2354">2354</a>
+<a href="#2355" id="2355">2355</a>
+<a href="#2356" id="2356">2356</a>
+<a href="#2357" id="2357">2357</a>
+<a href="#2358" id="2358">2358</a>
+<a href="#2359" id="2359">2359</a>
+<a href="#2360" id="2360">2360</a>
+<a href="#2361" id="2361">2361</a>
+<a href="#2362" id="2362">2362</a>
+<a href="#2363" id="2363">2363</a>
+<a href="#2364" id="2364">2364</a>
+<a href="#2365" id="2365">2365</a>
+<a href="#2366" id="2366">2366</a>
+<a href="#2367" id="2367">2367</a>
+<a href="#2368" id="2368">2368</a>
+<a href="#2369" id="2369">2369</a>
+<a href="#2370" id="2370">2370</a>
+<a href="#2371" id="2371">2371</a>
+<a href="#2372" id="2372">2372</a>
+<a href="#2373" id="2373">2373</a>
+<a href="#2374" id="2374">2374</a>
+<a href="#2375" id="2375">2375</a>
+<a href="#2376" id="2376">2376</a>
+<a href="#2377" id="2377">2377</a>
+<a href="#2378" id="2378">2378</a>
+<a href="#2379" id="2379">2379</a>
+<a href="#2380" id="2380">2380</a>
+<a href="#2381" id="2381">2381</a>
+<a href="#2382" id="2382">2382</a>
+<a href="#2383" id="2383">2383</a>
+<a href="#2384" id="2384">2384</a>
+<a href="#2385" id="2385">2385</a>
+<a href="#2386" id="2386">2386</a>
+<a href="#2387" id="2387">2387</a>
+<a href="#2388" id="2388">2388</a>
+<a href="#2389" id="2389">2389</a>
+<a href="#2390" id="2390">2390</a>
+<a href="#2391" id="2391">2391</a>
+<a href="#2392" id="2392">2392</a>
+<a href="#2393" id="2393">2393</a>
+<a href="#2394" id="2394">2394</a>
+<a href="#2395" id="2395">2395</a>
+<a href="#2396" id="2396">2396</a>
+<a href="#2397" id="2397">2397</a>
+<a href="#2398" id="2398">2398</a>
+<a href="#2399" id="2399">2399</a>
+<a href="#2400" id="2400">2400</a>
+<a href="#2401" id="2401">2401</a>
+<a href="#2402" id="2402">2402</a>
+<a href="#2403" id="2403">2403</a>
+<a href="#2404" id="2404">2404</a>
+<a href="#2405" id="2405">2405</a>
+<a href="#2406" id="2406">2406</a>
+<a href="#2407" id="2407">2407</a>
+<a href="#2408" id="2408">2408</a>
+<a href="#2409" id="2409">2409</a>
+<a href="#2410" id="2410">2410</a>
+<a href="#2411" id="2411">2411</a>
+<a href="#2412" id="2412">2412</a>
+<a href="#2413" id="2413">2413</a>
+<a href="#2414" id="2414">2414</a>
+<a href="#2415" id="2415">2415</a>
+<a href="#2416" id="2416">2416</a>
+<a href="#2417" id="2417">2417</a>
+<a href="#2418" id="2418">2418</a>
+<a href="#2419" id="2419">2419</a>
+<a href="#2420" id="2420">2420</a>
+<a href="#2421" id="2421">2421</a>
+<a href="#2422" id="2422">2422</a>
+<a href="#2423" id="2423">2423</a>
+<a href="#2424" id="2424">2424</a>
+<a href="#2425" id="2425">2425</a>
+<a href="#2426" id="2426">2426</a>
+<a href="#2427" id="2427">2427</a>
+<a href="#2428" id="2428">2428</a>
+<a href="#2429" id="2429">2429</a>
+<a href="#2430" id="2430">2430</a>
+<a href="#2431" id="2431">2431</a>
+<a href="#2432" id="2432">2432</a>
+<a href="#2433" id="2433">2433</a>
+<a href="#2434" id="2434">2434</a>
+<a href="#2435" id="2435">2435</a>
+<a href="#2436" id="2436">2436</a>
+<a href="#2437" id="2437">2437</a>
+<a href="#2438" id="2438">2438</a>
+<a href="#2439" id="2439">2439</a>
+<a href="#2440" id="2440">2440</a>
+<a href="#2441" id="2441">2441</a>
+<a href="#2442" id="2442">2442</a>
+<a href="#2443" id="2443">2443</a>
+<a href="#2444" id="2444">2444</a>
+<a href="#2445" id="2445">2445</a>
+<a href="#2446" id="2446">2446</a>
+<a href="#2447" id="2447">2447</a>
+<a href="#2448" id="2448">2448</a>
+<a href="#2449" id="2449">2449</a>
+<a href="#2450" id="2450">2450</a>
+<a href="#2451" id="2451">2451</a>
+<a href="#2452" id="2452">2452</a>
+<a href="#2453" id="2453">2453</a>
+<a href="#2454" id="2454">2454</a>
+<a href="#2455" id="2455">2455</a>
+<a href="#2456" id="2456">2456</a>
+<a href="#2457" id="2457">2457</a>
+<a href="#2458" id="2458">2458</a>
+<a href="#2459" id="2459">2459</a>
+<a href="#2460" id="2460">2460</a>
+<a href="#2461" id="2461">2461</a>
+<a href="#2462" id="2462">2462</a>
+<a href="#2463" id="2463">2463</a>
+<a href="#2464" id="2464">2464</a>
+<a href="#2465" id="2465">2465</a>
+<a href="#2466" id="2466">2466</a>
+<a href="#2467" id="2467">2467</a>
+<a href="#2468" id="2468">2468</a>
+<a href="#2469" id="2469">2469</a>
+<a href="#2470" id="2470">2470</a>
+<a href="#2471" id="2471">2471</a>
+<a href="#2472" id="2472">2472</a>
+<a href="#2473" id="2473">2473</a>
+<a href="#2474" id="2474">2474</a>
+<a href="#2475" id="2475">2475</a>
+<a href="#2476" id="2476">2476</a>
+<a href="#2477" id="2477">2477</a>
+<a href="#2478" id="2478">2478</a>
+<a href="#2479" id="2479">2479</a>
+<a href="#2480" id="2480">2480</a>
+<a href="#2481" id="2481">2481</a>
+<a href="#2482" id="2482">2482</a>
+<a href="#2483" id="2483">2483</a>
+<a href="#2484" id="2484">2484</a>
+<a href="#2485" id="2485">2485</a>
+<a href="#2486" id="2486">2486</a>
+<a href="#2487" id="2487">2487</a>
+<a href="#2488" id="2488">2488</a>
+<a href="#2489" id="2489">2489</a>
+<a href="#2490" id="2490">2490</a>
+<a href="#2491" id="2491">2491</a>
+<a href="#2492" id="2492">2492</a>
+<a href="#2493" id="2493">2493</a>
+<a href="#2494" id="2494">2494</a>
+<a href="#2495" id="2495">2495</a>
+<a href="#2496" id="2496">2496</a>
+<a href="#2497" id="2497">2497</a>
+<a href="#2498" id="2498">2498</a>
+<a href="#2499" id="2499">2499</a>
+<a href="#2500" id="2500">2500</a>
+<a href="#2501" id="2501">2501</a>
+<a href="#2502" id="2502">2502</a>
+<a href="#2503" id="2503">2503</a>
+<a href="#2504" id="2504">2504</a>
+<a href="#2505" id="2505">2505</a>
+<a href="#2506" id="2506">2506</a>
+<a href="#2507" id="2507">2507</a>
+<a href="#2508" id="2508">2508</a>
+<a href="#2509" id="2509">2509</a>
+<a href="#2510" id="2510">2510</a>
+<a href="#2511" id="2511">2511</a>
+<a href="#2512" id="2512">2512</a>
+<a href="#2513" id="2513">2513</a>
+<a href="#2514" id="2514">2514</a>
+<a href="#2515" id="2515">2515</a>
+<a href="#2516" id="2516">2516</a>
+<a href="#2517" id="2517">2517</a>
+<a href="#2518" id="2518">2518</a>
+<a href="#2519" id="2519">2519</a>
+<a href="#2520" id="2520">2520</a>
+<a href="#2521" id="2521">2521</a>
+<a href="#2522" id="2522">2522</a>
+<a href="#2523" id="2523">2523</a>
+<a href="#2524" id="2524">2524</a>
+<a href="#2525" id="2525">2525</a>
+<a href="#2526" id="2526">2526</a>
+<a href="#2527" id="2527">2527</a>
+<a href="#2528" id="2528">2528</a>
+<a href="#2529" id="2529">2529</a>
+<a href="#2530" id="2530">2530</a>
+<a href="#2531" id="2531">2531</a>
+<a href="#2532" id="2532">2532</a>
+<a href="#2533" id="2533">2533</a>
+<a href="#2534" id="2534">2534</a>
+<a href="#2535" id="2535">2535</a>
+<a href="#2536" id="2536">2536</a>
+<a href="#2537" id="2537">2537</a>
+<a href="#2538" id="2538">2538</a>
+<a href="#2539" id="2539">2539</a>
+<a href="#2540" id="2540">2540</a>
+<a href="#2541" id="2541">2541</a>
+<a href="#2542" id="2542">2542</a>
+<a href="#2543" id="2543">2543</a>
+<a href="#2544" id="2544">2544</a>
+<a href="#2545" id="2545">2545</a>
+<a href="#2546" id="2546">2546</a>
+<a href="#2547" id="2547">2547</a>
+<a href="#2548" id="2548">2548</a>
+<a href="#2549" id="2549">2549</a>
+<a href="#2550" id="2550">2550</a>
+<a href="#2551" id="2551">2551</a>
+<a href="#2552" id="2552">2552</a>
+<a href="#2553" id="2553">2553</a>
+<a href="#2554" id="2554">2554</a>
+<a href="#2555" id="2555">2555</a>
+<a href="#2556" id="2556">2556</a>
+<a href="#2557" id="2557">2557</a>
+<a href="#2558" id="2558">2558</a>
+<a href="#2559" id="2559">2559</a>
+<a href="#2560" id="2560">2560</a>
+<a href="#2561" id="2561">2561</a>
+<a href="#2562" id="2562">2562</a>
+<a href="#2563" id="2563">2563</a>
+<a href="#2564" id="2564">2564</a>
+<a href="#2565" id="2565">2565</a>
+<a href="#2566" id="2566">2566</a>
+<a href="#2567" id="2567">2567</a>
+<a href="#2568" id="2568">2568</a>
+<a href="#2569" id="2569">2569</a>
+<a href="#2570" id="2570">2570</a>
+<a href="#2571" id="2571">2571</a>
+<a href="#2572" id="2572">2572</a>
+<a href="#2573" id="2573">2573</a>
+<a href="#2574" id="2574">2574</a>
+<a href="#2575" id="2575">2575</a>
+<a href="#2576" id="2576">2576</a>
+<a href="#2577" id="2577">2577</a>
+<a href="#2578" id="2578">2578</a>
+<a href="#2579" id="2579">2579</a>
+<a href="#2580" id="2580">2580</a>
+<a href="#2581" id="2581">2581</a>
+<a href="#2582" id="2582">2582</a>
+<a href="#2583" id="2583">2583</a>
+<a href="#2584" id="2584">2584</a>
+<a href="#2585" id="2585">2585</a>
+<a href="#2586" id="2586">2586</a>
+<a href="#2587" id="2587">2587</a>
+<a href="#2588" id="2588">2588</a>
+<a href="#2589" id="2589">2589</a>
+<a href="#2590" id="2590">2590</a>
+<a href="#2591" id="2591">2591</a>
+<a href="#2592" id="2592">2592</a>
+<a href="#2593" id="2593">2593</a>
+<a href="#2594" id="2594">2594</a>
+<a href="#2595" id="2595">2595</a>
+<a href="#2596" id="2596">2596</a>
+<a href="#2597" id="2597">2597</a>
+<a href="#2598" id="2598">2598</a>
+<a href="#2599" id="2599">2599</a>
+<a href="#2600" id="2600">2600</a>
+<a href="#2601" id="2601">2601</a>
+<a href="#2602" id="2602">2602</a>
+<a href="#2603" id="2603">2603</a>
+<a href="#2604" id="2604">2604</a>
+<a href="#2605" id="2605">2605</a>
+<a href="#2606" id="2606">2606</a>
+<a href="#2607" id="2607">2607</a>
+<a href="#2608" id="2608">2608</a>
+<a href="#2609" id="2609">2609</a>
+<a href="#2610" id="2610">2610</a>
+<a href="#2611" id="2611">2611</a>
+<a href="#2612" id="2612">2612</a>
+<a href="#2613" id="2613">2613</a>
+<a href="#2614" id="2614">2614</a>
+<a href="#2615" id="2615">2615</a>
+<a href="#2616" id="2616">2616</a>
+<a href="#2617" id="2617">2617</a>
+<a href="#2618" id="2618">2618</a>
+<a href="#2619" id="2619">2619</a>
+<a href="#2620" id="2620">2620</a>
+<a href="#2621" id="2621">2621</a>
+<a href="#2622" id="2622">2622</a>
+<a href="#2623" id="2623">2623</a>
+<a href="#2624" id="2624">2624</a>
+<a href="#2625" id="2625">2625</a>
+<a href="#2626" id="2626">2626</a>
+<a href="#2627" id="2627">2627</a>
+<a href="#2628" id="2628">2628</a>
+<a href="#2629" id="2629">2629</a>
+<a href="#2630" id="2630">2630</a>
+<a href="#2631" id="2631">2631</a>
+<a href="#2632" id="2632">2632</a>
+<a href="#2633" id="2633">2633</a>
+<a href="#2634" id="2634">2634</a>
+<a href="#2635" id="2635">2635</a>
+<a href="#2636" id="2636">2636</a>
+<a href="#2637" id="2637">2637</a>
+<a href="#2638" id="2638">2638</a>
+<a href="#2639" id="2639">2639</a>
+<a href="#2640" id="2640">2640</a>
+<a href="#2641" id="2641">2641</a>
+<a href="#2642" id="2642">2642</a>
+<a href="#2643" id="2643">2643</a>
+<a href="#2644" id="2644">2644</a>
+<a href="#2645" id="2645">2645</a>
+<a href="#2646" id="2646">2646</a>
+<a href="#2647" id="2647">2647</a>
+<a href="#2648" id="2648">2648</a>
+<a href="#2649" id="2649">2649</a>
+<a href="#2650" id="2650">2650</a>
+<a href="#2651" id="2651">2651</a>
+<a href="#2652" id="2652">2652</a>
+<a href="#2653" id="2653">2653</a>
+<a href="#2654" id="2654">2654</a>
+<a href="#2655" id="2655">2655</a>
+<a href="#2656" id="2656">2656</a>
+<a href="#2657" id="2657">2657</a>
+<a href="#2658" id="2658">2658</a>
+<a href="#2659" id="2659">2659</a>
+<a href="#2660" id="2660">2660</a>
+<a href="#2661" id="2661">2661</a>
+<a href="#2662" id="2662">2662</a>
+<a href="#2663" id="2663">2663</a>
+<a href="#2664" id="2664">2664</a>
+<a href="#2665" id="2665">2665</a>
+<a href="#2666" id="2666">2666</a>
+<a href="#2667" id="2667">2667</a>
+<a href="#2668" id="2668">2668</a>
+<a href="#2669" id="2669">2669</a>
+<a href="#2670" id="2670">2670</a>
+<a href="#2671" id="2671">2671</a>
+<a href="#2672" id="2672">2672</a>
+<a href="#2673" id="2673">2673</a>
+<a href="#2674" id="2674">2674</a>
+<a href="#2675" id="2675">2675</a>
+<a href="#2676" id="2676">2676</a>
+<a href="#2677" id="2677">2677</a>
+<a href="#2678" id="2678">2678</a>
+<a href="#2679" id="2679">2679</a>
+<a href="#2680" id="2680">2680</a>
+<a href="#2681" id="2681">2681</a>
+<a href="#2682" id="2682">2682</a>
+<a href="#2683" id="2683">2683</a>
+<a href="#2684" id="2684">2684</a>
+<a href="#2685" id="2685">2685</a>
+<a href="#2686" id="2686">2686</a>
+<a href="#2687" id="2687">2687</a>
+<a href="#2688" id="2688">2688</a>
+<a href="#2689" id="2689">2689</a>
+<a href="#2690" id="2690">2690</a>
+<a href="#2691" id="2691">2691</a>
+<a href="#2692" id="2692">2692</a>
+<a href="#2693" id="2693">2693</a>
+<a href="#2694" id="2694">2694</a>
+<a href="#2695" id="2695">2695</a>
+<a href="#2696" id="2696">2696</a>
+<a href="#2697" id="2697">2697</a>
+<a href="#2698" id="2698">2698</a>
+<a href="#2699" id="2699">2699</a>
+<a href="#2700" id="2700">2700</a>
+<a href="#2701" id="2701">2701</a>
+<a href="#2702" id="2702">2702</a>
+<a href="#2703" id="2703">2703</a>
+<a href="#2704" id="2704">2704</a>
+<a href="#2705" id="2705">2705</a>
+<a href="#2706" id="2706">2706</a>
+<a href="#2707" id="2707">2707</a>
+<a href="#2708" id="2708">2708</a>
+</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
+// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
+//
+// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
+//
+// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
+// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// You may not use this file except in accordance with one or both of these
+// licenses.
+
+</span><span class="doccomment">//! Wallet
+//!
+//! This module defines the [`Wallet`].
+</span><span class="kw">use </span><span class="kw">crate</span>::collections::{BTreeMap, HashMap};
+<span class="kw">use </span>alloc::{
+ boxed::Box,
+ string::{String, ToString},
+ sync::Arc,
+ vec::Vec,
+};
+<span class="kw">pub use </span>bdk_chain::keychain::Balance;
+<span class="kw">use </span>bdk_chain::{
+ indexed_tx_graph,
+ keychain::{<span class="self">self</span>, KeychainTxOutIndex},
+ local_chain::{
+ <span class="self">self</span>, ApplyHeaderError, CannotConnectError, CheckPoint, CheckPointIter, LocalChain,
+ },
+ spk_client::{FullScanRequest, FullScanResult, SyncRequest, SyncResult},
+ tx_graph::{CanonicalTx, TxGraph},
+ Append, BlockId, ChainPosition, ConfirmationTime, ConfirmationTimeHeightAnchor, FullTxOut,
+ IndexedTxGraph,
+};
+<span class="kw">use </span>bdk_persist::{Persist, PersistBackend};
+<span class="kw">use </span>bitcoin::secp256k1::{All, Secp256k1};
+<span class="kw">use </span>bitcoin::sighash::{EcdsaSighashType, TapSighashType};
+<span class="kw">use </span>bitcoin::{
+ absolute, psbt, Address, Block, FeeRate, Network, OutPoint, Script, ScriptBuf, Sequence,
+ Transaction, TxOut, Txid, Witness,
+};
+<span class="kw">use </span>bitcoin::{consensus::encode::serialize, transaction, BlockHash, Psbt};
+<span class="kw">use </span>bitcoin::{constants::genesis_block, Amount};
+<span class="kw">use </span>core::fmt;
+<span class="kw">use </span>core::ops::Deref;
+<span class="kw">use </span>descriptor::error::Error <span class="kw">as </span>DescriptorError;
+<span class="kw">use </span>miniscript::psbt::{PsbtExt, PsbtInputExt, PsbtInputSatisfier};
+
+<span class="kw">use </span>bdk_chain::tx_graph::CalculateFeeError;
+
+<span class="kw">pub mod </span>coin_selection;
+<span class="kw">pub mod </span>export;
+<span class="kw">pub mod </span>signer;
+<span class="kw">pub mod </span>tx_builder;
+<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">mod </span>utils;
+
+<span class="kw">pub mod </span>error;
+
+<span class="kw">pub use </span>utils::IsDust;
+
+<span class="kw">use </span>coin_selection::DefaultCoinSelectionAlgorithm;
+<span class="kw">use </span>signer::{SignOptions, SignerOrdering, SignersContainer, TransactionSigner};
+<span class="kw">use </span>tx_builder::{BumpFee, CreateTx, FeePolicy, TxBuilder, TxParams};
+<span class="kw">use </span>utils::{check_nsequence_rbf, After, Older, SecpCtx};
+
+<span class="kw">use </span><span class="kw">crate</span>::descriptor::policy::BuildSatisfaction;
+<span class="kw">use </span><span class="kw">crate</span>::descriptor::{
+ <span class="self">self</span>, calc_checksum, into_wallet_descriptor_checked, DerivedDescriptor, DescriptorMeta,
+ ExtendedDescriptor, ExtractPolicy, IntoWalletDescriptor, Policy, XKeyUtils,
+};
+<span class="kw">use </span><span class="kw">crate</span>::psbt::PsbtUtils;
+<span class="kw">use </span><span class="kw">crate</span>::signer::SignerError;
+<span class="kw">use </span><span class="kw">crate</span>::types::<span class="kw-2">*</span>;
+<span class="kw">use </span><span class="kw">crate</span>::wallet::coin_selection::Excess::{Change, NoChange};
+<span class="kw">use </span><span class="kw">crate</span>::wallet::error::{BuildFeeBumpError, CreateTxError, MiniscriptPsbtError};
+
+<span class="kw">const </span>COINBASE_MATURITY: u32 = <span class="number">100</span>;
+
+<span class="doccomment">/// A Bitcoin wallet
+///
+/// The `Wallet` acts as a way of coherently interfacing with output descriptors and related transactions.
+/// Its main components are:
+///
+/// 1. output *descriptors* from which it can derive addresses.
+/// 2. [`signer`]s that can contribute signatures to addresses instantiated from the descriptors.
+///
+/// [`signer`]: crate::signer
+</span><span class="attr">#[derive(Debug)]
+</span><span class="kw">pub struct </span>Wallet {
+ signers: Arc<SignersContainer>,
+ change_signers: Arc<SignersContainer>,
+ chain: LocalChain,
+ indexed_graph: IndexedTxGraph<ConfirmationTimeHeightAnchor, KeychainTxOutIndex<KeychainKind>>,
+ persist: Persist<ChangeSet>,
+ network: Network,
+ secp: SecpCtx,
+}
+
+<span class="doccomment">/// An update to [`Wallet`].
+///
+/// It updates [`bdk_chain::keychain::KeychainTxOutIndex`], [`bdk_chain::TxGraph`] and [`local_chain::LocalChain`] atomically.
+</span><span class="attr">#[derive(Debug, Clone, Default)]
+</span><span class="kw">pub struct </span>Update {
+ <span class="doccomment">/// Contains the last active derivation indices per keychain (`K`), which is used to update the
+ /// [`KeychainTxOutIndex`].
+ </span><span class="kw">pub </span>last_active_indices: BTreeMap<KeychainKind, u32>,
+
+ <span class="doccomment">/// Update for the wallet's internal [`TxGraph`].
+ </span><span class="kw">pub </span>graph: TxGraph<ConfirmationTimeHeightAnchor>,
+
+ <span class="doccomment">/// Update for the wallet's internal [`LocalChain`].
+ ///
+ /// [`LocalChain`]: local_chain::LocalChain
+ </span><span class="kw">pub </span>chain: <span class="prelude-ty">Option</span><CheckPoint>,
+}
+
+<span class="kw">impl </span>From<FullScanResult<KeychainKind>> <span class="kw">for </span>Update {
+ <span class="kw">fn </span>from(value: FullScanResult<KeychainKind>) -> <span class="self">Self </span>{
+ <span class="self">Self </span>{
+ last_active_indices: value.last_active_indices,
+ graph: value.graph_update,
+ chain: <span class="prelude-val">Some</span>(value.chain_update),
+ }
+ }
+}
+
+<span class="kw">impl </span>From<SyncResult> <span class="kw">for </span>Update {
+ <span class="kw">fn </span>from(value: SyncResult) -> <span class="self">Self </span>{
+ <span class="self">Self </span>{
+ last_active_indices: BTreeMap::new(),
+ graph: value.graph_update,
+ chain: <span class="prelude-val">Some</span>(value.chain_update),
+ }
+ }
+}
+
+<span class="doccomment">/// The changes made to a wallet by applying an [`Update`].
+</span><span class="attr">#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize, Default)]
+</span><span class="kw">pub struct </span>ChangeSet {
+ <span class="doccomment">/// Changes to the [`LocalChain`].
+ ///
+ /// [`LocalChain`]: local_chain::LocalChain
+ </span><span class="kw">pub </span>chain: local_chain::ChangeSet,
+
+ <span class="doccomment">/// Changes to [`IndexedTxGraph`].
+ ///
+ /// [`IndexedTxGraph`]: bdk_chain::indexed_tx_graph::IndexedTxGraph
+ </span><span class="kw">pub </span>indexed_tx_graph: indexed_tx_graph::ChangeSet<
+ ConfirmationTimeHeightAnchor,
+ keychain::ChangeSet<KeychainKind>,
+ >,
+
+ <span class="doccomment">/// Stores the network type of the wallet.
+ </span><span class="kw">pub </span>network: <span class="prelude-ty">Option</span><Network>,
+}
+
+<span class="kw">impl </span>Append <span class="kw">for </span>ChangeSet {
+ <span class="kw">fn </span>append(<span class="kw-2">&mut </span><span class="self">self</span>, other: <span class="self">Self</span>) {
+ Append::append(<span class="kw-2">&mut </span><span class="self">self</span>.chain, other.chain);
+ Append::append(<span class="kw-2">&mut </span><span class="self">self</span>.indexed_tx_graph, other.indexed_tx_graph);
+ <span class="kw">if </span>other.network.is_some() {
+ <span class="macro">debug_assert!</span>(
+ <span class="self">self</span>.network.is_none() || <span class="self">self</span>.network == other.network,
+ <span class="string">"network type must be consistent"
+ </span>);
+ <span class="self">self</span>.network = other.network;
+ }
+ }
+
+ <span class="kw">fn </span>is_empty(<span class="kw-2">&</span><span class="self">self</span>) -> bool {
+ <span class="self">self</span>.chain.is_empty() && <span class="self">self</span>.indexed_tx_graph.is_empty()
+ }
+}
+
+<span class="kw">impl </span>From<local_chain::ChangeSet> <span class="kw">for </span>ChangeSet {
+ <span class="kw">fn </span>from(chain: local_chain::ChangeSet) -> <span class="self">Self </span>{
+ <span class="self">Self </span>{
+ chain,
+ ..Default::default()
+ }
+ }
+}
+
+<span class="kw">impl
+ </span>From<
+ indexed_tx_graph::ChangeSet<
+ ConfirmationTimeHeightAnchor,
+ keychain::ChangeSet<KeychainKind>,
+ >,
+ > <span class="kw">for </span>ChangeSet
+{
+ <span class="kw">fn </span>from(
+ indexed_tx_graph: indexed_tx_graph::ChangeSet<
+ ConfirmationTimeHeightAnchor,
+ keychain::ChangeSet<KeychainKind>,
+ >,
+ ) -> <span class="self">Self </span>{
+ <span class="self">Self </span>{
+ indexed_tx_graph,
+ ..Default::default()
+ }
+ }
+}
+
+<span class="doccomment">/// A derived address and the index it was found at.
+/// For convenience this automatically derefs to `Address`
+</span><span class="attr">#[derive(Debug, PartialEq, Eq)]
+</span><span class="kw">pub struct </span>AddressInfo {
+ <span class="doccomment">/// Child index of this address
+ </span><span class="kw">pub </span>index: u32,
+ <span class="doccomment">/// Address
+ </span><span class="kw">pub </span>address: Address,
+ <span class="doccomment">/// Type of keychain
+ </span><span class="kw">pub </span>keychain: KeychainKind,
+}
+
+<span class="kw">impl </span>Deref <span class="kw">for </span>AddressInfo {
+ <span class="kw">type </span>Target = Address;
+
+ <span class="kw">fn </span>deref(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span><span class="self">Self</span>::Target {
+ <span class="kw-2">&</span><span class="self">self</span>.address
+ }
+}
+
+<span class="kw">impl </span>fmt::Display <span class="kw">for </span>AddressInfo {
+ <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
+ <span class="macro">write!</span>(f, <span class="string">"{}"</span>, <span class="self">self</span>.address)
+ }
+}
+
+<span class="kw">impl </span>Wallet {
+ <span class="doccomment">/// Creates a wallet that does not persist data.
+ </span><span class="kw">pub fn </span>new_no_persist<E: IntoWalletDescriptor>(
+ descriptor: E,
+ change_descriptor: <span class="prelude-ty">Option</span><E>,
+ network: Network,
+ ) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>, DescriptorError> {
+ <span class="self">Self</span>::new(descriptor, change_descriptor, (), network).map_err(|e| <span class="kw">match </span>e {
+ NewError::NonEmptyDatabase => <span class="macro">unreachable!</span>(<span class="string">"mock-database cannot have data"</span>),
+ NewError::Descriptor(e) => e,
+ NewError::Persist(<span class="kw">_</span>) => <span class="macro">unreachable!</span>(<span class="string">"mock-write must always succeed"</span>),
+ })
+ }
+
+ <span class="doccomment">/// Creates a wallet that does not persist data, with a custom genesis hash.
+ </span><span class="kw">pub fn </span>new_no_persist_with_genesis_hash<E: IntoWalletDescriptor>(
+ descriptor: E,
+ change_descriptor: <span class="prelude-ty">Option</span><E>,
+ network: Network,
+ genesis_hash: BlockHash,
+ ) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>, <span class="kw">crate</span>::descriptor::DescriptorError> {
+ <span class="self">Self</span>::new_with_genesis_hash(descriptor, change_descriptor, (), network, genesis_hash)
+ .map_err(|e| <span class="kw">match </span>e {
+ NewError::NonEmptyDatabase => <span class="macro">unreachable!</span>(<span class="string">"mock-database cannot have data"</span>),
+ NewError::Descriptor(e) => e,
+ NewError::Persist(<span class="kw">_</span>) => <span class="macro">unreachable!</span>(<span class="string">"mock-write must always succeed"</span>),
+ })
+ }
+}
+
+<span class="doccomment">/// The error type when constructing a fresh [`Wallet`].
+///
+/// Methods [`new`] and [`new_with_genesis_hash`] may return this error.
+///
+/// [`new`]: Wallet::new
+/// [`new_with_genesis_hash`]: Wallet::new_with_genesis_hash
+</span><span class="attr">#[derive(Debug)]
+</span><span class="kw">pub enum </span>NewError {
+ <span class="doccomment">/// Database already has data.
+ </span>NonEmptyDatabase,
+ <span class="doccomment">/// There was problem with the passed-in descriptor(s).
+ </span>Descriptor(<span class="kw">crate</span>::descriptor::DescriptorError),
+ <span class="doccomment">/// We were unable to write the wallet's data to the persistence backend.
+ </span>Persist(anyhow::Error),
+}
+
+<span class="kw">impl </span>fmt::Display <span class="kw">for </span>NewError {
+ <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
+ <span class="kw">match </span><span class="self">self </span>{
+ NewError::NonEmptyDatabase => <span class="macro">write!</span>(
+ f,
+ <span class="string">"database already has data - use `load` or `new_or_load` methods instead"
+ </span>),
+ NewError::Descriptor(e) => e.fmt(f),
+ NewError::Persist(e) => e.fmt(f),
+ }
+ }
+}
+
+<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
+</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>NewError {}
+
+<span class="doccomment">/// The error type when loading a [`Wallet`] from persistence.
+///
+/// Method [`load`] may return this error.
+///
+/// [`load`]: Wallet::load
+</span><span class="attr">#[derive(Debug)]
+</span><span class="kw">pub enum </span>LoadError {
+ <span class="doccomment">/// There was a problem with the passed-in descriptor(s).
+ </span>Descriptor(<span class="kw">crate</span>::descriptor::DescriptorError),
+ <span class="doccomment">/// Loading data from the persistence backend failed.
+ </span>Persist(anyhow::Error),
+ <span class="doccomment">/// Wallet not initialized, persistence backend is empty.
+ </span>NotInitialized,
+ <span class="doccomment">/// Data loaded from persistence is missing network type.
+ </span>MissingNetwork,
+ <span class="doccomment">/// Data loaded from persistence is missing genesis hash.
+ </span>MissingGenesis,
+ <span class="doccomment">/// Data loaded from persistence is missing descriptor.
+ </span>MissingDescriptor,
+}
+
+<span class="kw">impl </span>fmt::Display <span class="kw">for </span>LoadError {
+ <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
+ <span class="kw">match </span><span class="self">self </span>{
+ LoadError::Descriptor(e) => e.fmt(f),
+ LoadError::Persist(e) => e.fmt(f),
+ LoadError::NotInitialized => {
+ <span class="macro">write!</span>(f, <span class="string">"wallet is not initialized, persistence backend is empty"</span>)
+ }
+ LoadError::MissingNetwork => <span class="macro">write!</span>(f, <span class="string">"loaded data is missing network type"</span>),
+ LoadError::MissingGenesis => <span class="macro">write!</span>(f, <span class="string">"loaded data is missing genesis hash"</span>),
+ LoadError::MissingDescriptor => <span class="macro">write!</span>(f, <span class="string">"loaded data is missing descriptor"</span>),
+ }
+ }
+}
+
+<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
+</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>LoadError {}
+
+<span class="doccomment">/// Error type for when we try load a [`Wallet`] from persistence and creating it if non-existent.
+///
+/// Methods [`new_or_load`] and [`new_or_load_with_genesis_hash`] may return this error.
+///
+/// [`new_or_load`]: Wallet::new_or_load
+/// [`new_or_load_with_genesis_hash`]: Wallet::new_or_load_with_genesis_hash
+</span><span class="attr">#[derive(Debug)]
+</span><span class="kw">pub enum </span>NewOrLoadError {
+ <span class="doccomment">/// There is a problem with the passed-in descriptor.
+ </span>Descriptor(<span class="kw">crate</span>::descriptor::DescriptorError),
+ <span class="doccomment">/// Either writing to or loading from the persistence backend failed.
+ </span>Persist(anyhow::Error),
+ <span class="doccomment">/// Wallet is not initialized, persistence backend is empty.
+ </span>NotInitialized,
+ <span class="doccomment">/// The loaded genesis hash does not match what was provided.
+ </span>LoadedGenesisDoesNotMatch {
+ <span class="doccomment">/// The expected genesis block hash.
+ </span>expected: BlockHash,
+ <span class="doccomment">/// The block hash loaded from persistence.
+ </span>got: <span class="prelude-ty">Option</span><BlockHash>,
+ },
+ <span class="doccomment">/// The loaded network type does not match what was provided.
+ </span>LoadedNetworkDoesNotMatch {
+ <span class="doccomment">/// The expected network type.
+ </span>expected: Network,
+ <span class="doccomment">/// The network type loaded from persistence.
+ </span>got: <span class="prelude-ty">Option</span><Network>,
+ },
+ <span class="doccomment">/// The loaded desccriptor does not match what was provided.
+ </span>LoadedDescriptorDoesNotMatch {
+ <span class="doccomment">/// The descriptor loaded from persistence.
+ </span>got: <span class="prelude-ty">Option</span><ExtendedDescriptor>,
+ <span class="doccomment">/// The keychain of the descriptor not matching
+ </span>keychain: KeychainKind,
+ },
+}
+
+<span class="kw">impl </span>fmt::Display <span class="kw">for </span>NewOrLoadError {
+ <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
+ <span class="kw">match </span><span class="self">self </span>{
+ NewOrLoadError::Descriptor(e) => e.fmt(f),
+ NewOrLoadError::Persist(e) => <span class="macro">write!</span>(
+ f,
+ <span class="string">"failed to either write to or load from persistence, {}"</span>,
+ e
+ ),
+ NewOrLoadError::NotInitialized => {
+ <span class="macro">write!</span>(f, <span class="string">"wallet is not initialized, persistence backend is empty"</span>)
+ }
+ NewOrLoadError::LoadedGenesisDoesNotMatch { expected, got } => {
+ <span class="macro">write!</span>(f, <span class="string">"loaded genesis hash is not {}, got {:?}"</span>, expected, got)
+ }
+ NewOrLoadError::LoadedNetworkDoesNotMatch { expected, got } => {
+ <span class="macro">write!</span>(f, <span class="string">"loaded network type is not {}, got {:?}"</span>, expected, got)
+ }
+ NewOrLoadError::LoadedDescriptorDoesNotMatch { got, keychain } => {
+ <span class="macro">write!</span>(
+ f,
+ <span class="string">"loaded descriptor is different from what was provided, got {:?} for keychain {:?}"</span>,
+ got, keychain
+ )
+ }
+ }
+ }
+}
+
+<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
+</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>NewOrLoadError {}
+
+<span class="doccomment">/// An error that may occur when inserting a transaction into [`Wallet`].
+</span><span class="attr">#[derive(Debug)]
+</span><span class="kw">pub enum </span>InsertTxError {
+ <span class="doccomment">/// The error variant that occurs when the caller attempts to insert a transaction with a
+ /// confirmation height that is greater than the internal chain tip.
+ </span>ConfirmationHeightCannotBeGreaterThanTip {
+ <span class="doccomment">/// The internal chain's tip height.
+ </span>tip_height: u32,
+ <span class="doccomment">/// The introduced transaction's confirmation height.
+ </span>tx_height: u32,
+ },
+}
+
+<span class="kw">impl </span>fmt::Display <span class="kw">for </span>InsertTxError {
+ <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
+ <span class="kw">match </span><span class="self">self </span>{
+ InsertTxError::ConfirmationHeightCannotBeGreaterThanTip {
+ tip_height,
+ tx_height,
+ } => {
+ <span class="macro">write!</span>(f, <span class="string">"cannot insert tx with confirmation height ({}) higher than internal tip height ({})"</span>, tx_height, tip_height)
+ }
+ }
+ }
+}
+
+<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
+</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>InsertTxError {}
+
+<span class="doccomment">/// An error that may occur when applying a block to [`Wallet`].
+</span><span class="attr">#[derive(Debug)]
+</span><span class="kw">pub enum </span>ApplyBlockError {
+ <span class="doccomment">/// Occurs when the update chain cannot connect with original chain.
+ </span>CannotConnect(CannotConnectError),
+ <span class="doccomment">/// Occurs when the `connected_to` hash does not match the hash derived from `block`.
+ </span>UnexpectedConnectedToHash {
+ <span class="doccomment">/// Block hash of `connected_to`.
+ </span>connected_to_hash: BlockHash,
+ <span class="doccomment">/// Expected block hash of `connected_to`, as derived from `block`.
+ </span>expected_hash: BlockHash,
+ },
+}
+
+<span class="kw">impl </span>fmt::Display <span class="kw">for </span>ApplyBlockError {
+ <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
+ <span class="kw">match </span><span class="self">self </span>{
+ ApplyBlockError::CannotConnect(err) => err.fmt(f),
+ ApplyBlockError::UnexpectedConnectedToHash {
+ expected_hash: block_hash,
+ connected_to_hash: checkpoint_hash,
+ } => <span class="macro">write!</span>(
+ f,
+ <span class="string">"`connected_to` hash {} differs from the expected hash {} (which is derived from `block`)"</span>,
+ checkpoint_hash, block_hash
+ ),
+ }
+ }
+}
+
+<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
+</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>ApplyBlockError {}
+
+<span class="kw">impl </span>Wallet {
+ <span class="doccomment">/// Initialize an empty [`Wallet`].
+ </span><span class="kw">pub fn </span>new<E: IntoWalletDescriptor>(
+ descriptor: E,
+ change_descriptor: <span class="prelude-ty">Option</span><E>,
+ db: <span class="kw">impl </span>PersistBackend<ChangeSet> + Send + Sync + <span class="lifetime">'static</span>,
+ network: Network,
+ ) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>, NewError> {
+ <span class="kw">let </span>genesis_hash = genesis_block(network).block_hash();
+ <span class="self">Self</span>::new_with_genesis_hash(descriptor, change_descriptor, db, network, genesis_hash)
+ }
+
+ <span class="doccomment">/// Initialize an empty [`Wallet`] with a custom genesis hash.
+ ///
+ /// This is like [`Wallet::new`] with an additional `genesis_hash` parameter. This is useful
+ /// for syncing from alternative networks.
+ </span><span class="kw">pub fn </span>new_with_genesis_hash<E: IntoWalletDescriptor>(
+ descriptor: E,
+ change_descriptor: <span class="prelude-ty">Option</span><E>,
+ <span class="kw-2">mut </span>db: <span class="kw">impl </span>PersistBackend<ChangeSet> + Send + Sync + <span class="lifetime">'static</span>,
+ network: Network,
+ genesis_hash: BlockHash,
+ ) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>, NewError> {
+ <span class="kw">if let </span><span class="prelude-val">Ok</span>(changeset) = db.load_from_persistence() {
+ <span class="kw">if </span>changeset.is_some() {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(NewError::NonEmptyDatabase);
+ }
+ }
+ <span class="kw">let </span>secp = Secp256k1::new();
+ <span class="kw">let </span>(chain, chain_changeset) = LocalChain::from_genesis_hash(genesis_hash);
+ <span class="kw">let </span><span class="kw-2">mut </span>index = KeychainTxOutIndex::<KeychainKind>::default();
+
+ <span class="kw">let </span>(signers, change_signers) =
+ create_signers(<span class="kw-2">&mut </span>index, <span class="kw-2">&</span>secp, descriptor, change_descriptor, network)
+ .map_err(NewError::Descriptor)<span class="question-mark">?</span>;
+
+ <span class="kw">let </span>indexed_graph = IndexedTxGraph::new(index);
+
+ <span class="kw">let </span><span class="kw-2">mut </span>persist = Persist::new(db);
+ persist.stage(ChangeSet {
+ chain: chain_changeset,
+ indexed_tx_graph: indexed_graph.initial_changeset(),
+ network: <span class="prelude-val">Some</span>(network),
+ });
+ persist.commit().map_err(NewError::Persist)<span class="question-mark">?</span>;
+
+ <span class="prelude-val">Ok</span>(Wallet {
+ signers,
+ change_signers,
+ network,
+ chain,
+ indexed_graph,
+ persist,
+ secp,
+ })
+ }
+
+ <span class="doccomment">/// Load [`Wallet`] from the given persistence backend.
+ ///
+ /// Note that the descriptor secret keys are not persisted to the db; this means that after
+ /// calling this method the [`Wallet`] **won't** know the secret keys, and as such, won't be
+ /// able to sign transactions.
+ ///
+ /// If you wish to use the wallet to sign transactions, you need to add the secret keys
+ /// manually to the [`Wallet`]:
+ ///
+ /// ```rust,no_run
+ /// # use bdk_wallet::Wallet;
+ /// # use bdk_wallet::signer::{SignersContainer, SignerOrdering};
+ /// # use bdk_wallet::descriptor::Descriptor;
+ /// # use bitcoin::key::Secp256k1;
+ /// # use bdk_wallet::KeychainKind;
+ /// # use bdk_file_store::Store;
+ /// #
+ /// # fn main() -> Result<(), anyhow::Error> {
+ /// # let temp_dir = tempfile::tempdir().expect("must create tempdir");
+ /// # let file_path = temp_dir.path().join("store.db");
+ /// # let db: Store<bdk_wallet::wallet::ChangeSet> = Store::create_new(&[], &file_path).expect("must create db");
+ /// let secp = Secp256k1::new();
+ ///
+ /// let (external_descriptor, external_keymap) = Descriptor::parse_descriptor(&secp, "wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/0/*)").unwrap();
+ /// let (internal_descriptor, internal_keymap) = Descriptor::parse_descriptor(&secp, "wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/1/*)").unwrap();
+ ///
+ /// let external_signer_container = SignersContainer::build(external_keymap, &external_descriptor, &secp);
+ /// let internal_signer_container = SignersContainer::build(internal_keymap, &internal_descriptor, &secp);
+ ///
+ /// let mut wallet = Wallet::load(db)?;
+ ///
+ /// external_signer_container.signers().into_iter()
+ /// .for_each(|s| wallet.add_signer(KeychainKind::External, SignerOrdering::default(), s.clone()));
+ /// internal_signer_container.signers().into_iter()
+ /// .for_each(|s| wallet.add_signer(KeychainKind::Internal, SignerOrdering::default(), s.clone()));
+ /// # Ok(())
+ /// # }
+ /// ```
+ ///
+ /// Alternatively, you can call [`Wallet::new_or_load`], which will add the private keys of the
+ /// passed-in descriptors to the [`Wallet`].
+ </span><span class="kw">pub fn </span>load(
+ <span class="kw-2">mut </span>db: <span class="kw">impl </span>PersistBackend<ChangeSet> + Send + Sync + <span class="lifetime">'static</span>,
+ ) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>, LoadError> {
+ <span class="kw">let </span>changeset = db
+ .load_from_persistence()
+ .map_err(LoadError::Persist)<span class="question-mark">?
+ </span>.ok_or(LoadError::NotInitialized)<span class="question-mark">?</span>;
+ <span class="self">Self</span>::load_from_changeset(db, changeset)
+ }
+
+ <span class="kw">fn </span>load_from_changeset(
+ db: <span class="kw">impl </span>PersistBackend<ChangeSet> + Send + Sync + <span class="lifetime">'static</span>,
+ changeset: ChangeSet,
+ ) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>, LoadError> {
+ <span class="kw">let </span>secp = Secp256k1::new();
+ <span class="kw">let </span>network = changeset.network.ok_or(LoadError::MissingNetwork)<span class="question-mark">?</span>;
+ <span class="kw">let </span>chain =
+ LocalChain::from_changeset(changeset.chain).map_err(|<span class="kw">_</span>| LoadError::MissingGenesis)<span class="question-mark">?</span>;
+ <span class="kw">let </span><span class="kw-2">mut </span>index = KeychainTxOutIndex::<KeychainKind>::default();
+ <span class="kw">let </span>descriptor = changeset
+ .indexed_tx_graph
+ .indexer
+ .keychains_added
+ .get(<span class="kw-2">&</span>KeychainKind::External)
+ .ok_or(LoadError::MissingDescriptor)<span class="question-mark">?
+ </span>.clone();
+ <span class="kw">let </span>change_descriptor = changeset
+ .indexed_tx_graph
+ .indexer
+ .keychains_added
+ .get(<span class="kw-2">&</span>KeychainKind::Internal)
+ .cloned();
+
+ <span class="kw">let </span>(signers, change_signers) =
+ create_signers(<span class="kw-2">&mut </span>index, <span class="kw-2">&</span>secp, descriptor, change_descriptor, network)
+ .expect(<span class="string">"Can't fail: we passed in valid descriptors, recovered from the changeset"</span>);
+
+ <span class="kw">let </span><span class="kw-2">mut </span>indexed_graph = IndexedTxGraph::new(index);
+ indexed_graph.apply_changeset(changeset.indexed_tx_graph);
+
+ <span class="kw">let </span>persist = Persist::new(db);
+
+ <span class="prelude-val">Ok</span>(Wallet {
+ signers,
+ change_signers,
+ chain,
+ indexed_graph,
+ persist,
+ network,
+ secp,
+ })
+ }
+
+ <span class="doccomment">/// Either loads [`Wallet`] from persistence, or initializes it if it does not exist.
+ ///
+ /// This method will fail if the loaded [`Wallet`] has different parameters to those provided.
+ </span><span class="kw">pub fn </span>new_or_load<E: IntoWalletDescriptor>(
+ descriptor: E,
+ change_descriptor: <span class="prelude-ty">Option</span><E>,
+ db: <span class="kw">impl </span>PersistBackend<ChangeSet> + Send + Sync + <span class="lifetime">'static</span>,
+ network: Network,
+ ) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>, NewOrLoadError> {
+ <span class="kw">let </span>genesis_hash = genesis_block(network).block_hash();
+ <span class="self">Self</span>::new_or_load_with_genesis_hash(
+ descriptor,
+ change_descriptor,
+ db,
+ network,
+ genesis_hash,
+ )
+ }
+
+ <span class="doccomment">/// Either loads [`Wallet`] from persistence, or initializes it if it does not exist, using the
+ /// provided descriptor, change descriptor, network, and custom genesis hash.
+ ///
+ /// This method will fail if the loaded [`Wallet`] has different parameters to those provided.
+ /// This is like [`Wallet::new_or_load`] with an additional `genesis_hash` parameter. This is
+ /// useful for syncing from alternative networks.
+ </span><span class="kw">pub fn </span>new_or_load_with_genesis_hash<E: IntoWalletDescriptor>(
+ descriptor: E,
+ change_descriptor: <span class="prelude-ty">Option</span><E>,
+ <span class="kw-2">mut </span>db: <span class="kw">impl </span>PersistBackend<ChangeSet> + Send + Sync + <span class="lifetime">'static</span>,
+ network: Network,
+ genesis_hash: BlockHash,
+ ) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>, NewOrLoadError> {
+ <span class="kw">let </span>changeset = db
+ .load_from_persistence()
+ .map_err(NewOrLoadError::Persist)<span class="question-mark">?</span>;
+ <span class="kw">match </span>changeset {
+ <span class="prelude-val">Some</span>(changeset) => {
+ <span class="kw">let </span><span class="kw-2">mut </span>wallet = <span class="self">Self</span>::load_from_changeset(db, changeset).map_err(|e| <span class="kw">match </span>e {
+ LoadError::Descriptor(e) => NewOrLoadError::Descriptor(e),
+ LoadError::Persist(e) => NewOrLoadError::Persist(e),
+ LoadError::NotInitialized => NewOrLoadError::NotInitialized,
+ LoadError::MissingNetwork => NewOrLoadError::LoadedNetworkDoesNotMatch {
+ expected: network,
+ got: <span class="prelude-val">None</span>,
+ },
+ LoadError::MissingGenesis => NewOrLoadError::LoadedGenesisDoesNotMatch {
+ expected: genesis_hash,
+ got: <span class="prelude-val">None</span>,
+ },
+ LoadError::MissingDescriptor => NewOrLoadError::LoadedDescriptorDoesNotMatch {
+ got: <span class="prelude-val">None</span>,
+ keychain: KeychainKind::External,
+ },
+ })<span class="question-mark">?</span>;
+ <span class="kw">if </span>wallet.network != network {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(NewOrLoadError::LoadedNetworkDoesNotMatch {
+ expected: network,
+ got: <span class="prelude-val">Some</span>(wallet.network),
+ });
+ }
+ <span class="kw">if </span>wallet.chain.genesis_hash() != genesis_hash {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(NewOrLoadError::LoadedGenesisDoesNotMatch {
+ expected: genesis_hash,
+ got: <span class="prelude-val">Some</span>(wallet.chain.genesis_hash()),
+ });
+ }
+
+ <span class="kw">let </span>(expected_descriptor, expected_descriptor_keymap) = descriptor
+ .into_wallet_descriptor(<span class="kw-2">&</span>wallet.secp, network)
+ .map_err(NewOrLoadError::Descriptor)<span class="question-mark">?</span>;
+ <span class="kw">let </span>wallet_descriptor = wallet.public_descriptor(KeychainKind::External).cloned();
+ <span class="kw">if </span>wallet_descriptor != <span class="prelude-val">Some</span>(expected_descriptor.clone()) {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(NewOrLoadError::LoadedDescriptorDoesNotMatch {
+ got: wallet_descriptor,
+ keychain: KeychainKind::External,
+ });
+ }
+ <span class="comment">// if expected descriptor has private keys add them as new signers
+ </span><span class="kw">if </span>!expected_descriptor_keymap.is_empty() {
+ <span class="kw">let </span>signer_container = SignersContainer::build(
+ expected_descriptor_keymap,
+ <span class="kw-2">&</span>expected_descriptor,
+ <span class="kw-2">&</span>wallet.secp,
+ );
+ signer_container.signers().into_iter().for_each(|signer| {
+ wallet.add_signer(
+ KeychainKind::External,
+ SignerOrdering::default(),
+ signer.clone(),
+ )
+ });
+ }
+
+ <span class="kw">let </span>expected_change_descriptor = <span class="kw">if let </span><span class="prelude-val">Some</span>(c) = change_descriptor {
+ <span class="prelude-val">Some</span>(
+ c.into_wallet_descriptor(<span class="kw-2">&</span>wallet.secp, network)
+ .map_err(NewOrLoadError::Descriptor)<span class="question-mark">?</span>,
+ )
+ } <span class="kw">else </span>{
+ <span class="prelude-val">None
+ </span>};
+ <span class="kw">let </span>wallet_change_descriptor =
+ wallet.public_descriptor(KeychainKind::Internal).cloned();
+
+ <span class="kw">match </span>(expected_change_descriptor, wallet_change_descriptor) {
+ (<span class="prelude-val">Some</span>((expected_descriptor, expected_keymap)), <span class="prelude-val">Some</span>(wallet_descriptor))
+ <span class="kw">if </span>wallet_descriptor == expected_descriptor =>
+ {
+ <span class="comment">// if expected change descriptor has private keys add them as new signers
+ </span><span class="kw">if </span>!expected_keymap.is_empty() {
+ <span class="kw">let </span>signer_container = SignersContainer::build(
+ expected_keymap,
+ <span class="kw-2">&</span>expected_descriptor,
+ <span class="kw-2">&</span>wallet.secp,
+ );
+ signer_container.signers().into_iter().for_each(|signer| {
+ wallet.add_signer(
+ KeychainKind::Internal,
+ SignerOrdering::default(),
+ signer.clone(),
+ )
+ });
+ }
+ }
+ (<span class="prelude-val">None</span>, <span class="prelude-val">None</span>) => (),
+ (<span class="kw">_</span>, wallet_descriptor) => {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(NewOrLoadError::LoadedDescriptorDoesNotMatch {
+ got: wallet_descriptor,
+ keychain: KeychainKind::Internal,
+ });
+ }
+ }
+
+ <span class="prelude-val">Ok</span>(wallet)
+ }
+ <span class="prelude-val">None </span>=> <span class="self">Self</span>::new_with_genesis_hash(
+ descriptor,
+ change_descriptor,
+ db,
+ network,
+ genesis_hash,
+ )
+ .map_err(|e| <span class="kw">match </span>e {
+ NewError::NonEmptyDatabase => {
+ <span class="macro">unreachable!</span>(<span class="string">"database is already checked to have no data"</span>)
+ }
+ NewError::Descriptor(e) => NewOrLoadError::Descriptor(e),
+ NewError::Persist(e) => NewOrLoadError::Persist(e),
+ }),
+ }
+ }
+
+ <span class="doccomment">/// Get the Bitcoin network the wallet is using.
+ </span><span class="kw">pub fn </span>network(<span class="kw-2">&</span><span class="self">self</span>) -> Network {
+ <span class="self">self</span>.network
+ }
+
+ <span class="doccomment">/// Iterator over all keychains in this wallet
+ </span><span class="kw">pub fn </span>keychains(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw">impl </span>Iterator<Item = (<span class="kw-2">&</span>KeychainKind, <span class="kw-2">&</span>ExtendedDescriptor)> {
+ <span class="self">self</span>.indexed_graph.index.keychains()
+ }
+
+ <span class="doccomment">/// Peek an address of the given `keychain` at `index` without revealing it.
+ ///
+ /// For non-wildcard descriptors this returns the same address at every provided index.
+ ///
+ /// # Panics
+ ///
+ /// This panics when the caller requests for an address of derivation index greater than the
+ /// [BIP32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki) max index.
+ </span><span class="kw">pub fn </span>peek_address(<span class="kw-2">&</span><span class="self">self</span>, keychain: KeychainKind, <span class="kw-2">mut </span>index: u32) -> AddressInfo {
+ <span class="kw">let </span>keychain = <span class="self">self</span>.map_keychain(keychain);
+ <span class="kw">let </span><span class="kw-2">mut </span>spk_iter = <span class="self">self
+ </span>.indexed_graph
+ .index
+ .unbounded_spk_iter(<span class="kw-2">&</span>keychain)
+ .expect(<span class="string">"Must exist (we called map_keychain)"</span>);
+ <span class="kw">if </span>!spk_iter.descriptor().has_wildcard() {
+ index = <span class="number">0</span>;
+ }
+ <span class="kw">let </span>(index, spk) = spk_iter
+ .nth(index <span class="kw">as </span>usize)
+ .expect(<span class="string">"derivation index is out of bounds"</span>);
+
+ AddressInfo {
+ index,
+ address: Address::from_script(<span class="kw-2">&</span>spk, <span class="self">self</span>.network).expect(<span class="string">"must have address form"</span>),
+ keychain,
+ }
+ }
+
+ <span class="doccomment">/// Attempt to reveal the next address of the given `keychain`.
+ ///
+ /// This will increment the internal derivation index. If the keychain's descriptor doesn't
+ /// contain a wildcard or every address is already revealed up to the maximum derivation
+ /// index defined in [BIP32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki),
+ /// then returns the last revealed address.
+ ///
+ /// # Errors
+ ///
+ /// If writing to persistent storage fails.
+ </span><span class="kw">pub fn </span>reveal_next_address(<span class="kw-2">&mut </span><span class="self">self</span>, keychain: KeychainKind) -> anyhow::Result<AddressInfo> {
+ <span class="kw">let </span>keychain = <span class="self">self</span>.map_keychain(keychain);
+ <span class="kw">let </span>((index, spk), index_changeset) = <span class="self">self
+ </span>.indexed_graph
+ .index
+ .reveal_next_spk(<span class="kw-2">&</span>keychain)
+ .expect(<span class="string">"Must exist (we called map_keychain)"</span>);
+
+ <span class="self">self</span>.persist
+ .stage_and_commit(indexed_tx_graph::ChangeSet::from(index_changeset).into())<span class="question-mark">?</span>;
+
+ <span class="prelude-val">Ok</span>(AddressInfo {
+ index,
+ address: Address::from_script(spk, <span class="self">self</span>.network).expect(<span class="string">"must have address form"</span>),
+ keychain,
+ })
+ }
+
+ <span class="doccomment">/// Reveal addresses up to and including the target `index` and return an iterator
+ /// of newly revealed addresses.
+ ///
+ /// If the target `index` is unreachable, we make a best effort to reveal up to the last
+ /// possible index. If all addresses up to the given `index` are already revealed, then
+ /// no new addresses are returned.
+ ///
+ /// # Errors
+ ///
+ /// If writing to persistent storage fails.
+ </span><span class="kw">pub fn </span>reveal_addresses_to(
+ <span class="kw-2">&mut </span><span class="self">self</span>,
+ keychain: KeychainKind,
+ index: u32,
+ ) -> anyhow::Result<<span class="kw">impl </span>Iterator<Item = AddressInfo> + <span class="lifetime">'_</span>> {
+ <span class="kw">let </span>keychain = <span class="self">self</span>.map_keychain(keychain);
+ <span class="kw">let </span>(spk_iter, index_changeset) = <span class="self">self
+ </span>.indexed_graph
+ .index
+ .reveal_to_target(<span class="kw-2">&</span>keychain, index)
+ .expect(<span class="string">"must exist (we called map_keychain)"</span>);
+
+ <span class="self">self</span>.persist
+ .stage_and_commit(indexed_tx_graph::ChangeSet::from(index_changeset).into())<span class="question-mark">?</span>;
+
+ <span class="prelude-val">Ok</span>(spk_iter.map(<span class="kw">move </span>|(index, spk)| AddressInfo {
+ index,
+ address: Address::from_script(<span class="kw-2">&</span>spk, <span class="self">self</span>.network).expect(<span class="string">"must have address form"</span>),
+ keychain,
+ }))
+ }
+
+ <span class="doccomment">/// Get the next unused address for the given `keychain`, i.e. the address with the lowest
+ /// derivation index that hasn't been used.
+ ///
+ /// This will attempt to derive and reveal a new address if no newly revealed addresses
+ /// are available. See also [`reveal_next_address`](Self::reveal_next_address).
+ ///
+ /// # Errors
+ ///
+ /// If writing to persistent storage fails.
+ </span><span class="kw">pub fn </span>next_unused_address(<span class="kw-2">&mut </span><span class="self">self</span>, keychain: KeychainKind) -> anyhow::Result<AddressInfo> {
+ <span class="kw">let </span>keychain = <span class="self">self</span>.map_keychain(keychain);
+ <span class="kw">let </span>((index, spk), index_changeset) = <span class="self">self
+ </span>.indexed_graph
+ .index
+ .next_unused_spk(<span class="kw-2">&</span>keychain)
+ .expect(<span class="string">"must exist (we called map_keychain)"</span>);
+
+ <span class="self">self</span>.persist
+ .stage_and_commit(indexed_tx_graph::ChangeSet::from(index_changeset).into())<span class="question-mark">?</span>;
+
+ <span class="prelude-val">Ok</span>(AddressInfo {
+ index,
+ address: Address::from_script(spk, <span class="self">self</span>.network).expect(<span class="string">"must have address form"</span>),
+ keychain,
+ })
+ }
+
+ <span class="doccomment">/// Marks an address used of the given `keychain` at `index`.
+ ///
+ /// Returns whether the given index was present and then removed from the unused set.
+ </span><span class="kw">pub fn </span>mark_used(<span class="kw-2">&mut </span><span class="self">self</span>, keychain: KeychainKind, index: u32) -> bool {
+ <span class="self">self</span>.indexed_graph.index.mark_used(keychain, index)
+ }
+
+ <span class="doccomment">/// Undoes the effect of [`mark_used`] and returns whether the `index` was inserted
+ /// back into the unused set.
+ ///
+ /// Since this is only a superficial marker, it will have no effect if the address at the given
+ /// `index` was actually used, i.e. the wallet has previously indexed a tx output for the
+ /// derived spk.
+ ///
+ /// [`mark_used`]: Self::mark_used
+ </span><span class="kw">pub fn </span>unmark_used(<span class="kw-2">&mut </span><span class="self">self</span>, keychain: KeychainKind, index: u32) -> bool {
+ <span class="self">self</span>.indexed_graph.index.unmark_used(keychain, index)
+ }
+
+ <span class="doccomment">/// List addresses that are revealed but unused.
+ ///
+ /// Note if the returned iterator is empty you can reveal more addresses
+ /// by using [`reveal_next_address`](Self::reveal_next_address) or
+ /// [`reveal_addresses_to`](Self::reveal_addresses_to).
+ </span><span class="kw">pub fn </span>list_unused_addresses(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ keychain: KeychainKind,
+ ) -> <span class="kw">impl </span>DoubleEndedIterator<Item = AddressInfo> + <span class="lifetime">'_ </span>{
+ <span class="kw">let </span>keychain = <span class="self">self</span>.map_keychain(keychain);
+ <span class="self">self</span>.indexed_graph
+ .index
+ .unused_keychain_spks(<span class="kw-2">&</span>keychain)
+ .map(<span class="kw">move </span>|(index, spk)| AddressInfo {
+ index,
+ address: Address::from_script(spk, <span class="self">self</span>.network).expect(<span class="string">"must have address form"</span>),
+ keychain,
+ })
+ }
+
+ <span class="doccomment">/// Return whether or not a `script` is part of this wallet (either internal or external)
+ </span><span class="kw">pub fn </span>is_mine(<span class="kw-2">&</span><span class="self">self</span>, script: <span class="kw-2">&</span>Script) -> bool {
+ <span class="self">self</span>.indexed_graph.index.index_of_spk(script).is_some()
+ }
+
+ <span class="doccomment">/// Finds how the wallet derived the script pubkey `spk`.
+ ///
+ /// Will only return `Some(_)` if the wallet has given out the spk.
+ </span><span class="kw">pub fn </span>derivation_of_spk(<span class="kw-2">&</span><span class="self">self</span>, spk: <span class="kw-2">&</span>Script) -> <span class="prelude-ty">Option</span><(KeychainKind, u32)> {
+ <span class="self">self</span>.indexed_graph.index.index_of_spk(spk)
+ }
+
+ <span class="doccomment">/// Return the list of unspent outputs of this wallet
+ </span><span class="kw">pub fn </span>list_unspent(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw">impl </span>Iterator<Item = LocalOutput> + <span class="lifetime">'_ </span>{
+ <span class="self">self</span>.indexed_graph
+ .graph()
+ .filter_chain_unspents(
+ <span class="kw-2">&</span><span class="self">self</span>.chain,
+ <span class="self">self</span>.chain.tip().block_id(),
+ <span class="self">self</span>.indexed_graph.index.outpoints(),
+ )
+ .map(|((k, i), full_txo)| new_local_utxo(k, i, full_txo))
+ }
+
+ <span class="doccomment">/// List all relevant outputs (includes both spent and unspent, confirmed and unconfirmed).
+ ///
+ /// To list only unspent outputs (UTXOs), use [`Wallet::list_unspent`] instead.
+ </span><span class="kw">pub fn </span>list_output(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw">impl </span>Iterator<Item = LocalOutput> + <span class="lifetime">'_ </span>{
+ <span class="self">self</span>.indexed_graph
+ .graph()
+ .filter_chain_txouts(
+ <span class="kw-2">&</span><span class="self">self</span>.chain,
+ <span class="self">self</span>.chain.tip().block_id(),
+ <span class="self">self</span>.indexed_graph.index.outpoints(),
+ )
+ .map(|((k, i), full_txo)| new_local_utxo(k, i, full_txo))
+ }
+
+ <span class="doccomment">/// Get all the checkpoints the wallet is currently storing indexed by height.
+ </span><span class="kw">pub fn </span>checkpoints(<span class="kw-2">&</span><span class="self">self</span>) -> CheckPointIter {
+ <span class="self">self</span>.chain.iter_checkpoints()
+ }
+
+ <span class="doccomment">/// Returns the latest checkpoint.
+ </span><span class="kw">pub fn </span>latest_checkpoint(<span class="kw-2">&</span><span class="self">self</span>) -> CheckPoint {
+ <span class="self">self</span>.chain.tip()
+ }
+
+ <span class="doccomment">/// Get unbounded script pubkey iterators for both `Internal` and `External` keychains.
+ ///
+ /// This is intended to be used when doing a full scan of your addresses (e.g. after restoring
+ /// from seed words). You pass the `BTreeMap` of iterators to a blockchain data source (e.g.
+ /// electrum server) which will go through each address until it reaches a *stop gap*.
+ ///
+ /// Note carefully that iterators go over **all** script pubkeys on the keychains (not what
+ /// script pubkeys the wallet is storing internally).
+ </span><span class="kw">pub fn </span>all_unbounded_spk_iters(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ ) -> BTreeMap<KeychainKind, <span class="kw">impl </span>Iterator<Item = (u32, ScriptBuf)> + Clone> {
+ <span class="self">self</span>.indexed_graph.index.all_unbounded_spk_iters()
+ }
+
+ <span class="doccomment">/// Get an unbounded script pubkey iterator for the given `keychain`.
+ ///
+ /// See [`all_unbounded_spk_iters`] for more documentation
+ ///
+ /// [`all_unbounded_spk_iters`]: Self::all_unbounded_spk_iters
+ </span><span class="kw">pub fn </span>unbounded_spk_iter(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ keychain: KeychainKind,
+ ) -> <span class="kw">impl </span>Iterator<Item = (u32, ScriptBuf)> + Clone {
+ <span class="kw">let </span>keychain = <span class="self">self</span>.map_keychain(keychain);
+ <span class="self">self</span>.indexed_graph
+ .index
+ .unbounded_spk_iter(<span class="kw-2">&</span>keychain)
+ .expect(<span class="string">"Must exist (we called map_keychain)"</span>)
+ }
+
+ <span class="doccomment">/// Returns the utxo owned by this wallet corresponding to `outpoint` if it exists in the
+ /// wallet's database.
+ </span><span class="kw">pub fn </span>get_utxo(<span class="kw-2">&</span><span class="self">self</span>, op: OutPoint) -> <span class="prelude-ty">Option</span><LocalOutput> {
+ <span class="kw">let </span>(keychain, index, <span class="kw">_</span>) = <span class="self">self</span>.indexed_graph.index.txout(op)<span class="question-mark">?</span>;
+ <span class="self">self</span>.indexed_graph
+ .graph()
+ .filter_chain_unspents(
+ <span class="kw-2">&</span><span class="self">self</span>.chain,
+ <span class="self">self</span>.chain.tip().block_id(),
+ core::iter::once(((), op)),
+ )
+ .map(|(<span class="kw">_</span>, full_txo)| new_local_utxo(keychain, index, full_txo))
+ .next()
+ }
+
+ <span class="doccomment">/// Inserts a [`TxOut`] at [`OutPoint`] into the wallet's transaction graph.
+ ///
+ /// This is used for providing a previous output's value so that we can use [`calculate_fee`]
+ /// or [`calculate_fee_rate`] on a given transaction. Outputs inserted with this method will
+ /// not be returned in [`list_unspent`] or [`list_output`].
+ ///
+ /// Any inserted `TxOut`s are not persisted until [`commit`] is called.
+ ///
+ /// **WARNING:** This should only be used to add `TxOut`s that the wallet does not own. Only
+ /// insert `TxOut`s that you trust the values for!
+ ///
+ /// [`calculate_fee`]: Self::calculate_fee
+ /// [`calculate_fee_rate`]: Self::calculate_fee_rate
+ /// [`list_unspent`]: Self::list_unspent
+ /// [`list_output`]: Self::list_output
+ /// [`commit`]: Self::commit
+ </span><span class="kw">pub fn </span>insert_txout(<span class="kw-2">&mut </span><span class="self">self</span>, outpoint: OutPoint, txout: TxOut) {
+ <span class="kw">let </span>additions = <span class="self">self</span>.indexed_graph.insert_txout(outpoint, txout);
+ <span class="self">self</span>.persist.stage(ChangeSet::from(additions));
+ }
+
+ <span class="doccomment">/// Calculates the fee of a given transaction. Returns 0 if `tx` is a coinbase transaction.
+ ///
+ /// To calculate the fee for a [`Transaction`] with inputs not owned by this wallet you must
+ /// manually insert the TxOut(s) into the tx graph using the [`insert_txout`] function.
+ ///
+ /// Note `tx` does not have to be in the graph for this to work.
+ ///
+ /// # Examples
+ ///
+ /// ```rust, no_run
+ /// # use bitcoin::Txid;
+ /// # use bdk_wallet::Wallet;
+ /// # let mut wallet: Wallet = todo!();
+ /// # let txid:Txid = todo!();
+ /// let tx = wallet.get_tx(txid).expect("transaction").tx_node.tx;
+ /// let fee = wallet.calculate_fee(&tx).expect("fee");
+ /// ```
+ ///
+ /// ```rust, no_run
+ /// # use bitcoin::Psbt;
+ /// # use bdk_wallet::Wallet;
+ /// # let mut wallet: Wallet = todo!();
+ /// # let mut psbt: Psbt = todo!();
+ /// let tx = &psbt.clone().extract_tx().expect("tx");
+ /// let fee = wallet.calculate_fee(tx).expect("fee");
+ /// ```
+ /// [`insert_txout`]: Self::insert_txout
+ </span><span class="kw">pub fn </span>calculate_fee(<span class="kw-2">&</span><span class="self">self</span>, tx: <span class="kw-2">&</span>Transaction) -> <span class="prelude-ty">Result</span><u64, CalculateFeeError> {
+ <span class="self">self</span>.indexed_graph.graph().calculate_fee(tx)
+ }
+
+ <span class="doccomment">/// Calculate the [`FeeRate`] for a given transaction.
+ ///
+ /// To calculate the fee rate for a [`Transaction`] with inputs not owned by this wallet you must
+ /// manually insert the TxOut(s) into the tx graph using the [`insert_txout`] function.
+ ///
+ /// Note `tx` does not have to be in the graph for this to work.
+ ///
+ /// # Examples
+ ///
+ /// ```rust, no_run
+ /// # use bitcoin::Txid;
+ /// # use bdk_wallet::Wallet;
+ /// # let mut wallet: Wallet = todo!();
+ /// # let txid:Txid = todo!();
+ /// let tx = wallet.get_tx(txid).expect("transaction").tx_node.tx;
+ /// let fee_rate = wallet.calculate_fee_rate(&tx).expect("fee rate");
+ /// ```
+ ///
+ /// ```rust, no_run
+ /// # use bitcoin::Psbt;
+ /// # use bdk_wallet::Wallet;
+ /// # let mut wallet: Wallet = todo!();
+ /// # let mut psbt: Psbt = todo!();
+ /// let tx = &psbt.clone().extract_tx().expect("tx");
+ /// let fee_rate = wallet.calculate_fee_rate(tx).expect("fee rate");
+ /// ```
+ /// [`insert_txout`]: Self::insert_txout
+ </span><span class="kw">pub fn </span>calculate_fee_rate(<span class="kw-2">&</span><span class="self">self</span>, tx: <span class="kw-2">&</span>Transaction) -> <span class="prelude-ty">Result</span><FeeRate, CalculateFeeError> {
+ <span class="self">self</span>.calculate_fee(tx)
+ .map(|fee| Amount::from_sat(fee) / tx.weight())
+ }
+
+ <span class="doccomment">/// Compute the `tx`'s sent and received [`Amount`]s.
+ ///
+ /// This method returns a tuple `(sent, received)`. Sent is the sum of the txin amounts
+ /// that spend from previous txouts tracked by this wallet. Received is the summation
+ /// of this tx's outputs that send to script pubkeys tracked by this wallet.
+ ///
+ /// # Examples
+ ///
+ /// ```rust, no_run
+ /// # use bitcoin::Txid;
+ /// # use bdk_wallet::Wallet;
+ /// # let mut wallet: Wallet = todo!();
+ /// # let txid:Txid = todo!();
+ /// let tx = wallet.get_tx(txid).expect("tx exists").tx_node.tx;
+ /// let (sent, received) = wallet.sent_and_received(&tx);
+ /// ```
+ ///
+ /// ```rust, no_run
+ /// # use bitcoin::Psbt;
+ /// # use bdk_wallet::Wallet;
+ /// # let mut wallet: Wallet = todo!();
+ /// # let mut psbt: Psbt = todo!();
+ /// let tx = &psbt.clone().extract_tx().expect("tx");
+ /// let (sent, received) = wallet.sent_and_received(tx);
+ /// ```
+ </span><span class="kw">pub fn </span>sent_and_received(<span class="kw-2">&</span><span class="self">self</span>, tx: <span class="kw-2">&</span>Transaction) -> (Amount, Amount) {
+ <span class="self">self</span>.indexed_graph.index.sent_and_received(tx, ..)
+ }
+
+ <span class="doccomment">/// Get a single transaction from the wallet as a [`CanonicalTx`] (if the transaction exists).
+ ///
+ /// `CanonicalTx` contains the full transaction alongside meta-data such as:
+ /// * Blocks that the transaction is [`Anchor`]ed in. These may or may not be blocks that exist
+ /// in the best chain.
+ /// * The [`ChainPosition`] of the transaction in the best chain - whether the transaction is
+ /// confirmed or unconfirmed. If the transaction is confirmed, the anchor which proves the
+ /// confirmation is provided. If the transaction is unconfirmed, the unix timestamp of when
+ /// the transaction was last seen in the mempool is provided.
+ ///
+ /// ```rust, no_run
+ /// use bdk_chain::Anchor;
+ /// use bdk_wallet::{chain::ChainPosition, Wallet};
+ /// # let wallet: Wallet = todo!();
+ /// # let my_txid: bitcoin::Txid = todo!();
+ ///
+ /// let canonical_tx = wallet.get_tx(my_txid).expect("panic if tx does not exist");
+ ///
+ /// // get reference to full transaction
+ /// println!("my tx: {:#?}", canonical_tx.tx_node.tx);
+ ///
+ /// // list all transaction anchors
+ /// for anchor in canonical_tx.tx_node.anchors {
+ /// println!(
+ /// "tx is anchored by block of hash {}",
+ /// anchor.anchor_block().hash
+ /// );
+ /// }
+ ///
+ /// // get confirmation status of transaction
+ /// match canonical_tx.chain_position {
+ /// ChainPosition::Confirmed(anchor) => println!(
+ /// "tx is confirmed at height {}, we know this since {}:{} is in the best chain",
+ /// anchor.confirmation_height, anchor.anchor_block.height, anchor.anchor_block.hash,
+ /// ),
+ /// ChainPosition::Unconfirmed(last_seen) => println!(
+ /// "tx is last seen at {}, it is unconfirmed as it is not anchored in the best chain",
+ /// last_seen,
+ /// ),
+ /// }
+ /// ```
+ ///
+ /// [`Anchor`]: bdk_chain::Anchor
+ </span><span class="kw">pub fn </span>get_tx(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ txid: Txid,
+ ) -> <span class="prelude-ty">Option</span><CanonicalTx<<span class="lifetime">'_</span>, Arc<Transaction>, ConfirmationTimeHeightAnchor>> {
+ <span class="kw">let </span>graph = <span class="self">self</span>.indexed_graph.graph();
+
+ <span class="prelude-val">Some</span>(CanonicalTx {
+ chain_position: graph.get_chain_position(
+ <span class="kw-2">&</span><span class="self">self</span>.chain,
+ <span class="self">self</span>.chain.tip().block_id(),
+ txid,
+ )<span class="question-mark">?</span>,
+ tx_node: graph.get_tx_node(txid)<span class="question-mark">?</span>,
+ })
+ }
+
+ <span class="doccomment">/// Add a new checkpoint to the wallet's internal view of the chain.
+ /// This stages but does not [`commit`] the change.
+ ///
+ /// Returns whether anything changed with the insertion (e.g. `false` if checkpoint was already
+ /// there).
+ ///
+ /// [`commit`]: Self::commit
+ </span><span class="kw">pub fn </span>insert_checkpoint(
+ <span class="kw-2">&mut </span><span class="self">self</span>,
+ block_id: BlockId,
+ ) -> <span class="prelude-ty">Result</span><bool, local_chain::AlterCheckPointError> {
+ <span class="kw">let </span>changeset = <span class="self">self</span>.chain.insert_block(block_id)<span class="question-mark">?</span>;
+ <span class="kw">let </span>changed = !changeset.is_empty();
+ <span class="self">self</span>.persist.stage(changeset.into());
+ <span class="prelude-val">Ok</span>(changed)
+ }
+
+ <span class="doccomment">/// Add a transaction to the wallet's internal view of the chain. This stages but does not
+ /// [`commit`] the change.
+ ///
+ /// Returns whether anything changed with the transaction insertion (e.g. `false` if the
+ /// transaction was already inserted at the same position).
+ ///
+ /// A `tx` can be rejected if `position` has a height greater than the [`latest_checkpoint`].
+ /// Therefore you should use [`insert_checkpoint`] to insert new checkpoints before manually
+ /// inserting new transactions.
+ ///
+ /// **WARNING:** If `position` is confirmed, we anchor the `tx` to a the lowest checkpoint that
+ /// is >= the `position`'s height. The caller is responsible for ensuring the `tx` exists in our
+ /// local view of the best chain's history.
+ ///
+ /// [`commit`]: Self::commit
+ /// [`latest_checkpoint`]: Self::latest_checkpoint
+ /// [`insert_checkpoint`]: Self::insert_checkpoint
+ </span><span class="kw">pub fn </span>insert_tx(
+ <span class="kw-2">&mut </span><span class="self">self</span>,
+ tx: Transaction,
+ position: ConfirmationTime,
+ ) -> <span class="prelude-ty">Result</span><bool, InsertTxError> {
+ <span class="kw">let </span>(anchor, last_seen) = <span class="kw">match </span>position {
+ ConfirmationTime::Confirmed { height, time } => {
+ <span class="comment">// anchor tx to checkpoint with lowest height that is >= position's height
+ </span><span class="kw">let </span>anchor = <span class="self">self
+ </span>.chain
+ .range(height..)
+ .last()
+ .ok_or(InsertTxError::ConfirmationHeightCannotBeGreaterThanTip {
+ tip_height: <span class="self">self</span>.chain.tip().height(),
+ tx_height: height,
+ })
+ .map(|anchor_cp| ConfirmationTimeHeightAnchor {
+ anchor_block: anchor_cp.block_id(),
+ confirmation_height: height,
+ confirmation_time: time,
+ })<span class="question-mark">?</span>;
+
+ (<span class="prelude-val">Some</span>(anchor), <span class="prelude-val">None</span>)
+ }
+ ConfirmationTime::Unconfirmed { last_seen } => (<span class="prelude-val">None</span>, <span class="prelude-val">Some</span>(last_seen)),
+ };
+
+ <span class="kw">let </span><span class="kw-2">mut </span>changeset = ChangeSet::default();
+ <span class="kw">let </span>txid = tx.txid();
+ changeset.append(<span class="self">self</span>.indexed_graph.insert_tx(tx).into());
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(anchor) = anchor {
+ changeset.append(<span class="self">self</span>.indexed_graph.insert_anchor(txid, anchor).into());
+ }
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(last_seen) = last_seen {
+ changeset.append(<span class="self">self</span>.indexed_graph.insert_seen_at(txid, last_seen).into());
+ }
+
+ <span class="kw">let </span>changed = !changeset.is_empty();
+ <span class="self">self</span>.persist.stage(changeset);
+ <span class="prelude-val">Ok</span>(changed)
+ }
+
+ <span class="doccomment">/// Iterate over the transactions in the wallet.
+ </span><span class="kw">pub fn </span>transactions(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ ) -> <span class="kw">impl </span>Iterator<Item = CanonicalTx<<span class="lifetime">'_</span>, Arc<Transaction>, ConfirmationTimeHeightAnchor>> + <span class="lifetime">'_
+ </span>{
+ <span class="self">self</span>.indexed_graph
+ .graph()
+ .list_chain_txs(<span class="kw-2">&</span><span class="self">self</span>.chain, <span class="self">self</span>.chain.tip().block_id())
+ }
+
+ <span class="doccomment">/// Return the balance, separated into available, trusted-pending, untrusted-pending and immature
+ /// values.
+ </span><span class="kw">pub fn </span>get_balance(<span class="kw-2">&</span><span class="self">self</span>) -> Balance {
+ <span class="self">self</span>.indexed_graph.graph().balance(
+ <span class="kw-2">&</span><span class="self">self</span>.chain,
+ <span class="self">self</span>.chain.tip().block_id(),
+ <span class="self">self</span>.indexed_graph.index.outpoints(),
+ |<span class="kw-2">&</span>(k, <span class="kw">_</span>), <span class="kw">_</span>| k == KeychainKind::Internal,
+ )
+ }
+
+ <span class="doccomment">/// Add an external signer
+ ///
+ /// See [the `signer` module](signer) for an example.
+ </span><span class="kw">pub fn </span>add_signer(
+ <span class="kw-2">&mut </span><span class="self">self</span>,
+ keychain: KeychainKind,
+ ordering: SignerOrdering,
+ signer: Arc<<span class="kw">dyn </span>TransactionSigner>,
+ ) {
+ <span class="kw">let </span>signers = <span class="kw">match </span>keychain {
+ KeychainKind::External => Arc::make_mut(<span class="kw-2">&mut </span><span class="self">self</span>.signers),
+ KeychainKind::Internal => Arc::make_mut(<span class="kw-2">&mut </span><span class="self">self</span>.change_signers),
+ };
+
+ signers.add_external(signer.id(<span class="kw-2">&</span><span class="self">self</span>.secp), ordering, signer);
+ }
+
+ <span class="doccomment">/// Get the signers
+ ///
+ /// ## Example
+ ///
+ /// ```
+ /// # use bdk_wallet::{Wallet, KeychainKind};
+ /// # use bdk_wallet::bitcoin::Network;
+ /// let wallet = Wallet::new_no_persist("wpkh(tprv8ZgxMBicQKsPe73PBRSmNbTfbcsZnwWhz5eVmhHpi31HW29Z7mc9B4cWGRQzopNUzZUT391DeDJxL2PefNunWyLgqCKRMDkU1s2s8bAfoSk/84'/0'/0'/0/*)", None, Network::Testnet)?;
+ /// for secret_key in wallet.get_signers(KeychainKind::External).signers().iter().filter_map(|s| s.descriptor_secret_key()) {
+ /// // secret_key: tprv8ZgxMBicQKsPe73PBRSmNbTfbcsZnwWhz5eVmhHpi31HW29Z7mc9B4cWGRQzopNUzZUT391DeDJxL2PefNunWyLgqCKRMDkU1s2s8bAfoSk/84'/0'/0'/0/*
+ /// println!("secret_key: {}", secret_key);
+ /// }
+ ///
+ /// Ok::<(), Box<dyn std::error::Error>>(())
+ /// ```
+ </span><span class="kw">pub fn </span>get_signers(<span class="kw-2">&</span><span class="self">self</span>, keychain: KeychainKind) -> Arc<SignersContainer> {
+ <span class="kw">match </span>keychain {
+ KeychainKind::External => Arc::clone(<span class="kw-2">&</span><span class="self">self</span>.signers),
+ KeychainKind::Internal => Arc::clone(<span class="kw-2">&</span><span class="self">self</span>.change_signers),
+ }
+ }
+
+ <span class="doccomment">/// Start building a transaction.
+ ///
+ /// This returns a blank [`TxBuilder`] from which you can specify the parameters for the transaction.
+ ///
+ /// ## Example
+ ///
+ /// ```
+ /// # use std::str::FromStr;
+ /// # use bitcoin::*;
+ /// # use bdk_wallet::*;
+ /// # use bdk_wallet::wallet::ChangeSet;
+ /// # use bdk_wallet::wallet::error::CreateTxError;
+ /// # use bdk_persist::PersistBackend;
+ /// # use anyhow::Error;
+ /// # let descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/*)";
+ /// # let mut wallet = doctest_wallet!();
+ /// # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap().assume_checked();
+ /// let psbt = {
+ /// let mut builder = wallet.build_tx();
+ /// builder
+ /// .add_recipient(to_address.script_pubkey(), Amount::from_sat(50_000));
+ /// builder.finish()?
+ /// };
+ ///
+ /// // sign and broadcast ...
+ /// # Ok::<(), anyhow::Error>(())
+ /// ```
+ ///
+ /// [`TxBuilder`]: crate::TxBuilder
+ </span><span class="kw">pub fn </span>build_tx(<span class="kw-2">&mut </span><span class="self">self</span>) -> TxBuilder<<span class="lifetime">'_</span>, DefaultCoinSelectionAlgorithm, CreateTx> {
+ TxBuilder {
+ wallet: alloc::rc::Rc::new(core::cell::RefCell::new(<span class="self">self</span>)),
+ params: TxParams::default(),
+ coin_selection: DefaultCoinSelectionAlgorithm::default(),
+ phantom: core::marker::PhantomData,
+ }
+ }
+
+ <span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>create_tx<Cs: coin_selection::CoinSelectionAlgorithm>(
+ <span class="kw-2">&mut </span><span class="self">self</span>,
+ coin_selection: Cs,
+ params: TxParams,
+ ) -> <span class="prelude-ty">Result</span><Psbt, CreateTxError> {
+ <span class="kw">let </span>keychains: BTreeMap<<span class="kw">_</span>, <span class="kw">_</span>> = <span class="self">self</span>.indexed_graph.index.keychains().collect();
+ <span class="kw">let </span>external_descriptor = keychains.get(<span class="kw-2">&</span>KeychainKind::External).expect(<span class="string">"must exist"</span>);
+ <span class="kw">let </span>internal_descriptor = keychains.get(<span class="kw-2">&</span>KeychainKind::Internal);
+
+ <span class="kw">let </span>external_policy = external_descriptor
+ .extract_policy(<span class="kw-2">&</span><span class="self">self</span>.signers, BuildSatisfaction::None, <span class="kw-2">&</span><span class="self">self</span>.secp)<span class="question-mark">?
+ </span>.unwrap();
+ <span class="kw">let </span>internal_policy = internal_descriptor
+ .as_ref()
+ .map(|desc| {
+ <span class="prelude-val">Ok</span>::<<span class="kw">_</span>, CreateTxError>(
+ desc.extract_policy(<span class="kw-2">&</span><span class="self">self</span>.change_signers, BuildSatisfaction::None, <span class="kw-2">&</span><span class="self">self</span>.secp)<span class="question-mark">?
+ </span>.unwrap(),
+ )
+ })
+ .transpose()<span class="question-mark">?</span>;
+
+ <span class="comment">// The policy allows spending external outputs, but it requires a policy path that hasn't been
+ // provided
+ </span><span class="kw">if </span>params.change_policy != tx_builder::ChangeSpendPolicy::OnlyChange
+ && external_policy.requires_path()
+ && params.external_policy_path.is_none()
+ {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::SpendingPolicyRequired(
+ KeychainKind::External,
+ ));
+ };
+ <span class="comment">// Same for the internal_policy path, if present
+ </span><span class="kw">if let </span><span class="prelude-val">Some</span>(internal_policy) = <span class="kw-2">&</span>internal_policy {
+ <span class="kw">if </span>params.change_policy != tx_builder::ChangeSpendPolicy::ChangeForbidden
+ && internal_policy.requires_path()
+ && params.internal_policy_path.is_none()
+ {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::SpendingPolicyRequired(
+ KeychainKind::Internal,
+ ));
+ };
+ }
+
+ <span class="kw">let </span>external_requirements = external_policy.get_condition(
+ params
+ .external_policy_path
+ .as_ref()
+ .unwrap_or(<span class="kw-2">&</span>BTreeMap::new()),
+ )<span class="question-mark">?</span>;
+ <span class="kw">let </span>internal_requirements = internal_policy
+ .map(|policy| {
+ <span class="prelude-val">Ok</span>::<<span class="kw">_</span>, CreateTxError>(
+ policy.get_condition(
+ params
+ .internal_policy_path
+ .as_ref()
+ .unwrap_or(<span class="kw-2">&</span>BTreeMap::new()),
+ )<span class="question-mark">?</span>,
+ )
+ })
+ .transpose()<span class="question-mark">?</span>;
+
+ <span class="kw">let </span>requirements =
+ external_requirements.merge(<span class="kw-2">&</span>internal_requirements.unwrap_or_default())<span class="question-mark">?</span>;
+
+ <span class="kw">let </span>version = <span class="kw">match </span>params.version {
+ <span class="prelude-val">Some</span>(tx_builder::Version(<span class="number">0</span>)) => <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::Version0),
+ <span class="prelude-val">Some</span>(tx_builder::Version(<span class="number">1</span>)) <span class="kw">if </span>requirements.csv.is_some() => {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::Version1Csv)
+ }
+ <span class="prelude-val">Some</span>(tx_builder::Version(x)) => x,
+ <span class="prelude-val">None </span><span class="kw">if </span>requirements.csv.is_some() => <span class="number">2</span>,
+ <span class="prelude-val">None </span>=> <span class="number">1</span>,
+ };
+
+ <span class="comment">// We use a match here instead of a unwrap_or_else as it's way more readable :)
+ </span><span class="kw">let </span>current_height = <span class="kw">match </span>params.current_height {
+ <span class="comment">// If they didn't tell us the current height, we assume it's the latest sync height.
+ </span><span class="prelude-val">None </span>=> {
+ <span class="kw">let </span>tip_height = <span class="self">self</span>.chain.tip().height();
+ absolute::LockTime::from_height(tip_height).expect(<span class="string">"invalid height"</span>)
+ }
+ <span class="prelude-val">Some</span>(h) => h,
+ };
+
+ <span class="kw">let </span>lock_time = <span class="kw">match </span>params.locktime {
+ <span class="comment">// When no nLockTime is specified, we try to prevent fee sniping, if possible
+ </span><span class="prelude-val">None </span>=> {
+ <span class="comment">// Fee sniping can be partially prevented by setting the timelock
+ // to current_height. If we don't know the current_height,
+ // we default to 0.
+ </span><span class="kw">let </span>fee_sniping_height = current_height;
+
+ <span class="comment">// We choose the biggest between the required nlocktime and the fee sniping
+ // height
+ </span><span class="kw">match </span>requirements.timelock {
+ <span class="comment">// No requirement, just use the fee_sniping_height
+ </span><span class="prelude-val">None </span>=> fee_sniping_height,
+ <span class="comment">// There's a block-based requirement, but the value is lower than the fee_sniping_height
+ </span><span class="prelude-val">Some</span>(value @ absolute::LockTime::Blocks(<span class="kw">_</span>)) <span class="kw">if </span>value < fee_sniping_height => {
+ fee_sniping_height
+ }
+ <span class="comment">// There's a time-based requirement or a block-based requirement greater
+ // than the fee_sniping_height use that value
+ </span><span class="prelude-val">Some</span>(value) => value,
+ }
+ }
+ <span class="comment">// Specific nLockTime required and we have no constraints, so just set to that value
+ </span><span class="prelude-val">Some</span>(x) <span class="kw">if </span>requirements.timelock.is_none() => x,
+ <span class="comment">// Specific nLockTime required and it's compatible with the constraints
+ </span><span class="prelude-val">Some</span>(x)
+ <span class="kw">if </span>requirements.timelock.unwrap().is_same_unit(x)
+ && x >= requirements.timelock.unwrap() =>
+ {
+ x
+ }
+ <span class="comment">// Invalid nLockTime required
+ </span><span class="prelude-val">Some</span>(x) => {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::LockTime {
+ requested: x,
+ required: requirements.timelock.unwrap(),
+ })
+ }
+ };
+
+ <span class="comment">// The nSequence to be by default for inputs unless an explicit sequence is specified.
+ </span><span class="kw">let </span>n_sequence = <span class="kw">match </span>(params.rbf, requirements.csv) {
+ <span class="comment">// No RBF or CSV but there's an nLockTime, so the nSequence cannot be final
+ </span>(<span class="prelude-val">None</span>, <span class="prelude-val">None</span>) <span class="kw">if </span>lock_time != absolute::LockTime::ZERO => {
+ Sequence::ENABLE_LOCKTIME_NO_RBF
+ }
+ <span class="comment">// No RBF, CSV or nLockTime, make the transaction final
+ </span>(<span class="prelude-val">None</span>, <span class="prelude-val">None</span>) => Sequence::MAX,
+
+ <span class="comment">// No RBF requested, use the value from CSV. Note that this value is by definition
+ // non-final, so even if a timelock is enabled this nSequence is fine, hence why we
+ // don't bother checking for it here. The same is true for all the other branches below
+ </span>(<span class="prelude-val">None</span>, <span class="prelude-val">Some</span>(csv)) => csv,
+
+ <span class="comment">// RBF with a specific value but that value is too high
+ </span>(<span class="prelude-val">Some</span>(tx_builder::RbfValue::Value(rbf)), <span class="kw">_</span>) <span class="kw">if </span>!rbf.is_rbf() => {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::RbfSequence)
+ }
+ <span class="comment">// RBF with a specific value requested, but the value is incompatible with CSV
+ </span>(<span class="prelude-val">Some</span>(tx_builder::RbfValue::Value(rbf)), <span class="prelude-val">Some</span>(csv))
+ <span class="kw">if </span>!check_nsequence_rbf(rbf, csv) =>
+ {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::RbfSequenceCsv { rbf, csv })
+ }
+
+ <span class="comment">// RBF enabled with the default value with CSV also enabled. CSV takes precedence
+ </span>(<span class="prelude-val">Some</span>(tx_builder::RbfValue::Default), <span class="prelude-val">Some</span>(csv)) => csv,
+ <span class="comment">// Valid RBF, either default or with a specific value. We ignore the `CSV` value
+ // because we've already checked it before
+ </span>(<span class="prelude-val">Some</span>(rbf), <span class="kw">_</span>) => rbf.get_value(),
+ };
+
+ <span class="kw">let </span>(fee_rate, <span class="kw-2">mut </span>fee_amount) = <span class="kw">match </span>params.fee_policy.unwrap_or_default() {
+ <span class="comment">//FIXME: see https://github.com/bitcoindevkit/bdk/issues/256
+ </span>FeePolicy::FeeAmount(fee) => {
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(previous_fee) = params.bumping_fee {
+ <span class="kw">if </span>fee < previous_fee.absolute {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::FeeTooLow {
+ required: previous_fee.absolute,
+ });
+ }
+ }
+ (FeeRate::ZERO, fee)
+ }
+ FeePolicy::FeeRate(rate) => {
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(previous_fee) = params.bumping_fee {
+ <span class="kw">let </span>required_feerate = FeeRate::from_sat_per_kwu(
+ previous_fee.rate.to_sat_per_kwu()
+ + FeeRate::BROADCAST_MIN.to_sat_per_kwu(), <span class="comment">// +1 sat/vb
+ </span>);
+ <span class="kw">if </span>rate < required_feerate {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::FeeRateTooLow {
+ required: required_feerate,
+ });
+ }
+ }
+ (rate, <span class="number">0</span>)
+ }
+ };
+
+ <span class="kw">let </span><span class="kw-2">mut </span>tx = Transaction {
+ version: transaction::Version::non_standard(version),
+ lock_time,
+ input: <span class="macro">vec!</span>[],
+ output: <span class="macro">vec!</span>[],
+ };
+
+ <span class="kw">if </span>params.manually_selected_only && params.utxos.is_empty() {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::NoUtxosSelected);
+ }
+
+ <span class="comment">// we keep it as a float while we accumulate it, and only round it at the end
+ </span><span class="kw">let </span><span class="kw-2">mut </span>outgoing: u64 = <span class="number">0</span>;
+ <span class="kw">let </span><span class="kw-2">mut </span>received: u64 = <span class="number">0</span>;
+
+ <span class="kw">let </span>recipients = params.recipients.iter().map(|(r, v)| (r, <span class="kw-2">*</span>v));
+
+ <span class="kw">for </span>(index, (script_pubkey, value)) <span class="kw">in </span>recipients.enumerate() {
+ <span class="kw">if </span>!params.allow_dust
+ && value.is_dust(script_pubkey)
+ && !script_pubkey.is_provably_unspendable()
+ {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::OutputBelowDustLimit(index));
+ }
+
+ <span class="kw">if </span><span class="self">self</span>.is_mine(script_pubkey) {
+ received += value;
+ }
+
+ <span class="kw">let </span>new_out = TxOut {
+ script_pubkey: script_pubkey.clone(),
+ value: Amount::from_sat(value),
+ };
+
+ tx.output.push(new_out);
+
+ outgoing += value;
+ }
+
+ fee_amount += (fee_rate * tx.weight()).to_sat();
+
+ <span class="kw">if </span>params.change_policy != tx_builder::ChangeSpendPolicy::ChangeAllowed
+ && internal_descriptor.is_none()
+ {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::ChangePolicyDescriptor);
+ }
+
+ <span class="kw">let </span>(required_utxos, optional_utxos) =
+ <span class="self">self</span>.preselect_utxos(<span class="kw-2">&</span>params, <span class="prelude-val">Some</span>(current_height.to_consensus_u32()));
+
+ <span class="comment">// get drain script
+ </span><span class="kw">let </span>drain_script = <span class="kw">match </span>params.drain_to {
+ <span class="prelude-val">Some</span>(<span class="kw-2">ref </span>drain_recipient) => drain_recipient.clone(),
+ <span class="prelude-val">None </span>=> {
+ <span class="kw">let </span>change_keychain = <span class="self">self</span>.map_keychain(KeychainKind::Internal);
+ <span class="kw">let </span>((index, spk), index_changeset) = <span class="self">self
+ </span>.indexed_graph
+ .index
+ .next_unused_spk(<span class="kw-2">&</span>change_keychain)
+ .expect(<span class="string">"Keychain exists (we called map_keychain)"</span>);
+ <span class="kw">let </span>spk = spk.into();
+ <span class="self">self</span>.indexed_graph.index.mark_used(change_keychain, index);
+ <span class="self">self</span>.persist
+ .stage(ChangeSet::from(indexed_tx_graph::ChangeSet::from(
+ index_changeset,
+ )));
+ <span class="self">self</span>.persist.commit().map_err(CreateTxError::Persist)<span class="question-mark">?</span>;
+ spk
+ }
+ };
+
+ <span class="kw">let </span>(required_utxos, optional_utxos) =
+ coin_selection::filter_duplicates(required_utxos, optional_utxos);
+
+ <span class="kw">let </span>coin_selection = coin_selection.coin_select(
+ required_utxos,
+ optional_utxos,
+ fee_rate,
+ outgoing + fee_amount,
+ <span class="kw-2">&</span>drain_script,
+ )<span class="question-mark">?</span>;
+ fee_amount += coin_selection.fee_amount;
+ <span class="kw">let </span>excess = <span class="kw-2">&</span>coin_selection.excess;
+
+ tx.input = coin_selection
+ .selected
+ .iter()
+ .map(|u| bitcoin::TxIn {
+ previous_output: u.outpoint(),
+ script_sig: ScriptBuf::default(),
+ sequence: u.sequence().unwrap_or(n_sequence),
+ witness: Witness::new(),
+ })
+ .collect();
+
+ <span class="kw">if </span>tx.output.is_empty() {
+ <span class="comment">// Uh oh, our transaction has no outputs.
+ // We allow this when:
+ // - We have a drain_to address and the utxos we must spend (this happens,
+ // for example, when we RBF)
+ // - We have a drain_to address and drain_wallet set
+ // Otherwise, we don't know who we should send the funds to, and how much
+ // we should send!
+ </span><span class="kw">if </span>params.drain_to.is_some() && (params.drain_wallet || !params.utxos.is_empty()) {
+ <span class="kw">if let </span>NoChange {
+ dust_threshold,
+ remaining_amount,
+ change_fee,
+ } = excess
+ {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::InsufficientFunds {
+ needed: <span class="kw-2">*</span>dust_threshold,
+ available: remaining_amount.saturating_sub(<span class="kw-2">*</span>change_fee),
+ });
+ }
+ } <span class="kw">else </span>{
+ <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::NoRecipients);
+ }
+ }
+
+ <span class="kw">match </span>excess {
+ NoChange {
+ remaining_amount, ..
+ } => fee_amount += remaining_amount,
+ Change { amount, fee } => {
+ <span class="kw">if </span><span class="self">self</span>.is_mine(<span class="kw-2">&</span>drain_script) {
+ received += amount;
+ }
+ fee_amount += fee;
+
+ <span class="comment">// create drain output
+ </span><span class="kw">let </span>drain_output = TxOut {
+ value: Amount::from_sat(<span class="kw-2">*</span>amount),
+ script_pubkey: drain_script,
+ };
+
+ <span class="comment">// TODO: We should pay attention when adding a new output: this might increase
+ // the length of the "number of vouts" parameter by 2 bytes, potentially making
+ // our feerate too low
+ </span>tx.output.push(drain_output);
+ }
+ };
+
+ <span class="comment">// sort input/outputs according to the chosen algorithm
+ </span>params.ordering.sort_tx(<span class="kw-2">&mut </span>tx);
+
+ <span class="kw">let </span>psbt = <span class="self">self</span>.complete_transaction(tx, coin_selection.selected, params)<span class="question-mark">?</span>;
+ <span class="prelude-val">Ok</span>(psbt)
+ }
+
+ <span class="doccomment">/// Bump the fee of a transaction previously created with this wallet.
+ ///
+ /// Returns an error if the transaction is already confirmed or doesn't explicitly signal
+ /// *replace by fee* (RBF). If the transaction can be fee bumped then it returns a [`TxBuilder`]
+ /// pre-populated with the inputs and outputs of the original transaction.
+ ///
+ /// ## Example
+ ///
+ /// ```no_run
+ /// # // TODO: remove norun -- bumping fee seems to need the tx in the wallet database first.
+ /// # use std::str::FromStr;
+ /// # use bitcoin::*;
+ /// # use bdk_wallet::*;
+ /// # use bdk_wallet::wallet::ChangeSet;
+ /// # use bdk_wallet::wallet::error::CreateTxError;
+ /// # use bdk_persist::PersistBackend;
+ /// # use anyhow::Error;
+ /// # let descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/*)";
+ /// # let mut wallet = doctest_wallet!();
+ /// # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap().assume_checked();
+ /// let mut psbt = {
+ /// let mut builder = wallet.build_tx();
+ /// builder
+ /// .add_recipient(to_address.script_pubkey(), Amount::from_sat(50_000))
+ /// .enable_rbf();
+ /// builder.finish()?
+ /// };
+ /// let _ = wallet.sign(&mut psbt, SignOptions::default())?;
+ /// let tx = psbt.clone().extract_tx().expect("tx");
+ /// // broadcast tx but it's taking too long to confirm so we want to bump the fee
+ /// let mut psbt = {
+ /// let mut builder = wallet.build_fee_bump(tx.txid())?;
+ /// builder
+ /// .fee_rate(FeeRate::from_sat_per_vb(5).expect("valid feerate"));
+ /// builder.finish()?
+ /// };
+ ///
+ /// let _ = wallet.sign(&mut psbt, SignOptions::default())?;
+ /// let fee_bumped_tx = psbt.extract_tx();
+ /// // broadcast fee_bumped_tx to replace original
+ /// # Ok::<(), anyhow::Error>(())
+ /// ```
+ </span><span class="comment">// TODO: support for merging multiple transactions while bumping the fees
+ </span><span class="kw">pub fn </span>build_fee_bump(
+ <span class="kw-2">&mut </span><span class="self">self</span>,
+ txid: Txid,
+ ) -> <span class="prelude-ty">Result</span><TxBuilder<<span class="lifetime">'_</span>, DefaultCoinSelectionAlgorithm, BumpFee>, BuildFeeBumpError> {
+ <span class="kw">let </span>graph = <span class="self">self</span>.indexed_graph.graph();
+ <span class="kw">let </span>txout_index = <span class="kw-2">&</span><span class="self">self</span>.indexed_graph.index;
+ <span class="kw">let </span>chain_tip = <span class="self">self</span>.chain.tip().block_id();
+
+ <span class="kw">let </span><span class="kw-2">mut </span>tx = graph
+ .get_tx(txid)
+ .ok_or(BuildFeeBumpError::TransactionNotFound(txid))<span class="question-mark">?
+ </span>.as_ref()
+ .clone();
+
+ <span class="kw">let </span>pos = graph
+ .get_chain_position(<span class="kw-2">&</span><span class="self">self</span>.chain, chain_tip, txid)
+ .ok_or(BuildFeeBumpError::TransactionNotFound(txid))<span class="question-mark">?</span>;
+ <span class="kw">if let </span>ChainPosition::Confirmed(<span class="kw">_</span>) = pos {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(BuildFeeBumpError::TransactionConfirmed(txid));
+ }
+
+ <span class="kw">if </span>!tx
+ .input
+ .iter()
+ .any(|txin| txin.sequence.to_consensus_u32() <= <span class="number">0xFFFFFFFD</span>)
+ {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(BuildFeeBumpError::IrreplaceableTransaction(tx.txid()));
+ }
+
+ <span class="kw">let </span>fee = <span class="self">self
+ </span>.calculate_fee(<span class="kw-2">&</span>tx)
+ .map_err(|<span class="kw">_</span>| BuildFeeBumpError::FeeRateUnavailable)<span class="question-mark">?</span>;
+ <span class="kw">let </span>fee_rate = <span class="self">self
+ </span>.calculate_fee_rate(<span class="kw-2">&</span>tx)
+ .map_err(|<span class="kw">_</span>| BuildFeeBumpError::FeeRateUnavailable)<span class="question-mark">?</span>;
+
+ <span class="comment">// remove the inputs from the tx and process them
+ </span><span class="kw">let </span>original_txin = tx.input.drain(..).collect::<Vec<<span class="kw">_</span>>>();
+ <span class="kw">let </span>original_utxos = original_txin
+ .iter()
+ .map(|txin| -> <span class="prelude-ty">Result</span><<span class="kw">_</span>, BuildFeeBumpError> {
+ <span class="kw">let </span>prev_tx = graph
+ .get_tx(txin.previous_output.txid)
+ .ok_or(BuildFeeBumpError::UnknownUtxo(txin.previous_output))<span class="question-mark">?</span>;
+ <span class="kw">let </span>txout = <span class="kw-2">&</span>prev_tx.output[txin.previous_output.vout <span class="kw">as </span>usize];
+
+ <span class="kw">let </span>confirmation_time: ConfirmationTime = graph
+ .get_chain_position(<span class="kw-2">&</span><span class="self">self</span>.chain, chain_tip, txin.previous_output.txid)
+ .ok_or(BuildFeeBumpError::UnknownUtxo(txin.previous_output))<span class="question-mark">?
+ </span>.cloned()
+ .into();
+
+ <span class="kw">let </span>weighted_utxo = <span class="kw">match </span>txout_index.index_of_spk(<span class="kw-2">&</span>txout.script_pubkey) {
+ <span class="prelude-val">Some</span>((keychain, derivation_index)) => {
+ <span class="kw">let </span>satisfaction_weight = <span class="self">self
+ </span>.get_descriptor_for_keychain(keychain)
+ .max_weight_to_satisfy()
+ .unwrap();
+ WeightedUtxo {
+ utxo: Utxo::Local(LocalOutput {
+ outpoint: txin.previous_output,
+ txout: txout.clone(),
+ keychain,
+ is_spent: <span class="bool-val">true</span>,
+ derivation_index,
+ confirmation_time,
+ }),
+ satisfaction_weight,
+ }
+ }
+ <span class="prelude-val">None </span>=> {
+ <span class="kw">let </span>satisfaction_weight =
+ serialize(<span class="kw-2">&</span>txin.script_sig).len() * <span class="number">4 </span>+ serialize(<span class="kw-2">&</span>txin.witness).len();
+ WeightedUtxo {
+ utxo: Utxo::Foreign {
+ outpoint: txin.previous_output,
+ sequence: <span class="prelude-val">Some</span>(txin.sequence),
+ psbt_input: Box::new(psbt::Input {
+ witness_utxo: <span class="prelude-val">Some</span>(txout.clone()),
+ non_witness_utxo: <span class="prelude-val">Some</span>(prev_tx.as_ref().clone()),
+ ..Default::default()
+ }),
+ },
+ satisfaction_weight,
+ }
+ }
+ };
+
+ <span class="prelude-val">Ok</span>(weighted_utxo)
+ })
+ .collect::<<span class="prelude-ty">Result</span><Vec<<span class="kw">_</span>>, <span class="kw">_</span>>>()<span class="question-mark">?</span>;
+
+ <span class="kw">if </span>tx.output.len() > <span class="number">1 </span>{
+ <span class="kw">let </span><span class="kw-2">mut </span>change_index = <span class="prelude-val">None</span>;
+ <span class="kw">for </span>(index, txout) <span class="kw">in </span>tx.output.iter().enumerate() {
+ <span class="kw">let </span>change_type = <span class="self">self</span>.map_keychain(KeychainKind::Internal);
+ <span class="kw">match </span>txout_index.index_of_spk(<span class="kw-2">&</span>txout.script_pubkey) {
+ <span class="prelude-val">Some</span>((keychain, <span class="kw">_</span>)) <span class="kw">if </span>keychain == change_type => change_index = <span class="prelude-val">Some</span>(index),
+ <span class="kw">_ </span>=> {}
+ }
+ }
+
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(change_index) = change_index {
+ tx.output.remove(change_index);
+ }
+ }
+
+ <span class="kw">let </span>params = TxParams {
+ <span class="comment">// TODO: figure out what rbf option should be?
+ </span>version: <span class="prelude-val">Some</span>(tx_builder::Version(tx.version.<span class="number">0</span>)),
+ recipients: tx
+ .output
+ .into_iter()
+ .map(|txout| (txout.script_pubkey, txout.value.to_sat()))
+ .collect(),
+ utxos: original_utxos,
+ bumping_fee: <span class="prelude-val">Some</span>(tx_builder::PreviousFee {
+ absolute: fee,
+ rate: fee_rate,
+ }),
+ ..Default::default()
+ };
+
+ <span class="prelude-val">Ok</span>(TxBuilder {
+ wallet: alloc::rc::Rc::new(core::cell::RefCell::new(<span class="self">self</span>)),
+ params,
+ coin_selection: DefaultCoinSelectionAlgorithm::default(),
+ phantom: core::marker::PhantomData,
+ })
+ }
+
+ <span class="doccomment">/// Sign a transaction with all the wallet's signers, in the order specified by every signer's
+ /// [`SignerOrdering`]. This function returns the `Result` type with an encapsulated `bool` that has the value true if the PSBT was finalized, or false otherwise.
+ ///
+ /// The [`SignOptions`] can be used to tweak the behavior of the software signers, and the way
+ /// the transaction is finalized at the end. Note that it can't be guaranteed that *every*
+ /// signers will follow the options, but the "software signers" (WIF keys and `xprv`) defined
+ /// in this library will.
+ ///
+ /// ## Example
+ ///
+ /// ```
+ /// # use std::str::FromStr;
+ /// # use bitcoin::*;
+ /// # use bdk_wallet::*;
+ /// # use bdk_wallet::wallet::ChangeSet;
+ /// # use bdk_wallet::wallet::error::CreateTxError;
+ /// # use bdk_persist::PersistBackend;
+ /// # let descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/*)";
+ /// # let mut wallet = doctest_wallet!();
+ /// # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap().assume_checked();
+ /// let mut psbt = {
+ /// let mut builder = wallet.build_tx();
+ /// builder.add_recipient(to_address.script_pubkey(), Amount::from_sat(50_000));
+ /// builder.finish()?
+ /// };
+ /// let finalized = wallet.sign(&mut psbt, SignOptions::default())?;
+ /// assert!(finalized, "we should have signed all the inputs");
+ /// # Ok::<(),anyhow::Error>(())
+ </span><span class="kw">pub fn </span>sign(<span class="kw-2">&</span><span class="self">self</span>, psbt: <span class="kw-2">&mut </span>Psbt, sign_options: SignOptions) -> <span class="prelude-ty">Result</span><bool, SignerError> {
+ <span class="comment">// This adds all the PSBT metadata for the inputs, which will help us later figure out how
+ // to derive our keys
+ </span><span class="self">self</span>.update_psbt_with_descriptor(psbt)
+ .map_err(SignerError::MiniscriptPsbt)<span class="question-mark">?</span>;
+
+ <span class="comment">// If we aren't allowed to use `witness_utxo`, ensure that every input (except p2tr and finalized ones)
+ // has the `non_witness_utxo`
+ </span><span class="kw">if </span>!sign_options.trust_witness_utxo
+ && psbt
+ .inputs
+ .iter()
+ .filter(|i| i.final_script_witness.is_none() && i.final_script_sig.is_none())
+ .filter(|i| i.tap_internal_key.is_none() && i.tap_merkle_root.is_none())
+ .any(|i| i.non_witness_utxo.is_none())
+ {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(SignerError::MissingNonWitnessUtxo);
+ }
+
+ <span class="comment">// If the user hasn't explicitly opted-in, refuse to sign the transaction unless every input
+ // is using `SIGHASH_ALL` or `SIGHASH_DEFAULT` for taproot
+ </span><span class="kw">if </span>!sign_options.allow_all_sighashes
+ && !psbt.inputs.iter().all(|i| {
+ i.sighash_type.is_none()
+ || i.sighash_type == <span class="prelude-val">Some</span>(EcdsaSighashType::All.into())
+ || i.sighash_type == <span class="prelude-val">Some</span>(TapSighashType::All.into())
+ || i.sighash_type == <span class="prelude-val">Some</span>(TapSighashType::Default.into())
+ })
+ {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(SignerError::NonStandardSighash);
+ }
+
+ <span class="kw">for </span>signer <span class="kw">in </span><span class="self">self
+ </span>.signers
+ .signers()
+ .iter()
+ .chain(<span class="self">self</span>.change_signers.signers().iter())
+ {
+ signer.sign_transaction(psbt, <span class="kw-2">&</span>sign_options, <span class="kw-2">&</span><span class="self">self</span>.secp)<span class="question-mark">?</span>;
+ }
+
+ <span class="comment">// attempt to finalize
+ </span><span class="kw">if </span>sign_options.try_finalize {
+ <span class="self">self</span>.finalize_psbt(psbt, sign_options)
+ } <span class="kw">else </span>{
+ <span class="prelude-val">Ok</span>(<span class="bool-val">false</span>)
+ }
+ }
+
+ <span class="doccomment">/// Return the spending policies for the wallet's descriptor
+ </span><span class="kw">pub fn </span>policies(<span class="kw-2">&</span><span class="self">self</span>, keychain: KeychainKind) -> <span class="prelude-ty">Result</span><<span class="prelude-ty">Option</span><Policy>, DescriptorError> {
+ <span class="kw">let </span>signers = <span class="kw">match </span>keychain {
+ KeychainKind::External => <span class="kw-2">&</span><span class="self">self</span>.signers,
+ KeychainKind::Internal => <span class="kw-2">&</span><span class="self">self</span>.change_signers,
+ };
+
+ <span class="kw">match </span><span class="self">self</span>.public_descriptor(keychain) {
+ <span class="prelude-val">Some</span>(desc) => <span class="prelude-val">Ok</span>(desc.extract_policy(signers, BuildSatisfaction::None, <span class="kw-2">&</span><span class="self">self</span>.secp)<span class="question-mark">?</span>),
+ <span class="prelude-val">None </span>=> <span class="prelude-val">Ok</span>(<span class="prelude-val">None</span>),
+ }
+ }
+
+ <span class="doccomment">/// Return the "public" version of the wallet's descriptor, meaning a new descriptor that has
+ /// the same structure but with every secret key removed
+ ///
+ /// This can be used to build a watch-only version of a wallet
+ </span><span class="kw">pub fn </span>public_descriptor(<span class="kw-2">&</span><span class="self">self</span>, keychain: KeychainKind) -> <span class="prelude-ty">Option</span><<span class="kw-2">&</span>ExtendedDescriptor> {
+ <span class="self">self</span>.indexed_graph
+ .index
+ .keychains()
+ .find(|(k, <span class="kw">_</span>)| <span class="kw-2">*</span>k == <span class="kw-2">&</span>keychain)
+ .map(|(<span class="kw">_</span>, d)| d)
+ }
+
+ <span class="doccomment">/// Finalize a PSBT, i.e., for each input determine if sufficient data is available to pass
+ /// validation and construct the respective `scriptSig` or `scriptWitness`. Please refer to
+ /// [BIP174](https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#Input_Finalizer)
+ /// for further information.
+ ///
+ /// Returns `true` if the PSBT could be finalized, and `false` otherwise.
+ ///
+ /// The [`SignOptions`] can be used to tweak the behavior of the finalizer.
+ </span><span class="kw">pub fn </span>finalize_psbt(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ psbt: <span class="kw-2">&mut </span>Psbt,
+ sign_options: SignOptions,
+ ) -> <span class="prelude-ty">Result</span><bool, SignerError> {
+ <span class="kw">let </span>chain_tip = <span class="self">self</span>.chain.tip().block_id();
+
+ <span class="kw">let </span>tx = <span class="kw-2">&</span>psbt.unsigned_tx;
+ <span class="kw">let </span><span class="kw-2">mut </span>finished = <span class="bool-val">true</span>;
+
+ <span class="kw">for </span>(n, input) <span class="kw">in </span>tx.input.iter().enumerate() {
+ <span class="kw">let </span>psbt_input = <span class="kw-2">&</span>psbt
+ .inputs
+ .get(n)
+ .ok_or(SignerError::InputIndexOutOfRange)<span class="question-mark">?</span>;
+ <span class="kw">if </span>psbt_input.final_script_sig.is_some() || psbt_input.final_script_witness.is_some() {
+ <span class="kw">continue</span>;
+ }
+ <span class="kw">let </span>confirmation_height = <span class="self">self
+ </span>.indexed_graph
+ .graph()
+ .get_chain_position(<span class="kw-2">&</span><span class="self">self</span>.chain, chain_tip, input.previous_output.txid)
+ .map(|chain_position| <span class="kw">match </span>chain_position {
+ ChainPosition::Confirmed(a) => a.confirmation_height,
+ ChainPosition::Unconfirmed(<span class="kw">_</span>) => u32::MAX,
+ });
+ <span class="kw">let </span>current_height = sign_options
+ .assume_height
+ .unwrap_or_else(|| <span class="self">self</span>.chain.tip().height());
+
+ <span class="comment">// - Try to derive the descriptor by looking at the txout. If it's in our database, we
+ // know exactly which `keychain` to use, and which derivation index it is
+ // - If that fails, try to derive it by looking at the psbt input: the complete logic
+ // is in `src/descriptor/mod.rs`, but it will basically look at `bip32_derivation`,
+ // `redeem_script` and `witness_script` to determine the right derivation
+ // - If that also fails, it will try it on the internal descriptor, if present
+ </span><span class="kw">let </span>desc = psbt
+ .get_utxo_for(n)
+ .and_then(|txout| <span class="self">self</span>.get_descriptor_for_txout(<span class="kw-2">&</span>txout))
+ .or_else(|| {
+ <span class="self">self</span>.indexed_graph.index.keychains().find_map(|(<span class="kw">_</span>, desc)| {
+ desc.derive_from_psbt_input(psbt_input, psbt.get_utxo_for(n), <span class="kw-2">&</span><span class="self">self</span>.secp)
+ })
+ });
+
+ <span class="kw">match </span>desc {
+ <span class="prelude-val">Some</span>(desc) => {
+ <span class="kw">let </span><span class="kw-2">mut </span>tmp_input = bitcoin::TxIn::default();
+ <span class="kw">match </span>desc.satisfy(
+ <span class="kw-2">&mut </span>tmp_input,
+ (
+ PsbtInputSatisfier::new(psbt, n),
+ After::new(<span class="prelude-val">Some</span>(current_height), <span class="bool-val">false</span>),
+ Older::new(<span class="prelude-val">Some</span>(current_height), confirmation_height, <span class="bool-val">false</span>),
+ ),
+ ) {
+ <span class="prelude-val">Ok</span>(<span class="kw">_</span>) => {
+ <span class="kw">let </span>psbt_input = <span class="kw-2">&mut </span>psbt.inputs[n];
+ psbt_input.final_script_sig = <span class="prelude-val">Some</span>(tmp_input.script_sig);
+ psbt_input.final_script_witness = <span class="prelude-val">Some</span>(tmp_input.witness);
+ <span class="kw">if </span>sign_options.remove_partial_sigs {
+ psbt_input.partial_sigs.clear();
+ }
+ <span class="kw">if </span>sign_options.remove_taproot_extras {
+ <span class="comment">// We just constructed the final witness, clear these fields.
+ </span>psbt_input.tap_key_sig = <span class="prelude-val">None</span>;
+ psbt_input.tap_script_sigs.clear();
+ psbt_input.tap_scripts.clear();
+ psbt_input.tap_key_origins.clear();
+ psbt_input.tap_internal_key = <span class="prelude-val">None</span>;
+ psbt_input.tap_merkle_root = <span class="prelude-val">None</span>;
+ }
+ }
+ <span class="prelude-val">Err</span>(<span class="kw">_</span>) => finished = <span class="bool-val">false</span>,
+ }
+ }
+ <span class="prelude-val">None </span>=> finished = <span class="bool-val">false</span>,
+ }
+ }
+
+ <span class="kw">if </span>finished && sign_options.remove_taproot_extras {
+ <span class="kw">for </span>output <span class="kw">in </span><span class="kw-2">&mut </span>psbt.outputs {
+ output.tap_key_origins.clear();
+ }
+ }
+
+ <span class="prelude-val">Ok</span>(finished)
+ }
+
+ <span class="doccomment">/// Return the secp256k1 context used for all signing operations
+ </span><span class="kw">pub fn </span>secp_ctx(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span>SecpCtx {
+ <span class="kw-2">&</span><span class="self">self</span>.secp
+ }
+
+ <span class="doccomment">/// Returns the descriptor used to create addresses for a particular `keychain`.
+ </span><span class="kw">pub fn </span>get_descriptor_for_keychain(<span class="kw-2">&</span><span class="self">self</span>, keychain: KeychainKind) -> <span class="kw-2">&</span>ExtendedDescriptor {
+ <span class="self">self</span>.public_descriptor(<span class="self">self</span>.map_keychain(keychain))
+ .expect(<span class="string">"we mapped it to external if it doesn't exist"</span>)
+ }
+
+ <span class="doccomment">/// The derivation index of this wallet. It will return `None` if it has not derived any addresses.
+ /// Otherwise, it will return the index of the highest address it has derived.
+ </span><span class="kw">pub fn </span>derivation_index(<span class="kw-2">&</span><span class="self">self</span>, keychain: KeychainKind) -> <span class="prelude-ty">Option</span><u32> {
+ <span class="self">self</span>.indexed_graph.index.last_revealed_index(<span class="kw-2">&</span>keychain)
+ }
+
+ <span class="doccomment">/// The index of the next address that you would get if you were to ask the wallet for a new address
+ </span><span class="kw">pub fn </span>next_derivation_index(<span class="kw-2">&</span><span class="self">self</span>, keychain: KeychainKind) -> u32 {
+ <span class="kw">let </span>keychain = <span class="self">self</span>.map_keychain(keychain);
+ <span class="self">self</span>.indexed_graph
+ .index
+ .next_index(<span class="kw-2">&</span>keychain)
+ .expect(<span class="string">"Keychain must exist (we called map_keychain)"</span>)
+ .<span class="number">0
+ </span>}
+
+ <span class="doccomment">/// Informs the wallet that you no longer intend to broadcast a tx that was built from it.
+ ///
+ /// This frees up the change address used when creating the tx for use in future transactions.
+ </span><span class="comment">// TODO: Make this free up reserved utxos when that's implemented
+ </span><span class="kw">pub fn </span>cancel_tx(<span class="kw-2">&mut </span><span class="self">self</span>, tx: <span class="kw-2">&</span>Transaction) {
+ <span class="kw">let </span>txout_index = <span class="kw-2">&mut </span><span class="self">self</span>.indexed_graph.index;
+ <span class="kw">for </span>txout <span class="kw">in </span><span class="kw-2">&</span>tx.output {
+ <span class="kw">if let </span><span class="prelude-val">Some</span>((keychain, index)) = txout_index.index_of_spk(<span class="kw-2">&</span>txout.script_pubkey) {
+ <span class="comment">// NOTE: unmark_used will **not** make something unused if it has actually been used
+ // by a tx in the tracker. It only removes the superficial marking.
+ </span>txout_index.unmark_used(keychain, index);
+ }
+ }
+ }
+
+ <span class="kw">fn </span>map_keychain(<span class="kw-2">&</span><span class="self">self</span>, keychain: KeychainKind) -> KeychainKind {
+ <span class="kw">if </span>keychain == KeychainKind::Internal
+ && <span class="self">self</span>.public_descriptor(KeychainKind::Internal).is_none()
+ {
+ KeychainKind::External
+ } <span class="kw">else </span>{
+ keychain
+ }
+ }
+
+ <span class="kw">fn </span>get_descriptor_for_txout(<span class="kw-2">&</span><span class="self">self</span>, txout: <span class="kw-2">&</span>TxOut) -> <span class="prelude-ty">Option</span><DerivedDescriptor> {
+ <span class="kw">let </span>(keychain, child) = <span class="self">self
+ </span>.indexed_graph
+ .index
+ .index_of_spk(<span class="kw-2">&</span>txout.script_pubkey)<span class="question-mark">?</span>;
+ <span class="kw">let </span>descriptor = <span class="self">self</span>.get_descriptor_for_keychain(keychain);
+ descriptor.at_derivation_index(child).ok()
+ }
+
+ <span class="kw">fn </span>get_available_utxos(<span class="kw-2">&</span><span class="self">self</span>) -> Vec<(LocalOutput, usize)> {
+ <span class="self">self</span>.list_unspent()
+ .map(|utxo| {
+ <span class="kw">let </span>keychain = utxo.keychain;
+ (utxo, {
+ <span class="self">self</span>.get_descriptor_for_keychain(keychain)
+ .max_weight_to_satisfy()
+ .unwrap()
+ })
+ })
+ .collect()
+ }
+
+ <span class="doccomment">/// Given the options returns the list of utxos that must be used to form the
+ /// transaction and any further that may be used if needed.
+ </span><span class="kw">fn </span>preselect_utxos(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ params: <span class="kw-2">&</span>TxParams,
+ current_height: <span class="prelude-ty">Option</span><u32>,
+ ) -> (Vec<WeightedUtxo>, Vec<WeightedUtxo>) {
+ <span class="kw">let </span>TxParams {
+ change_policy,
+ unspendable,
+ utxos,
+ drain_wallet,
+ manually_selected_only,
+ bumping_fee,
+ ..
+ } = params;
+
+ <span class="kw">let </span>manually_selected = utxos.clone();
+ <span class="comment">// we mandate confirmed transactions if we're bumping the fee
+ </span><span class="kw">let </span>must_only_use_confirmed_tx = bumping_fee.is_some();
+ <span class="kw">let </span>must_use_all_available = <span class="kw-2">*</span>drain_wallet;
+
+ <span class="kw">let </span>chain_tip = <span class="self">self</span>.chain.tip().block_id();
+ <span class="comment">// must_spend <- manually selected utxos
+ // may_spend <- all other available utxos
+ </span><span class="kw">let </span><span class="kw-2">mut </span>may_spend = <span class="self">self</span>.get_available_utxos();
+
+ may_spend.retain(|may_spend| {
+ !manually_selected
+ .iter()
+ .any(|manually_selected| manually_selected.utxo.outpoint() == may_spend.<span class="number">0</span>.outpoint)
+ });
+ <span class="kw">let </span><span class="kw-2">mut </span>must_spend = manually_selected;
+
+ <span class="comment">// NOTE: we are intentionally ignoring `unspendable` here. i.e manual
+ // selection overrides unspendable.
+ </span><span class="kw">if </span><span class="kw-2">*</span>manually_selected_only {
+ <span class="kw">return </span>(must_spend, <span class="macro">vec!</span>[]);
+ }
+
+ <span class="kw">let </span>satisfies_confirmed = may_spend
+ .iter()
+ .map(|u| -> bool {
+ <span class="kw">let </span>txid = u.<span class="number">0</span>.outpoint.txid;
+ <span class="kw">let </span>tx = <span class="kw">match </span><span class="self">self</span>.indexed_graph.graph().get_tx(txid) {
+ <span class="prelude-val">Some</span>(tx) => tx,
+ <span class="prelude-val">None </span>=> <span class="kw">return </span><span class="bool-val">false</span>,
+ };
+ <span class="kw">let </span>confirmation_time: ConfirmationTime = <span class="kw">match </span><span class="self">self
+ </span>.indexed_graph
+ .graph()
+ .get_chain_position(<span class="kw-2">&</span><span class="self">self</span>.chain, chain_tip, txid)
+ {
+ <span class="prelude-val">Some</span>(chain_position) => chain_position.cloned().into(),
+ <span class="prelude-val">None </span>=> <span class="kw">return </span><span class="bool-val">false</span>,
+ };
+
+ <span class="comment">// Whether the UTXO is mature and, if needed, confirmed
+ </span><span class="kw">let </span><span class="kw-2">mut </span>spendable = <span class="bool-val">true</span>;
+ <span class="kw">if </span>must_only_use_confirmed_tx && !confirmation_time.is_confirmed() {
+ <span class="kw">return </span><span class="bool-val">false</span>;
+ }
+ <span class="kw">if </span>tx.is_coinbase() {
+ <span class="macro">debug_assert!</span>(
+ confirmation_time.is_confirmed(),
+ <span class="string">"coinbase must always be confirmed"
+ </span>);
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(current_height) = current_height {
+ <span class="kw">match </span>confirmation_time {
+ ConfirmationTime::Confirmed { height, .. } => {
+ <span class="comment">// https://github.com/bitcoin/bitcoin/blob/c5e67be03bb06a5d7885c55db1f016fbf2333fe3/src/validation.cpp#L373-L375
+ </span>spendable &=
+ (current_height.saturating_sub(height)) >= COINBASE_MATURITY;
+ }
+ ConfirmationTime::Unconfirmed { .. } => spendable = <span class="bool-val">false</span>,
+ }
+ }
+ }
+ spendable
+ })
+ .collect::<Vec<<span class="kw">_</span>>>();
+
+ <span class="kw">let </span><span class="kw-2">mut </span>i = <span class="number">0</span>;
+ may_spend.retain(|u| {
+ <span class="kw">let </span>retain = change_policy.is_satisfied_by(<span class="kw-2">&</span>u.<span class="number">0</span>)
+ && !unspendable.contains(<span class="kw-2">&</span>u.<span class="number">0</span>.outpoint)
+ && satisfies_confirmed[i];
+ i += <span class="number">1</span>;
+ retain
+ });
+
+ <span class="kw">let </span><span class="kw-2">mut </span>may_spend = may_spend
+ .into_iter()
+ .map(|(local_utxo, satisfaction_weight)| WeightedUtxo {
+ satisfaction_weight,
+ utxo: Utxo::Local(local_utxo),
+ })
+ .collect();
+
+ <span class="kw">if </span>must_use_all_available {
+ must_spend.append(<span class="kw-2">&mut </span>may_spend);
+ }
+
+ (must_spend, may_spend)
+ }
+
+ <span class="kw">fn </span>complete_transaction(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ tx: Transaction,
+ selected: Vec<Utxo>,
+ params: TxParams,
+ ) -> <span class="prelude-ty">Result</span><Psbt, CreateTxError> {
+ <span class="kw">let </span><span class="kw-2">mut </span>psbt = Psbt::from_unsigned_tx(tx)<span class="question-mark">?</span>;
+
+ <span class="kw">if </span>params.add_global_xpubs {
+ <span class="kw">let </span>all_xpubs = <span class="self">self
+ </span>.keychains()
+ .flat_map(|(<span class="kw">_</span>, desc)| desc.get_extended_keys())
+ .collect::<Vec<<span class="kw">_</span>>>();
+
+ <span class="kw">for </span>xpub <span class="kw">in </span>all_xpubs {
+ <span class="kw">let </span>origin = <span class="kw">match </span>xpub.origin {
+ <span class="prelude-val">Some</span>(origin) => origin,
+ <span class="prelude-val">None </span><span class="kw">if </span>xpub.xkey.depth == <span class="number">0 </span>=> {
+ (xpub.root_fingerprint(<span class="kw-2">&</span><span class="self">self</span>.secp), <span class="macro">vec!</span>[].into())
+ }
+ <span class="kw">_ </span>=> <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::MissingKeyOrigin(xpub.xkey.to_string())),
+ };
+
+ psbt.xpub.insert(xpub.xkey, origin);
+ }
+ }
+
+ <span class="kw">let </span><span class="kw-2">mut </span>lookup_output = selected
+ .into_iter()
+ .map(|utxo| (utxo.outpoint(), utxo))
+ .collect::<HashMap<<span class="kw">_</span>, <span class="kw">_</span>>>();
+
+ <span class="comment">// add metadata for the inputs
+ </span><span class="kw">for </span>(psbt_input, input) <span class="kw">in </span>psbt.inputs.iter_mut().zip(psbt.unsigned_tx.input.iter()) {
+ <span class="kw">let </span>utxo = <span class="kw">match </span>lookup_output.remove(<span class="kw-2">&</span>input.previous_output) {
+ <span class="prelude-val">Some</span>(utxo) => utxo,
+ <span class="prelude-val">None </span>=> <span class="kw">continue</span>,
+ };
+
+ <span class="kw">match </span>utxo {
+ Utxo::Local(utxo) => {
+ <span class="kw-2">*</span>psbt_input =
+ <span class="kw">match </span><span class="self">self</span>.get_psbt_input(utxo, params.sighash, params.only_witness_utxo) {
+ <span class="prelude-val">Ok</span>(psbt_input) => psbt_input,
+ <span class="prelude-val">Err</span>(e) => <span class="kw">match </span>e {
+ CreateTxError::UnknownUtxo => psbt::Input {
+ sighash_type: params.sighash,
+ ..psbt::Input::default()
+ },
+ <span class="kw">_ </span>=> <span class="kw">return </span><span class="prelude-val">Err</span>(e),
+ },
+ }
+ }
+ Utxo::Foreign {
+ outpoint,
+ psbt_input: foreign_psbt_input,
+ ..
+ } => {
+ <span class="kw">let </span>is_taproot = foreign_psbt_input
+ .witness_utxo
+ .as_ref()
+ .map(|txout| txout.script_pubkey.is_p2tr())
+ .unwrap_or(<span class="bool-val">false</span>);
+ <span class="kw">if </span>!is_taproot
+ && !params.only_witness_utxo
+ && foreign_psbt_input.non_witness_utxo.is_none()
+ {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(CreateTxError::MissingNonWitnessUtxo(outpoint));
+ }
+ <span class="kw-2">*</span>psbt_input = <span class="kw-2">*</span>foreign_psbt_input;
+ }
+ }
+ }
+
+ <span class="self">self</span>.update_psbt_with_descriptor(<span class="kw-2">&mut </span>psbt)<span class="question-mark">?</span>;
+
+ <span class="prelude-val">Ok</span>(psbt)
+ }
+
+ <span class="doccomment">/// get the corresponding PSBT Input for a LocalUtxo
+ </span><span class="kw">pub fn </span>get_psbt_input(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ utxo: LocalOutput,
+ sighash_type: <span class="prelude-ty">Option</span><psbt::PsbtSighashType>,
+ only_witness_utxo: bool,
+ ) -> <span class="prelude-ty">Result</span><psbt::Input, CreateTxError> {
+ <span class="comment">// Try to find the prev_script in our db to figure out if this is internal or external,
+ // and the derivation index
+ </span><span class="kw">let </span>(keychain, child) = <span class="self">self
+ </span>.indexed_graph
+ .index
+ .index_of_spk(<span class="kw-2">&</span>utxo.txout.script_pubkey)
+ .ok_or(CreateTxError::UnknownUtxo)<span class="question-mark">?</span>;
+
+ <span class="kw">let </span><span class="kw-2">mut </span>psbt_input = psbt::Input {
+ sighash_type,
+ ..psbt::Input::default()
+ };
+
+ <span class="kw">let </span>desc = <span class="self">self</span>.get_descriptor_for_keychain(keychain);
+ <span class="kw">let </span>derived_descriptor = desc
+ .at_derivation_index(child)
+ .expect(<span class="string">"child can't be hardened"</span>);
+
+ psbt_input
+ .update_with_descriptor_unchecked(<span class="kw-2">&</span>derived_descriptor)
+ .map_err(MiniscriptPsbtError::Conversion)<span class="question-mark">?</span>;
+
+ <span class="kw">let </span>prev_output = utxo.outpoint;
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(prev_tx) = <span class="self">self</span>.indexed_graph.graph().get_tx(prev_output.txid) {
+ <span class="kw">if </span>desc.is_witness() || desc.is_taproot() {
+ psbt_input.witness_utxo = <span class="prelude-val">Some</span>(prev_tx.output[prev_output.vout <span class="kw">as </span>usize].clone());
+ }
+ <span class="kw">if </span>!desc.is_taproot() && (!desc.is_witness() || !only_witness_utxo) {
+ psbt_input.non_witness_utxo = <span class="prelude-val">Some</span>(prev_tx.as_ref().clone());
+ }
+ }
+ <span class="prelude-val">Ok</span>(psbt_input)
+ }
+
+ <span class="kw">fn </span>update_psbt_with_descriptor(<span class="kw-2">&</span><span class="self">self</span>, psbt: <span class="kw-2">&mut </span>Psbt) -> <span class="prelude-ty">Result</span><(), MiniscriptPsbtError> {
+ <span class="comment">// We need to borrow `psbt` mutably within the loops, so we have to allocate a vec for all
+ // the input utxos and outputs
+ </span><span class="kw">let </span>utxos = (<span class="number">0</span>..psbt.inputs.len())
+ .filter_map(|i| psbt.get_utxo_for(i).map(|utxo| (<span class="bool-val">true</span>, i, utxo)))
+ .chain(
+ psbt.unsigned_tx
+ .output
+ .iter()
+ .enumerate()
+ .map(|(i, out)| (<span class="bool-val">false</span>, i, out.clone())),
+ )
+ .collect::<Vec<<span class="kw">_</span>>>();
+
+ <span class="comment">// Try to figure out the keychain and derivation for every input and output
+ </span><span class="kw">for </span>(is_input, index, out) <span class="kw">in </span>utxos.into_iter() {
+ <span class="kw">if let </span><span class="prelude-val">Some</span>((keychain, child)) =
+ <span class="self">self</span>.indexed_graph.index.index_of_spk(<span class="kw-2">&</span>out.script_pubkey)
+ {
+ <span class="kw">let </span>desc = <span class="self">self</span>.get_descriptor_for_keychain(keychain);
+ <span class="kw">let </span>desc = desc
+ .at_derivation_index(child)
+ .expect(<span class="string">"child can't be hardened"</span>);
+
+ <span class="kw">if </span>is_input {
+ psbt.update_input_with_descriptor(index, <span class="kw-2">&</span>desc)
+ .map_err(MiniscriptPsbtError::UtxoUpdate)<span class="question-mark">?</span>;
+ } <span class="kw">else </span>{
+ psbt.update_output_with_descriptor(index, <span class="kw-2">&</span>desc)
+ .map_err(MiniscriptPsbtError::OutputUpdate)<span class="question-mark">?</span>;
+ }
+ }
+ }
+
+ <span class="prelude-val">Ok</span>(())
+ }
+
+ <span class="doccomment">/// Return the checksum of the public descriptor associated to `keychain`
+ ///
+ /// Internally calls [`Self::get_descriptor_for_keychain`] to fetch the right descriptor
+ </span><span class="kw">pub fn </span>descriptor_checksum(<span class="kw-2">&</span><span class="self">self</span>, keychain: KeychainKind) -> String {
+ <span class="self">self</span>.get_descriptor_for_keychain(keychain)
+ .to_string()
+ .split_once(<span class="string">'#'</span>)
+ .unwrap()
+ .<span class="number">1
+ </span>.to_string()
+ }
+
+ <span class="doccomment">/// Applies an update to the wallet and stages the changes (but does not [`commit`] them).
+ ///
+ /// Usually you create an `update` by interacting with some blockchain data source and inserting
+ /// transactions related to your wallet into it.
+ ///
+ /// [`commit`]: Self::commit
+ </span><span class="kw">pub fn </span>apply_update(<span class="kw-2">&mut </span><span class="self">self</span>, update: <span class="kw">impl </span>Into<Update>) -> <span class="prelude-ty">Result</span><(), CannotConnectError> {
+ <span class="kw">let </span>update = update.into();
+ <span class="kw">let </span><span class="kw-2">mut </span>changeset = <span class="kw">match </span>update.chain {
+ <span class="prelude-val">Some</span>(chain_update) => ChangeSet::from(<span class="self">self</span>.chain.apply_update(chain_update)<span class="question-mark">?</span>),
+ <span class="prelude-val">None </span>=> ChangeSet::default(),
+ };
+
+ <span class="kw">let </span>(<span class="kw">_</span>, index_changeset) = <span class="self">self
+ </span>.indexed_graph
+ .index
+ .reveal_to_target_multi(<span class="kw-2">&</span>update.last_active_indices);
+ changeset.append(ChangeSet::from(indexed_tx_graph::ChangeSet::from(
+ index_changeset,
+ )));
+ changeset.append(ChangeSet::from(
+ <span class="self">self</span>.indexed_graph.apply_update(update.graph),
+ ));
+ <span class="self">self</span>.persist.stage(changeset);
+ <span class="prelude-val">Ok</span>(())
+ }
+
+ <span class="doccomment">/// Commits all currently [`staged`] changed to the persistence backend returning and error when
+ /// this fails.
+ ///
+ /// This returns whether the `update` resulted in any changes.
+ ///
+ /// [`staged`]: Self::staged
+ </span><span class="kw">pub fn </span>commit(<span class="kw-2">&mut </span><span class="self">self</span>) -> anyhow::Result<bool> {
+ <span class="self">self</span>.persist.commit().map(|c| c.is_some())
+ }
+
+ <span class="doccomment">/// Returns the changes that will be committed with the next call to [`commit`].
+ ///
+ /// [`commit`]: Self::commit
+ </span><span class="kw">pub fn </span>staged(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span>ChangeSet {
+ <span class="self">self</span>.persist.staged()
+ }
+
+ <span class="doccomment">/// Get a reference to the inner [`TxGraph`].
+ </span><span class="kw">pub fn </span>tx_graph(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span>TxGraph<ConfirmationTimeHeightAnchor> {
+ <span class="self">self</span>.indexed_graph.graph()
+ }
+
+ <span class="doccomment">/// Get a reference to the inner [`KeychainTxOutIndex`].
+ </span><span class="kw">pub fn </span>spk_index(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span>KeychainTxOutIndex<KeychainKind> {
+ <span class="kw-2">&</span><span class="self">self</span>.indexed_graph.index
+ }
+
+ <span class="doccomment">/// Get a reference to the inner [`LocalChain`].
+ </span><span class="kw">pub fn </span>local_chain(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span>LocalChain {
+ <span class="kw-2">&</span><span class="self">self</span>.chain
+ }
+
+ <span class="doccomment">/// Introduces a `block` of `height` to the wallet, and tries to connect it to the
+ /// `prev_blockhash` of the block's header.
+ ///
+ /// This is a convenience method that is equivalent to calling [`apply_block_connected_to`]
+ /// with `prev_blockhash` and `height-1` as the `connected_to` parameter.
+ ///
+ /// [`apply_block_connected_to`]: Self::apply_block_connected_to
+ </span><span class="kw">pub fn </span>apply_block(<span class="kw-2">&mut </span><span class="self">self</span>, block: <span class="kw-2">&</span>Block, height: u32) -> <span class="prelude-ty">Result</span><(), CannotConnectError> {
+ <span class="kw">let </span>connected_to = <span class="kw">match </span>height.checked_sub(<span class="number">1</span>) {
+ <span class="prelude-val">Some</span>(prev_height) => BlockId {
+ height: prev_height,
+ hash: block.header.prev_blockhash,
+ },
+ <span class="prelude-val">None </span>=> BlockId {
+ height,
+ hash: block.block_hash(),
+ },
+ };
+ <span class="self">self</span>.apply_block_connected_to(block, height, connected_to)
+ .map_err(|err| <span class="kw">match </span>err {
+ ApplyHeaderError::InconsistentBlocks => {
+ <span class="macro">unreachable!</span>(<span class="string">"connected_to is derived from the block so must be consistent"</span>)
+ }
+ ApplyHeaderError::CannotConnect(err) => err,
+ })
+ }
+
+ <span class="doccomment">/// Applies relevant transactions from `block` of `height` to the wallet, and connects the
+ /// block to the internal chain.
+ ///
+ /// The `connected_to` parameter informs the wallet how this block connects to the internal
+ /// [`LocalChain`]. Relevant transactions are filtered from the `block` and inserted into the
+ /// internal [`TxGraph`].
+ </span><span class="kw">pub fn </span>apply_block_connected_to(
+ <span class="kw-2">&mut </span><span class="self">self</span>,
+ block: <span class="kw-2">&</span>Block,
+ height: u32,
+ connected_to: BlockId,
+ ) -> <span class="prelude-ty">Result</span><(), ApplyHeaderError> {
+ <span class="kw">let </span><span class="kw-2">mut </span>changeset = ChangeSet::default();
+ changeset.append(
+ <span class="self">self</span>.chain
+ .apply_header_connected_to(<span class="kw-2">&</span>block.header, height, connected_to)<span class="question-mark">?
+ </span>.into(),
+ );
+ changeset.append(
+ <span class="self">self</span>.indexed_graph
+ .apply_block_relevant(block, height)
+ .into(),
+ );
+ <span class="self">self</span>.persist.stage(changeset);
+ <span class="prelude-val">Ok</span>(())
+ }
+
+ <span class="doccomment">/// Apply relevant unconfirmed transactions to the wallet.
+ ///
+ /// Transactions that are not relevant are filtered out.
+ ///
+ /// This method takes in an iterator of `(tx, last_seen)` where `last_seen` is the timestamp of
+ /// when the transaction was last seen in the mempool. This is used for conflict resolution
+ /// when there is conflicting unconfirmed transactions. The transaction with the later
+ /// `last_seen` is prioritized.
+ </span><span class="kw">pub fn </span>apply_unconfirmed_txs<<span class="lifetime">'t</span>>(
+ <span class="kw-2">&mut </span><span class="self">self</span>,
+ unconfirmed_txs: <span class="kw">impl </span>IntoIterator<Item = (<span class="kw-2">&</span><span class="lifetime">'t </span>Transaction, u64)>,
+ ) {
+ <span class="kw">let </span>indexed_graph_changeset = <span class="self">self
+ </span>.indexed_graph
+ .batch_insert_relevant_unconfirmed(unconfirmed_txs);
+ <span class="self">self</span>.persist.stage(ChangeSet::from(indexed_graph_changeset));
+ }
+}
+
+<span class="doccomment">/// Methods to construct sync/full-scan requests for spk-based chain sources.
+</span><span class="kw">impl </span>Wallet {
+ <span class="doccomment">/// Create a partial [`SyncRequest`] for this wallet for all revealed spks.
+ ///
+ /// This is the first step when performing a spk-based wallet partial sync, the returned
+ /// [`SyncRequest`] collects all revealed script pubkeys from the wallet keychain needed to
+ /// start a blockchain sync with a spk based blockchain client.
+ </span><span class="kw">pub fn </span>start_sync_with_revealed_spks(<span class="kw-2">&</span><span class="self">self</span>) -> SyncRequest {
+ SyncRequest::from_chain_tip(<span class="self">self</span>.chain.tip())
+ .cache_graph_txs(<span class="self">self</span>.tx_graph())
+ .populate_with_revealed_spks(<span class="kw-2">&</span><span class="self">self</span>.indexed_graph.index, ..)
+ }
+
+ <span class="doccomment">/// Create a [`FullScanRequest] for this wallet.
+ ///
+ /// This is the first step when performing a spk-based wallet full scan, the returned
+ /// [`FullScanRequest] collects iterators for the wallet's keychain script pub keys needed to
+ /// start a blockchain full scan with a spk based blockchain client.
+ ///
+ /// This operation is generally only used when importing or restoring a previously used wallet
+ /// in which the list of used scripts is not known.
+ </span><span class="kw">pub fn </span>start_full_scan(<span class="kw-2">&</span><span class="self">self</span>) -> FullScanRequest<KeychainKind> {
+ FullScanRequest::from_keychain_txout_index(<span class="self">self</span>.chain.tip(), <span class="kw-2">&</span><span class="self">self</span>.indexed_graph.index)
+ .cache_graph_txs(<span class="self">self</span>.tx_graph())
+ }
+}
+
+<span class="kw">impl </span>AsRef<bdk_chain::tx_graph::TxGraph<ConfirmationTimeHeightAnchor>> <span class="kw">for </span>Wallet {
+ <span class="kw">fn </span>as_ref(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span>bdk_chain::tx_graph::TxGraph<ConfirmationTimeHeightAnchor> {
+ <span class="self">self</span>.indexed_graph.graph()
+ }
+}
+
+<span class="doccomment">/// Deterministically generate a unique name given the descriptors defining the wallet
+///
+/// Compatible with [`wallet_name_from_descriptor`]
+</span><span class="kw">pub fn </span>wallet_name_from_descriptor<T>(
+ descriptor: T,
+ change_descriptor: <span class="prelude-ty">Option</span><T>,
+ network: Network,
+ secp: <span class="kw-2">&</span>SecpCtx,
+) -> <span class="prelude-ty">Result</span><String, DescriptorError>
+<span class="kw">where
+ </span>T: IntoWalletDescriptor,
+{
+ <span class="comment">//TODO check descriptors contains only public keys
+ </span><span class="kw">let </span>descriptor = descriptor
+ .into_wallet_descriptor(secp, network)<span class="question-mark">?
+ </span>.<span class="number">0
+ </span>.to_string();
+ <span class="kw">let </span><span class="kw-2">mut </span>wallet_name = calc_checksum(<span class="kw-2">&</span>descriptor[..descriptor.find(<span class="string">'#'</span>).unwrap()])<span class="question-mark">?</span>;
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(change_descriptor) = change_descriptor {
+ <span class="kw">let </span>change_descriptor = change_descriptor
+ .into_wallet_descriptor(secp, network)<span class="question-mark">?
+ </span>.<span class="number">0
+ </span>.to_string();
+ wallet_name.push_str(
+ calc_checksum(<span class="kw-2">&</span>change_descriptor[..change_descriptor.find(<span class="string">'#'</span>).unwrap()])<span class="question-mark">?</span>.as_str(),
+ );
+ }
+
+ <span class="prelude-val">Ok</span>(wallet_name)
+}
+
+<span class="kw">fn </span>new_local_utxo(
+ keychain: KeychainKind,
+ derivation_index: u32,
+ full_txo: FullTxOut<ConfirmationTimeHeightAnchor>,
+) -> LocalOutput {
+ LocalOutput {
+ outpoint: full_txo.outpoint,
+ txout: full_txo.txout,
+ is_spent: full_txo.spent_by.is_some(),
+ confirmation_time: full_txo.chain_position.into(),
+ keychain,
+ derivation_index,
+ }
+}
+
+<span class="kw">fn </span>create_signers<E: IntoWalletDescriptor>(
+ index: <span class="kw-2">&mut </span>KeychainTxOutIndex<KeychainKind>,
+ secp: <span class="kw-2">&</span>Secp256k1<All>,
+ descriptor: E,
+ change_descriptor: <span class="prelude-ty">Option</span><E>,
+ network: Network,
+) -> <span class="prelude-ty">Result</span><(Arc<SignersContainer>, Arc<SignersContainer>), <span class="kw">crate</span>::descriptor::error::Error> {
+ <span class="kw">let </span>(descriptor, keymap) = into_wallet_descriptor_checked(descriptor, secp, network)<span class="question-mark">?</span>;
+ <span class="kw">let </span>signers = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>descriptor, secp));
+ <span class="kw">let _ </span>= index.insert_descriptor(KeychainKind::External, descriptor);
+
+ <span class="kw">let </span>change_signers = <span class="kw">match </span>change_descriptor {
+ <span class="prelude-val">Some</span>(descriptor) => {
+ <span class="kw">let </span>(descriptor, keymap) = into_wallet_descriptor_checked(descriptor, secp, network)<span class="question-mark">?</span>;
+ <span class="kw">let </span>signers = Arc::new(SignersContainer::build(keymap, <span class="kw-2">&</span>descriptor, secp));
+ <span class="kw">let _ </span>= index.insert_descriptor(KeychainKind::Internal, descriptor);
+ signers
+ }
+ <span class="prelude-val">None </span>=> Arc::new(SignersContainer::new()),
+ };
+
+ <span class="prelude-val">Ok</span>((signers, change_signers))
+}
+
+<span class="doccomment">/// Transforms a [`FeeRate`] to `f64` with unit as sat/vb.
+</span><span class="attr">#[macro_export]
+#[doc(hidden)]
+</span><span class="macro">macro_rules! </span>floating_rate {
+ (<span class="macro-nonterminal">$rate</span>:expr) => {{
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::bitcoin::blockdata::constants::WITNESS_SCALE_FACTOR</span>;
+ <span class="comment">// sat_kwu / 250.0 -> sat_vb
+ </span><span class="macro-nonterminal">$rate</span>.to_sat_per_kwu() <span class="kw">as </span>f64 / ((<span class="number">1000 </span>/ WITNESS_SCALE_FACTOR) <span class="kw">as </span>f64)
+ }};
+}
+
+<span class="attr">#[macro_export]
+#[doc(hidden)]
+</span><span class="doccomment">/// Macro for getting a wallet for use in a doctest
+</span><span class="macro">macro_rules! </span>doctest_wallet {
+ () => {{
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::bitcoin</span>::{BlockHash, Transaction, absolute, TxOut, Network, hashes::Hash};
+ <span class="kw">use </span><span class="macro-nonterminal">$crate::chain</span>::{ConfirmationTime, BlockId};
+ <span class="kw">use </span><span class="macro-nonterminal">$</span><span class="kw">crate</span>::{<span class="macro-nonterminal">KeychainKind</span>, wallet::Wallet};
+ <span class="kw">let </span>descriptor = <span class="string">"tr([73c5da0a/86'/0'/0']tprv8fMn4hSKPRC1oaCPqxDb1JWtgkpeiQvZhsr8W2xuy3GEMkzoArcAWTfJxYb6Wj8XNNDWEjfYKK4wGQXh3ZUXhDF2NcnsALpWTeSwarJt7Vc/0/*)"</span>;
+ <span class="kw">let </span>change_descriptor = <span class="string">"tr([73c5da0a/86'/0'/0']tprv8fMn4hSKPRC1oaCPqxDb1JWtgkpeiQvZhsr8W2xuy3GEMkzoArcAWTfJxYb6Wj8XNNDWEjfYKK4wGQXh3ZUXhDF2NcnsALpWTeSwarJt7Vc/1/*)"</span>;
+
+ <span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_no_persist(
+ descriptor,
+ <span class="prelude-val">Some</span>(change_descriptor),
+ Network::Regtest,
+ )
+ .unwrap();
+ <span class="kw">let </span>address = wallet.peek_address(KeychainKind::External, <span class="number">0</span>).address;
+ <span class="kw">let </span>tx = Transaction {
+ version: transaction::Version::ONE,
+ lock_time: absolute::LockTime::ZERO,
+ input: <span class="macro">vec!</span>[],
+ output: <span class="macro">vec!</span>[TxOut {
+ value: Amount::from_sat(<span class="number">500_000</span>),
+ script_pubkey: address.script_pubkey(),
+ }],
+ };
+ <span class="kw">let _ </span>= wallet.insert_checkpoint(BlockId { height: <span class="number">1_000</span>, hash: BlockHash::all_zeros() });
+ <span class="kw">let _ </span>= wallet.insert_tx(tx.clone(), ConfirmationTime::Confirmed {
+ height: <span class="number">500</span>,
+ time: <span class="number">50_000
+ </span>});
+
+ wallet
+ }}
+}
+</code></pre></div>
+</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Source of the Rust file `crates/wallet/src/wallet/signer.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>signer.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk_wallet/index.html">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
+<a href="#2" id="2">2</a>
+<a href="#3" id="3">3</a>
+<a href="#4" id="4">4</a>
+<a href="#5" id="5">5</a>
+<a href="#6" id="6">6</a>
+<a href="#7" id="7">7</a>
+<a href="#8" id="8">8</a>
+<a href="#9" id="9">9</a>
+<a href="#10" id="10">10</a>
+<a href="#11" id="11">11</a>
+<a href="#12" id="12">12</a>
+<a href="#13" id="13">13</a>
+<a href="#14" id="14">14</a>
+<a href="#15" id="15">15</a>
+<a href="#16" id="16">16</a>
+<a href="#17" id="17">17</a>
+<a href="#18" id="18">18</a>
+<a href="#19" id="19">19</a>
+<a href="#20" id="20">20</a>
+<a href="#21" id="21">21</a>
+<a href="#22" id="22">22</a>
+<a href="#23" id="23">23</a>
+<a href="#24" id="24">24</a>
+<a href="#25" id="25">25</a>
+<a href="#26" id="26">26</a>
+<a href="#27" id="27">27</a>
+<a href="#28" id="28">28</a>
+<a href="#29" id="29">29</a>
+<a href="#30" id="30">30</a>
+<a href="#31" id="31">31</a>
+<a href="#32" id="32">32</a>
+<a href="#33" id="33">33</a>
+<a href="#34" id="34">34</a>
+<a href="#35" id="35">35</a>
+<a href="#36" id="36">36</a>
+<a href="#37" id="37">37</a>
+<a href="#38" id="38">38</a>
+<a href="#39" id="39">39</a>
+<a href="#40" id="40">40</a>
+<a href="#41" id="41">41</a>
+<a href="#42" id="42">42</a>
+<a href="#43" id="43">43</a>
+<a href="#44" id="44">44</a>
+<a href="#45" id="45">45</a>
+<a href="#46" id="46">46</a>
+<a href="#47" id="47">47</a>
+<a href="#48" id="48">48</a>
+<a href="#49" id="49">49</a>
+<a href="#50" id="50">50</a>
+<a href="#51" id="51">51</a>
+<a href="#52" id="52">52</a>
+<a href="#53" id="53">53</a>
+<a href="#54" id="54">54</a>
+<a href="#55" id="55">55</a>
+<a href="#56" id="56">56</a>
+<a href="#57" id="57">57</a>
+<a href="#58" id="58">58</a>
+<a href="#59" id="59">59</a>
+<a href="#60" id="60">60</a>
+<a href="#61" id="61">61</a>
+<a href="#62" id="62">62</a>
+<a href="#63" id="63">63</a>
+<a href="#64" id="64">64</a>
+<a href="#65" id="65">65</a>
+<a href="#66" id="66">66</a>
+<a href="#67" id="67">67</a>
+<a href="#68" id="68">68</a>
+<a href="#69" id="69">69</a>
+<a href="#70" id="70">70</a>
+<a href="#71" id="71">71</a>
+<a href="#72" id="72">72</a>
+<a href="#73" id="73">73</a>
+<a href="#74" id="74">74</a>
+<a href="#75" id="75">75</a>
+<a href="#76" id="76">76</a>
+<a href="#77" id="77">77</a>
+<a href="#78" id="78">78</a>
+<a href="#79" id="79">79</a>
+<a href="#80" id="80">80</a>
+<a href="#81" id="81">81</a>
+<a href="#82" id="82">82</a>
+<a href="#83" id="83">83</a>
+<a href="#84" id="84">84</a>
+<a href="#85" id="85">85</a>
+<a href="#86" id="86">86</a>
+<a href="#87" id="87">87</a>
+<a href="#88" id="88">88</a>
+<a href="#89" id="89">89</a>
+<a href="#90" id="90">90</a>
+<a href="#91" id="91">91</a>
+<a href="#92" id="92">92</a>
+<a href="#93" id="93">93</a>
+<a href="#94" id="94">94</a>
+<a href="#95" id="95">95</a>
+<a href="#96" id="96">96</a>
+<a href="#97" id="97">97</a>
+<a href="#98" id="98">98</a>
+<a href="#99" id="99">99</a>
+<a href="#100" id="100">100</a>
+<a href="#101" id="101">101</a>
+<a href="#102" id="102">102</a>
+<a href="#103" id="103">103</a>
+<a href="#104" id="104">104</a>
+<a href="#105" id="105">105</a>
+<a href="#106" id="106">106</a>
+<a href="#107" id="107">107</a>
+<a href="#108" id="108">108</a>
+<a href="#109" id="109">109</a>
+<a href="#110" id="110">110</a>
+<a href="#111" id="111">111</a>
+<a href="#112" id="112">112</a>
+<a href="#113" id="113">113</a>
+<a href="#114" id="114">114</a>
+<a href="#115" id="115">115</a>
+<a href="#116" id="116">116</a>
+<a href="#117" id="117">117</a>
+<a href="#118" id="118">118</a>
+<a href="#119" id="119">119</a>
+<a href="#120" id="120">120</a>
+<a href="#121" id="121">121</a>
+<a href="#122" id="122">122</a>
+<a href="#123" id="123">123</a>
+<a href="#124" id="124">124</a>
+<a href="#125" id="125">125</a>
+<a href="#126" id="126">126</a>
+<a href="#127" id="127">127</a>
+<a href="#128" id="128">128</a>
+<a href="#129" id="129">129</a>
+<a href="#130" id="130">130</a>
+<a href="#131" id="131">131</a>
+<a href="#132" id="132">132</a>
+<a href="#133" id="133">133</a>
+<a href="#134" id="134">134</a>
+<a href="#135" id="135">135</a>
+<a href="#136" id="136">136</a>
+<a href="#137" id="137">137</a>
+<a href="#138" id="138">138</a>
+<a href="#139" id="139">139</a>
+<a href="#140" id="140">140</a>
+<a href="#141" id="141">141</a>
+<a href="#142" id="142">142</a>
+<a href="#143" id="143">143</a>
+<a href="#144" id="144">144</a>
+<a href="#145" id="145">145</a>
+<a href="#146" id="146">146</a>
+<a href="#147" id="147">147</a>
+<a href="#148" id="148">148</a>
+<a href="#149" id="149">149</a>
+<a href="#150" id="150">150</a>
+<a href="#151" id="151">151</a>
+<a href="#152" id="152">152</a>
+<a href="#153" id="153">153</a>
+<a href="#154" id="154">154</a>
+<a href="#155" id="155">155</a>
+<a href="#156" id="156">156</a>
+<a href="#157" id="157">157</a>
+<a href="#158" id="158">158</a>
+<a href="#159" id="159">159</a>
+<a href="#160" id="160">160</a>
+<a href="#161" id="161">161</a>
+<a href="#162" id="162">162</a>
+<a href="#163" id="163">163</a>
+<a href="#164" id="164">164</a>
+<a href="#165" id="165">165</a>
+<a href="#166" id="166">166</a>
+<a href="#167" id="167">167</a>
+<a href="#168" id="168">168</a>
+<a href="#169" id="169">169</a>
+<a href="#170" id="170">170</a>
+<a href="#171" id="171">171</a>
+<a href="#172" id="172">172</a>
+<a href="#173" id="173">173</a>
+<a href="#174" id="174">174</a>
+<a href="#175" id="175">175</a>
+<a href="#176" id="176">176</a>
+<a href="#177" id="177">177</a>
+<a href="#178" id="178">178</a>
+<a href="#179" id="179">179</a>
+<a href="#180" id="180">180</a>
+<a href="#181" id="181">181</a>
+<a href="#182" id="182">182</a>
+<a href="#183" id="183">183</a>
+<a href="#184" id="184">184</a>
+<a href="#185" id="185">185</a>
+<a href="#186" id="186">186</a>
+<a href="#187" id="187">187</a>
+<a href="#188" id="188">188</a>
+<a href="#189" id="189">189</a>
+<a href="#190" id="190">190</a>
+<a href="#191" id="191">191</a>
+<a href="#192" id="192">192</a>
+<a href="#193" id="193">193</a>
+<a href="#194" id="194">194</a>
+<a href="#195" id="195">195</a>
+<a href="#196" id="196">196</a>
+<a href="#197" id="197">197</a>
+<a href="#198" id="198">198</a>
+<a href="#199" id="199">199</a>
+<a href="#200" id="200">200</a>
+<a href="#201" id="201">201</a>
+<a href="#202" id="202">202</a>
+<a href="#203" id="203">203</a>
+<a href="#204" id="204">204</a>
+<a href="#205" id="205">205</a>
+<a href="#206" id="206">206</a>
+<a href="#207" id="207">207</a>
+<a href="#208" id="208">208</a>
+<a href="#209" id="209">209</a>
+<a href="#210" id="210">210</a>
+<a href="#211" id="211">211</a>
+<a href="#212" id="212">212</a>
+<a href="#213" id="213">213</a>
+<a href="#214" id="214">214</a>
+<a href="#215" id="215">215</a>
+<a href="#216" id="216">216</a>
+<a href="#217" id="217">217</a>
+<a href="#218" id="218">218</a>
+<a href="#219" id="219">219</a>
+<a href="#220" id="220">220</a>
+<a href="#221" id="221">221</a>
+<a href="#222" id="222">222</a>
+<a href="#223" id="223">223</a>
+<a href="#224" id="224">224</a>
+<a href="#225" id="225">225</a>
+<a href="#226" id="226">226</a>
+<a href="#227" id="227">227</a>
+<a href="#228" id="228">228</a>
+<a href="#229" id="229">229</a>
+<a href="#230" id="230">230</a>
+<a href="#231" id="231">231</a>
+<a href="#232" id="232">232</a>
+<a href="#233" id="233">233</a>
+<a href="#234" id="234">234</a>
+<a href="#235" id="235">235</a>
+<a href="#236" id="236">236</a>
+<a href="#237" id="237">237</a>
+<a href="#238" id="238">238</a>
+<a href="#239" id="239">239</a>
+<a href="#240" id="240">240</a>
+<a href="#241" id="241">241</a>
+<a href="#242" id="242">242</a>
+<a href="#243" id="243">243</a>
+<a href="#244" id="244">244</a>
+<a href="#245" id="245">245</a>
+<a href="#246" id="246">246</a>
+<a href="#247" id="247">247</a>
+<a href="#248" id="248">248</a>
+<a href="#249" id="249">249</a>
+<a href="#250" id="250">250</a>
+<a href="#251" id="251">251</a>
+<a href="#252" id="252">252</a>
+<a href="#253" id="253">253</a>
+<a href="#254" id="254">254</a>
+<a href="#255" id="255">255</a>
+<a href="#256" id="256">256</a>
+<a href="#257" id="257">257</a>
+<a href="#258" id="258">258</a>
+<a href="#259" id="259">259</a>
+<a href="#260" id="260">260</a>
+<a href="#261" id="261">261</a>
+<a href="#262" id="262">262</a>
+<a href="#263" id="263">263</a>
+<a href="#264" id="264">264</a>
+<a href="#265" id="265">265</a>
+<a href="#266" id="266">266</a>
+<a href="#267" id="267">267</a>
+<a href="#268" id="268">268</a>
+<a href="#269" id="269">269</a>
+<a href="#270" id="270">270</a>
+<a href="#271" id="271">271</a>
+<a href="#272" id="272">272</a>
+<a href="#273" id="273">273</a>
+<a href="#274" id="274">274</a>
+<a href="#275" id="275">275</a>
+<a href="#276" id="276">276</a>
+<a href="#277" id="277">277</a>
+<a href="#278" id="278">278</a>
+<a href="#279" id="279">279</a>
+<a href="#280" id="280">280</a>
+<a href="#281" id="281">281</a>
+<a href="#282" id="282">282</a>
+<a href="#283" id="283">283</a>
+<a href="#284" id="284">284</a>
+<a href="#285" id="285">285</a>
+<a href="#286" id="286">286</a>
+<a href="#287" id="287">287</a>
+<a href="#288" id="288">288</a>
+<a href="#289" id="289">289</a>
+<a href="#290" id="290">290</a>
+<a href="#291" id="291">291</a>
+<a href="#292" id="292">292</a>
+<a href="#293" id="293">293</a>
+<a href="#294" id="294">294</a>
+<a href="#295" id="295">295</a>
+<a href="#296" id="296">296</a>
+<a href="#297" id="297">297</a>
+<a href="#298" id="298">298</a>
+<a href="#299" id="299">299</a>
+<a href="#300" id="300">300</a>
+<a href="#301" id="301">301</a>
+<a href="#302" id="302">302</a>
+<a href="#303" id="303">303</a>
+<a href="#304" id="304">304</a>
+<a href="#305" id="305">305</a>
+<a href="#306" id="306">306</a>
+<a href="#307" id="307">307</a>
+<a href="#308" id="308">308</a>
+<a href="#309" id="309">309</a>
+<a href="#310" id="310">310</a>
+<a href="#311" id="311">311</a>
+<a href="#312" id="312">312</a>
+<a href="#313" id="313">313</a>
+<a href="#314" id="314">314</a>
+<a href="#315" id="315">315</a>
+<a href="#316" id="316">316</a>
+<a href="#317" id="317">317</a>
+<a href="#318" id="318">318</a>
+<a href="#319" id="319">319</a>
+<a href="#320" id="320">320</a>
+<a href="#321" id="321">321</a>
+<a href="#322" id="322">322</a>
+<a href="#323" id="323">323</a>
+<a href="#324" id="324">324</a>
+<a href="#325" id="325">325</a>
+<a href="#326" id="326">326</a>
+<a href="#327" id="327">327</a>
+<a href="#328" id="328">328</a>
+<a href="#329" id="329">329</a>
+<a href="#330" id="330">330</a>
+<a href="#331" id="331">331</a>
+<a href="#332" id="332">332</a>
+<a href="#333" id="333">333</a>
+<a href="#334" id="334">334</a>
+<a href="#335" id="335">335</a>
+<a href="#336" id="336">336</a>
+<a href="#337" id="337">337</a>
+<a href="#338" id="338">338</a>
+<a href="#339" id="339">339</a>
+<a href="#340" id="340">340</a>
+<a href="#341" id="341">341</a>
+<a href="#342" id="342">342</a>
+<a href="#343" id="343">343</a>
+<a href="#344" id="344">344</a>
+<a href="#345" id="345">345</a>
+<a href="#346" id="346">346</a>
+<a href="#347" id="347">347</a>
+<a href="#348" id="348">348</a>
+<a href="#349" id="349">349</a>
+<a href="#350" id="350">350</a>
+<a href="#351" id="351">351</a>
+<a href="#352" id="352">352</a>
+<a href="#353" id="353">353</a>
+<a href="#354" id="354">354</a>
+<a href="#355" id="355">355</a>
+<a href="#356" id="356">356</a>
+<a href="#357" id="357">357</a>
+<a href="#358" id="358">358</a>
+<a href="#359" id="359">359</a>
+<a href="#360" id="360">360</a>
+<a href="#361" id="361">361</a>
+<a href="#362" id="362">362</a>
+<a href="#363" id="363">363</a>
+<a href="#364" id="364">364</a>
+<a href="#365" id="365">365</a>
+<a href="#366" id="366">366</a>
+<a href="#367" id="367">367</a>
+<a href="#368" id="368">368</a>
+<a href="#369" id="369">369</a>
+<a href="#370" id="370">370</a>
+<a href="#371" id="371">371</a>
+<a href="#372" id="372">372</a>
+<a href="#373" id="373">373</a>
+<a href="#374" id="374">374</a>
+<a href="#375" id="375">375</a>
+<a href="#376" id="376">376</a>
+<a href="#377" id="377">377</a>
+<a href="#378" id="378">378</a>
+<a href="#379" id="379">379</a>
+<a href="#380" id="380">380</a>
+<a href="#381" id="381">381</a>
+<a href="#382" id="382">382</a>
+<a href="#383" id="383">383</a>
+<a href="#384" id="384">384</a>
+<a href="#385" id="385">385</a>
+<a href="#386" id="386">386</a>
+<a href="#387" id="387">387</a>
+<a href="#388" id="388">388</a>
+<a href="#389" id="389">389</a>
+<a href="#390" id="390">390</a>
+<a href="#391" id="391">391</a>
+<a href="#392" id="392">392</a>
+<a href="#393" id="393">393</a>
+<a href="#394" id="394">394</a>
+<a href="#395" id="395">395</a>
+<a href="#396" id="396">396</a>
+<a href="#397" id="397">397</a>
+<a href="#398" id="398">398</a>
+<a href="#399" id="399">399</a>
+<a href="#400" id="400">400</a>
+<a href="#401" id="401">401</a>
+<a href="#402" id="402">402</a>
+<a href="#403" id="403">403</a>
+<a href="#404" id="404">404</a>
+<a href="#405" id="405">405</a>
+<a href="#406" id="406">406</a>
+<a href="#407" id="407">407</a>
+<a href="#408" id="408">408</a>
+<a href="#409" id="409">409</a>
+<a href="#410" id="410">410</a>
+<a href="#411" id="411">411</a>
+<a href="#412" id="412">412</a>
+<a href="#413" id="413">413</a>
+<a href="#414" id="414">414</a>
+<a href="#415" id="415">415</a>
+<a href="#416" id="416">416</a>
+<a href="#417" id="417">417</a>
+<a href="#418" id="418">418</a>
+<a href="#419" id="419">419</a>
+<a href="#420" id="420">420</a>
+<a href="#421" id="421">421</a>
+<a href="#422" id="422">422</a>
+<a href="#423" id="423">423</a>
+<a href="#424" id="424">424</a>
+<a href="#425" id="425">425</a>
+<a href="#426" id="426">426</a>
+<a href="#427" id="427">427</a>
+<a href="#428" id="428">428</a>
+<a href="#429" id="429">429</a>
+<a href="#430" id="430">430</a>
+<a href="#431" id="431">431</a>
+<a href="#432" id="432">432</a>
+<a href="#433" id="433">433</a>
+<a href="#434" id="434">434</a>
+<a href="#435" id="435">435</a>
+<a href="#436" id="436">436</a>
+<a href="#437" id="437">437</a>
+<a href="#438" id="438">438</a>
+<a href="#439" id="439">439</a>
+<a href="#440" id="440">440</a>
+<a href="#441" id="441">441</a>
+<a href="#442" id="442">442</a>
+<a href="#443" id="443">443</a>
+<a href="#444" id="444">444</a>
+<a href="#445" id="445">445</a>
+<a href="#446" id="446">446</a>
+<a href="#447" id="447">447</a>
+<a href="#448" id="448">448</a>
+<a href="#449" id="449">449</a>
+<a href="#450" id="450">450</a>
+<a href="#451" id="451">451</a>
+<a href="#452" id="452">452</a>
+<a href="#453" id="453">453</a>
+<a href="#454" id="454">454</a>
+<a href="#455" id="455">455</a>
+<a href="#456" id="456">456</a>
+<a href="#457" id="457">457</a>
+<a href="#458" id="458">458</a>
+<a href="#459" id="459">459</a>
+<a href="#460" id="460">460</a>
+<a href="#461" id="461">461</a>
+<a href="#462" id="462">462</a>
+<a href="#463" id="463">463</a>
+<a href="#464" id="464">464</a>
+<a href="#465" id="465">465</a>
+<a href="#466" id="466">466</a>
+<a href="#467" id="467">467</a>
+<a href="#468" id="468">468</a>
+<a href="#469" id="469">469</a>
+<a href="#470" id="470">470</a>
+<a href="#471" id="471">471</a>
+<a href="#472" id="472">472</a>
+<a href="#473" id="473">473</a>
+<a href="#474" id="474">474</a>
+<a href="#475" id="475">475</a>
+<a href="#476" id="476">476</a>
+<a href="#477" id="477">477</a>
+<a href="#478" id="478">478</a>
+<a href="#479" id="479">479</a>
+<a href="#480" id="480">480</a>
+<a href="#481" id="481">481</a>
+<a href="#482" id="482">482</a>
+<a href="#483" id="483">483</a>
+<a href="#484" id="484">484</a>
+<a href="#485" id="485">485</a>
+<a href="#486" id="486">486</a>
+<a href="#487" id="487">487</a>
+<a href="#488" id="488">488</a>
+<a href="#489" id="489">489</a>
+<a href="#490" id="490">490</a>
+<a href="#491" id="491">491</a>
+<a href="#492" id="492">492</a>
+<a href="#493" id="493">493</a>
+<a href="#494" id="494">494</a>
+<a href="#495" id="495">495</a>
+<a href="#496" id="496">496</a>
+<a href="#497" id="497">497</a>
+<a href="#498" id="498">498</a>
+<a href="#499" id="499">499</a>
+<a href="#500" id="500">500</a>
+<a href="#501" id="501">501</a>
+<a href="#502" id="502">502</a>
+<a href="#503" id="503">503</a>
+<a href="#504" id="504">504</a>
+<a href="#505" id="505">505</a>
+<a href="#506" id="506">506</a>
+<a href="#507" id="507">507</a>
+<a href="#508" id="508">508</a>
+<a href="#509" id="509">509</a>
+<a href="#510" id="510">510</a>
+<a href="#511" id="511">511</a>
+<a href="#512" id="512">512</a>
+<a href="#513" id="513">513</a>
+<a href="#514" id="514">514</a>
+<a href="#515" id="515">515</a>
+<a href="#516" id="516">516</a>
+<a href="#517" id="517">517</a>
+<a href="#518" id="518">518</a>
+<a href="#519" id="519">519</a>
+<a href="#520" id="520">520</a>
+<a href="#521" id="521">521</a>
+<a href="#522" id="522">522</a>
+<a href="#523" id="523">523</a>
+<a href="#524" id="524">524</a>
+<a href="#525" id="525">525</a>
+<a href="#526" id="526">526</a>
+<a href="#527" id="527">527</a>
+<a href="#528" id="528">528</a>
+<a href="#529" id="529">529</a>
+<a href="#530" id="530">530</a>
+<a href="#531" id="531">531</a>
+<a href="#532" id="532">532</a>
+<a href="#533" id="533">533</a>
+<a href="#534" id="534">534</a>
+<a href="#535" id="535">535</a>
+<a href="#536" id="536">536</a>
+<a href="#537" id="537">537</a>
+<a href="#538" id="538">538</a>
+<a href="#539" id="539">539</a>
+<a href="#540" id="540">540</a>
+<a href="#541" id="541">541</a>
+<a href="#542" id="542">542</a>
+<a href="#543" id="543">543</a>
+<a href="#544" id="544">544</a>
+<a href="#545" id="545">545</a>
+<a href="#546" id="546">546</a>
+<a href="#547" id="547">547</a>
+<a href="#548" id="548">548</a>
+<a href="#549" id="549">549</a>
+<a href="#550" id="550">550</a>
+<a href="#551" id="551">551</a>
+<a href="#552" id="552">552</a>
+<a href="#553" id="553">553</a>
+<a href="#554" id="554">554</a>
+<a href="#555" id="555">555</a>
+<a href="#556" id="556">556</a>
+<a href="#557" id="557">557</a>
+<a href="#558" id="558">558</a>
+<a href="#559" id="559">559</a>
+<a href="#560" id="560">560</a>
+<a href="#561" id="561">561</a>
+<a href="#562" id="562">562</a>
+<a href="#563" id="563">563</a>
+<a href="#564" id="564">564</a>
+<a href="#565" id="565">565</a>
+<a href="#566" id="566">566</a>
+<a href="#567" id="567">567</a>
+<a href="#568" id="568">568</a>
+<a href="#569" id="569">569</a>
+<a href="#570" id="570">570</a>
+<a href="#571" id="571">571</a>
+<a href="#572" id="572">572</a>
+<a href="#573" id="573">573</a>
+<a href="#574" id="574">574</a>
+<a href="#575" id="575">575</a>
+<a href="#576" id="576">576</a>
+<a href="#577" id="577">577</a>
+<a href="#578" id="578">578</a>
+<a href="#579" id="579">579</a>
+<a href="#580" id="580">580</a>
+<a href="#581" id="581">581</a>
+<a href="#582" id="582">582</a>
+<a href="#583" id="583">583</a>
+<a href="#584" id="584">584</a>
+<a href="#585" id="585">585</a>
+<a href="#586" id="586">586</a>
+<a href="#587" id="587">587</a>
+<a href="#588" id="588">588</a>
+<a href="#589" id="589">589</a>
+<a href="#590" id="590">590</a>
+<a href="#591" id="591">591</a>
+<a href="#592" id="592">592</a>
+<a href="#593" id="593">593</a>
+<a href="#594" id="594">594</a>
+<a href="#595" id="595">595</a>
+<a href="#596" id="596">596</a>
+<a href="#597" id="597">597</a>
+<a href="#598" id="598">598</a>
+<a href="#599" id="599">599</a>
+<a href="#600" id="600">600</a>
+<a href="#601" id="601">601</a>
+<a href="#602" id="602">602</a>
+<a href="#603" id="603">603</a>
+<a href="#604" id="604">604</a>
+<a href="#605" id="605">605</a>
+<a href="#606" id="606">606</a>
+<a href="#607" id="607">607</a>
+<a href="#608" id="608">608</a>
+<a href="#609" id="609">609</a>
+<a href="#610" id="610">610</a>
+<a href="#611" id="611">611</a>
+<a href="#612" id="612">612</a>
+<a href="#613" id="613">613</a>
+<a href="#614" id="614">614</a>
+<a href="#615" id="615">615</a>
+<a href="#616" id="616">616</a>
+<a href="#617" id="617">617</a>
+<a href="#618" id="618">618</a>
+<a href="#619" id="619">619</a>
+<a href="#620" id="620">620</a>
+<a href="#621" id="621">621</a>
+<a href="#622" id="622">622</a>
+<a href="#623" id="623">623</a>
+<a href="#624" id="624">624</a>
+<a href="#625" id="625">625</a>
+<a href="#626" id="626">626</a>
+<a href="#627" id="627">627</a>
+<a href="#628" id="628">628</a>
+<a href="#629" id="629">629</a>
+<a href="#630" id="630">630</a>
+<a href="#631" id="631">631</a>
+<a href="#632" id="632">632</a>
+<a href="#633" id="633">633</a>
+<a href="#634" id="634">634</a>
+<a href="#635" id="635">635</a>
+<a href="#636" id="636">636</a>
+<a href="#637" id="637">637</a>
+<a href="#638" id="638">638</a>
+<a href="#639" id="639">639</a>
+<a href="#640" id="640">640</a>
+<a href="#641" id="641">641</a>
+<a href="#642" id="642">642</a>
+<a href="#643" id="643">643</a>
+<a href="#644" id="644">644</a>
+<a href="#645" id="645">645</a>
+<a href="#646" id="646">646</a>
+<a href="#647" id="647">647</a>
+<a href="#648" id="648">648</a>
+<a href="#649" id="649">649</a>
+<a href="#650" id="650">650</a>
+<a href="#651" id="651">651</a>
+<a href="#652" id="652">652</a>
+<a href="#653" id="653">653</a>
+<a href="#654" id="654">654</a>
+<a href="#655" id="655">655</a>
+<a href="#656" id="656">656</a>
+<a href="#657" id="657">657</a>
+<a href="#658" id="658">658</a>
+<a href="#659" id="659">659</a>
+<a href="#660" id="660">660</a>
+<a href="#661" id="661">661</a>
+<a href="#662" id="662">662</a>
+<a href="#663" id="663">663</a>
+<a href="#664" id="664">664</a>
+<a href="#665" id="665">665</a>
+<a href="#666" id="666">666</a>
+<a href="#667" id="667">667</a>
+<a href="#668" id="668">668</a>
+<a href="#669" id="669">669</a>
+<a href="#670" id="670">670</a>
+<a href="#671" id="671">671</a>
+<a href="#672" id="672">672</a>
+<a href="#673" id="673">673</a>
+<a href="#674" id="674">674</a>
+<a href="#675" id="675">675</a>
+<a href="#676" id="676">676</a>
+<a href="#677" id="677">677</a>
+<a href="#678" id="678">678</a>
+<a href="#679" id="679">679</a>
+<a href="#680" id="680">680</a>
+<a href="#681" id="681">681</a>
+<a href="#682" id="682">682</a>
+<a href="#683" id="683">683</a>
+<a href="#684" id="684">684</a>
+<a href="#685" id="685">685</a>
+<a href="#686" id="686">686</a>
+<a href="#687" id="687">687</a>
+<a href="#688" id="688">688</a>
+<a href="#689" id="689">689</a>
+<a href="#690" id="690">690</a>
+<a href="#691" id="691">691</a>
+<a href="#692" id="692">692</a>
+<a href="#693" id="693">693</a>
+<a href="#694" id="694">694</a>
+<a href="#695" id="695">695</a>
+<a href="#696" id="696">696</a>
+<a href="#697" id="697">697</a>
+<a href="#698" id="698">698</a>
+<a href="#699" id="699">699</a>
+<a href="#700" id="700">700</a>
+<a href="#701" id="701">701</a>
+<a href="#702" id="702">702</a>
+<a href="#703" id="703">703</a>
+<a href="#704" id="704">704</a>
+<a href="#705" id="705">705</a>
+<a href="#706" id="706">706</a>
+<a href="#707" id="707">707</a>
+<a href="#708" id="708">708</a>
+<a href="#709" id="709">709</a>
+<a href="#710" id="710">710</a>
+<a href="#711" id="711">711</a>
+<a href="#712" id="712">712</a>
+<a href="#713" id="713">713</a>
+<a href="#714" id="714">714</a>
+<a href="#715" id="715">715</a>
+<a href="#716" id="716">716</a>
+<a href="#717" id="717">717</a>
+<a href="#718" id="718">718</a>
+<a href="#719" id="719">719</a>
+<a href="#720" id="720">720</a>
+<a href="#721" id="721">721</a>
+<a href="#722" id="722">722</a>
+<a href="#723" id="723">723</a>
+<a href="#724" id="724">724</a>
+<a href="#725" id="725">725</a>
+<a href="#726" id="726">726</a>
+<a href="#727" id="727">727</a>
+<a href="#728" id="728">728</a>
+<a href="#729" id="729">729</a>
+<a href="#730" id="730">730</a>
+<a href="#731" id="731">731</a>
+<a href="#732" id="732">732</a>
+<a href="#733" id="733">733</a>
+<a href="#734" id="734">734</a>
+<a href="#735" id="735">735</a>
+<a href="#736" id="736">736</a>
+<a href="#737" id="737">737</a>
+<a href="#738" id="738">738</a>
+<a href="#739" id="739">739</a>
+<a href="#740" id="740">740</a>
+<a href="#741" id="741">741</a>
+<a href="#742" id="742">742</a>
+<a href="#743" id="743">743</a>
+<a href="#744" id="744">744</a>
+<a href="#745" id="745">745</a>
+<a href="#746" id="746">746</a>
+<a href="#747" id="747">747</a>
+<a href="#748" id="748">748</a>
+<a href="#749" id="749">749</a>
+<a href="#750" id="750">750</a>
+<a href="#751" id="751">751</a>
+<a href="#752" id="752">752</a>
+<a href="#753" id="753">753</a>
+<a href="#754" id="754">754</a>
+<a href="#755" id="755">755</a>
+<a href="#756" id="756">756</a>
+<a href="#757" id="757">757</a>
+<a href="#758" id="758">758</a>
+<a href="#759" id="759">759</a>
+<a href="#760" id="760">760</a>
+<a href="#761" id="761">761</a>
+<a href="#762" id="762">762</a>
+<a href="#763" id="763">763</a>
+<a href="#764" id="764">764</a>
+<a href="#765" id="765">765</a>
+<a href="#766" id="766">766</a>
+<a href="#767" id="767">767</a>
+<a href="#768" id="768">768</a>
+<a href="#769" id="769">769</a>
+<a href="#770" id="770">770</a>
+<a href="#771" id="771">771</a>
+<a href="#772" id="772">772</a>
+<a href="#773" id="773">773</a>
+<a href="#774" id="774">774</a>
+<a href="#775" id="775">775</a>
+<a href="#776" id="776">776</a>
+<a href="#777" id="777">777</a>
+<a href="#778" id="778">778</a>
+<a href="#779" id="779">779</a>
+<a href="#780" id="780">780</a>
+<a href="#781" id="781">781</a>
+<a href="#782" id="782">782</a>
+<a href="#783" id="783">783</a>
+<a href="#784" id="784">784</a>
+<a href="#785" id="785">785</a>
+<a href="#786" id="786">786</a>
+<a href="#787" id="787">787</a>
+<a href="#788" id="788">788</a>
+<a href="#789" id="789">789</a>
+<a href="#790" id="790">790</a>
+<a href="#791" id="791">791</a>
+<a href="#792" id="792">792</a>
+<a href="#793" id="793">793</a>
+<a href="#794" id="794">794</a>
+<a href="#795" id="795">795</a>
+<a href="#796" id="796">796</a>
+<a href="#797" id="797">797</a>
+<a href="#798" id="798">798</a>
+<a href="#799" id="799">799</a>
+<a href="#800" id="800">800</a>
+<a href="#801" id="801">801</a>
+<a href="#802" id="802">802</a>
+<a href="#803" id="803">803</a>
+<a href="#804" id="804">804</a>
+<a href="#805" id="805">805</a>
+<a href="#806" id="806">806</a>
+<a href="#807" id="807">807</a>
+<a href="#808" id="808">808</a>
+<a href="#809" id="809">809</a>
+<a href="#810" id="810">810</a>
+<a href="#811" id="811">811</a>
+<a href="#812" id="812">812</a>
+<a href="#813" id="813">813</a>
+<a href="#814" id="814">814</a>
+<a href="#815" id="815">815</a>
+<a href="#816" id="816">816</a>
+<a href="#817" id="817">817</a>
+<a href="#818" id="818">818</a>
+<a href="#819" id="819">819</a>
+<a href="#820" id="820">820</a>
+<a href="#821" id="821">821</a>
+<a href="#822" id="822">822</a>
+<a href="#823" id="823">823</a>
+<a href="#824" id="824">824</a>
+<a href="#825" id="825">825</a>
+<a href="#826" id="826">826</a>
+<a href="#827" id="827">827</a>
+<a href="#828" id="828">828</a>
+<a href="#829" id="829">829</a>
+<a href="#830" id="830">830</a>
+<a href="#831" id="831">831</a>
+<a href="#832" id="832">832</a>
+<a href="#833" id="833">833</a>
+<a href="#834" id="834">834</a>
+<a href="#835" id="835">835</a>
+<a href="#836" id="836">836</a>
+<a href="#837" id="837">837</a>
+<a href="#838" id="838">838</a>
+<a href="#839" id="839">839</a>
+<a href="#840" id="840">840</a>
+<a href="#841" id="841">841</a>
+<a href="#842" id="842">842</a>
+<a href="#843" id="843">843</a>
+<a href="#844" id="844">844</a>
+<a href="#845" id="845">845</a>
+<a href="#846" id="846">846</a>
+<a href="#847" id="847">847</a>
+<a href="#848" id="848">848</a>
+<a href="#849" id="849">849</a>
+<a href="#850" id="850">850</a>
+<a href="#851" id="851">851</a>
+<a href="#852" id="852">852</a>
+<a href="#853" id="853">853</a>
+<a href="#854" id="854">854</a>
+<a href="#855" id="855">855</a>
+<a href="#856" id="856">856</a>
+<a href="#857" id="857">857</a>
+<a href="#858" id="858">858</a>
+<a href="#859" id="859">859</a>
+<a href="#860" id="860">860</a>
+<a href="#861" id="861">861</a>
+<a href="#862" id="862">862</a>
+<a href="#863" id="863">863</a>
+<a href="#864" id="864">864</a>
+<a href="#865" id="865">865</a>
+<a href="#866" id="866">866</a>
+<a href="#867" id="867">867</a>
+<a href="#868" id="868">868</a>
+<a href="#869" id="869">869</a>
+<a href="#870" id="870">870</a>
+<a href="#871" id="871">871</a>
+<a href="#872" id="872">872</a>
+<a href="#873" id="873">873</a>
+<a href="#874" id="874">874</a>
+<a href="#875" id="875">875</a>
+<a href="#876" id="876">876</a>
+<a href="#877" id="877">877</a>
+<a href="#878" id="878">878</a>
+<a href="#879" id="879">879</a>
+<a href="#880" id="880">880</a>
+<a href="#881" id="881">881</a>
+<a href="#882" id="882">882</a>
+<a href="#883" id="883">883</a>
+<a href="#884" id="884">884</a>
+<a href="#885" id="885">885</a>
+<a href="#886" id="886">886</a>
+<a href="#887" id="887">887</a>
+<a href="#888" id="888">888</a>
+<a href="#889" id="889">889</a>
+<a href="#890" id="890">890</a>
+<a href="#891" id="891">891</a>
+<a href="#892" id="892">892</a>
+<a href="#893" id="893">893</a>
+<a href="#894" id="894">894</a>
+<a href="#895" id="895">895</a>
+<a href="#896" id="896">896</a>
+<a href="#897" id="897">897</a>
+<a href="#898" id="898">898</a>
+<a href="#899" id="899">899</a>
+<a href="#900" id="900">900</a>
+<a href="#901" id="901">901</a>
+<a href="#902" id="902">902</a>
+<a href="#903" id="903">903</a>
+<a href="#904" id="904">904</a>
+<a href="#905" id="905">905</a>
+<a href="#906" id="906">906</a>
+<a href="#907" id="907">907</a>
+<a href="#908" id="908">908</a>
+<a href="#909" id="909">909</a>
+<a href="#910" id="910">910</a>
+<a href="#911" id="911">911</a>
+<a href="#912" id="912">912</a>
+<a href="#913" id="913">913</a>
+<a href="#914" id="914">914</a>
+<a href="#915" id="915">915</a>
+<a href="#916" id="916">916</a>
+<a href="#917" id="917">917</a>
+<a href="#918" id="918">918</a>
+<a href="#919" id="919">919</a>
+<a href="#920" id="920">920</a>
+<a href="#921" id="921">921</a>
+<a href="#922" id="922">922</a>
+<a href="#923" id="923">923</a>
+<a href="#924" id="924">924</a>
+<a href="#925" id="925">925</a>
+<a href="#926" id="926">926</a>
+<a href="#927" id="927">927</a>
+<a href="#928" id="928">928</a>
+<a href="#929" id="929">929</a>
+<a href="#930" id="930">930</a>
+<a href="#931" id="931">931</a>
+<a href="#932" id="932">932</a>
+<a href="#933" id="933">933</a>
+<a href="#934" id="934">934</a>
+<a href="#935" id="935">935</a>
+<a href="#936" id="936">936</a>
+<a href="#937" id="937">937</a>
+<a href="#938" id="938">938</a>
+<a href="#939" id="939">939</a>
+<a href="#940" id="940">940</a>
+<a href="#941" id="941">941</a>
+<a href="#942" id="942">942</a>
+<a href="#943" id="943">943</a>
+<a href="#944" id="944">944</a>
+<a href="#945" id="945">945</a>
+<a href="#946" id="946">946</a>
+<a href="#947" id="947">947</a>
+<a href="#948" id="948">948</a>
+<a href="#949" id="949">949</a>
+<a href="#950" id="950">950</a>
+<a href="#951" id="951">951</a>
+<a href="#952" id="952">952</a>
+<a href="#953" id="953">953</a>
+<a href="#954" id="954">954</a>
+<a href="#955" id="955">955</a>
+<a href="#956" id="956">956</a>
+<a href="#957" id="957">957</a>
+<a href="#958" id="958">958</a>
+<a href="#959" id="959">959</a>
+<a href="#960" id="960">960</a>
+<a href="#961" id="961">961</a>
+<a href="#962" id="962">962</a>
+<a href="#963" id="963">963</a>
+<a href="#964" id="964">964</a>
+<a href="#965" id="965">965</a>
+<a href="#966" id="966">966</a>
+<a href="#967" id="967">967</a>
+<a href="#968" id="968">968</a>
+<a href="#969" id="969">969</a>
+<a href="#970" id="970">970</a>
+<a href="#971" id="971">971</a>
+<a href="#972" id="972">972</a>
+<a href="#973" id="973">973</a>
+<a href="#974" id="974">974</a>
+<a href="#975" id="975">975</a>
+<a href="#976" id="976">976</a>
+<a href="#977" id="977">977</a>
+<a href="#978" id="978">978</a>
+<a href="#979" id="979">979</a>
+<a href="#980" id="980">980</a>
+<a href="#981" id="981">981</a>
+<a href="#982" id="982">982</a>
+<a href="#983" id="983">983</a>
+<a href="#984" id="984">984</a>
+<a href="#985" id="985">985</a>
+<a href="#986" id="986">986</a>
+<a href="#987" id="987">987</a>
+<a href="#988" id="988">988</a>
+<a href="#989" id="989">989</a>
+<a href="#990" id="990">990</a>
+<a href="#991" id="991">991</a>
+<a href="#992" id="992">992</a>
+<a href="#993" id="993">993</a>
+<a href="#994" id="994">994</a>
+<a href="#995" id="995">995</a>
+<a href="#996" id="996">996</a>
+<a href="#997" id="997">997</a>
+<a href="#998" id="998">998</a>
+<a href="#999" id="999">999</a>
+<a href="#1000" id="1000">1000</a>
+<a href="#1001" id="1001">1001</a>
+<a href="#1002" id="1002">1002</a>
+<a href="#1003" id="1003">1003</a>
+<a href="#1004" id="1004">1004</a>
+<a href="#1005" id="1005">1005</a>
+<a href="#1006" id="1006">1006</a>
+<a href="#1007" id="1007">1007</a>
+<a href="#1008" id="1008">1008</a>
+<a href="#1009" id="1009">1009</a>
+<a href="#1010" id="1010">1010</a>
+<a href="#1011" id="1011">1011</a>
+<a href="#1012" id="1012">1012</a>
+<a href="#1013" id="1013">1013</a>
+<a href="#1014" id="1014">1014</a>
+<a href="#1015" id="1015">1015</a>
+<a href="#1016" id="1016">1016</a>
+<a href="#1017" id="1017">1017</a>
+<a href="#1018" id="1018">1018</a>
+<a href="#1019" id="1019">1019</a>
+<a href="#1020" id="1020">1020</a>
+<a href="#1021" id="1021">1021</a>
+<a href="#1022" id="1022">1022</a>
+<a href="#1023" id="1023">1023</a>
+<a href="#1024" id="1024">1024</a>
+<a href="#1025" id="1025">1025</a>
+<a href="#1026" id="1026">1026</a>
+<a href="#1027" id="1027">1027</a>
+<a href="#1028" id="1028">1028</a>
+<a href="#1029" id="1029">1029</a>
+<a href="#1030" id="1030">1030</a>
+<a href="#1031" id="1031">1031</a>
+<a href="#1032" id="1032">1032</a>
+<a href="#1033" id="1033">1033</a>
+<a href="#1034" id="1034">1034</a>
+<a href="#1035" id="1035">1035</a>
+<a href="#1036" id="1036">1036</a>
+<a href="#1037" id="1037">1037</a>
+<a href="#1038" id="1038">1038</a>
+<a href="#1039" id="1039">1039</a>
+<a href="#1040" id="1040">1040</a>
+<a href="#1041" id="1041">1041</a>
+<a href="#1042" id="1042">1042</a>
+<a href="#1043" id="1043">1043</a>
+<a href="#1044" id="1044">1044</a>
+<a href="#1045" id="1045">1045</a>
+<a href="#1046" id="1046">1046</a>
+<a href="#1047" id="1047">1047</a>
+<a href="#1048" id="1048">1048</a>
+<a href="#1049" id="1049">1049</a>
+<a href="#1050" id="1050">1050</a>
+<a href="#1051" id="1051">1051</a>
+<a href="#1052" id="1052">1052</a>
+<a href="#1053" id="1053">1053</a>
+<a href="#1054" id="1054">1054</a>
+<a href="#1055" id="1055">1055</a>
+<a href="#1056" id="1056">1056</a>
+<a href="#1057" id="1057">1057</a>
+<a href="#1058" id="1058">1058</a>
+<a href="#1059" id="1059">1059</a>
+<a href="#1060" id="1060">1060</a>
+<a href="#1061" id="1061">1061</a>
+<a href="#1062" id="1062">1062</a>
+<a href="#1063" id="1063">1063</a>
+<a href="#1064" id="1064">1064</a>
+<a href="#1065" id="1065">1065</a>
+<a href="#1066" id="1066">1066</a>
+<a href="#1067" id="1067">1067</a>
+<a href="#1068" id="1068">1068</a>
+<a href="#1069" id="1069">1069</a>
+<a href="#1070" id="1070">1070</a>
+<a href="#1071" id="1071">1071</a>
+<a href="#1072" id="1072">1072</a>
+<a href="#1073" id="1073">1073</a>
+<a href="#1074" id="1074">1074</a>
+<a href="#1075" id="1075">1075</a>
+<a href="#1076" id="1076">1076</a>
+<a href="#1077" id="1077">1077</a>
+<a href="#1078" id="1078">1078</a>
+<a href="#1079" id="1079">1079</a>
+<a href="#1080" id="1080">1080</a>
+<a href="#1081" id="1081">1081</a>
+<a href="#1082" id="1082">1082</a>
+<a href="#1083" id="1083">1083</a>
+<a href="#1084" id="1084">1084</a>
+<a href="#1085" id="1085">1085</a>
+<a href="#1086" id="1086">1086</a>
+<a href="#1087" id="1087">1087</a>
+<a href="#1088" id="1088">1088</a>
+<a href="#1089" id="1089">1089</a>
+<a href="#1090" id="1090">1090</a>
+<a href="#1091" id="1091">1091</a>
+<a href="#1092" id="1092">1092</a>
+<a href="#1093" id="1093">1093</a>
+<a href="#1094" id="1094">1094</a>
+<a href="#1095" id="1095">1095</a>
+<a href="#1096" id="1096">1096</a>
+<a href="#1097" id="1097">1097</a>
+<a href="#1098" id="1098">1098</a>
+<a href="#1099" id="1099">1099</a>
+<a href="#1100" id="1100">1100</a>
+<a href="#1101" id="1101">1101</a>
+<a href="#1102" id="1102">1102</a>
+<a href="#1103" id="1103">1103</a>
+<a href="#1104" id="1104">1104</a>
+<a href="#1105" id="1105">1105</a>
+<a href="#1106" id="1106">1106</a>
+<a href="#1107" id="1107">1107</a>
+<a href="#1108" id="1108">1108</a>
+<a href="#1109" id="1109">1109</a>
+<a href="#1110" id="1110">1110</a>
+<a href="#1111" id="1111">1111</a>
+<a href="#1112" id="1112">1112</a>
+<a href="#1113" id="1113">1113</a>
+<a href="#1114" id="1114">1114</a>
+<a href="#1115" id="1115">1115</a>
+<a href="#1116" id="1116">1116</a>
+<a href="#1117" id="1117">1117</a>
+<a href="#1118" id="1118">1118</a>
+<a href="#1119" id="1119">1119</a>
+<a href="#1120" id="1120">1120</a>
+<a href="#1121" id="1121">1121</a>
+<a href="#1122" id="1122">1122</a>
+<a href="#1123" id="1123">1123</a>
+<a href="#1124" id="1124">1124</a>
+<a href="#1125" id="1125">1125</a>
+<a href="#1126" id="1126">1126</a>
+<a href="#1127" id="1127">1127</a>
+<a href="#1128" id="1128">1128</a>
+<a href="#1129" id="1129">1129</a>
+<a href="#1130" id="1130">1130</a>
+<a href="#1131" id="1131">1131</a>
+<a href="#1132" id="1132">1132</a>
+<a href="#1133" id="1133">1133</a>
+<a href="#1134" id="1134">1134</a>
+<a href="#1135" id="1135">1135</a>
+<a href="#1136" id="1136">1136</a>
+<a href="#1137" id="1137">1137</a>
+<a href="#1138" id="1138">1138</a>
+<a href="#1139" id="1139">1139</a>
+<a href="#1140" id="1140">1140</a>
+<a href="#1141" id="1141">1141</a>
+<a href="#1142" id="1142">1142</a>
+<a href="#1143" id="1143">1143</a>
+<a href="#1144" id="1144">1144</a>
+<a href="#1145" id="1145">1145</a>
+<a href="#1146" id="1146">1146</a>
+<a href="#1147" id="1147">1147</a>
+<a href="#1148" id="1148">1148</a>
+<a href="#1149" id="1149">1149</a>
+<a href="#1150" id="1150">1150</a>
+<a href="#1151" id="1151">1151</a>
+<a href="#1152" id="1152">1152</a>
+<a href="#1153" id="1153">1153</a>
+<a href="#1154" id="1154">1154</a>
+<a href="#1155" id="1155">1155</a>
+<a href="#1156" id="1156">1156</a>
+<a href="#1157" id="1157">1157</a>
+<a href="#1158" id="1158">1158</a>
+<a href="#1159" id="1159">1159</a>
+<a href="#1160" id="1160">1160</a>
+<a href="#1161" id="1161">1161</a>
+<a href="#1162" id="1162">1162</a>
+<a href="#1163" id="1163">1163</a>
+<a href="#1164" id="1164">1164</a>
+<a href="#1165" id="1165">1165</a>
+<a href="#1166" id="1166">1166</a>
+<a href="#1167" id="1167">1167</a>
+<a href="#1168" id="1168">1168</a>
+<a href="#1169" id="1169">1169</a>
+<a href="#1170" id="1170">1170</a>
+<a href="#1171" id="1171">1171</a>
+<a href="#1172" id="1172">1172</a>
+<a href="#1173" id="1173">1173</a>
+<a href="#1174" id="1174">1174</a>
+<a href="#1175" id="1175">1175</a>
+<a href="#1176" id="1176">1176</a>
+<a href="#1177" id="1177">1177</a>
+<a href="#1178" id="1178">1178</a>
+<a href="#1179" id="1179">1179</a>
+<a href="#1180" id="1180">1180</a>
+<a href="#1181" id="1181">1181</a>
+<a href="#1182" id="1182">1182</a>
+<a href="#1183" id="1183">1183</a>
+<a href="#1184" id="1184">1184</a>
+<a href="#1185" id="1185">1185</a>
+<a href="#1186" id="1186">1186</a>
+<a href="#1187" id="1187">1187</a>
+<a href="#1188" id="1188">1188</a>
+<a href="#1189" id="1189">1189</a>
+<a href="#1190" id="1190">1190</a>
+<a href="#1191" id="1191">1191</a>
+<a href="#1192" id="1192">1192</a>
+<a href="#1193" id="1193">1193</a>
+</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
+// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
+//
+// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
+//
+// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
+// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// You may not use this file except in accordance with one or both of these
+// licenses.
+
+</span><span class="doccomment">//! Generalized signers
+//!
+//! This module provides the ability to add customized signers to a [`Wallet`](super::Wallet)
+//! through the [`Wallet::add_signer`](super::Wallet::add_signer) function.
+//!
+//! ```
+//! # use alloc::sync::Arc;
+//! # use core::str::FromStr;
+//! # use bitcoin::secp256k1::{Secp256k1, All};
+//! # use bitcoin::*;
+//! # use bdk_wallet::signer::*;
+//! # use bdk_wallet::*;
+//! # #[derive(Debug)]
+//! # struct CustomHSM;
+//! # impl CustomHSM {
+//! # fn hsm_sign_input(&self, _psbt: &mut Psbt, _input: usize) -> Result<(), SignerError> {
+//! # Ok(())
+//! # }
+//! # fn connect() -> Self {
+//! # CustomHSM
+//! # }
+//! # fn get_id(&self) -> SignerId {
+//! # SignerId::Dummy(0)
+//! # }
+//! # }
+//! #[derive(Debug)]
+//! struct CustomSigner {
+//! device: CustomHSM,
+//! }
+//!
+//! impl CustomSigner {
+//! fn connect() -> Self {
+//! CustomSigner { device: CustomHSM::connect() }
+//! }
+//! }
+//!
+//! impl SignerCommon for CustomSigner {
+//! fn id(&self, _secp: &Secp256k1<All>) -> SignerId {
+//! self.device.get_id()
+//! }
+//! }
+//!
+//! impl InputSigner for CustomSigner {
+//! fn sign_input(
+//! &self,
+//! psbt: &mut Psbt,
+//! input_index: usize,
+//! _sign_options: &SignOptions,
+//! _secp: &Secp256k1<All>,
+//! ) -> Result<(), SignerError> {
+//! self.device.hsm_sign_input(psbt, input_index)?;
+//!
+//! Ok(())
+//! }
+//! }
+//!
+//! let custom_signer = CustomSigner::connect();
+//!
+//! let descriptor = "wpkh(tpubD6NzVbkrYhZ4Xferm7Pz4VnjdcDPFyjVu5K4iZXQ4pVN8Cks4pHVowTBXBKRhX64pkRyJZJN5xAKj4UDNnLPb5p2sSKXhewoYx5GbTdUFWq/*)";
+//! let mut wallet = Wallet::new_no_persist(descriptor, None, Network::Testnet)?;
+//! wallet.add_signer(
+//! KeychainKind::External,
+//! SignerOrdering(200),
+//! Arc::new(custom_signer)
+//! );
+//!
+//! # Ok::<_, anyhow::Error>(())
+//! ```
+
+</span><span class="kw">use </span><span class="kw">crate</span>::collections::BTreeMap;
+<span class="kw">use </span>alloc::string::String;
+<span class="kw">use </span>alloc::sync::Arc;
+<span class="kw">use </span>alloc::vec::Vec;
+<span class="kw">use </span>core::cmp::Ordering;
+<span class="kw">use </span>core::fmt;
+<span class="kw">use </span>core::ops::{Bound::Included, Deref};
+
+<span class="kw">use </span>bitcoin::bip32::{ChildNumber, DerivationPath, Fingerprint, Xpriv};
+<span class="kw">use </span>bitcoin::hashes::hash160;
+<span class="kw">use </span>bitcoin::secp256k1::Message;
+<span class="kw">use </span>bitcoin::sighash::{EcdsaSighashType, TapSighash, TapSighashType};
+<span class="kw">use </span>bitcoin::{ecdsa, psbt, sighash, taproot};
+<span class="kw">use </span>bitcoin::{key::TapTweak, key::XOnlyPublicKey, secp256k1};
+<span class="kw">use </span>bitcoin::{PrivateKey, Psbt, PublicKey};
+
+<span class="kw">use </span>miniscript::descriptor::{
+ Descriptor, DescriptorMultiXKey, DescriptorPublicKey, DescriptorSecretKey, DescriptorXKey,
+ InnerXKey, KeyMap, SinglePriv, SinglePubKey,
+};
+<span class="kw">use </span>miniscript::{Legacy, Segwitv0, SigType, Tap, ToPublicKey};
+
+<span class="kw">use </span><span class="kw">super</span>::utils::SecpCtx;
+<span class="kw">use </span><span class="kw">crate</span>::descriptor::{DescriptorMeta, XKeyUtils};
+<span class="kw">use </span><span class="kw">crate</span>::psbt::PsbtUtils;
+<span class="kw">use </span><span class="kw">crate</span>::wallet::error::MiniscriptPsbtError;
+
+<span class="doccomment">/// Identifier of a signer in the `SignersContainers`. Used as a key to find the right signer among
+/// multiple of them
+</span><span class="attr">#[derive(Debug, Clone, Ord, PartialOrd, PartialEq, Eq, Hash)]
+</span><span class="kw">pub enum </span>SignerId {
+ <span class="doccomment">/// Bitcoin HASH160 (RIPEMD160 after SHA256) hash of an ECDSA public key
+ </span>PkHash(hash160::Hash),
+ <span class="doccomment">/// The fingerprint of a BIP32 extended key
+ </span>Fingerprint(Fingerprint),
+ <span class="doccomment">/// Dummy identifier
+ </span>Dummy(u64),
+}
+
+<span class="kw">impl </span>From<hash160::Hash> <span class="kw">for </span>SignerId {
+ <span class="kw">fn </span>from(hash: hash160::Hash) -> SignerId {
+ SignerId::PkHash(hash)
+ }
+}
+
+<span class="kw">impl </span>From<Fingerprint> <span class="kw">for </span>SignerId {
+ <span class="kw">fn </span>from(fing: Fingerprint) -> SignerId {
+ SignerId::Fingerprint(fing)
+ }
+}
+
+<span class="doccomment">/// Signing error
+</span><span class="attr">#[derive(Debug)]
+</span><span class="kw">pub enum </span>SignerError {
+ <span class="doccomment">/// The private key is missing for the required public key
+ </span>MissingKey,
+ <span class="doccomment">/// The private key in use has the right fingerprint but derives differently than expected
+ </span>InvalidKey,
+ <span class="doccomment">/// The user canceled the operation
+ </span>UserCanceled,
+ <span class="doccomment">/// Input index is out of range
+ </span>InputIndexOutOfRange,
+ <span class="doccomment">/// The `non_witness_utxo` field of the transaction is required to sign this input
+ </span>MissingNonWitnessUtxo,
+ <span class="doccomment">/// The `non_witness_utxo` specified is invalid
+ </span>InvalidNonWitnessUtxo,
+ <span class="doccomment">/// The `witness_utxo` field of the transaction is required to sign this input
+ </span>MissingWitnessUtxo,
+ <span class="doccomment">/// The `witness_script` field of the transaction is required to sign this input
+ </span>MissingWitnessScript,
+ <span class="doccomment">/// The fingerprint and derivation path are missing from the psbt input
+ </span>MissingHdKeypath,
+ <span class="doccomment">/// The psbt contains a non-`SIGHASH_ALL` sighash in one of its input and the user hasn't
+ /// explicitly allowed them
+ ///
+ /// To enable signing transactions with non-standard sighashes set
+ /// [`SignOptions::allow_all_sighashes`] to `true`.
+ </span>NonStandardSighash,
+ <span class="doccomment">/// Invalid SIGHASH for the signing context in use
+ </span>InvalidSighash,
+ <span class="doccomment">/// Error while computing the hash to sign
+ </span>SighashError(sighash::Error),
+ <span class="doccomment">/// Miniscript PSBT error
+ </span>MiniscriptPsbt(MiniscriptPsbtError),
+ <span class="doccomment">/// To be used only by external libraries implementing [`InputSigner`] or
+ /// [`TransactionSigner`], so that they can return their own custom errors, without having to
+ /// modify [`SignerError`] in BDK.
+ </span>External(String),
+}
+
+<span class="kw">impl </span>From<sighash::Error> <span class="kw">for </span>SignerError {
+ <span class="kw">fn </span>from(e: sighash::Error) -> <span class="self">Self </span>{
+ SignerError::SighashError(e)
+ }
+}
+
+<span class="kw">impl </span>fmt::Display <span class="kw">for </span>SignerError {
+ <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
+ <span class="kw">match </span><span class="self">self </span>{
+ <span class="self">Self</span>::MissingKey => <span class="macro">write!</span>(f, <span class="string">"Missing private key"</span>),
+ <span class="self">Self</span>::InvalidKey => <span class="macro">write!</span>(f, <span class="string">"The private key in use has the right fingerprint but derives differently than expected"</span>),
+ <span class="self">Self</span>::UserCanceled => <span class="macro">write!</span>(f, <span class="string">"The user canceled the operation"</span>),
+ <span class="self">Self</span>::InputIndexOutOfRange => <span class="macro">write!</span>(f, <span class="string">"Input index out of range"</span>),
+ <span class="self">Self</span>::MissingNonWitnessUtxo => <span class="macro">write!</span>(f, <span class="string">"Missing non-witness UTXO"</span>),
+ <span class="self">Self</span>::InvalidNonWitnessUtxo => <span class="macro">write!</span>(f, <span class="string">"Invalid non-witness UTXO"</span>),
+ <span class="self">Self</span>::MissingWitnessUtxo => <span class="macro">write!</span>(f, <span class="string">"Missing witness UTXO"</span>),
+ <span class="self">Self</span>::MissingWitnessScript => <span class="macro">write!</span>(f, <span class="string">"Missing witness script"</span>),
+ <span class="self">Self</span>::MissingHdKeypath => <span class="macro">write!</span>(f, <span class="string">"Missing fingerprint and derivation path"</span>),
+ <span class="self">Self</span>::NonStandardSighash => <span class="macro">write!</span>(f, <span class="string">"The psbt contains a non standard sighash"</span>),
+ <span class="self">Self</span>::InvalidSighash => <span class="macro">write!</span>(f, <span class="string">"Invalid SIGHASH for the signing context in use"</span>),
+ <span class="self">Self</span>::SighashError(err) => <span class="macro">write!</span>(f, <span class="string">"Error while computing the hash to sign: {}"</span>, err),
+ <span class="self">Self</span>::MiniscriptPsbt(err) => <span class="macro">write!</span>(f, <span class="string">"Miniscript PSBT error: {}"</span>, err),
+ <span class="self">Self</span>::External(err) => <span class="macro">write!</span>(f, <span class="string">"{}"</span>, err),
+ }
+ }
+}
+
+<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
+</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>SignerError {}
+
+<span class="doccomment">/// Signing context
+///
+/// Used by our software signers to determine the type of signatures to make
+</span><span class="attr">#[derive(Debug, Clone, Copy, PartialEq, Eq)]
+</span><span class="kw">pub enum </span>SignerContext {
+ <span class="doccomment">/// Legacy context
+ </span>Legacy,
+ <span class="doccomment">/// Segwit v0 context (BIP 143)
+ </span>Segwitv0,
+ <span class="doccomment">/// Taproot context (BIP 340)
+ </span>Tap {
+ <span class="doccomment">/// Whether the signer can sign for the internal key or not
+ </span>is_internal_key: bool,
+ },
+}
+
+<span class="doccomment">/// Wrapper to pair a signer with its context
+</span><span class="attr">#[derive(Debug, Clone)]
+</span><span class="kw">pub struct </span>SignerWrapper<S: Sized + fmt::Debug + Clone> {
+ signer: S,
+ ctx: SignerContext,
+}
+
+<span class="kw">impl</span><S: Sized + fmt::Debug + Clone> SignerWrapper<S> {
+ <span class="doccomment">/// Create a wrapped signer from a signer and a context
+ </span><span class="kw">pub fn </span>new(signer: S, ctx: SignerContext) -> <span class="self">Self </span>{
+ SignerWrapper { signer, ctx }
+ }
+}
+
+<span class="kw">impl</span><S: Sized + fmt::Debug + Clone> Deref <span class="kw">for </span>SignerWrapper<S> {
+ <span class="kw">type </span>Target = S;
+
+ <span class="kw">fn </span>deref(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span><span class="self">Self</span>::Target {
+ <span class="kw-2">&</span><span class="self">self</span>.signer
+ }
+}
+
+<span class="doccomment">/// Common signer methods
+</span><span class="kw">pub trait </span>SignerCommon: fmt::Debug + Send + Sync {
+ <span class="doccomment">/// Return the [`SignerId`] for this signer
+ ///
+ /// The [`SignerId`] can be used to lookup a signer in the [`Wallet`](crate::Wallet)'s signers map or to
+ /// compare two signers.
+ </span><span class="kw">fn </span>id(<span class="kw-2">&</span><span class="self">self</span>, secp: <span class="kw-2">&</span>SecpCtx) -> SignerId;
+
+ <span class="doccomment">/// Return the secret key for the signer
+ ///
+ /// This is used internally to reconstruct the original descriptor that may contain secrets.
+ /// External signers that are meant to keep key isolated should just return `None` here (which
+ /// is the default for this method, if not overridden).
+ </span><span class="kw">fn </span>descriptor_secret_key(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Option</span><DescriptorSecretKey> {
+ <span class="prelude-val">None
+ </span>}
+}
+
+<span class="doccomment">/// PSBT Input signer
+///
+/// This trait can be implemented to provide custom signers to the wallet. If the signer supports signing
+/// individual inputs, this trait should be implemented and BDK will provide automatically an implementation
+/// for [`TransactionSigner`].
+</span><span class="kw">pub trait </span>InputSigner: SignerCommon {
+ <span class="doccomment">/// Sign a single psbt input
+ </span><span class="kw">fn </span>sign_input(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ psbt: <span class="kw-2">&mut </span>Psbt,
+ input_index: usize,
+ sign_options: <span class="kw-2">&</span>SignOptions,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> <span class="prelude-ty">Result</span><(), SignerError>;
+}
+
+<span class="doccomment">/// PSBT signer
+///
+/// This trait can be implemented when the signer can't sign inputs individually, but signs the whole transaction
+/// at once.
+</span><span class="kw">pub trait </span>TransactionSigner: SignerCommon {
+ <span class="doccomment">/// Sign all the inputs of the psbt
+ </span><span class="kw">fn </span>sign_transaction(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ psbt: <span class="kw-2">&mut </span>Psbt,
+ sign_options: <span class="kw-2">&</span>SignOptions,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> <span class="prelude-ty">Result</span><(), SignerError>;
+}
+
+<span class="kw">impl</span><T: InputSigner> TransactionSigner <span class="kw">for </span>T {
+ <span class="kw">fn </span>sign_transaction(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ psbt: <span class="kw-2">&mut </span>Psbt,
+ sign_options: <span class="kw-2">&</span>SignOptions,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> <span class="prelude-ty">Result</span><(), SignerError> {
+ <span class="kw">for </span>input_index <span class="kw">in </span><span class="number">0</span>..psbt.inputs.len() {
+ <span class="self">self</span>.sign_input(psbt, input_index, sign_options, secp)<span class="question-mark">?</span>;
+ }
+
+ <span class="prelude-val">Ok</span>(())
+ }
+}
+
+<span class="kw">impl </span>SignerCommon <span class="kw">for </span>SignerWrapper<DescriptorXKey<Xpriv>> {
+ <span class="kw">fn </span>id(<span class="kw-2">&</span><span class="self">self</span>, secp: <span class="kw-2">&</span>SecpCtx) -> SignerId {
+ SignerId::from(<span class="self">self</span>.root_fingerprint(secp))
+ }
+
+ <span class="kw">fn </span>descriptor_secret_key(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Option</span><DescriptorSecretKey> {
+ <span class="prelude-val">Some</span>(DescriptorSecretKey::XPrv(<span class="self">self</span>.signer.clone()))
+ }
+}
+
+<span class="kw">impl </span>InputSigner <span class="kw">for </span>SignerWrapper<DescriptorXKey<Xpriv>> {
+ <span class="kw">fn </span>sign_input(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ psbt: <span class="kw-2">&mut </span>Psbt,
+ input_index: usize,
+ sign_options: <span class="kw-2">&</span>SignOptions,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> <span class="prelude-ty">Result</span><(), SignerError> {
+ <span class="kw">if </span>input_index >= psbt.inputs.len() {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(SignerError::InputIndexOutOfRange);
+ }
+
+ <span class="kw">if </span>psbt.inputs[input_index].final_script_sig.is_some()
+ || psbt.inputs[input_index].final_script_witness.is_some()
+ {
+ <span class="kw">return </span><span class="prelude-val">Ok</span>(());
+ }
+
+ <span class="kw">let </span>tap_key_origins = psbt.inputs[input_index]
+ .tap_key_origins
+ .iter()
+ .map(|(pk, (<span class="kw">_</span>, keysource))| (SinglePubKey::XOnly(<span class="kw-2">*</span>pk), keysource));
+ <span class="kw">let </span>(public_key, full_path) = <span class="kw">match </span>psbt.inputs[input_index]
+ .bip32_derivation
+ .iter()
+ .map(|(pk, keysource)| (SinglePubKey::FullKey(PublicKey::new(<span class="kw-2">*</span>pk)), keysource))
+ .chain(tap_key_origins)
+ .find_map(|(pk, keysource)| {
+ <span class="kw">if </span><span class="self">self</span>.matches(keysource, secp).is_some() {
+ <span class="prelude-val">Some</span>((pk, keysource.<span class="number">1</span>.clone()))
+ } <span class="kw">else </span>{
+ <span class="prelude-val">None
+ </span>}
+ }) {
+ <span class="prelude-val">Some</span>((pk, full_path)) => (pk, full_path),
+ <span class="prelude-val">None </span>=> <span class="kw">return </span><span class="prelude-val">Ok</span>(()),
+ };
+
+ <span class="kw">let </span>derived_key = <span class="kw">match </span><span class="self">self</span>.origin.clone() {
+ <span class="prelude-val">Some</span>((_fingerprint, origin_path)) => {
+ <span class="kw">let </span>deriv_path = DerivationPath::from(
+ <span class="kw-2">&</span>full_path.into_iter().cloned().collect::<Vec<ChildNumber>>()
+ [origin_path.len()..],
+ );
+ <span class="self">self</span>.xkey.derive_priv(secp, <span class="kw-2">&</span>deriv_path).unwrap()
+ }
+ <span class="prelude-val">None </span>=> <span class="self">self</span>.xkey.derive_priv(secp, <span class="kw-2">&</span>full_path).unwrap(),
+ };
+
+ <span class="kw">let </span>computed_pk = secp256k1::PublicKey::from_secret_key(secp, <span class="kw-2">&</span>derived_key.private_key);
+ <span class="kw">let </span>valid_key = <span class="kw">match </span>public_key {
+ SinglePubKey::FullKey(pk) <span class="kw">if </span>pk.inner == computed_pk => <span class="bool-val">true</span>,
+ SinglePubKey::XOnly(x_only) <span class="kw">if </span>XOnlyPublicKey::from(computed_pk) == x_only => <span class="bool-val">true</span>,
+ <span class="kw">_ </span>=> <span class="bool-val">false</span>,
+ };
+ <span class="kw">if </span>!valid_key {
+ <span class="prelude-val">Err</span>(SignerError::InvalidKey)
+ } <span class="kw">else </span>{
+ <span class="comment">// HD wallets imply compressed keys
+ </span><span class="kw">let </span>priv_key = PrivateKey {
+ compressed: <span class="bool-val">true</span>,
+ network: <span class="self">self</span>.xkey.network,
+ inner: derived_key.private_key,
+ };
+
+ SignerWrapper::new(priv_key, <span class="self">self</span>.ctx).sign_input(psbt, input_index, sign_options, secp)
+ }
+ }
+}
+
+<span class="kw">fn </span>multikey_to_xkeys<K: InnerXKey + Clone>(
+ multikey: DescriptorMultiXKey<K>,
+) -> Vec<DescriptorXKey<K>> {
+ multikey
+ .derivation_paths
+ .into_paths()
+ .into_iter()
+ .map(|derivation_path| DescriptorXKey {
+ origin: multikey.origin.clone(),
+ xkey: multikey.xkey.clone(),
+ derivation_path,
+ wildcard: multikey.wildcard,
+ })
+ .collect()
+}
+
+<span class="kw">impl </span>SignerCommon <span class="kw">for </span>SignerWrapper<DescriptorMultiXKey<Xpriv>> {
+ <span class="kw">fn </span>id(<span class="kw-2">&</span><span class="self">self</span>, secp: <span class="kw-2">&</span>SecpCtx) -> SignerId {
+ SignerId::from(<span class="self">self</span>.root_fingerprint(secp))
+ }
+
+ <span class="kw">fn </span>descriptor_secret_key(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Option</span><DescriptorSecretKey> {
+ <span class="prelude-val">Some</span>(DescriptorSecretKey::MultiXPrv(<span class="self">self</span>.signer.clone()))
+ }
+}
+
+<span class="kw">impl </span>InputSigner <span class="kw">for </span>SignerWrapper<DescriptorMultiXKey<Xpriv>> {
+ <span class="kw">fn </span>sign_input(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ psbt: <span class="kw-2">&mut </span>Psbt,
+ input_index: usize,
+ sign_options: <span class="kw-2">&</span>SignOptions,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> <span class="prelude-ty">Result</span><(), SignerError> {
+ <span class="kw">let </span>xkeys = multikey_to_xkeys(<span class="self">self</span>.signer.clone());
+ <span class="kw">for </span>xkey <span class="kw">in </span>xkeys {
+ SignerWrapper::new(xkey, <span class="self">self</span>.ctx).sign_input(psbt, input_index, sign_options, secp)<span class="question-mark">?
+ </span>}
+ <span class="prelude-val">Ok</span>(())
+ }
+}
+
+<span class="kw">impl </span>SignerCommon <span class="kw">for </span>SignerWrapper<PrivateKey> {
+ <span class="kw">fn </span>id(<span class="kw-2">&</span><span class="self">self</span>, secp: <span class="kw-2">&</span>SecpCtx) -> SignerId {
+ SignerId::from(<span class="self">self</span>.public_key(secp).to_pubkeyhash(SigType::Ecdsa))
+ }
+
+ <span class="kw">fn </span>descriptor_secret_key(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Option</span><DescriptorSecretKey> {
+ <span class="prelude-val">Some</span>(DescriptorSecretKey::Single(SinglePriv {
+ key: <span class="self">self</span>.signer,
+ origin: <span class="prelude-val">None</span>,
+ }))
+ }
+}
+
+<span class="kw">impl </span>InputSigner <span class="kw">for </span>SignerWrapper<PrivateKey> {
+ <span class="kw">fn </span>sign_input(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ psbt: <span class="kw-2">&mut </span>Psbt,
+ input_index: usize,
+ sign_options: <span class="kw-2">&</span>SignOptions,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> <span class="prelude-ty">Result</span><(), SignerError> {
+ <span class="kw">if </span>input_index >= psbt.inputs.len() || input_index >= psbt.unsigned_tx.input.len() {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(SignerError::InputIndexOutOfRange);
+ }
+
+ <span class="kw">if </span>psbt.inputs[input_index].final_script_sig.is_some()
+ || psbt.inputs[input_index].final_script_witness.is_some()
+ {
+ <span class="kw">return </span><span class="prelude-val">Ok</span>(());
+ }
+
+ <span class="kw">let </span>pubkey = PublicKey::from_private_key(secp, <span class="self">self</span>);
+ <span class="kw">let </span>x_only_pubkey = XOnlyPublicKey::from(pubkey.inner);
+
+ <span class="kw">if let </span>SignerContext::Tap { is_internal_key } = <span class="self">self</span>.ctx {
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(psbt_internal_key) = psbt.inputs[input_index].tap_internal_key {
+ <span class="kw">if </span>is_internal_key
+ && psbt.inputs[input_index].tap_key_sig.is_none()
+ && sign_options.sign_with_tap_internal_key
+ && x_only_pubkey == psbt_internal_key
+ {
+ <span class="kw">let </span>(hash, hash_ty) = Tap::sighash(psbt, input_index, <span class="prelude-val">None</span>)<span class="question-mark">?</span>;
+ sign_psbt_schnorr(
+ <span class="kw-2">&</span><span class="self">self</span>.inner,
+ x_only_pubkey,
+ <span class="prelude-val">None</span>,
+ <span class="kw-2">&mut </span>psbt.inputs[input_index],
+ hash,
+ hash_ty,
+ secp,
+ );
+ }
+ }
+
+ <span class="kw">if let </span><span class="prelude-val">Some</span>((leaf_hashes, <span class="kw">_</span>)) =
+ psbt.inputs[input_index].tap_key_origins.get(<span class="kw-2">&</span>x_only_pubkey)
+ {
+ <span class="kw">let </span>leaf_hashes = leaf_hashes
+ .iter()
+ .filter(|lh| {
+ <span class="comment">// Removing the leaves we shouldn't sign for
+ </span><span class="kw">let </span>should_sign = <span class="kw">match </span><span class="kw-2">&</span>sign_options.tap_leaves_options {
+ TapLeavesOptions::All => <span class="bool-val">true</span>,
+ TapLeavesOptions::Include(v) => v.contains(lh),
+ TapLeavesOptions::Exclude(v) => !v.contains(lh),
+ TapLeavesOptions::None => <span class="bool-val">false</span>,
+ };
+ <span class="comment">// Filtering out the leaves without our key
+ </span>should_sign
+ && !psbt.inputs[input_index]
+ .tap_script_sigs
+ .contains_key(<span class="kw-2">&</span>(x_only_pubkey, <span class="kw-2">**</span>lh))
+ })
+ .cloned()
+ .collect::<Vec<<span class="kw">_</span>>>();
+ <span class="kw">for </span>lh <span class="kw">in </span>leaf_hashes {
+ <span class="kw">let </span>(hash, hash_ty) = Tap::sighash(psbt, input_index, <span class="prelude-val">Some</span>(lh))<span class="question-mark">?</span>;
+ sign_psbt_schnorr(
+ <span class="kw-2">&</span><span class="self">self</span>.inner,
+ x_only_pubkey,
+ <span class="prelude-val">Some</span>(lh),
+ <span class="kw-2">&mut </span>psbt.inputs[input_index],
+ hash,
+ hash_ty,
+ secp,
+ );
+ }
+ }
+
+ <span class="kw">return </span><span class="prelude-val">Ok</span>(());
+ }
+
+ <span class="kw">if </span>psbt.inputs[input_index].partial_sigs.contains_key(<span class="kw-2">&</span>pubkey) {
+ <span class="kw">return </span><span class="prelude-val">Ok</span>(());
+ }
+
+ <span class="kw">let </span>(hash, hash_ty) = <span class="kw">match </span><span class="self">self</span>.ctx {
+ SignerContext::Segwitv0 => {
+ <span class="kw">let </span>(h, t) = Segwitv0::sighash(psbt, input_index, ())<span class="question-mark">?</span>;
+ <span class="kw">let </span>h = h.to_raw_hash();
+ (h, t)
+ }
+ SignerContext::Legacy => {
+ <span class="kw">let </span>(h, t) = Legacy::sighash(psbt, input_index, ())<span class="question-mark">?</span>;
+ <span class="kw">let </span>h = h.to_raw_hash();
+ (h, t)
+ }
+ <span class="kw">_ </span>=> <span class="kw">return </span><span class="prelude-val">Ok</span>(()), <span class="comment">// handled above
+ </span>};
+ sign_psbt_ecdsa(
+ <span class="kw-2">&</span><span class="self">self</span>.inner,
+ pubkey,
+ <span class="kw-2">&mut </span>psbt.inputs[input_index],
+ hash,
+ hash_ty,
+ secp,
+ sign_options.allow_grinding,
+ );
+
+ <span class="prelude-val">Ok</span>(())
+ }
+}
+
+<span class="kw">fn </span>sign_psbt_ecdsa(
+ secret_key: <span class="kw-2">&</span>secp256k1::SecretKey,
+ pubkey: PublicKey,
+ psbt_input: <span class="kw-2">&mut </span>psbt::Input,
+ hash: <span class="kw">impl </span>bitcoin::hashes::Hash + bitcoin::secp256k1::ThirtyTwoByteHash,
+ hash_ty: EcdsaSighashType,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ allow_grinding: bool,
+) {
+ <span class="kw">let </span>msg = <span class="kw-2">&</span>Message::from(hash);
+ <span class="kw">let </span>sig = <span class="kw">if </span>allow_grinding {
+ secp.sign_ecdsa_low_r(msg, secret_key)
+ } <span class="kw">else </span>{
+ secp.sign_ecdsa(msg, secret_key)
+ };
+ secp.verify_ecdsa(msg, <span class="kw-2">&</span>sig, <span class="kw-2">&</span>pubkey.inner)
+ .expect(<span class="string">"invalid or corrupted ecdsa signature"</span>);
+
+ <span class="kw">let </span>final_signature = ecdsa::Signature { sig, hash_ty };
+ psbt_input.partial_sigs.insert(pubkey, final_signature);
+}
+
+<span class="comment">// Calling this with `leaf_hash` = `None` will sign for key-spend
+</span><span class="kw">fn </span>sign_psbt_schnorr(
+ secret_key: <span class="kw-2">&</span>secp256k1::SecretKey,
+ pubkey: XOnlyPublicKey,
+ leaf_hash: <span class="prelude-ty">Option</span><taproot::TapLeafHash>,
+ psbt_input: <span class="kw-2">&mut </span>psbt::Input,
+ hash: TapSighash,
+ hash_ty: TapSighashType,
+ secp: <span class="kw-2">&</span>SecpCtx,
+) {
+ <span class="kw">let </span>keypair = secp256k1::Keypair::from_seckey_slice(secp, secret_key.as_ref()).unwrap();
+ <span class="kw">let </span>keypair = <span class="kw">match </span>leaf_hash {
+ <span class="prelude-val">None </span>=> keypair
+ .tap_tweak(secp, psbt_input.tap_merkle_root)
+ .to_inner(),
+ <span class="prelude-val">Some</span>(<span class="kw">_</span>) => keypair, <span class="comment">// no tweak for script spend
+ </span>};
+
+ <span class="kw">let </span>msg = <span class="kw-2">&</span>Message::from(hash);
+ <span class="kw">let </span>sig = secp.sign_schnorr(msg, <span class="kw-2">&</span>keypair);
+ secp.verify_schnorr(<span class="kw-2">&</span>sig, msg, <span class="kw-2">&</span>XOnlyPublicKey::from_keypair(<span class="kw-2">&</span>keypair).<span class="number">0</span>)
+ .expect(<span class="string">"invalid or corrupted schnorr signature"</span>);
+
+ <span class="kw">let </span>final_signature = taproot::Signature { sig, hash_ty };
+
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(lh) = leaf_hash {
+ psbt_input
+ .tap_script_sigs
+ .insert((pubkey, lh), final_signature);
+ } <span class="kw">else </span>{
+ psbt_input.tap_key_sig = <span class="prelude-val">Some</span>(final_signature);
+ }
+}
+
+<span class="doccomment">/// Defines the order in which signers are called
+///
+/// The default value is `100`. Signers with an ordering above that will be called later,
+/// and they will thus see the partial signatures added to the transaction once they get to sign
+/// themselves.
+</span><span class="attr">#[derive(Debug, Clone, PartialOrd, PartialEq, Ord, Eq)]
+</span><span class="kw">pub struct </span>SignerOrdering(<span class="kw">pub </span>usize);
+
+<span class="kw">impl </span>Default <span class="kw">for </span>SignerOrdering {
+ <span class="kw">fn </span>default() -> <span class="self">Self </span>{
+ SignerOrdering(<span class="number">100</span>)
+ }
+}
+
+<span class="attr">#[derive(Debug, Clone)]
+</span><span class="kw">struct </span>SignersContainerKey {
+ id: SignerId,
+ ordering: SignerOrdering,
+}
+
+<span class="kw">impl </span>From<(SignerId, SignerOrdering)> <span class="kw">for </span>SignersContainerKey {
+ <span class="kw">fn </span>from(tuple: (SignerId, SignerOrdering)) -> <span class="self">Self </span>{
+ SignersContainerKey {
+ id: tuple.<span class="number">0</span>,
+ ordering: tuple.<span class="number">1</span>,
+ }
+ }
+}
+
+<span class="doccomment">/// Container for multiple signers
+</span><span class="attr">#[derive(Debug, Default, Clone)]
+</span><span class="kw">pub struct </span>SignersContainer(BTreeMap<SignersContainerKey, Arc<<span class="kw">dyn </span>TransactionSigner>>);
+
+<span class="kw">impl </span>SignersContainer {
+ <span class="doccomment">/// Create a map of public keys to secret keys
+ </span><span class="kw">pub fn </span>as_key_map(<span class="kw-2">&</span><span class="self">self</span>, secp: <span class="kw-2">&</span>SecpCtx) -> KeyMap {
+ <span class="self">self</span>.<span class="number">0
+ </span>.values()
+ .filter_map(|signer| signer.descriptor_secret_key())
+ .filter_map(|secret| secret.to_public(secp).ok().map(|public| (public, secret)))
+ .collect()
+ }
+
+ <span class="doccomment">/// Build a new signer container from a [`KeyMap`]
+ ///
+ /// Also looks at the corresponding descriptor to determine the [`SignerContext`] to attach to
+ /// the signers
+ </span><span class="kw">pub fn </span>build(
+ keymap: KeyMap,
+ descriptor: <span class="kw-2">&</span>Descriptor<DescriptorPublicKey>,
+ secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> SignersContainer {
+ <span class="kw">let </span><span class="kw-2">mut </span>container = SignersContainer::new();
+
+ <span class="kw">for </span>(pubkey, secret) <span class="kw">in </span>keymap {
+ <span class="kw">let </span>ctx = <span class="kw">match </span>descriptor {
+ Descriptor::Tr(tr) => SignerContext::Tap {
+ is_internal_key: tr.internal_key() == <span class="kw-2">&</span>pubkey,
+ },
+ <span class="kw">_ if </span>descriptor.is_witness() => SignerContext::Segwitv0,
+ <span class="kw">_ </span>=> SignerContext::Legacy,
+ };
+
+ <span class="kw">match </span>secret {
+ DescriptorSecretKey::Single(private_key) => container.add_external(
+ SignerId::from(
+ private_key
+ .key
+ .public_key(secp)
+ .to_pubkeyhash(SigType::Ecdsa),
+ ),
+ SignerOrdering::default(),
+ Arc::new(SignerWrapper::new(private_key.key, ctx)),
+ ),
+ DescriptorSecretKey::XPrv(xprv) => container.add_external(
+ SignerId::from(xprv.root_fingerprint(secp)),
+ SignerOrdering::default(),
+ Arc::new(SignerWrapper::new(xprv, ctx)),
+ ),
+ DescriptorSecretKey::MultiXPrv(xprv) => container.add_external(
+ SignerId::from(xprv.root_fingerprint(secp)),
+ SignerOrdering::default(),
+ Arc::new(SignerWrapper::new(xprv, ctx)),
+ ),
+ };
+ }
+
+ container
+ }
+}
+
+<span class="kw">impl </span>SignersContainer {
+ <span class="doccomment">/// Default constructor
+ </span><span class="kw">pub fn </span>new() -> <span class="self">Self </span>{
+ SignersContainer(Default::default())
+ }
+
+ <span class="doccomment">/// Adds an external signer to the container for the specified id. Optionally returns the
+ /// signer that was previously in the container, if any
+ </span><span class="kw">pub fn </span>add_external(
+ <span class="kw-2">&mut </span><span class="self">self</span>,
+ id: SignerId,
+ ordering: SignerOrdering,
+ signer: Arc<<span class="kw">dyn </span>TransactionSigner>,
+ ) -> <span class="prelude-ty">Option</span><Arc<<span class="kw">dyn </span>TransactionSigner>> {
+ <span class="self">self</span>.<span class="number">0</span>.insert((id, ordering).into(), signer)
+ }
+
+ <span class="doccomment">/// Removes a signer from the container and returns it
+ </span><span class="kw">pub fn </span>remove(
+ <span class="kw-2">&mut </span><span class="self">self</span>,
+ id: SignerId,
+ ordering: SignerOrdering,
+ ) -> <span class="prelude-ty">Option</span><Arc<<span class="kw">dyn </span>TransactionSigner>> {
+ <span class="self">self</span>.<span class="number">0</span>.remove(<span class="kw-2">&</span>(id, ordering).into())
+ }
+
+ <span class="doccomment">/// Returns the list of identifiers of all the signers in the container
+ </span><span class="kw">pub fn </span>ids(<span class="kw-2">&</span><span class="self">self</span>) -> Vec<<span class="kw-2">&</span>SignerId> {
+ <span class="self">self</span>.<span class="number">0
+ </span>.keys()
+ .map(|SignersContainerKey { id, .. }| id)
+ .collect()
+ }
+
+ <span class="doccomment">/// Returns the list of signers in the container, sorted by lowest to highest `ordering`
+ </span><span class="kw">pub fn </span>signers(<span class="kw-2">&</span><span class="self">self</span>) -> Vec<<span class="kw-2">&</span>Arc<<span class="kw">dyn </span>TransactionSigner>> {
+ <span class="self">self</span>.<span class="number">0</span>.values().collect()
+ }
+
+ <span class="doccomment">/// Finds the signer with lowest ordering for a given id in the container.
+ </span><span class="kw">pub fn </span>find(<span class="kw-2">&</span><span class="self">self</span>, id: SignerId) -> <span class="prelude-ty">Option</span><<span class="kw-2">&</span>Arc<<span class="kw">dyn </span>TransactionSigner>> {
+ <span class="self">self</span>.<span class="number">0
+ </span>.range((
+ Included(<span class="kw-2">&</span>(id.clone(), SignerOrdering(<span class="number">0</span>)).into()),
+ Included(<span class="kw-2">&</span>(id.clone(), SignerOrdering(usize::MAX)).into()),
+ ))
+ .filter(|(k, <span class="kw">_</span>)| k.id == id)
+ .map(|(<span class="kw">_</span>, v)| v)
+ .next()
+ }
+}
+
+<span class="doccomment">/// Options for a software signer
+///
+/// Adjust the behavior of our software signers and the way a transaction is finalized
+</span><span class="attr">#[derive(Debug, Clone)]
+</span><span class="kw">pub struct </span>SignOptions {
+ <span class="doccomment">/// Whether the signer should trust the `witness_utxo`, if the `non_witness_utxo` hasn't been
+ /// provided
+ ///
+ /// Defaults to `false` to mitigate the "SegWit bug" which should trick the wallet into
+ /// paying a fee larger than expected.
+ ///
+ /// Some wallets, especially if relatively old, might not provide the `non_witness_utxo` for
+ /// SegWit transactions in the PSBT they generate: in those cases setting this to `true`
+ /// should correctly produce a signature, at the expense of an increased trust in the creator
+ /// of the PSBT.
+ ///
+ /// For more details see: <https://blog.trezor.io/details-of-firmware-updates-for-trezor-one-version-1-9-1-and-trezor-model-t-version-2-3-1-1eba8f60f2dd>
+ </span><span class="kw">pub </span>trust_witness_utxo: bool,
+
+ <span class="doccomment">/// Whether the wallet should assume a specific height has been reached when trying to finalize
+ /// a transaction
+ ///
+ /// The wallet will only "use" a timelock to satisfy the spending policy of an input if the
+ /// timelock height has already been reached. This option allows overriding the "current height" to let the
+ /// wallet use timelocks in the future to spend a coin.
+ </span><span class="kw">pub </span>assume_height: <span class="prelude-ty">Option</span><u32>,
+
+ <span class="doccomment">/// Whether the signer should use the `sighash_type` set in the PSBT when signing, no matter
+ /// what its value is
+ ///
+ /// Defaults to `false` which will only allow signing using `SIGHASH_ALL`.
+ </span><span class="kw">pub </span>allow_all_sighashes: bool,
+
+ <span class="doccomment">/// Whether to remove partial signatures from the PSBT inputs while finalizing PSBT.
+ ///
+ /// Defaults to `true` which will remove partial signatures during finalization.
+ </span><span class="kw">pub </span>remove_partial_sigs: bool,
+
+ <span class="doccomment">/// Whether to remove taproot specific fields from the PSBT on finalization.
+ ///
+ /// For inputs this includes the taproot internal key, merkle root, and individual
+ /// scripts and signatures. For both inputs and outputs it includes key origin info.
+ ///
+ /// Defaults to `true` which will remove all of the above mentioned fields when finalizing.
+ ///
+ /// See [`BIP371`](https://github.com/bitcoin/bips/blob/master/bip-0371.mediawiki) for details.
+ </span><span class="kw">pub </span>remove_taproot_extras: bool,
+
+ <span class="doccomment">/// Whether to try finalizing the PSBT after the inputs are signed.
+ ///
+ /// Defaults to `true` which will try finalizing PSBT after inputs are signed.
+ </span><span class="kw">pub </span>try_finalize: bool,
+
+ <span class="doccomment">/// Specifies which Taproot script-spend leaves we should sign for. This option is
+ /// ignored if we're signing a non-taproot PSBT.
+ ///
+ /// Defaults to All, i.e., the wallet will sign all the leaves it has a key for.
+ </span><span class="kw">pub </span>tap_leaves_options: TapLeavesOptions,
+
+ <span class="doccomment">/// Whether we should try to sign a taproot transaction with the taproot internal key
+ /// or not. This option is ignored if we're signing a non-taproot PSBT.
+ ///
+ /// Defaults to `true`, i.e., we always try to sign with the taproot internal key.
+ </span><span class="kw">pub </span>sign_with_tap_internal_key: bool,
+
+ <span class="doccomment">/// Whether we should grind ECDSA signature to ensure signing with low r
+ /// or not.
+ /// Defaults to `true`, i.e., we always grind ECDSA signature to sign with low r.
+ </span><span class="kw">pub </span>allow_grinding: bool,
+}
+
+<span class="doccomment">/// Customize which taproot script-path leaves the signer should sign.
+</span><span class="attr">#[derive(Default, Debug, Clone, PartialEq, Eq)]
+</span><span class="kw">pub enum </span>TapLeavesOptions {
+ <span class="doccomment">/// The signer will sign all the leaves it has a key for.
+ </span><span class="attr">#[default]
+ </span>All,
+ <span class="doccomment">/// The signer won't sign leaves other than the ones specified. Note that it could still ignore
+ /// some of the specified leaves, if it doesn't have the right key to sign them.
+ </span>Include(Vec<taproot::TapLeafHash>),
+ <span class="doccomment">/// The signer won't sign the specified leaves.
+ </span>Exclude(Vec<taproot::TapLeafHash>),
+ <span class="doccomment">/// The signer won't sign any leaf.
+ </span><span class="prelude-val">None</span>,
+}
+
+<span class="kw">impl </span>Default <span class="kw">for </span>SignOptions {
+ <span class="kw">fn </span>default() -> <span class="self">Self </span>{
+ SignOptions {
+ trust_witness_utxo: <span class="bool-val">false</span>,
+ assume_height: <span class="prelude-val">None</span>,
+ allow_all_sighashes: <span class="bool-val">false</span>,
+ remove_partial_sigs: <span class="bool-val">true</span>,
+ remove_taproot_extras: <span class="bool-val">true</span>,
+ try_finalize: <span class="bool-val">true</span>,
+ tap_leaves_options: TapLeavesOptions::default(),
+ sign_with_tap_internal_key: <span class="bool-val">true</span>,
+ allow_grinding: <span class="bool-val">true</span>,
+ }
+ }
+}
+
+<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">trait </span>ComputeSighash {
+ <span class="kw">type </span>Extra;
+ <span class="kw">type </span>Sighash;
+ <span class="kw">type </span>SighashType;
+
+ <span class="kw">fn </span>sighash(
+ psbt: <span class="kw-2">&</span>Psbt,
+ input_index: usize,
+ extra: <span class="self">Self</span>::Extra,
+ ) -> <span class="prelude-ty">Result</span><(<span class="self">Self</span>::Sighash, <span class="self">Self</span>::SighashType), SignerError>;
+}
+
+<span class="kw">impl </span>ComputeSighash <span class="kw">for </span>Legacy {
+ <span class="kw">type </span>Extra = ();
+ <span class="kw">type </span>Sighash = sighash::LegacySighash;
+ <span class="kw">type </span>SighashType = EcdsaSighashType;
+
+ <span class="kw">fn </span>sighash(
+ psbt: <span class="kw-2">&</span>Psbt,
+ input_index: usize,
+ _extra: (),
+ ) -> <span class="prelude-ty">Result</span><(<span class="self">Self</span>::Sighash, <span class="self">Self</span>::SighashType), SignerError> {
+ <span class="kw">if </span>input_index >= psbt.inputs.len() || input_index >= psbt.unsigned_tx.input.len() {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(SignerError::InputIndexOutOfRange);
+ }
+
+ <span class="kw">let </span>psbt_input = <span class="kw-2">&</span>psbt.inputs[input_index];
+ <span class="kw">let </span>tx_input = <span class="kw-2">&</span>psbt.unsigned_tx.input[input_index];
+
+ <span class="kw">let </span>sighash = psbt_input
+ .sighash_type
+ .unwrap_or_else(|| EcdsaSighashType::All.into())
+ .ecdsa_hash_ty()
+ .map_err(|<span class="kw">_</span>| SignerError::InvalidSighash)<span class="question-mark">?</span>;
+ <span class="kw">let </span>script = <span class="kw">match </span>psbt_input.redeem_script {
+ <span class="prelude-val">Some</span>(<span class="kw-2">ref </span>redeem_script) => redeem_script.clone(),
+ <span class="prelude-val">None </span>=> {
+ <span class="kw">let </span>non_witness_utxo = psbt_input
+ .non_witness_utxo
+ .as_ref()
+ .ok_or(SignerError::MissingNonWitnessUtxo)<span class="question-mark">?</span>;
+ <span class="kw">let </span>prev_out = non_witness_utxo
+ .output
+ .get(tx_input.previous_output.vout <span class="kw">as </span>usize)
+ .ok_or(SignerError::InvalidNonWitnessUtxo)<span class="question-mark">?</span>;
+
+ prev_out.script_pubkey.clone()
+ }
+ };
+
+ <span class="prelude-val">Ok</span>((
+ sighash::SighashCache::new(<span class="kw-2">&</span>psbt.unsigned_tx).legacy_signature_hash(
+ input_index,
+ <span class="kw-2">&</span>script,
+ sighash.to_u32(),
+ )<span class="question-mark">?</span>,
+ sighash,
+ ))
+ }
+}
+
+<span class="kw">impl </span>ComputeSighash <span class="kw">for </span>Segwitv0 {
+ <span class="kw">type </span>Extra = ();
+ <span class="kw">type </span>Sighash = sighash::SegwitV0Sighash;
+ <span class="kw">type </span>SighashType = EcdsaSighashType;
+
+ <span class="kw">fn </span>sighash(
+ psbt: <span class="kw-2">&</span>Psbt,
+ input_index: usize,
+ _extra: (),
+ ) -> <span class="prelude-ty">Result</span><(<span class="self">Self</span>::Sighash, <span class="self">Self</span>::SighashType), SignerError> {
+ <span class="kw">if </span>input_index >= psbt.inputs.len() || input_index >= psbt.unsigned_tx.input.len() {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(SignerError::InputIndexOutOfRange);
+ }
+
+ <span class="kw">let </span>psbt_input = <span class="kw-2">&</span>psbt.inputs[input_index];
+ <span class="kw">let </span>tx_input = <span class="kw-2">&</span>psbt.unsigned_tx.input[input_index];
+
+ <span class="kw">let </span>sighash_type = psbt_input
+ .sighash_type
+ .unwrap_or_else(|| EcdsaSighashType::All.into())
+ .ecdsa_hash_ty()
+ .map_err(|<span class="kw">_</span>| SignerError::InvalidSighash)<span class="question-mark">?</span>;
+
+ <span class="comment">// Always try first with the non-witness utxo
+ </span><span class="kw">let </span>utxo = <span class="kw">if let </span><span class="prelude-val">Some</span>(prev_tx) = <span class="kw-2">&</span>psbt_input.non_witness_utxo {
+ <span class="comment">// Check the provided prev-tx
+ </span><span class="kw">if </span>prev_tx.txid() != tx_input.previous_output.txid {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(SignerError::InvalidNonWitnessUtxo);
+ }
+
+ <span class="comment">// The output should be present, if it's missing the `non_witness_utxo` is invalid
+ </span>prev_tx
+ .output
+ .get(tx_input.previous_output.vout <span class="kw">as </span>usize)
+ .ok_or(SignerError::InvalidNonWitnessUtxo)<span class="question-mark">?
+ </span>} <span class="kw">else if let </span><span class="prelude-val">Some</span>(witness_utxo) = <span class="kw-2">&</span>psbt_input.witness_utxo {
+ <span class="comment">// Fallback to the witness_utxo. If we aren't allowed to use it, signing should fail
+ // before we get to this point
+ </span>witness_utxo
+ } <span class="kw">else </span>{
+ <span class="comment">// Nothing has been provided
+ </span><span class="kw">return </span><span class="prelude-val">Err</span>(SignerError::MissingNonWitnessUtxo);
+ };
+ <span class="kw">let </span>value = utxo.value;
+
+ <span class="kw">let </span><span class="kw-2">mut </span>sighasher = sighash::SighashCache::new(<span class="kw-2">&</span>psbt.unsigned_tx);
+
+ <span class="kw">let </span>sighash = <span class="kw">match </span>psbt_input.witness_script {
+ <span class="prelude-val">Some</span>(<span class="kw-2">ref </span>witness_script) => {
+ sighasher.p2wsh_signature_hash(input_index, witness_script, value, sighash_type)<span class="question-mark">?
+ </span>}
+ <span class="prelude-val">None </span>=> {
+ <span class="kw">if </span>utxo.script_pubkey.is_p2wpkh() {
+ sighasher.p2wpkh_signature_hash(
+ input_index,
+ <span class="kw-2">&</span>utxo.script_pubkey,
+ value,
+ sighash_type,
+ )<span class="question-mark">?
+ </span>} <span class="kw">else if </span>psbt_input
+ .redeem_script
+ .as_ref()
+ .map(|s| s.is_p2wpkh())
+ .unwrap_or(<span class="bool-val">false</span>)
+ {
+ <span class="kw">let </span>script_pubkey = psbt_input.redeem_script.as_ref().unwrap();
+ sighasher.p2wpkh_signature_hash(
+ input_index,
+ script_pubkey,
+ value,
+ sighash_type,
+ )<span class="question-mark">?
+ </span>} <span class="kw">else </span>{
+ <span class="kw">return </span><span class="prelude-val">Err</span>(SignerError::MissingWitnessScript);
+ }
+ }
+ };
+ <span class="prelude-val">Ok</span>((sighash, sighash_type))
+ }
+}
+
+<span class="kw">impl </span>ComputeSighash <span class="kw">for </span>Tap {
+ <span class="kw">type </span>Extra = <span class="prelude-ty">Option</span><taproot::TapLeafHash>;
+ <span class="kw">type </span>Sighash = TapSighash;
+ <span class="kw">type </span>SighashType = TapSighashType;
+
+ <span class="kw">fn </span>sighash(
+ psbt: <span class="kw-2">&</span>Psbt,
+ input_index: usize,
+ extra: <span class="self">Self</span>::Extra,
+ ) -> <span class="prelude-ty">Result</span><(<span class="self">Self</span>::Sighash, TapSighashType), SignerError> {
+ <span class="kw">if </span>input_index >= psbt.inputs.len() || input_index >= psbt.unsigned_tx.input.len() {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(SignerError::InputIndexOutOfRange);
+ }
+
+ <span class="kw">let </span>psbt_input = <span class="kw-2">&</span>psbt.inputs[input_index];
+
+ <span class="kw">let </span>sighash_type = psbt_input
+ .sighash_type
+ .unwrap_or_else(|| TapSighashType::Default.into())
+ .taproot_hash_ty()
+ .map_err(|<span class="kw">_</span>| SignerError::InvalidSighash)<span class="question-mark">?</span>;
+ <span class="kw">let </span>witness_utxos = (<span class="number">0</span>..psbt.inputs.len())
+ .map(|i| psbt.get_utxo_for(i))
+ .collect::<Vec<<span class="kw">_</span>>>();
+ <span class="kw">let </span><span class="kw-2">mut </span>all_witness_utxos = <span class="macro">vec!</span>[];
+
+ <span class="kw">let </span><span class="kw-2">mut </span>cache = sighash::SighashCache::new(<span class="kw-2">&</span>psbt.unsigned_tx);
+ <span class="kw">let </span>is_anyone_can_pay = psbt::PsbtSighashType::from(sighash_type).to_u32() & <span class="number">0x80 </span>!= <span class="number">0</span>;
+ <span class="kw">let </span>prevouts = <span class="kw">if </span>is_anyone_can_pay {
+ sighash::Prevouts::One(
+ input_index,
+ witness_utxos[input_index]
+ .as_ref()
+ .ok_or(SignerError::MissingWitnessUtxo)<span class="question-mark">?</span>,
+ )
+ } <span class="kw">else if </span>witness_utxos.iter().all(Option::is_some) {
+ all_witness_utxos.extend(witness_utxos.iter().filter_map(|x| x.as_ref()));
+ sighash::Prevouts::All(<span class="kw-2">&</span>all_witness_utxos)
+ } <span class="kw">else </span>{
+ <span class="kw">return </span><span class="prelude-val">Err</span>(SignerError::MissingWitnessUtxo);
+ };
+
+ <span class="comment">// Assume no OP_CODESEPARATOR
+ </span><span class="kw">let </span>extra = extra.map(|leaf_hash| (leaf_hash, <span class="number">0xFFFFFFFF</span>));
+
+ <span class="prelude-val">Ok</span>((
+ cache.taproot_signature_hash(input_index, <span class="kw-2">&</span>prevouts, <span class="prelude-val">None</span>, extra, sighash_type)<span class="question-mark">?</span>,
+ sighash_type,
+ ))
+ }
+}
+
+<span class="kw">impl </span>PartialOrd <span class="kw">for </span>SignersContainerKey {
+ <span class="kw">fn </span>partial_cmp(<span class="kw-2">&</span><span class="self">self</span>, other: <span class="kw-2">&</span><span class="self">Self</span>) -> <span class="prelude-ty">Option</span><Ordering> {
+ <span class="prelude-val">Some</span>(<span class="self">self</span>.cmp(other))
+ }
+}
+
+<span class="kw">impl </span>Ord <span class="kw">for </span>SignersContainerKey {
+ <span class="kw">fn </span>cmp(<span class="kw-2">&</span><span class="self">self</span>, other: <span class="kw-2">&</span><span class="self">Self</span>) -> Ordering {
+ <span class="self">self</span>.ordering
+ .cmp(<span class="kw-2">&</span>other.ordering)
+ .then(<span class="self">self</span>.id.cmp(<span class="kw-2">&</span>other.id))
+ }
+}
+
+<span class="kw">impl </span>PartialEq <span class="kw">for </span>SignersContainerKey {
+ <span class="kw">fn </span>eq(<span class="kw-2">&</span><span class="self">self</span>, other: <span class="kw-2">&</span><span class="self">Self</span>) -> bool {
+ <span class="self">self</span>.id == other.id && <span class="self">self</span>.ordering == other.ordering
+ }
+}
+
+<span class="kw">impl </span>Eq <span class="kw">for </span>SignersContainerKey {}
+
+<span class="attr">#[cfg(test)]
+</span><span class="kw">mod </span>signers_container_tests {
+ <span class="kw">use super</span>::<span class="kw-2">*</span>;
+ <span class="kw">use </span><span class="kw">crate</span>::descriptor;
+ <span class="kw">use </span><span class="kw">crate</span>::descriptor::IntoWalletDescriptor;
+ <span class="kw">use </span><span class="kw">crate</span>::keys::{DescriptorKey, IntoDescriptorKey};
+ <span class="kw">use </span>assert_matches::assert_matches;
+ <span class="kw">use </span>bitcoin::bip32;
+ <span class="kw">use </span>bitcoin::secp256k1::{All, Secp256k1};
+ <span class="kw">use </span>bitcoin::Network;
+ <span class="kw">use </span>core::str::FromStr;
+ <span class="kw">use </span>miniscript::ScriptContext;
+
+ <span class="kw">fn </span>is_equal(this: <span class="kw-2">&</span>Arc<<span class="kw">dyn </span>TransactionSigner>, that: <span class="kw-2">&</span>Arc<DummySigner>) -> bool {
+ <span class="kw">let </span>secp = Secp256k1::new();
+ this.id(<span class="kw-2">&</span>secp) == that.id(<span class="kw-2">&</span>secp)
+ }
+
+ <span class="comment">// Signers added with the same ordering (like `Ordering::default`) created from `KeyMap`
+ // should be preserved and not overwritten.
+ // This happens usually when a set of signers is created from a descriptor with private keys.
+ </span><span class="attr">#[test]
+ </span><span class="kw">fn </span>signers_with_same_ordering() {
+ <span class="kw">let </span>secp = Secp256k1::new();
+
+ <span class="kw">let </span>(prvkey1, <span class="kw">_</span>, <span class="kw">_</span>) = setup_keys(TPRV0_STR);
+ <span class="kw">let </span>(prvkey2, <span class="kw">_</span>, <span class="kw">_</span>) = setup_keys(TPRV1_STR);
+ <span class="kw">let </span>desc = <span class="macro">descriptor!</span>(sh(multi(<span class="number">2</span>, prvkey1, prvkey2))).unwrap();
+ <span class="kw">let </span>(wallet_desc, keymap) = desc
+ .into_wallet_descriptor(<span class="kw-2">&</span>secp, Network::Testnet)
+ .unwrap();
+
+ <span class="kw">let </span>signers = SignersContainer::build(keymap, <span class="kw-2">&</span>wallet_desc, <span class="kw-2">&</span>secp);
+ <span class="macro">assert_eq!</span>(signers.ids().len(), <span class="number">2</span>);
+
+ <span class="kw">let </span>signers = signers.signers();
+ <span class="macro">assert_eq!</span>(signers.len(), <span class="number">2</span>);
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>signers_sorted_by_ordering() {
+ <span class="kw">let </span><span class="kw-2">mut </span>signers = SignersContainer::new();
+ <span class="kw">let </span>signer1 = Arc::new(DummySigner { number: <span class="number">1 </span>});
+ <span class="kw">let </span>signer2 = Arc::new(DummySigner { number: <span class="number">2 </span>});
+ <span class="kw">let </span>signer3 = Arc::new(DummySigner { number: <span class="number">3 </span>});
+
+ <span class="comment">// Mixed order insertions verifies we are not inserting at head or tail.
+ </span>signers.add_external(SignerId::Dummy(<span class="number">2</span>), SignerOrdering(<span class="number">2</span>), signer2.clone());
+ signers.add_external(SignerId::Dummy(<span class="number">1</span>), SignerOrdering(<span class="number">1</span>), signer1.clone());
+ signers.add_external(SignerId::Dummy(<span class="number">3</span>), SignerOrdering(<span class="number">3</span>), signer3.clone());
+
+ <span class="comment">// Check that signers are sorted from lowest to highest ordering
+ </span><span class="kw">let </span>signers = signers.signers();
+
+ <span class="macro">assert!</span>(is_equal(signers[<span class="number">0</span>], <span class="kw-2">&</span>signer1));
+ <span class="macro">assert!</span>(is_equal(signers[<span class="number">1</span>], <span class="kw-2">&</span>signer2));
+ <span class="macro">assert!</span>(is_equal(signers[<span class="number">2</span>], <span class="kw-2">&</span>signer3));
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>find_signer_by_id() {
+ <span class="kw">let </span><span class="kw-2">mut </span>signers = SignersContainer::new();
+ <span class="kw">let </span>signer1 = Arc::new(DummySigner { number: <span class="number">1 </span>});
+ <span class="kw">let </span>signer2 = Arc::new(DummySigner { number: <span class="number">2 </span>});
+ <span class="kw">let </span>signer3 = Arc::new(DummySigner { number: <span class="number">3 </span>});
+ <span class="kw">let </span>signer4 = Arc::new(DummySigner { number: <span class="number">3 </span>}); <span class="comment">// Same ID as `signer3` but will use lower ordering.
+
+ </span><span class="kw">let </span>id1 = SignerId::Dummy(<span class="number">1</span>);
+ <span class="kw">let </span>id2 = SignerId::Dummy(<span class="number">2</span>);
+ <span class="kw">let </span>id3 = SignerId::Dummy(<span class="number">3</span>);
+ <span class="kw">let </span>id_nonexistent = SignerId::Dummy(<span class="number">999</span>);
+
+ signers.add_external(id1.clone(), SignerOrdering(<span class="number">1</span>), signer1.clone());
+ signers.add_external(id2.clone(), SignerOrdering(<span class="number">2</span>), signer2.clone());
+ signers.add_external(id3.clone(), SignerOrdering(<span class="number">3</span>), signer3.clone());
+
+ <span class="macro">assert_matches!</span>(signers.find(id1), <span class="prelude-val">Some</span>(signer) <span class="kw">if </span>is_equal(signer, <span class="kw-2">&</span>signer1));
+ <span class="macro">assert_matches!</span>(signers.find(id2), <span class="prelude-val">Some</span>(signer) <span class="kw">if </span>is_equal(signer, <span class="kw-2">&</span>signer2));
+ <span class="macro">assert_matches!</span>(signers.find(id3.clone()), <span class="prelude-val">Some</span>(signer) <span class="kw">if </span>is_equal(signer, <span class="kw-2">&</span>signer3));
+
+ <span class="comment">// The `signer4` has the same ID as `signer3` but lower ordering.
+ // It should be found by `id3` instead of `signer3`.
+ </span>signers.add_external(id3.clone(), SignerOrdering(<span class="number">2</span>), signer4.clone());
+ <span class="macro">assert_matches!</span>(signers.find(id3), <span class="prelude-val">Some</span>(signer) <span class="kw">if </span>is_equal(signer, <span class="kw-2">&</span>signer4));
+
+ <span class="comment">// Can't find anything with ID that doesn't exist
+ </span><span class="macro">assert_matches!</span>(signers.find(id_nonexistent), <span class="prelude-val">None</span>);
+ }
+
+ <span class="attr">#[derive(Debug, Clone, Copy)]
+ </span><span class="kw">struct </span>DummySigner {
+ number: u64,
+ }
+
+ <span class="kw">impl </span>SignerCommon <span class="kw">for </span>DummySigner {
+ <span class="kw">fn </span>id(<span class="kw-2">&</span><span class="self">self</span>, _secp: <span class="kw-2">&</span>SecpCtx) -> SignerId {
+ SignerId::Dummy(<span class="self">self</span>.number)
+ }
+ }
+
+ <span class="kw">impl </span>TransactionSigner <span class="kw">for </span>DummySigner {
+ <span class="kw">fn </span>sign_transaction(
+ <span class="kw-2">&</span><span class="self">self</span>,
+ _psbt: <span class="kw-2">&mut </span>Psbt,
+ _sign_options: <span class="kw-2">&</span>SignOptions,
+ _secp: <span class="kw-2">&</span>SecpCtx,
+ ) -> <span class="prelude-ty">Result</span><(), SignerError> {
+ <span class="prelude-val">Ok</span>(())
+ }
+ }
+
+ <span class="kw">const </span>TPRV0_STR:<span class="kw-2">&</span>str = <span class="string">"tprv8ZgxMBicQKsPdZXrcHNLf5JAJWFAoJ2TrstMRdSKtEggz6PddbuSkvHKM9oKJyFgZV1B7rw8oChspxyYbtmEXYyg1AjfWbL3ho3XHDpHRZf"</span>;
+ <span class="kw">const </span>TPRV1_STR:<span class="kw-2">&</span>str = <span class="string">"tprv8ZgxMBicQKsPdpkqS7Eair4YxjcuuvDPNYmKX3sCniCf16tHEVrjjiSXEkFRnUH77yXc6ZcwHHcLNfjdi5qUvw3VDfgYiH5mNsj5izuiu2N"</span>;
+
+ <span class="kw">const </span>PATH: <span class="kw-2">&</span>str = <span class="string">"m/44'/1'/0'/0"</span>;
+
+ <span class="kw">fn </span>setup_keys<Ctx: ScriptContext>(
+ tprv: <span class="kw-2">&</span>str,
+ ) -> (DescriptorKey<Ctx>, DescriptorKey<Ctx>, Fingerprint) {
+ <span class="kw">let </span>secp: Secp256k1<All> = Secp256k1::new();
+ <span class="kw">let </span>path = bip32::DerivationPath::from_str(PATH).unwrap();
+ <span class="kw">let </span>tprv = bip32::Xpriv::from_str(tprv).unwrap();
+ <span class="kw">let </span>tpub = bip32::Xpub::from_priv(<span class="kw-2">&</span>secp, <span class="kw-2">&</span>tprv);
+ <span class="kw">let </span>fingerprint = tprv.fingerprint(<span class="kw-2">&</span>secp);
+ <span class="kw">let </span>prvkey = (tprv, path.clone()).into_descriptor_key().unwrap();
+ <span class="kw">let </span>pubkey = (tpub, path).into_descriptor_key().unwrap();
+
+ (prvkey, pubkey, fingerprint)
+ }
+}
+</code></pre></div>
+</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Source of the Rust file `crates/wallet/src/wallet/tx_builder.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>tx_builder.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk_wallet/index.html">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
+<a href="#2" id="2">2</a>
+<a href="#3" id="3">3</a>
+<a href="#4" id="4">4</a>
+<a href="#5" id="5">5</a>
+<a href="#6" id="6">6</a>
+<a href="#7" id="7">7</a>
+<a href="#8" id="8">8</a>
+<a href="#9" id="9">9</a>
+<a href="#10" id="10">10</a>
+<a href="#11" id="11">11</a>
+<a href="#12" id="12">12</a>
+<a href="#13" id="13">13</a>
+<a href="#14" id="14">14</a>
+<a href="#15" id="15">15</a>
+<a href="#16" id="16">16</a>
+<a href="#17" id="17">17</a>
+<a href="#18" id="18">18</a>
+<a href="#19" id="19">19</a>
+<a href="#20" id="20">20</a>
+<a href="#21" id="21">21</a>
+<a href="#22" id="22">22</a>
+<a href="#23" id="23">23</a>
+<a href="#24" id="24">24</a>
+<a href="#25" id="25">25</a>
+<a href="#26" id="26">26</a>
+<a href="#27" id="27">27</a>
+<a href="#28" id="28">28</a>
+<a href="#29" id="29">29</a>
+<a href="#30" id="30">30</a>
+<a href="#31" id="31">31</a>
+<a href="#32" id="32">32</a>
+<a href="#33" id="33">33</a>
+<a href="#34" id="34">34</a>
+<a href="#35" id="35">35</a>
+<a href="#36" id="36">36</a>
+<a href="#37" id="37">37</a>
+<a href="#38" id="38">38</a>
+<a href="#39" id="39">39</a>
+<a href="#40" id="40">40</a>
+<a href="#41" id="41">41</a>
+<a href="#42" id="42">42</a>
+<a href="#43" id="43">43</a>
+<a href="#44" id="44">44</a>
+<a href="#45" id="45">45</a>
+<a href="#46" id="46">46</a>
+<a href="#47" id="47">47</a>
+<a href="#48" id="48">48</a>
+<a href="#49" id="49">49</a>
+<a href="#50" id="50">50</a>
+<a href="#51" id="51">51</a>
+<a href="#52" id="52">52</a>
+<a href="#53" id="53">53</a>
+<a href="#54" id="54">54</a>
+<a href="#55" id="55">55</a>
+<a href="#56" id="56">56</a>
+<a href="#57" id="57">57</a>
+<a href="#58" id="58">58</a>
+<a href="#59" id="59">59</a>
+<a href="#60" id="60">60</a>
+<a href="#61" id="61">61</a>
+<a href="#62" id="62">62</a>
+<a href="#63" id="63">63</a>
+<a href="#64" id="64">64</a>
+<a href="#65" id="65">65</a>
+<a href="#66" id="66">66</a>
+<a href="#67" id="67">67</a>
+<a href="#68" id="68">68</a>
+<a href="#69" id="69">69</a>
+<a href="#70" id="70">70</a>
+<a href="#71" id="71">71</a>
+<a href="#72" id="72">72</a>
+<a href="#73" id="73">73</a>
+<a href="#74" id="74">74</a>
+<a href="#75" id="75">75</a>
+<a href="#76" id="76">76</a>
+<a href="#77" id="77">77</a>
+<a href="#78" id="78">78</a>
+<a href="#79" id="79">79</a>
+<a href="#80" id="80">80</a>
+<a href="#81" id="81">81</a>
+<a href="#82" id="82">82</a>
+<a href="#83" id="83">83</a>
+<a href="#84" id="84">84</a>
+<a href="#85" id="85">85</a>
+<a href="#86" id="86">86</a>
+<a href="#87" id="87">87</a>
+<a href="#88" id="88">88</a>
+<a href="#89" id="89">89</a>
+<a href="#90" id="90">90</a>
+<a href="#91" id="91">91</a>
+<a href="#92" id="92">92</a>
+<a href="#93" id="93">93</a>
+<a href="#94" id="94">94</a>
+<a href="#95" id="95">95</a>
+<a href="#96" id="96">96</a>
+<a href="#97" id="97">97</a>
+<a href="#98" id="98">98</a>
+<a href="#99" id="99">99</a>
+<a href="#100" id="100">100</a>
+<a href="#101" id="101">101</a>
+<a href="#102" id="102">102</a>
+<a href="#103" id="103">103</a>
+<a href="#104" id="104">104</a>
+<a href="#105" id="105">105</a>
+<a href="#106" id="106">106</a>
+<a href="#107" id="107">107</a>
+<a href="#108" id="108">108</a>
+<a href="#109" id="109">109</a>
+<a href="#110" id="110">110</a>
+<a href="#111" id="111">111</a>
+<a href="#112" id="112">112</a>
+<a href="#113" id="113">113</a>
+<a href="#114" id="114">114</a>
+<a href="#115" id="115">115</a>
+<a href="#116" id="116">116</a>
+<a href="#117" id="117">117</a>
+<a href="#118" id="118">118</a>
+<a href="#119" id="119">119</a>
+<a href="#120" id="120">120</a>
+<a href="#121" id="121">121</a>
+<a href="#122" id="122">122</a>
+<a href="#123" id="123">123</a>
+<a href="#124" id="124">124</a>
+<a href="#125" id="125">125</a>
+<a href="#126" id="126">126</a>
+<a href="#127" id="127">127</a>
+<a href="#128" id="128">128</a>
+<a href="#129" id="129">129</a>
+<a href="#130" id="130">130</a>
+<a href="#131" id="131">131</a>
+<a href="#132" id="132">132</a>
+<a href="#133" id="133">133</a>
+<a href="#134" id="134">134</a>
+<a href="#135" id="135">135</a>
+<a href="#136" id="136">136</a>
+<a href="#137" id="137">137</a>
+<a href="#138" id="138">138</a>
+<a href="#139" id="139">139</a>
+<a href="#140" id="140">140</a>
+<a href="#141" id="141">141</a>
+<a href="#142" id="142">142</a>
+<a href="#143" id="143">143</a>
+<a href="#144" id="144">144</a>
+<a href="#145" id="145">145</a>
+<a href="#146" id="146">146</a>
+<a href="#147" id="147">147</a>
+<a href="#148" id="148">148</a>
+<a href="#149" id="149">149</a>
+<a href="#150" id="150">150</a>
+<a href="#151" id="151">151</a>
+<a href="#152" id="152">152</a>
+<a href="#153" id="153">153</a>
+<a href="#154" id="154">154</a>
+<a href="#155" id="155">155</a>
+<a href="#156" id="156">156</a>
+<a href="#157" id="157">157</a>
+<a href="#158" id="158">158</a>
+<a href="#159" id="159">159</a>
+<a href="#160" id="160">160</a>
+<a href="#161" id="161">161</a>
+<a href="#162" id="162">162</a>
+<a href="#163" id="163">163</a>
+<a href="#164" id="164">164</a>
+<a href="#165" id="165">165</a>
+<a href="#166" id="166">166</a>
+<a href="#167" id="167">167</a>
+<a href="#168" id="168">168</a>
+<a href="#169" id="169">169</a>
+<a href="#170" id="170">170</a>
+<a href="#171" id="171">171</a>
+<a href="#172" id="172">172</a>
+<a href="#173" id="173">173</a>
+<a href="#174" id="174">174</a>
+<a href="#175" id="175">175</a>
+<a href="#176" id="176">176</a>
+<a href="#177" id="177">177</a>
+<a href="#178" id="178">178</a>
+<a href="#179" id="179">179</a>
+<a href="#180" id="180">180</a>
+<a href="#181" id="181">181</a>
+<a href="#182" id="182">182</a>
+<a href="#183" id="183">183</a>
+<a href="#184" id="184">184</a>
+<a href="#185" id="185">185</a>
+<a href="#186" id="186">186</a>
+<a href="#187" id="187">187</a>
+<a href="#188" id="188">188</a>
+<a href="#189" id="189">189</a>
+<a href="#190" id="190">190</a>
+<a href="#191" id="191">191</a>
+<a href="#192" id="192">192</a>
+<a href="#193" id="193">193</a>
+<a href="#194" id="194">194</a>
+<a href="#195" id="195">195</a>
+<a href="#196" id="196">196</a>
+<a href="#197" id="197">197</a>
+<a href="#198" id="198">198</a>
+<a href="#199" id="199">199</a>
+<a href="#200" id="200">200</a>
+<a href="#201" id="201">201</a>
+<a href="#202" id="202">202</a>
+<a href="#203" id="203">203</a>
+<a href="#204" id="204">204</a>
+<a href="#205" id="205">205</a>
+<a href="#206" id="206">206</a>
+<a href="#207" id="207">207</a>
+<a href="#208" id="208">208</a>
+<a href="#209" id="209">209</a>
+<a href="#210" id="210">210</a>
+<a href="#211" id="211">211</a>
+<a href="#212" id="212">212</a>
+<a href="#213" id="213">213</a>
+<a href="#214" id="214">214</a>
+<a href="#215" id="215">215</a>
+<a href="#216" id="216">216</a>
+<a href="#217" id="217">217</a>
+<a href="#218" id="218">218</a>
+<a href="#219" id="219">219</a>
+<a href="#220" id="220">220</a>
+<a href="#221" id="221">221</a>
+<a href="#222" id="222">222</a>
+<a href="#223" id="223">223</a>
+<a href="#224" id="224">224</a>
+<a href="#225" id="225">225</a>
+<a href="#226" id="226">226</a>
+<a href="#227" id="227">227</a>
+<a href="#228" id="228">228</a>
+<a href="#229" id="229">229</a>
+<a href="#230" id="230">230</a>
+<a href="#231" id="231">231</a>
+<a href="#232" id="232">232</a>
+<a href="#233" id="233">233</a>
+<a href="#234" id="234">234</a>
+<a href="#235" id="235">235</a>
+<a href="#236" id="236">236</a>
+<a href="#237" id="237">237</a>
+<a href="#238" id="238">238</a>
+<a href="#239" id="239">239</a>
+<a href="#240" id="240">240</a>
+<a href="#241" id="241">241</a>
+<a href="#242" id="242">242</a>
+<a href="#243" id="243">243</a>
+<a href="#244" id="244">244</a>
+<a href="#245" id="245">245</a>
+<a href="#246" id="246">246</a>
+<a href="#247" id="247">247</a>
+<a href="#248" id="248">248</a>
+<a href="#249" id="249">249</a>
+<a href="#250" id="250">250</a>
+<a href="#251" id="251">251</a>
+<a href="#252" id="252">252</a>
+<a href="#253" id="253">253</a>
+<a href="#254" id="254">254</a>
+<a href="#255" id="255">255</a>
+<a href="#256" id="256">256</a>
+<a href="#257" id="257">257</a>
+<a href="#258" id="258">258</a>
+<a href="#259" id="259">259</a>
+<a href="#260" id="260">260</a>
+<a href="#261" id="261">261</a>
+<a href="#262" id="262">262</a>
+<a href="#263" id="263">263</a>
+<a href="#264" id="264">264</a>
+<a href="#265" id="265">265</a>
+<a href="#266" id="266">266</a>
+<a href="#267" id="267">267</a>
+<a href="#268" id="268">268</a>
+<a href="#269" id="269">269</a>
+<a href="#270" id="270">270</a>
+<a href="#271" id="271">271</a>
+<a href="#272" id="272">272</a>
+<a href="#273" id="273">273</a>
+<a href="#274" id="274">274</a>
+<a href="#275" id="275">275</a>
+<a href="#276" id="276">276</a>
+<a href="#277" id="277">277</a>
+<a href="#278" id="278">278</a>
+<a href="#279" id="279">279</a>
+<a href="#280" id="280">280</a>
+<a href="#281" id="281">281</a>
+<a href="#282" id="282">282</a>
+<a href="#283" id="283">283</a>
+<a href="#284" id="284">284</a>
+<a href="#285" id="285">285</a>
+<a href="#286" id="286">286</a>
+<a href="#287" id="287">287</a>
+<a href="#288" id="288">288</a>
+<a href="#289" id="289">289</a>
+<a href="#290" id="290">290</a>
+<a href="#291" id="291">291</a>
+<a href="#292" id="292">292</a>
+<a href="#293" id="293">293</a>
+<a href="#294" id="294">294</a>
+<a href="#295" id="295">295</a>
+<a href="#296" id="296">296</a>
+<a href="#297" id="297">297</a>
+<a href="#298" id="298">298</a>
+<a href="#299" id="299">299</a>
+<a href="#300" id="300">300</a>
+<a href="#301" id="301">301</a>
+<a href="#302" id="302">302</a>
+<a href="#303" id="303">303</a>
+<a href="#304" id="304">304</a>
+<a href="#305" id="305">305</a>
+<a href="#306" id="306">306</a>
+<a href="#307" id="307">307</a>
+<a href="#308" id="308">308</a>
+<a href="#309" id="309">309</a>
+<a href="#310" id="310">310</a>
+<a href="#311" id="311">311</a>
+<a href="#312" id="312">312</a>
+<a href="#313" id="313">313</a>
+<a href="#314" id="314">314</a>
+<a href="#315" id="315">315</a>
+<a href="#316" id="316">316</a>
+<a href="#317" id="317">317</a>
+<a href="#318" id="318">318</a>
+<a href="#319" id="319">319</a>
+<a href="#320" id="320">320</a>
+<a href="#321" id="321">321</a>
+<a href="#322" id="322">322</a>
+<a href="#323" id="323">323</a>
+<a href="#324" id="324">324</a>
+<a href="#325" id="325">325</a>
+<a href="#326" id="326">326</a>
+<a href="#327" id="327">327</a>
+<a href="#328" id="328">328</a>
+<a href="#329" id="329">329</a>
+<a href="#330" id="330">330</a>
+<a href="#331" id="331">331</a>
+<a href="#332" id="332">332</a>
+<a href="#333" id="333">333</a>
+<a href="#334" id="334">334</a>
+<a href="#335" id="335">335</a>
+<a href="#336" id="336">336</a>
+<a href="#337" id="337">337</a>
+<a href="#338" id="338">338</a>
+<a href="#339" id="339">339</a>
+<a href="#340" id="340">340</a>
+<a href="#341" id="341">341</a>
+<a href="#342" id="342">342</a>
+<a href="#343" id="343">343</a>
+<a href="#344" id="344">344</a>
+<a href="#345" id="345">345</a>
+<a href="#346" id="346">346</a>
+<a href="#347" id="347">347</a>
+<a href="#348" id="348">348</a>
+<a href="#349" id="349">349</a>
+<a href="#350" id="350">350</a>
+<a href="#351" id="351">351</a>
+<a href="#352" id="352">352</a>
+<a href="#353" id="353">353</a>
+<a href="#354" id="354">354</a>
+<a href="#355" id="355">355</a>
+<a href="#356" id="356">356</a>
+<a href="#357" id="357">357</a>
+<a href="#358" id="358">358</a>
+<a href="#359" id="359">359</a>
+<a href="#360" id="360">360</a>
+<a href="#361" id="361">361</a>
+<a href="#362" id="362">362</a>
+<a href="#363" id="363">363</a>
+<a href="#364" id="364">364</a>
+<a href="#365" id="365">365</a>
+<a href="#366" id="366">366</a>
+<a href="#367" id="367">367</a>
+<a href="#368" id="368">368</a>
+<a href="#369" id="369">369</a>
+<a href="#370" id="370">370</a>
+<a href="#371" id="371">371</a>
+<a href="#372" id="372">372</a>
+<a href="#373" id="373">373</a>
+<a href="#374" id="374">374</a>
+<a href="#375" id="375">375</a>
+<a href="#376" id="376">376</a>
+<a href="#377" id="377">377</a>
+<a href="#378" id="378">378</a>
+<a href="#379" id="379">379</a>
+<a href="#380" id="380">380</a>
+<a href="#381" id="381">381</a>
+<a href="#382" id="382">382</a>
+<a href="#383" id="383">383</a>
+<a href="#384" id="384">384</a>
+<a href="#385" id="385">385</a>
+<a href="#386" id="386">386</a>
+<a href="#387" id="387">387</a>
+<a href="#388" id="388">388</a>
+<a href="#389" id="389">389</a>
+<a href="#390" id="390">390</a>
+<a href="#391" id="391">391</a>
+<a href="#392" id="392">392</a>
+<a href="#393" id="393">393</a>
+<a href="#394" id="394">394</a>
+<a href="#395" id="395">395</a>
+<a href="#396" id="396">396</a>
+<a href="#397" id="397">397</a>
+<a href="#398" id="398">398</a>
+<a href="#399" id="399">399</a>
+<a href="#400" id="400">400</a>
+<a href="#401" id="401">401</a>
+<a href="#402" id="402">402</a>
+<a href="#403" id="403">403</a>
+<a href="#404" id="404">404</a>
+<a href="#405" id="405">405</a>
+<a href="#406" id="406">406</a>
+<a href="#407" id="407">407</a>
+<a href="#408" id="408">408</a>
+<a href="#409" id="409">409</a>
+<a href="#410" id="410">410</a>
+<a href="#411" id="411">411</a>
+<a href="#412" id="412">412</a>
+<a href="#413" id="413">413</a>
+<a href="#414" id="414">414</a>
+<a href="#415" id="415">415</a>
+<a href="#416" id="416">416</a>
+<a href="#417" id="417">417</a>
+<a href="#418" id="418">418</a>
+<a href="#419" id="419">419</a>
+<a href="#420" id="420">420</a>
+<a href="#421" id="421">421</a>
+<a href="#422" id="422">422</a>
+<a href="#423" id="423">423</a>
+<a href="#424" id="424">424</a>
+<a href="#425" id="425">425</a>
+<a href="#426" id="426">426</a>
+<a href="#427" id="427">427</a>
+<a href="#428" id="428">428</a>
+<a href="#429" id="429">429</a>
+<a href="#430" id="430">430</a>
+<a href="#431" id="431">431</a>
+<a href="#432" id="432">432</a>
+<a href="#433" id="433">433</a>
+<a href="#434" id="434">434</a>
+<a href="#435" id="435">435</a>
+<a href="#436" id="436">436</a>
+<a href="#437" id="437">437</a>
+<a href="#438" id="438">438</a>
+<a href="#439" id="439">439</a>
+<a href="#440" id="440">440</a>
+<a href="#441" id="441">441</a>
+<a href="#442" id="442">442</a>
+<a href="#443" id="443">443</a>
+<a href="#444" id="444">444</a>
+<a href="#445" id="445">445</a>
+<a href="#446" id="446">446</a>
+<a href="#447" id="447">447</a>
+<a href="#448" id="448">448</a>
+<a href="#449" id="449">449</a>
+<a href="#450" id="450">450</a>
+<a href="#451" id="451">451</a>
+<a href="#452" id="452">452</a>
+<a href="#453" id="453">453</a>
+<a href="#454" id="454">454</a>
+<a href="#455" id="455">455</a>
+<a href="#456" id="456">456</a>
+<a href="#457" id="457">457</a>
+<a href="#458" id="458">458</a>
+<a href="#459" id="459">459</a>
+<a href="#460" id="460">460</a>
+<a href="#461" id="461">461</a>
+<a href="#462" id="462">462</a>
+<a href="#463" id="463">463</a>
+<a href="#464" id="464">464</a>
+<a href="#465" id="465">465</a>
+<a href="#466" id="466">466</a>
+<a href="#467" id="467">467</a>
+<a href="#468" id="468">468</a>
+<a href="#469" id="469">469</a>
+<a href="#470" id="470">470</a>
+<a href="#471" id="471">471</a>
+<a href="#472" id="472">472</a>
+<a href="#473" id="473">473</a>
+<a href="#474" id="474">474</a>
+<a href="#475" id="475">475</a>
+<a href="#476" id="476">476</a>
+<a href="#477" id="477">477</a>
+<a href="#478" id="478">478</a>
+<a href="#479" id="479">479</a>
+<a href="#480" id="480">480</a>
+<a href="#481" id="481">481</a>
+<a href="#482" id="482">482</a>
+<a href="#483" id="483">483</a>
+<a href="#484" id="484">484</a>
+<a href="#485" id="485">485</a>
+<a href="#486" id="486">486</a>
+<a href="#487" id="487">487</a>
+<a href="#488" id="488">488</a>
+<a href="#489" id="489">489</a>
+<a href="#490" id="490">490</a>
+<a href="#491" id="491">491</a>
+<a href="#492" id="492">492</a>
+<a href="#493" id="493">493</a>
+<a href="#494" id="494">494</a>
+<a href="#495" id="495">495</a>
+<a href="#496" id="496">496</a>
+<a href="#497" id="497">497</a>
+<a href="#498" id="498">498</a>
+<a href="#499" id="499">499</a>
+<a href="#500" id="500">500</a>
+<a href="#501" id="501">501</a>
+<a href="#502" id="502">502</a>
+<a href="#503" id="503">503</a>
+<a href="#504" id="504">504</a>
+<a href="#505" id="505">505</a>
+<a href="#506" id="506">506</a>
+<a href="#507" id="507">507</a>
+<a href="#508" id="508">508</a>
+<a href="#509" id="509">509</a>
+<a href="#510" id="510">510</a>
+<a href="#511" id="511">511</a>
+<a href="#512" id="512">512</a>
+<a href="#513" id="513">513</a>
+<a href="#514" id="514">514</a>
+<a href="#515" id="515">515</a>
+<a href="#516" id="516">516</a>
+<a href="#517" id="517">517</a>
+<a href="#518" id="518">518</a>
+<a href="#519" id="519">519</a>
+<a href="#520" id="520">520</a>
+<a href="#521" id="521">521</a>
+<a href="#522" id="522">522</a>
+<a href="#523" id="523">523</a>
+<a href="#524" id="524">524</a>
+<a href="#525" id="525">525</a>
+<a href="#526" id="526">526</a>
+<a href="#527" id="527">527</a>
+<a href="#528" id="528">528</a>
+<a href="#529" id="529">529</a>
+<a href="#530" id="530">530</a>
+<a href="#531" id="531">531</a>
+<a href="#532" id="532">532</a>
+<a href="#533" id="533">533</a>
+<a href="#534" id="534">534</a>
+<a href="#535" id="535">535</a>
+<a href="#536" id="536">536</a>
+<a href="#537" id="537">537</a>
+<a href="#538" id="538">538</a>
+<a href="#539" id="539">539</a>
+<a href="#540" id="540">540</a>
+<a href="#541" id="541">541</a>
+<a href="#542" id="542">542</a>
+<a href="#543" id="543">543</a>
+<a href="#544" id="544">544</a>
+<a href="#545" id="545">545</a>
+<a href="#546" id="546">546</a>
+<a href="#547" id="547">547</a>
+<a href="#548" id="548">548</a>
+<a href="#549" id="549">549</a>
+<a href="#550" id="550">550</a>
+<a href="#551" id="551">551</a>
+<a href="#552" id="552">552</a>
+<a href="#553" id="553">553</a>
+<a href="#554" id="554">554</a>
+<a href="#555" id="555">555</a>
+<a href="#556" id="556">556</a>
+<a href="#557" id="557">557</a>
+<a href="#558" id="558">558</a>
+<a href="#559" id="559">559</a>
+<a href="#560" id="560">560</a>
+<a href="#561" id="561">561</a>
+<a href="#562" id="562">562</a>
+<a href="#563" id="563">563</a>
+<a href="#564" id="564">564</a>
+<a href="#565" id="565">565</a>
+<a href="#566" id="566">566</a>
+<a href="#567" id="567">567</a>
+<a href="#568" id="568">568</a>
+<a href="#569" id="569">569</a>
+<a href="#570" id="570">570</a>
+<a href="#571" id="571">571</a>
+<a href="#572" id="572">572</a>
+<a href="#573" id="573">573</a>
+<a href="#574" id="574">574</a>
+<a href="#575" id="575">575</a>
+<a href="#576" id="576">576</a>
+<a href="#577" id="577">577</a>
+<a href="#578" id="578">578</a>
+<a href="#579" id="579">579</a>
+<a href="#580" id="580">580</a>
+<a href="#581" id="581">581</a>
+<a href="#582" id="582">582</a>
+<a href="#583" id="583">583</a>
+<a href="#584" id="584">584</a>
+<a href="#585" id="585">585</a>
+<a href="#586" id="586">586</a>
+<a href="#587" id="587">587</a>
+<a href="#588" id="588">588</a>
+<a href="#589" id="589">589</a>
+<a href="#590" id="590">590</a>
+<a href="#591" id="591">591</a>
+<a href="#592" id="592">592</a>
+<a href="#593" id="593">593</a>
+<a href="#594" id="594">594</a>
+<a href="#595" id="595">595</a>
+<a href="#596" id="596">596</a>
+<a href="#597" id="597">597</a>
+<a href="#598" id="598">598</a>
+<a href="#599" id="599">599</a>
+<a href="#600" id="600">600</a>
+<a href="#601" id="601">601</a>
+<a href="#602" id="602">602</a>
+<a href="#603" id="603">603</a>
+<a href="#604" id="604">604</a>
+<a href="#605" id="605">605</a>
+<a href="#606" id="606">606</a>
+<a href="#607" id="607">607</a>
+<a href="#608" id="608">608</a>
+<a href="#609" id="609">609</a>
+<a href="#610" id="610">610</a>
+<a href="#611" id="611">611</a>
+<a href="#612" id="612">612</a>
+<a href="#613" id="613">613</a>
+<a href="#614" id="614">614</a>
+<a href="#615" id="615">615</a>
+<a href="#616" id="616">616</a>
+<a href="#617" id="617">617</a>
+<a href="#618" id="618">618</a>
+<a href="#619" id="619">619</a>
+<a href="#620" id="620">620</a>
+<a href="#621" id="621">621</a>
+<a href="#622" id="622">622</a>
+<a href="#623" id="623">623</a>
+<a href="#624" id="624">624</a>
+<a href="#625" id="625">625</a>
+<a href="#626" id="626">626</a>
+<a href="#627" id="627">627</a>
+<a href="#628" id="628">628</a>
+<a href="#629" id="629">629</a>
+<a href="#630" id="630">630</a>
+<a href="#631" id="631">631</a>
+<a href="#632" id="632">632</a>
+<a href="#633" id="633">633</a>
+<a href="#634" id="634">634</a>
+<a href="#635" id="635">635</a>
+<a href="#636" id="636">636</a>
+<a href="#637" id="637">637</a>
+<a href="#638" id="638">638</a>
+<a href="#639" id="639">639</a>
+<a href="#640" id="640">640</a>
+<a href="#641" id="641">641</a>
+<a href="#642" id="642">642</a>
+<a href="#643" id="643">643</a>
+<a href="#644" id="644">644</a>
+<a href="#645" id="645">645</a>
+<a href="#646" id="646">646</a>
+<a href="#647" id="647">647</a>
+<a href="#648" id="648">648</a>
+<a href="#649" id="649">649</a>
+<a href="#650" id="650">650</a>
+<a href="#651" id="651">651</a>
+<a href="#652" id="652">652</a>
+<a href="#653" id="653">653</a>
+<a href="#654" id="654">654</a>
+<a href="#655" id="655">655</a>
+<a href="#656" id="656">656</a>
+<a href="#657" id="657">657</a>
+<a href="#658" id="658">658</a>
+<a href="#659" id="659">659</a>
+<a href="#660" id="660">660</a>
+<a href="#661" id="661">661</a>
+<a href="#662" id="662">662</a>
+<a href="#663" id="663">663</a>
+<a href="#664" id="664">664</a>
+<a href="#665" id="665">665</a>
+<a href="#666" id="666">666</a>
+<a href="#667" id="667">667</a>
+<a href="#668" id="668">668</a>
+<a href="#669" id="669">669</a>
+<a href="#670" id="670">670</a>
+<a href="#671" id="671">671</a>
+<a href="#672" id="672">672</a>
+<a href="#673" id="673">673</a>
+<a href="#674" id="674">674</a>
+<a href="#675" id="675">675</a>
+<a href="#676" id="676">676</a>
+<a href="#677" id="677">677</a>
+<a href="#678" id="678">678</a>
+<a href="#679" id="679">679</a>
+<a href="#680" id="680">680</a>
+<a href="#681" id="681">681</a>
+<a href="#682" id="682">682</a>
+<a href="#683" id="683">683</a>
+<a href="#684" id="684">684</a>
+<a href="#685" id="685">685</a>
+<a href="#686" id="686">686</a>
+<a href="#687" id="687">687</a>
+<a href="#688" id="688">688</a>
+<a href="#689" id="689">689</a>
+<a href="#690" id="690">690</a>
+<a href="#691" id="691">691</a>
+<a href="#692" id="692">692</a>
+<a href="#693" id="693">693</a>
+<a href="#694" id="694">694</a>
+<a href="#695" id="695">695</a>
+<a href="#696" id="696">696</a>
+<a href="#697" id="697">697</a>
+<a href="#698" id="698">698</a>
+<a href="#699" id="699">699</a>
+<a href="#700" id="700">700</a>
+<a href="#701" id="701">701</a>
+<a href="#702" id="702">702</a>
+<a href="#703" id="703">703</a>
+<a href="#704" id="704">704</a>
+<a href="#705" id="705">705</a>
+<a href="#706" id="706">706</a>
+<a href="#707" id="707">707</a>
+<a href="#708" id="708">708</a>
+<a href="#709" id="709">709</a>
+<a href="#710" id="710">710</a>
+<a href="#711" id="711">711</a>
+<a href="#712" id="712">712</a>
+<a href="#713" id="713">713</a>
+<a href="#714" id="714">714</a>
+<a href="#715" id="715">715</a>
+<a href="#716" id="716">716</a>
+<a href="#717" id="717">717</a>
+<a href="#718" id="718">718</a>
+<a href="#719" id="719">719</a>
+<a href="#720" id="720">720</a>
+<a href="#721" id="721">721</a>
+<a href="#722" id="722">722</a>
+<a href="#723" id="723">723</a>
+<a href="#724" id="724">724</a>
+<a href="#725" id="725">725</a>
+<a href="#726" id="726">726</a>
+<a href="#727" id="727">727</a>
+<a href="#728" id="728">728</a>
+<a href="#729" id="729">729</a>
+<a href="#730" id="730">730</a>
+<a href="#731" id="731">731</a>
+<a href="#732" id="732">732</a>
+<a href="#733" id="733">733</a>
+<a href="#734" id="734">734</a>
+<a href="#735" id="735">735</a>
+<a href="#736" id="736">736</a>
+<a href="#737" id="737">737</a>
+<a href="#738" id="738">738</a>
+<a href="#739" id="739">739</a>
+<a href="#740" id="740">740</a>
+<a href="#741" id="741">741</a>
+<a href="#742" id="742">742</a>
+<a href="#743" id="743">743</a>
+<a href="#744" id="744">744</a>
+<a href="#745" id="745">745</a>
+<a href="#746" id="746">746</a>
+<a href="#747" id="747">747</a>
+<a href="#748" id="748">748</a>
+<a href="#749" id="749">749</a>
+<a href="#750" id="750">750</a>
+<a href="#751" id="751">751</a>
+<a href="#752" id="752">752</a>
+<a href="#753" id="753">753</a>
+<a href="#754" id="754">754</a>
+<a href="#755" id="755">755</a>
+<a href="#756" id="756">756</a>
+<a href="#757" id="757">757</a>
+<a href="#758" id="758">758</a>
+<a href="#759" id="759">759</a>
+<a href="#760" id="760">760</a>
+<a href="#761" id="761">761</a>
+<a href="#762" id="762">762</a>
+<a href="#763" id="763">763</a>
+<a href="#764" id="764">764</a>
+<a href="#765" id="765">765</a>
+<a href="#766" id="766">766</a>
+<a href="#767" id="767">767</a>
+<a href="#768" id="768">768</a>
+<a href="#769" id="769">769</a>
+<a href="#770" id="770">770</a>
+<a href="#771" id="771">771</a>
+<a href="#772" id="772">772</a>
+<a href="#773" id="773">773</a>
+<a href="#774" id="774">774</a>
+<a href="#775" id="775">775</a>
+<a href="#776" id="776">776</a>
+<a href="#777" id="777">777</a>
+<a href="#778" id="778">778</a>
+<a href="#779" id="779">779</a>
+<a href="#780" id="780">780</a>
+<a href="#781" id="781">781</a>
+<a href="#782" id="782">782</a>
+<a href="#783" id="783">783</a>
+<a href="#784" id="784">784</a>
+<a href="#785" id="785">785</a>
+<a href="#786" id="786">786</a>
+<a href="#787" id="787">787</a>
+<a href="#788" id="788">788</a>
+<a href="#789" id="789">789</a>
+<a href="#790" id="790">790</a>
+<a href="#791" id="791">791</a>
+<a href="#792" id="792">792</a>
+<a href="#793" id="793">793</a>
+<a href="#794" id="794">794</a>
+<a href="#795" id="795">795</a>
+<a href="#796" id="796">796</a>
+<a href="#797" id="797">797</a>
+<a href="#798" id="798">798</a>
+<a href="#799" id="799">799</a>
+<a href="#800" id="800">800</a>
+<a href="#801" id="801">801</a>
+<a href="#802" id="802">802</a>
+<a href="#803" id="803">803</a>
+<a href="#804" id="804">804</a>
+<a href="#805" id="805">805</a>
+<a href="#806" id="806">806</a>
+<a href="#807" id="807">807</a>
+<a href="#808" id="808">808</a>
+<a href="#809" id="809">809</a>
+<a href="#810" id="810">810</a>
+<a href="#811" id="811">811</a>
+<a href="#812" id="812">812</a>
+<a href="#813" id="813">813</a>
+<a href="#814" id="814">814</a>
+<a href="#815" id="815">815</a>
+<a href="#816" id="816">816</a>
+<a href="#817" id="817">817</a>
+<a href="#818" id="818">818</a>
+<a href="#819" id="819">819</a>
+<a href="#820" id="820">820</a>
+<a href="#821" id="821">821</a>
+<a href="#822" id="822">822</a>
+<a href="#823" id="823">823</a>
+<a href="#824" id="824">824</a>
+<a href="#825" id="825">825</a>
+<a href="#826" id="826">826</a>
+<a href="#827" id="827">827</a>
+<a href="#828" id="828">828</a>
+<a href="#829" id="829">829</a>
+<a href="#830" id="830">830</a>
+<a href="#831" id="831">831</a>
+<a href="#832" id="832">832</a>
+<a href="#833" id="833">833</a>
+<a href="#834" id="834">834</a>
+<a href="#835" id="835">835</a>
+<a href="#836" id="836">836</a>
+<a href="#837" id="837">837</a>
+<a href="#838" id="838">838</a>
+<a href="#839" id="839">839</a>
+<a href="#840" id="840">840</a>
+<a href="#841" id="841">841</a>
+<a href="#842" id="842">842</a>
+<a href="#843" id="843">843</a>
+<a href="#844" id="844">844</a>
+<a href="#845" id="845">845</a>
+<a href="#846" id="846">846</a>
+<a href="#847" id="847">847</a>
+<a href="#848" id="848">848</a>
+<a href="#849" id="849">849</a>
+<a href="#850" id="850">850</a>
+<a href="#851" id="851">851</a>
+<a href="#852" id="852">852</a>
+<a href="#853" id="853">853</a>
+<a href="#854" id="854">854</a>
+<a href="#855" id="855">855</a>
+<a href="#856" id="856">856</a>
+<a href="#857" id="857">857</a>
+<a href="#858" id="858">858</a>
+<a href="#859" id="859">859</a>
+<a href="#860" id="860">860</a>
+<a href="#861" id="861">861</a>
+<a href="#862" id="862">862</a>
+<a href="#863" id="863">863</a>
+<a href="#864" id="864">864</a>
+<a href="#865" id="865">865</a>
+<a href="#866" id="866">866</a>
+<a href="#867" id="867">867</a>
+<a href="#868" id="868">868</a>
+<a href="#869" id="869">869</a>
+<a href="#870" id="870">870</a>
+<a href="#871" id="871">871</a>
+<a href="#872" id="872">872</a>
+<a href="#873" id="873">873</a>
+<a href="#874" id="874">874</a>
+<a href="#875" id="875">875</a>
+<a href="#876" id="876">876</a>
+<a href="#877" id="877">877</a>
+<a href="#878" id="878">878</a>
+<a href="#879" id="879">879</a>
+<a href="#880" id="880">880</a>
+<a href="#881" id="881">881</a>
+<a href="#882" id="882">882</a>
+<a href="#883" id="883">883</a>
+<a href="#884" id="884">884</a>
+<a href="#885" id="885">885</a>
+<a href="#886" id="886">886</a>
+<a href="#887" id="887">887</a>
+<a href="#888" id="888">888</a>
+<a href="#889" id="889">889</a>
+<a href="#890" id="890">890</a>
+<a href="#891" id="891">891</a>
+<a href="#892" id="892">892</a>
+<a href="#893" id="893">893</a>
+<a href="#894" id="894">894</a>
+<a href="#895" id="895">895</a>
+<a href="#896" id="896">896</a>
+<a href="#897" id="897">897</a>
+<a href="#898" id="898">898</a>
+<a href="#899" id="899">899</a>
+<a href="#900" id="900">900</a>
+<a href="#901" id="901">901</a>
+<a href="#902" id="902">902</a>
+<a href="#903" id="903">903</a>
+<a href="#904" id="904">904</a>
+<a href="#905" id="905">905</a>
+<a href="#906" id="906">906</a>
+<a href="#907" id="907">907</a>
+<a href="#908" id="908">908</a>
+<a href="#909" id="909">909</a>
+<a href="#910" id="910">910</a>
+<a href="#911" id="911">911</a>
+<a href="#912" id="912">912</a>
+<a href="#913" id="913">913</a>
+<a href="#914" id="914">914</a>
+<a href="#915" id="915">915</a>
+<a href="#916" id="916">916</a>
+<a href="#917" id="917">917</a>
+<a href="#918" id="918">918</a>
+<a href="#919" id="919">919</a>
+<a href="#920" id="920">920</a>
+<a href="#921" id="921">921</a>
+<a href="#922" id="922">922</a>
+<a href="#923" id="923">923</a>
+<a href="#924" id="924">924</a>
+<a href="#925" id="925">925</a>
+<a href="#926" id="926">926</a>
+<a href="#927" id="927">927</a>
+<a href="#928" id="928">928</a>
+<a href="#929" id="929">929</a>
+<a href="#930" id="930">930</a>
+<a href="#931" id="931">931</a>
+<a href="#932" id="932">932</a>
+<a href="#933" id="933">933</a>
+<a href="#934" id="934">934</a>
+<a href="#935" id="935">935</a>
+<a href="#936" id="936">936</a>
+<a href="#937" id="937">937</a>
+<a href="#938" id="938">938</a>
+<a href="#939" id="939">939</a>
+<a href="#940" id="940">940</a>
+<a href="#941" id="941">941</a>
+<a href="#942" id="942">942</a>
+<a href="#943" id="943">943</a>
+<a href="#944" id="944">944</a>
+<a href="#945" id="945">945</a>
+<a href="#946" id="946">946</a>
+<a href="#947" id="947">947</a>
+<a href="#948" id="948">948</a>
+<a href="#949" id="949">949</a>
+<a href="#950" id="950">950</a>
+<a href="#951" id="951">951</a>
+<a href="#952" id="952">952</a>
+<a href="#953" id="953">953</a>
+<a href="#954" id="954">954</a>
+<a href="#955" id="955">955</a>
+<a href="#956" id="956">956</a>
+<a href="#957" id="957">957</a>
+<a href="#958" id="958">958</a>
+<a href="#959" id="959">959</a>
+<a href="#960" id="960">960</a>
+<a href="#961" id="961">961</a>
+<a href="#962" id="962">962</a>
+<a href="#963" id="963">963</a>
+<a href="#964" id="964">964</a>
+<a href="#965" id="965">965</a>
+<a href="#966" id="966">966</a>
+<a href="#967" id="967">967</a>
+<a href="#968" id="968">968</a>
+<a href="#969" id="969">969</a>
+<a href="#970" id="970">970</a>
+<a href="#971" id="971">971</a>
+<a href="#972" id="972">972</a>
+<a href="#973" id="973">973</a>
+<a href="#974" id="974">974</a>
+<a href="#975" id="975">975</a>
+<a href="#976" id="976">976</a>
+<a href="#977" id="977">977</a>
+<a href="#978" id="978">978</a>
+<a href="#979" id="979">979</a>
+<a href="#980" id="980">980</a>
+<a href="#981" id="981">981</a>
+<a href="#982" id="982">982</a>
+<a href="#983" id="983">983</a>
+<a href="#984" id="984">984</a>
+<a href="#985" id="985">985</a>
+<a href="#986" id="986">986</a>
+<a href="#987" id="987">987</a>
+<a href="#988" id="988">988</a>
+<a href="#989" id="989">989</a>
+<a href="#990" id="990">990</a>
+<a href="#991" id="991">991</a>
+<a href="#992" id="992">992</a>
+<a href="#993" id="993">993</a>
+<a href="#994" id="994">994</a>
+<a href="#995" id="995">995</a>
+<a href="#996" id="996">996</a>
+<a href="#997" id="997">997</a>
+<a href="#998" id="998">998</a>
+<a href="#999" id="999">999</a>
+<a href="#1000" id="1000">1000</a>
+<a href="#1001" id="1001">1001</a>
+<a href="#1002" id="1002">1002</a>
+<a href="#1003" id="1003">1003</a>
+<a href="#1004" id="1004">1004</a>
+<a href="#1005" id="1005">1005</a>
+<a href="#1006" id="1006">1006</a>
+<a href="#1007" id="1007">1007</a>
+<a href="#1008" id="1008">1008</a>
+<a href="#1009" id="1009">1009</a>
+<a href="#1010" id="1010">1010</a>
+<a href="#1011" id="1011">1011</a>
+<a href="#1012" id="1012">1012</a>
+<a href="#1013" id="1013">1013</a>
+<a href="#1014" id="1014">1014</a>
+<a href="#1015" id="1015">1015</a>
+<a href="#1016" id="1016">1016</a>
+<a href="#1017" id="1017">1017</a>
+<a href="#1018" id="1018">1018</a>
+<a href="#1019" id="1019">1019</a>
+<a href="#1020" id="1020">1020</a>
+<a href="#1021" id="1021">1021</a>
+<a href="#1022" id="1022">1022</a>
+<a href="#1023" id="1023">1023</a>
+<a href="#1024" id="1024">1024</a>
+<a href="#1025" id="1025">1025</a>
+<a href="#1026" id="1026">1026</a>
+<a href="#1027" id="1027">1027</a>
+<a href="#1028" id="1028">1028</a>
+<a href="#1029" id="1029">1029</a>
+<a href="#1030" id="1030">1030</a>
+<a href="#1031" id="1031">1031</a>
+<a href="#1032" id="1032">1032</a>
+<a href="#1033" id="1033">1033</a>
+<a href="#1034" id="1034">1034</a>
+<a href="#1035" id="1035">1035</a>
+<a href="#1036" id="1036">1036</a>
+<a href="#1037" id="1037">1037</a>
+<a href="#1038" id="1038">1038</a>
+<a href="#1039" id="1039">1039</a>
+<a href="#1040" id="1040">1040</a>
+<a href="#1041" id="1041">1041</a>
+<a href="#1042" id="1042">1042</a>
+<a href="#1043" id="1043">1043</a>
+<a href="#1044" id="1044">1044</a>
+<a href="#1045" id="1045">1045</a>
+<a href="#1046" id="1046">1046</a>
+<a href="#1047" id="1047">1047</a>
+<a href="#1048" id="1048">1048</a>
+<a href="#1049" id="1049">1049</a>
+<a href="#1050" id="1050">1050</a>
+<a href="#1051" id="1051">1051</a>
+<a href="#1052" id="1052">1052</a>
+<a href="#1053" id="1053">1053</a>
+<a href="#1054" id="1054">1054</a>
+<a href="#1055" id="1055">1055</a>
+<a href="#1056" id="1056">1056</a>
+<a href="#1057" id="1057">1057</a>
+<a href="#1058" id="1058">1058</a>
+<a href="#1059" id="1059">1059</a>
+<a href="#1060" id="1060">1060</a>
+<a href="#1061" id="1061">1061</a>
+<a href="#1062" id="1062">1062</a>
+<a href="#1063" id="1063">1063</a>
+<a href="#1064" id="1064">1064</a>
+<a href="#1065" id="1065">1065</a>
+<a href="#1066" id="1066">1066</a>
+<a href="#1067" id="1067">1067</a>
+<a href="#1068" id="1068">1068</a>
+<a href="#1069" id="1069">1069</a>
+<a href="#1070" id="1070">1070</a>
+<a href="#1071" id="1071">1071</a>
+<a href="#1072" id="1072">1072</a>
+<a href="#1073" id="1073">1073</a>
+<a href="#1074" id="1074">1074</a>
+<a href="#1075" id="1075">1075</a>
+<a href="#1076" id="1076">1076</a>
+<a href="#1077" id="1077">1077</a>
+<a href="#1078" id="1078">1078</a>
+<a href="#1079" id="1079">1079</a>
+<a href="#1080" id="1080">1080</a>
+<a href="#1081" id="1081">1081</a>
+<a href="#1082" id="1082">1082</a>
+<a href="#1083" id="1083">1083</a>
+</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
+// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
+//
+// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
+//
+// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
+// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// You may not use this file except in accordance with one or both of these
+// licenses.
+
+</span><span class="doccomment">//! Transaction builder
+//!
+//! ## Example
+//!
+//! ```
+//! # use std::str::FromStr;
+//! # use bitcoin::*;
+//! # use bdk_wallet::*;
+//! # use bdk_wallet::wallet::ChangeSet;
+//! # use bdk_wallet::wallet::error::CreateTxError;
+//! # use bdk_wallet::wallet::tx_builder::CreateTx;
+//! # use bdk_persist::PersistBackend;
+//! # use anyhow::Error;
+//! # let to_address = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap().assume_checked();
+//! # let mut wallet = doctest_wallet!();
+//! // create a TxBuilder from a wallet
+//! let mut tx_builder = wallet.build_tx();
+//!
+//! tx_builder
+//! // Create a transaction with one output to `to_address` of 50_000 satoshi
+//! .add_recipient(to_address.script_pubkey(), Amount::from_sat(50_000))
+//! // With a custom fee rate of 5.0 satoshi/vbyte
+//! .fee_rate(FeeRate::from_sat_per_vb(5).expect("valid feerate"))
+//! // Only spend non-change outputs
+//! .do_not_spend_change()
+//! // Turn on RBF signaling
+//! .enable_rbf();
+//! let psbt = tx_builder.finish()?;
+//! # Ok::<(), anyhow::Error>(())
+//! ```
+
+</span><span class="kw">use </span>alloc::{boxed::Box, rc::Rc, string::String, vec::Vec};
+<span class="kw">use </span>core::cell::RefCell;
+<span class="kw">use </span>core::fmt;
+<span class="kw">use </span>core::marker::PhantomData;
+
+<span class="kw">use </span>bitcoin::psbt::{<span class="self">self</span>, Psbt};
+<span class="kw">use </span>bitcoin::script::PushBytes;
+<span class="kw">use </span>bitcoin::{absolute, Amount, FeeRate, OutPoint, ScriptBuf, Sequence, Transaction, Txid};
+
+<span class="kw">use </span><span class="kw">super</span>::coin_selection::{CoinSelectionAlgorithm, DefaultCoinSelectionAlgorithm};
+<span class="kw">use super</span>::{CreateTxError, Wallet};
+<span class="kw">use </span><span class="kw">crate</span>::collections::{BTreeMap, HashSet};
+<span class="kw">use crate</span>::{KeychainKind, LocalOutput, Utxo, WeightedUtxo};
+
+<span class="doccomment">/// Context in which the [`TxBuilder`] is valid
+</span><span class="kw">pub trait </span>TxBuilderContext: core::fmt::Debug + Default + Clone {}
+
+<span class="doccomment">/// Marker type to indicate the [`TxBuilder`] is being used to create a new transaction (as opposed
+/// to bumping the fee of an existing one).
+</span><span class="attr">#[derive(Debug, Default, Clone)]
+</span><span class="kw">pub struct </span>CreateTx;
+<span class="kw">impl </span>TxBuilderContext <span class="kw">for </span>CreateTx {}
+
+<span class="doccomment">/// Marker type to indicate the [`TxBuilder`] is being used to bump the fee of an existing transaction.
+</span><span class="attr">#[derive(Debug, Default, Clone)]
+</span><span class="kw">pub struct </span>BumpFee;
+<span class="kw">impl </span>TxBuilderContext <span class="kw">for </span>BumpFee {}
+
+<span class="doccomment">/// A transaction builder
+///
+/// A `TxBuilder` is created by calling [`build_tx`] or [`build_fee_bump`] on a wallet. After
+/// assigning it, you set options on it until finally calling [`finish`] to consume the builder and
+/// generate the transaction.
+///
+/// Each option setting method on `TxBuilder` takes and returns `&mut self` so you can chain calls
+/// as in the following example:
+///
+/// ```
+/// # use bdk_wallet::*;
+/// # use bdk_wallet::wallet::tx_builder::*;
+/// # use bitcoin::*;
+/// # use core::str::FromStr;
+/// # use bdk_wallet::wallet::ChangeSet;
+/// # use bdk_wallet::wallet::error::CreateTxError;
+/// # use bdk_persist::PersistBackend;
+/// # use anyhow::Error;
+/// # let mut wallet = doctest_wallet!();
+/// # let addr1 = Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt").unwrap().assume_checked();
+/// # let addr2 = addr1.clone();
+/// // chaining
+/// let psbt1 = {
+/// let mut builder = wallet.build_tx();
+/// builder
+/// .ordering(TxOrdering::Untouched)
+/// .add_recipient(addr1.script_pubkey(), Amount::from_sat(50_000))
+/// .add_recipient(addr2.script_pubkey(), Amount::from_sat(50_000));
+/// builder.finish()?
+/// };
+///
+/// // non-chaining
+/// let psbt2 = {
+/// let mut builder = wallet.build_tx();
+/// builder.ordering(TxOrdering::Untouched);
+/// for addr in &[addr1, addr2] {
+/// builder.add_recipient(addr.script_pubkey(), Amount::from_sat(50_000));
+/// }
+/// builder.finish()?
+/// };
+///
+/// assert_eq!(psbt1.unsigned_tx.output[..2], psbt2.unsigned_tx.output[..2]);
+/// # Ok::<(), anyhow::Error>(())
+/// ```
+///
+/// At the moment [`coin_selection`] is an exception to the rule as it consumes `self`.
+/// This means it is usually best to call [`coin_selection`] on the return value of `build_tx` before assigning it.
+///
+/// For further examples see [this module](super::tx_builder)'s documentation;
+///
+/// [`build_tx`]: Wallet::build_tx
+/// [`build_fee_bump`]: Wallet::build_fee_bump
+/// [`finish`]: Self::finish
+/// [`coin_selection`]: Self::coin_selection
+</span><span class="attr">#[derive(Debug)]
+</span><span class="kw">pub struct </span>TxBuilder<<span class="lifetime">'a</span>, Cs, Ctx> {
+ <span class="kw">pub</span>(<span class="kw">crate</span>) wallet: Rc<RefCell<<span class="kw-2">&</span><span class="lifetime">'a </span><span class="kw-2">mut </span>Wallet>>,
+ <span class="kw">pub</span>(<span class="kw">crate</span>) params: TxParams,
+ <span class="kw">pub</span>(<span class="kw">crate</span>) coin_selection: Cs,
+ <span class="kw">pub</span>(<span class="kw">crate</span>) phantom: PhantomData<Ctx>,
+}
+
+<span class="doccomment">/// The parameters for transaction creation sans coin selection algorithm.
+</span><span class="comment">//TODO: TxParams should eventually be exposed publicly.
+</span><span class="attr">#[derive(Default, Debug, Clone)]
+</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">struct </span>TxParams {
+ <span class="kw">pub</span>(<span class="kw">crate</span>) recipients: Vec<(ScriptBuf, u64)>,
+ <span class="kw">pub</span>(<span class="kw">crate</span>) drain_wallet: bool,
+ <span class="kw">pub</span>(<span class="kw">crate</span>) drain_to: <span class="prelude-ty">Option</span><ScriptBuf>,
+ <span class="kw">pub</span>(<span class="kw">crate</span>) fee_policy: <span class="prelude-ty">Option</span><FeePolicy>,
+ <span class="kw">pub</span>(<span class="kw">crate</span>) internal_policy_path: <span class="prelude-ty">Option</span><BTreeMap<String, Vec<usize>>>,
+ <span class="kw">pub</span>(<span class="kw">crate</span>) external_policy_path: <span class="prelude-ty">Option</span><BTreeMap<String, Vec<usize>>>,
+ <span class="kw">pub</span>(<span class="kw">crate</span>) utxos: Vec<WeightedUtxo>,
+ <span class="kw">pub</span>(<span class="kw">crate</span>) unspendable: HashSet<OutPoint>,
+ <span class="kw">pub</span>(<span class="kw">crate</span>) manually_selected_only: bool,
+ <span class="kw">pub</span>(<span class="kw">crate</span>) sighash: <span class="prelude-ty">Option</span><psbt::PsbtSighashType>,
+ <span class="kw">pub</span>(<span class="kw">crate</span>) ordering: TxOrdering,
+ <span class="kw">pub</span>(<span class="kw">crate</span>) locktime: <span class="prelude-ty">Option</span><absolute::LockTime>,
+ <span class="kw">pub</span>(<span class="kw">crate</span>) rbf: <span class="prelude-ty">Option</span><RbfValue>,
+ <span class="kw">pub</span>(<span class="kw">crate</span>) version: <span class="prelude-ty">Option</span><Version>,
+ <span class="kw">pub</span>(<span class="kw">crate</span>) change_policy: ChangeSpendPolicy,
+ <span class="kw">pub</span>(<span class="kw">crate</span>) only_witness_utxo: bool,
+ <span class="kw">pub</span>(<span class="kw">crate</span>) add_global_xpubs: bool,
+ <span class="kw">pub</span>(<span class="kw">crate</span>) include_output_redeem_witness_script: bool,
+ <span class="kw">pub</span>(<span class="kw">crate</span>) bumping_fee: <span class="prelude-ty">Option</span><PreviousFee>,
+ <span class="kw">pub</span>(<span class="kw">crate</span>) current_height: <span class="prelude-ty">Option</span><absolute::LockTime>,
+ <span class="kw">pub</span>(<span class="kw">crate</span>) allow_dust: bool,
+}
+
+<span class="attr">#[derive(Clone, Copy, Debug)]
+</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">struct </span>PreviousFee {
+ <span class="kw">pub </span>absolute: u64,
+ <span class="kw">pub </span>rate: FeeRate,
+}
+
+<span class="attr">#[derive(Debug, Clone, Copy)]
+</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">enum </span>FeePolicy {
+ FeeRate(FeeRate),
+ FeeAmount(u64),
+}
+
+<span class="kw">impl </span>Default <span class="kw">for </span>FeePolicy {
+ <span class="kw">fn </span>default() -> <span class="self">Self </span>{
+ FeePolicy::FeeRate(FeeRate::BROADCAST_MIN)
+ }
+}
+
+<span class="kw">impl</span><<span class="lifetime">'a</span>, Cs: Clone, Ctx> Clone <span class="kw">for </span>TxBuilder<<span class="lifetime">'a</span>, Cs, Ctx> {
+ <span class="kw">fn </span>clone(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="self">Self </span>{
+ TxBuilder {
+ wallet: <span class="self">self</span>.wallet.clone(),
+ params: <span class="self">self</span>.params.clone(),
+ coin_selection: <span class="self">self</span>.coin_selection.clone(),
+ phantom: PhantomData,
+ }
+ }
+}
+
+<span class="comment">// methods supported by both contexts, for any CoinSelectionAlgorithm
+</span><span class="kw">impl</span><<span class="lifetime">'a</span>, Cs, Ctx> TxBuilder<<span class="lifetime">'a</span>, Cs, Ctx> {
+ <span class="doccomment">/// Set a custom fee rate.
+ ///
+ /// This method sets the mining fee paid by the transaction as a rate on its size.
+ /// This means that the total fee paid is equal to `fee_rate` times the size
+ /// of the transaction. Default is 1 sat/vB in accordance with Bitcoin Core's default
+ /// relay policy.
+ ///
+ /// Note that this is really a minimum feerate -- it's possible to
+ /// overshoot it slightly since adding a change output to drain the remaining
+ /// excess might not be viable.
+ </span><span class="kw">pub fn </span>fee_rate(<span class="kw-2">&mut </span><span class="self">self</span>, fee_rate: FeeRate) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="self">self</span>.params.fee_policy = <span class="prelude-val">Some</span>(FeePolicy::FeeRate(fee_rate));
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Set an absolute fee
+ /// The fee_absolute method refers to the absolute transaction fee in satoshis (sats).
+ /// If anyone sets both the fee_absolute method and the fee_rate method,
+ /// the FeePolicy enum will be set by whichever method was called last,
+ /// as the FeeRate and FeeAmount are mutually exclusive.
+ ///
+ /// Note that this is really a minimum absolute fee -- it's possible to
+ /// overshoot it slightly since adding a change output to drain the remaining
+ /// excess might not be viable.
+ </span><span class="kw">pub fn </span>fee_absolute(<span class="kw-2">&mut </span><span class="self">self</span>, fee_amount: u64) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="self">self</span>.params.fee_policy = <span class="prelude-val">Some</span>(FeePolicy::FeeAmount(fee_amount));
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Set the policy path to use while creating the transaction for a given keychain.
+ ///
+ /// This method accepts a map where the key is the policy node id (see
+ /// [`Policy::id`](crate::descriptor::Policy::id)) and the value is the list of the indexes of
+ /// the items that are intended to be satisfied from the policy node (see
+ /// [`SatisfiableItem::Thresh::items`](crate::descriptor::policy::SatisfiableItem::Thresh::items)).
+ ///
+ /// ## Example
+ ///
+ /// An example of when the policy path is needed is the following descriptor:
+ /// `wsh(thresh(2,pk(A),sj:and_v(v:pk(B),n:older(6)),snj:and_v(v:pk(C),after(630000))))`,
+ /// derived from the miniscript policy `thresh(2,pk(A),and(pk(B),older(6)),and(pk(C),after(630000)))`.
+ /// It declares three descriptor fragments, and at the top level it uses `thresh()` to
+ /// ensure that at least two of them are satisfied. The individual fragments are:
+ ///
+ /// 1. `pk(A)`
+ /// 2. `and(pk(B),older(6))`
+ /// 3. `and(pk(C),after(630000))`
+ ///
+ /// When those conditions are combined in pairs, it's clear that the transaction needs to be created
+ /// differently depending on how the user intends to satisfy the policy afterwards:
+ ///
+ /// * If fragments `1` and `2` are used, the transaction will need to use a specific
+ /// `n_sequence` in order to spend an `OP_CSV` branch.
+ /// * If fragments `1` and `3` are used, the transaction will need to use a specific `locktime`
+ /// in order to spend an `OP_CLTV` branch.
+ /// * If fragments `2` and `3` are used, the transaction will need both.
+ ///
+ /// When the spending policy is represented as a tree (see
+ /// [`Wallet::policies`](super::Wallet::policies)), every node
+ /// is assigned a unique identifier that can be used in the policy path to specify which of
+ /// the node's children the user intends to satisfy: for instance, assuming the `thresh()`
+ /// root node of this example has an id of `aabbccdd`, the policy path map would look like:
+ ///
+ /// `{ "aabbccdd" => [0, 1] }`
+ ///
+ /// where the key is the node's id, and the value is a list of the children that should be
+ /// used, in no particular order.
+ ///
+ /// If a particularly complex descriptor has multiple ambiguous thresholds in its structure,
+ /// multiple entries can be added to the map, one for each node that requires an explicit path.
+ ///
+ /// ```
+ /// # use std::str::FromStr;
+ /// # use std::collections::BTreeMap;
+ /// # use bitcoin::*;
+ /// # use bdk_wallet::*;
+ /// # let to_address =
+ /// Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt")
+ /// .unwrap()
+ /// .assume_checked();
+ /// # let mut wallet = doctest_wallet!();
+ /// let mut path = BTreeMap::new();
+ /// path.insert("aabbccdd".to_string(), vec![0, 1]);
+ ///
+ /// let builder = wallet
+ /// .build_tx()
+ /// .add_recipient(to_address.script_pubkey(), Amount::from_sat(50_000))
+ /// .policy_path(path, KeychainKind::External);
+ ///
+ /// # Ok::<(), anyhow::Error>(())
+ /// ```
+ </span><span class="kw">pub fn </span>policy_path(
+ <span class="kw-2">&mut </span><span class="self">self</span>,
+ policy_path: BTreeMap<String, Vec<usize>>,
+ keychain: KeychainKind,
+ ) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="kw">let </span>to_update = <span class="kw">match </span>keychain {
+ KeychainKind::Internal => <span class="kw-2">&mut </span><span class="self">self</span>.params.internal_policy_path,
+ KeychainKind::External => <span class="kw-2">&mut </span><span class="self">self</span>.params.external_policy_path,
+ };
+
+ <span class="kw-2">*</span>to_update = <span class="prelude-val">Some</span>(policy_path);
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Add the list of outpoints to the internal list of UTXOs that **must** be spent.
+ ///
+ /// If an error occurs while adding any of the UTXOs then none of them are added and the error is returned.
+ ///
+ /// These have priority over the "unspendable" utxos, meaning that if a utxo is present both in
+ /// the "utxos" and the "unspendable" list, it will be spent.
+ </span><span class="kw">pub fn </span>add_utxos(<span class="kw-2">&mut </span><span class="self">self</span>, outpoints: <span class="kw-2">&</span>[OutPoint]) -> <span class="prelude-ty">Result</span><<span class="kw-2">&mut </span><span class="self">Self</span>, AddUtxoError> {
+ {
+ <span class="kw">let </span>wallet = <span class="self">self</span>.wallet.borrow();
+ <span class="kw">let </span>utxos = outpoints
+ .iter()
+ .map(|outpoint| {
+ wallet
+ .get_utxo(<span class="kw-2">*</span>outpoint)
+ .ok_or(AddUtxoError::UnknownUtxo(<span class="kw-2">*</span>outpoint))
+ })
+ .collect::<<span class="prelude-ty">Result</span><Vec<<span class="kw">_</span>>, <span class="kw">_</span>>>()<span class="question-mark">?</span>;
+
+ <span class="kw">for </span>utxo <span class="kw">in </span>utxos {
+ <span class="kw">let </span>descriptor = wallet.get_descriptor_for_keychain(utxo.keychain);
+ <span class="kw">let </span>satisfaction_weight = descriptor.max_weight_to_satisfy().unwrap();
+ <span class="self">self</span>.params.utxos.push(WeightedUtxo {
+ satisfaction_weight,
+ utxo: Utxo::Local(utxo),
+ });
+ }
+ }
+
+ <span class="prelude-val">Ok</span>(<span class="self">self</span>)
+ }
+
+ <span class="doccomment">/// Add a utxo to the internal list of utxos that **must** be spent
+ ///
+ /// These have priority over the "unspendable" utxos, meaning that if a utxo is present both in
+ /// the "utxos" and the "unspendable" list, it will be spent.
+ </span><span class="kw">pub fn </span>add_utxo(<span class="kw-2">&mut </span><span class="self">self</span>, outpoint: OutPoint) -> <span class="prelude-ty">Result</span><<span class="kw-2">&mut </span><span class="self">Self</span>, AddUtxoError> {
+ <span class="self">self</span>.add_utxos(<span class="kw-2">&</span>[outpoint])
+ }
+
+ <span class="doccomment">/// Add a foreign UTXO i.e. a UTXO not owned by this wallet.
+ ///
+ /// At a minimum to add a foreign UTXO we need:
+ ///
+ /// 1. `outpoint`: To add it to the raw transaction.
+ /// 2. `psbt_input`: To know the value.
+ /// 3. `satisfaction_weight`: To know how much weight/vbytes the input will add to the transaction for fee calculation.
+ ///
+ /// There are several security concerns about adding foreign UTXOs that application
+ /// developers should consider. First, how do you know the value of the input is correct? If a
+ /// `non_witness_utxo` is provided in the `psbt_input` then this method implicitly verifies the
+ /// value by checking it against the transaction. If only a `witness_utxo` is provided then this
+ /// method doesn't verify the value but just takes it as a given -- it is up to you to check
+ /// that whoever sent you the `input_psbt` was not lying!
+ ///
+ /// Secondly, you must somehow provide `satisfaction_weight` of the input. Depending on your
+ /// application it may be important that this be known precisely. If not, a malicious
+ /// counterparty may fool you into putting in a value that is too low, giving the transaction a
+ /// lower than expected feerate. They could also fool you into putting a value that is too high
+ /// causing you to pay a fee that is too high. The party who is broadcasting the transaction can
+ /// of course check the real input weight matches the expected weight prior to broadcasting.
+ ///
+ /// To guarantee the `max_weight_to_satisfy` is correct, you can require the party providing the
+ /// `psbt_input` provide a miniscript descriptor for the input so you can check it against the
+ /// `script_pubkey` and then ask it for the [`max_weight_to_satisfy`].
+ ///
+ /// This is an **EXPERIMENTAL** feature, API and other major changes are expected.
+ ///
+ /// In order to use [`Wallet::calculate_fee`] or [`Wallet::calculate_fee_rate`] for a transaction
+ /// created with foreign UTXO(s) you must manually insert the corresponding TxOut(s) into the tx
+ /// graph using the [`Wallet::insert_txout`] function.
+ ///
+ /// # Errors
+ ///
+ /// This method returns errors in the following circumstances:
+ ///
+ /// 1. The `psbt_input` does not contain a `witness_utxo` or `non_witness_utxo`.
+ /// 2. The data in `non_witness_utxo` does not match what is in `outpoint`.
+ ///
+ /// Note unless you set [`only_witness_utxo`] any non-taproot `psbt_input` you pass to this
+ /// method must have `non_witness_utxo` set otherwise you will get an error when [`finish`]
+ /// is called.
+ ///
+ /// [`only_witness_utxo`]: Self::only_witness_utxo
+ /// [`finish`]: Self::finish
+ /// [`max_weight_to_satisfy`]: miniscript::Descriptor::max_weight_to_satisfy
+ </span><span class="kw">pub fn </span>add_foreign_utxo(
+ <span class="kw-2">&mut </span><span class="self">self</span>,
+ outpoint: OutPoint,
+ psbt_input: psbt::Input,
+ satisfaction_weight: usize,
+ ) -> <span class="prelude-ty">Result</span><<span class="kw-2">&mut </span><span class="self">Self</span>, AddForeignUtxoError> {
+ <span class="self">self</span>.add_foreign_utxo_with_sequence(
+ outpoint,
+ psbt_input,
+ satisfaction_weight,
+ Sequence::MAX,
+ )
+ }
+
+ <span class="doccomment">/// Same as [add_foreign_utxo](TxBuilder::add_foreign_utxo) but allows to set the nSequence value.
+ </span><span class="kw">pub fn </span>add_foreign_utxo_with_sequence(
+ <span class="kw-2">&mut </span><span class="self">self</span>,
+ outpoint: OutPoint,
+ psbt_input: psbt::Input,
+ satisfaction_weight: usize,
+ sequence: Sequence,
+ ) -> <span class="prelude-ty">Result</span><<span class="kw-2">&mut </span><span class="self">Self</span>, AddForeignUtxoError> {
+ <span class="kw">if </span>psbt_input.witness_utxo.is_none() {
+ <span class="kw">match </span>psbt_input.non_witness_utxo.as_ref() {
+ <span class="prelude-val">Some</span>(tx) => {
+ <span class="kw">if </span>tx.txid() != outpoint.txid {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(AddForeignUtxoError::InvalidTxid {
+ input_txid: tx.txid(),
+ foreign_utxo: outpoint,
+ });
+ }
+ <span class="kw">if </span>tx.output.len() <= outpoint.vout <span class="kw">as </span>usize {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(AddForeignUtxoError::InvalidOutpoint(outpoint));
+ }
+ }
+ <span class="prelude-val">None </span>=> {
+ <span class="kw">return </span><span class="prelude-val">Err</span>(AddForeignUtxoError::MissingUtxo);
+ }
+ }
+ }
+
+ <span class="self">self</span>.params.utxos.push(WeightedUtxo {
+ satisfaction_weight,
+ utxo: Utxo::Foreign {
+ outpoint,
+ sequence: <span class="prelude-val">Some</span>(sequence),
+ psbt_input: Box::new(psbt_input),
+ },
+ });
+
+ <span class="prelude-val">Ok</span>(<span class="self">self</span>)
+ }
+
+ <span class="doccomment">/// Only spend utxos added by [`add_utxo`].
+ ///
+ /// The wallet will **not** add additional utxos to the transaction even if they are needed to
+ /// make the transaction valid.
+ ///
+ /// [`add_utxo`]: Self::add_utxo
+ </span><span class="kw">pub fn </span>manually_selected_only(<span class="kw-2">&mut </span><span class="self">self</span>) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="self">self</span>.params.manually_selected_only = <span class="bool-val">true</span>;
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Replace the internal list of unspendable utxos with a new list
+ ///
+ /// It's important to note that the "must-be-spent" utxos added with [`TxBuilder::add_utxo`]
+ /// have priority over these. See the docs of the two linked methods for more details.
+ </span><span class="kw">pub fn </span>unspendable(<span class="kw-2">&mut </span><span class="self">self</span>, unspendable: Vec<OutPoint>) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="self">self</span>.params.unspendable = unspendable.into_iter().collect();
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Add a utxo to the internal list of unspendable utxos
+ ///
+ /// It's important to note that the "must-be-spent" utxos added with [`TxBuilder::add_utxo`]
+ /// have priority over this. See the docs of the two linked methods for more details.
+ </span><span class="kw">pub fn </span>add_unspendable(<span class="kw-2">&mut </span><span class="self">self</span>, unspendable: OutPoint) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="self">self</span>.params.unspendable.insert(unspendable);
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Sign with a specific sig hash
+ ///
+ /// **Use this option very carefully**
+ </span><span class="kw">pub fn </span>sighash(<span class="kw-2">&mut </span><span class="self">self</span>, sighash: psbt::PsbtSighashType) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="self">self</span>.params.sighash = <span class="prelude-val">Some</span>(sighash);
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Choose the ordering for inputs and outputs of the transaction
+ </span><span class="kw">pub fn </span>ordering(<span class="kw-2">&mut </span><span class="self">self</span>, ordering: TxOrdering) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="self">self</span>.params.ordering = ordering;
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Use a specific nLockTime while creating the transaction
+ ///
+ /// This can cause conflicts if the wallet's descriptors contain an "after" (OP_CLTV) operator.
+ </span><span class="kw">pub fn </span>nlocktime(<span class="kw-2">&mut </span><span class="self">self</span>, locktime: absolute::LockTime) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="self">self</span>.params.locktime = <span class="prelude-val">Some</span>(locktime);
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Build a transaction with a specific version
+ ///
+ /// The `version` should always be greater than `0` and greater than `1` if the wallet's
+ /// descriptors contain an "older" (OP_CSV) operator.
+ </span><span class="kw">pub fn </span>version(<span class="kw-2">&mut </span><span class="self">self</span>, version: i32) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="self">self</span>.params.version = <span class="prelude-val">Some</span>(Version(version));
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Do not spend change outputs
+ ///
+ /// This effectively adds all the change outputs to the "unspendable" list. See
+ /// [`TxBuilder::unspendable`].
+ </span><span class="kw">pub fn </span>do_not_spend_change(<span class="kw-2">&mut </span><span class="self">self</span>) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="self">self</span>.params.change_policy = ChangeSpendPolicy::ChangeForbidden;
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Only spend change outputs
+ ///
+ /// This effectively adds all the non-change outputs to the "unspendable" list. See
+ /// [`TxBuilder::unspendable`].
+ </span><span class="kw">pub fn </span>only_spend_change(<span class="kw-2">&mut </span><span class="self">self</span>) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="self">self</span>.params.change_policy = ChangeSpendPolicy::OnlyChange;
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Set a specific [`ChangeSpendPolicy`]. See [`TxBuilder::do_not_spend_change`] and
+ /// [`TxBuilder::only_spend_change`] for some shortcuts.
+ </span><span class="kw">pub fn </span>change_policy(<span class="kw-2">&mut </span><span class="self">self</span>, change_policy: ChangeSpendPolicy) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="self">self</span>.params.change_policy = change_policy;
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Only Fill-in the [`psbt::Input::witness_utxo`](bitcoin::psbt::Input::witness_utxo) field when spending from
+ /// SegWit descriptors.
+ ///
+ /// This reduces the size of the PSBT, but some signers might reject them due to the lack of
+ /// the `non_witness_utxo`.
+ </span><span class="kw">pub fn </span>only_witness_utxo(<span class="kw-2">&mut </span><span class="self">self</span>) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="self">self</span>.params.only_witness_utxo = <span class="bool-val">true</span>;
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Fill-in the [`psbt::Output::redeem_script`](bitcoin::psbt::Output::redeem_script) and
+ /// [`psbt::Output::witness_script`](bitcoin::psbt::Output::witness_script) fields.
+ ///
+ /// This is useful for signers which always require it, like ColdCard hardware wallets.
+ </span><span class="kw">pub fn </span>include_output_redeem_witness_script(<span class="kw-2">&mut </span><span class="self">self</span>) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="self">self</span>.params.include_output_redeem_witness_script = <span class="bool-val">true</span>;
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Fill-in the `PSBT_GLOBAL_XPUB` field with the extended keys contained in both the external
+ /// and internal descriptors
+ ///
+ /// This is useful for offline signers that take part to a multisig. Some hardware wallets like
+ /// BitBox and ColdCard are known to require this.
+ </span><span class="kw">pub fn </span>add_global_xpubs(<span class="kw-2">&mut </span><span class="self">self</span>) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="self">self</span>.params.add_global_xpubs = <span class="bool-val">true</span>;
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Spend all the available inputs. This respects filters like [`TxBuilder::unspendable`] and the change policy.
+ </span><span class="kw">pub fn </span>drain_wallet(<span class="kw-2">&mut </span><span class="self">self</span>) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="self">self</span>.params.drain_wallet = <span class="bool-val">true</span>;
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Choose the coin selection algorithm
+ ///
+ /// Overrides the [`DefaultCoinSelectionAlgorithm`].
+ ///
+ /// Note that this function consumes the builder and returns it so it is usually best to put this as the first call on the builder.
+ </span><span class="kw">pub fn </span>coin_selection<P: CoinSelectionAlgorithm>(
+ <span class="self">self</span>,
+ coin_selection: P,
+ ) -> TxBuilder<<span class="lifetime">'a</span>, P, Ctx> {
+ TxBuilder {
+ wallet: <span class="self">self</span>.wallet,
+ params: <span class="self">self</span>.params,
+ coin_selection,
+ phantom: PhantomData,
+ }
+ }
+
+ <span class="doccomment">/// Enable signaling RBF
+ ///
+ /// This will use the default nSequence value of `0xFFFFFFFD`.
+ </span><span class="kw">pub fn </span>enable_rbf(<span class="kw-2">&mut </span><span class="self">self</span>) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="self">self</span>.params.rbf = <span class="prelude-val">Some</span>(RbfValue::Default);
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Enable signaling RBF with a specific nSequence value
+ ///
+ /// This can cause conflicts if the wallet's descriptors contain an "older" (OP_CSV) operator
+ /// and the given `nsequence` is lower than the CSV value.
+ ///
+ /// If the `nsequence` is higher than `0xFFFFFFFD` an error will be thrown, since it would not
+ /// be a valid nSequence to signal RBF.
+ </span><span class="kw">pub fn </span>enable_rbf_with_sequence(<span class="kw-2">&mut </span><span class="self">self</span>, nsequence: Sequence) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="self">self</span>.params.rbf = <span class="prelude-val">Some</span>(RbfValue::Value(nsequence));
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Set the current blockchain height.
+ ///
+ /// This will be used to:
+ /// 1. Set the nLockTime for preventing fee sniping.
+ /// **Note**: This will be ignored if you manually specify a nlocktime using [`TxBuilder::nlocktime`].
+ /// 2. Decide whether coinbase outputs are mature or not. If the coinbase outputs are not
+ /// mature at `current_height`, we ignore them in the coin selection.
+ /// If you want to create a transaction that spends immature coinbase inputs, manually
+ /// add them using [`TxBuilder::add_utxos`].
+ ///
+ /// In both cases, if you don't provide a current height, we use the last sync height.
+ </span><span class="kw">pub fn </span>current_height(<span class="kw-2">&mut </span><span class="self">self</span>, height: u32) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="self">self</span>.params.current_height =
+ <span class="prelude-val">Some</span>(absolute::LockTime::from_height(height).expect(<span class="string">"Invalid height"</span>));
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Set whether or not the dust limit is checked.
+ ///
+ /// **Note**: by avoiding a dust limit check you may end up with a transaction that is non-standard.
+ </span><span class="kw">pub fn </span>allow_dust(<span class="kw-2">&mut </span><span class="self">self</span>, allow_dust: bool) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="self">self</span>.params.allow_dust = allow_dust;
+ <span class="self">self
+ </span>}
+}
+
+<span class="kw">impl</span><<span class="lifetime">'a</span>, Cs: CoinSelectionAlgorithm, Ctx> TxBuilder<<span class="lifetime">'a</span>, Cs, Ctx> {
+ <span class="doccomment">/// Finish building the transaction.
+ ///
+ /// Returns a new [`Psbt`] per [`BIP174`].
+ ///
+ /// [`BIP174`]: https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki
+ </span><span class="kw">pub fn </span>finish(<span class="self">self</span>) -> <span class="prelude-ty">Result</span><Psbt, CreateTxError> {
+ <span class="self">self</span>.wallet
+ .borrow_mut()
+ .create_tx(<span class="self">self</span>.coin_selection, <span class="self">self</span>.params)
+ }
+}
+
+<span class="attr">#[derive(Debug)]
+</span><span class="doccomment">/// Error returned from [`TxBuilder::add_utxo`] and [`TxBuilder::add_utxos`]
+</span><span class="kw">pub enum </span>AddUtxoError {
+ <span class="doccomment">/// Happens when trying to spend an UTXO that is not in the internal database
+ </span>UnknownUtxo(OutPoint),
+}
+
+<span class="kw">impl </span>fmt::Display <span class="kw">for </span>AddUtxoError {
+ <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
+ <span class="kw">match </span><span class="self">self </span>{
+ <span class="self">Self</span>::UnknownUtxo(outpoint) => <span class="macro">write!</span>(
+ f,
+ <span class="string">"UTXO not found in the internal database for txid: {} with vout: {}"</span>,
+ outpoint.txid, outpoint.vout
+ ),
+ }
+ }
+}
+
+<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
+</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>AddUtxoError {}
+
+<span class="attr">#[derive(Debug)]
+</span><span class="doccomment">/// Error returned from [`TxBuilder::add_foreign_utxo`].
+</span><span class="kw">pub enum </span>AddForeignUtxoError {
+ <span class="doccomment">/// Foreign utxo outpoint txid does not match PSBT input txid
+ </span>InvalidTxid {
+ <span class="doccomment">/// PSBT input txid
+ </span>input_txid: Txid,
+ <span class="doccomment">/// Foreign UTXO outpoint
+ </span>foreign_utxo: OutPoint,
+ },
+ <span class="doccomment">/// Requested outpoint doesn't exist in the tx (vout greater than available outputs)
+ </span>InvalidOutpoint(OutPoint),
+ <span class="doccomment">/// Foreign utxo missing witness_utxo or non_witness_utxo
+ </span>MissingUtxo,
+}
+
+<span class="kw">impl </span>fmt::Display <span class="kw">for </span>AddForeignUtxoError {
+ <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
+ <span class="kw">match </span><span class="self">self </span>{
+ <span class="self">Self</span>::InvalidTxid {
+ input_txid,
+ foreign_utxo,
+ } => <span class="macro">write!</span>(
+ f,
+ <span class="string">"Foreign UTXO outpoint txid: {} does not match PSBT input txid: {}"</span>,
+ foreign_utxo.txid, input_txid,
+ ),
+ <span class="self">Self</span>::InvalidOutpoint(outpoint) => <span class="macro">write!</span>(
+ f,
+ <span class="string">"Requested outpoint doesn't exist for txid: {} with vout: {}"</span>,
+ outpoint.txid, outpoint.vout,
+ ),
+ <span class="self">Self</span>::MissingUtxo => <span class="macro">write!</span>(f, <span class="string">"Foreign utxo missing witness_utxo or non_witness_utxo"</span>),
+ }
+ }
+}
+
+<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
+</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>AddForeignUtxoError {}
+
+<span class="attr">#[derive(Debug)]
+</span><span class="doccomment">/// Error returned from [`TxBuilder::allow_shrinking`]
+</span><span class="kw">pub enum </span>AllowShrinkingError {
+ <span class="doccomment">/// Script/PubKey was not in the original transaction
+ </span>MissingScriptPubKey(ScriptBuf),
+}
+
+<span class="kw">impl </span>fmt::Display <span class="kw">for </span>AllowShrinkingError {
+ <span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>fmt::Formatter<<span class="lifetime">'_</span>>) -> fmt::Result {
+ <span class="kw">match </span><span class="self">self </span>{
+ <span class="self">Self</span>::MissingScriptPubKey(script_buf) => <span class="macro">write!</span>(
+ f,
+ <span class="string">"Script/PubKey was not in the original transaction: {}"</span>,
+ script_buf,
+ ),
+ }
+ }
+}
+
+<span class="attr">#[cfg(feature = <span class="string">"std"</span>)]
+</span><span class="kw">impl </span>std::error::Error <span class="kw">for </span>AllowShrinkingError {}
+
+<span class="kw">impl</span><<span class="lifetime">'a</span>, Cs: CoinSelectionAlgorithm> TxBuilder<<span class="lifetime">'a</span>, Cs, CreateTx> {
+ <span class="doccomment">/// Replace the recipients already added with a new list
+ </span><span class="kw">pub fn </span>set_recipients(<span class="kw-2">&mut </span><span class="self">self</span>, recipients: Vec<(ScriptBuf, Amount)>) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="self">self</span>.params.recipients = recipients
+ .into_iter()
+ .map(|(script, amount)| (script, amount.to_sat()))
+ .collect();
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Add a recipient to the internal list
+ </span><span class="kw">pub fn </span>add_recipient(<span class="kw-2">&mut </span><span class="self">self</span>, script_pubkey: ScriptBuf, amount: Amount) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="self">self</span>.params
+ .recipients
+ .push((script_pubkey, amount.to_sat()));
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Add data as an output, using OP_RETURN
+ </span><span class="kw">pub fn </span>add_data<T: AsRef<PushBytes>>(<span class="kw-2">&mut </span><span class="self">self</span>, data: <span class="kw-2">&</span>T) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="kw">let </span>script = ScriptBuf::new_op_return(data);
+ <span class="self">self</span>.add_recipient(script, Amount::ZERO);
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Sets the address to *drain* excess coins to.
+ ///
+ /// Usually, when there are excess coins they are sent to a change address generated by the
+ /// wallet. This option replaces the usual change address with an arbitrary `script_pubkey` of
+ /// your choosing. Just as with a change output, if the drain output is not needed (the excess
+ /// coins are too small) it will not be included in the resulting transaction. The only
+ /// difference is that it is valid to use `drain_to` without setting any ordinary recipients
+ /// with [`add_recipient`] (but it is perfectly fine to add recipients as well).
+ ///
+ /// If you choose not to set any recipients, you should either provide the utxos that the
+ /// transaction should spend via [`add_utxos`], or set [`drain_wallet`] to spend all of them.
+ ///
+ /// When bumping the fees of a transaction made with this option, you probably want to
+ /// use [`allow_shrinking`] to allow this output to be reduced to pay for the extra fees.
+ ///
+ /// # Example
+ ///
+ /// `drain_to` is very useful for draining all the coins in a wallet with [`drain_wallet`] to a
+ /// single address.
+ ///
+ /// ```
+ /// # use std::str::FromStr;
+ /// # use bitcoin::*;
+ /// # use bdk_wallet::*;
+ /// # use bdk_wallet::wallet::ChangeSet;
+ /// # use bdk_wallet::wallet::error::CreateTxError;
+ /// # use bdk_wallet::wallet::tx_builder::CreateTx;
+ /// # use bdk_persist::PersistBackend;
+ /// # use anyhow::Error;
+ /// # let to_address =
+ /// Address::from_str("2N4eQYCbKUHCCTUjBJeHcJp9ok6J2GZsTDt")
+ /// .unwrap()
+ /// .assume_checked();
+ /// # let mut wallet = doctest_wallet!();
+ /// let mut tx_builder = wallet.build_tx();
+ ///
+ /// tx_builder
+ /// // Spend all outputs in this wallet.
+ /// .drain_wallet()
+ /// // Send the excess (which is all the coins minus the fee) to this address.
+ /// .drain_to(to_address.script_pubkey())
+ /// .fee_rate(FeeRate::from_sat_per_vb(5).expect("valid feerate"))
+ /// .enable_rbf();
+ /// let psbt = tx_builder.finish()?;
+ /// # Ok::<(), anyhow::Error>(())
+ /// ```
+ ///
+ /// [`allow_shrinking`]: Self::allow_shrinking
+ /// [`add_recipient`]: Self::add_recipient
+ /// [`add_utxos`]: Self::add_utxos
+ /// [`drain_wallet`]: Self::drain_wallet
+ </span><span class="kw">pub fn </span>drain_to(<span class="kw-2">&mut </span><span class="self">self</span>, script_pubkey: ScriptBuf) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="self">self</span>.params.drain_to = <span class="prelude-val">Some</span>(script_pubkey);
+ <span class="self">self
+ </span>}
+}
+
+<span class="comment">// methods supported only by bump_fee
+</span><span class="kw">impl</span><<span class="lifetime">'a</span>> TxBuilder<<span class="lifetime">'a</span>, DefaultCoinSelectionAlgorithm, BumpFee> {
+ <span class="doccomment">/// Explicitly tells the wallet that it is allowed to reduce the amount of the output matching this
+ /// `script_pubkey` in order to bump the transaction fee. Without specifying this the wallet
+ /// will attempt to find a change output to shrink instead.
+ ///
+ /// **Note** that the output may shrink to below the dust limit and therefore be removed. If it is
+ /// preserved then it is currently not guaranteed to be in the same position as it was
+ /// originally.
+ ///
+ /// Returns an `Err` if `script_pubkey` can't be found among the recipients of the
+ /// transaction we are bumping.
+ </span><span class="kw">pub fn </span>allow_shrinking(
+ <span class="kw-2">&mut </span><span class="self">self</span>,
+ script_pubkey: ScriptBuf,
+ ) -> <span class="prelude-ty">Result</span><<span class="kw-2">&mut </span><span class="self">Self</span>, AllowShrinkingError> {
+ <span class="kw">match </span><span class="self">self
+ </span>.params
+ .recipients
+ .iter()
+ .position(|(recipient_script, <span class="kw">_</span>)| <span class="kw-2">*</span>recipient_script == script_pubkey)
+ {
+ <span class="prelude-val">Some</span>(position) => {
+ <span class="self">self</span>.params.recipients.remove(position);
+ <span class="self">self</span>.params.drain_to = <span class="prelude-val">Some</span>(script_pubkey);
+ <span class="prelude-val">Ok</span>(<span class="self">self</span>)
+ }
+ <span class="prelude-val">None </span>=> <span class="prelude-val">Err</span>(AllowShrinkingError::MissingScriptPubKey(script_pubkey)),
+ }
+ }
+}
+
+<span class="doccomment">/// Ordering of the transaction's inputs and outputs
+</span><span class="attr">#[derive(Default, Debug, Ord, PartialOrd, Eq, PartialEq, Hash, Clone, Copy)]
+</span><span class="kw">pub enum </span>TxOrdering {
+ <span class="doccomment">/// Randomized (default)
+ </span><span class="attr">#[default]
+ </span>Shuffle,
+ <span class="doccomment">/// Unchanged
+ </span>Untouched,
+ <span class="doccomment">/// BIP69 / Lexicographic
+ </span>Bip69Lexicographic,
+}
+
+<span class="kw">impl </span>TxOrdering {
+ <span class="doccomment">/// Sort transaction inputs and outputs by [`TxOrdering`] variant
+ </span><span class="kw">pub fn </span>sort_tx(<span class="kw-2">&</span><span class="self">self</span>, tx: <span class="kw-2">&mut </span>Transaction) {
+ <span class="kw">match </span><span class="self">self </span>{
+ TxOrdering::Untouched => {}
+ TxOrdering::Shuffle => {
+ <span class="kw">use </span>rand::seq::SliceRandom;
+ <span class="kw">let </span><span class="kw-2">mut </span>rng = rand::thread_rng();
+ tx.input.shuffle(<span class="kw-2">&mut </span>rng);
+ tx.output.shuffle(<span class="kw-2">&mut </span>rng);
+ }
+ TxOrdering::Bip69Lexicographic => {
+ tx.input.sort_unstable_by_key(|txin| {
+ (txin.previous_output.txid, txin.previous_output.vout)
+ });
+ tx.output
+ .sort_unstable_by_key(|txout| (txout.value, txout.script_pubkey.clone()));
+ }
+ }
+ }
+}
+
+<span class="doccomment">/// Transaction version
+///
+/// Has a default value of `1`
+</span><span class="attr">#[derive(Debug, Ord, PartialOrd, Eq, PartialEq, Hash, Clone, Copy)]
+</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">struct </span>Version(<span class="kw">pub</span>(<span class="kw">crate</span>) i32);
+
+<span class="kw">impl </span>Default <span class="kw">for </span>Version {
+ <span class="kw">fn </span>default() -> <span class="self">Self </span>{
+ Version(<span class="number">1</span>)
+ }
+}
+
+<span class="doccomment">/// RBF nSequence value
+///
+/// Has a default value of `0xFFFFFFFD`
+</span><span class="attr">#[derive(Debug, Ord, PartialOrd, Eq, PartialEq, Hash, Clone, Copy)]
+</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">enum </span>RbfValue {
+ Default,
+ Value(Sequence),
+}
+
+<span class="kw">impl </span>RbfValue {
+ <span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>get_value(<span class="kw-2">&</span><span class="self">self</span>) -> Sequence {
+ <span class="kw">match </span><span class="self">self </span>{
+ RbfValue::Default => Sequence::ENABLE_RBF_NO_LOCKTIME,
+ RbfValue::Value(v) => <span class="kw-2">*</span>v,
+ }
+ }
+}
+
+<span class="doccomment">/// Policy regarding the use of change outputs when creating a transaction
+</span><span class="attr">#[derive(Default, Debug, Ord, PartialOrd, Eq, PartialEq, Hash, Clone, Copy)]
+</span><span class="kw">pub enum </span>ChangeSpendPolicy {
+ <span class="doccomment">/// Use both change and non-change outputs (default)
+ </span><span class="attr">#[default]
+ </span>ChangeAllowed,
+ <span class="doccomment">/// Only use change outputs (see [`TxBuilder::only_spend_change`])
+ </span>OnlyChange,
+ <span class="doccomment">/// Only use non-change outputs (see [`TxBuilder::do_not_spend_change`])
+ </span>ChangeForbidden,
+}
+
+<span class="kw">impl </span>ChangeSpendPolicy {
+ <span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>is_satisfied_by(<span class="kw-2">&</span><span class="self">self</span>, utxo: <span class="kw-2">&</span>LocalOutput) -> bool {
+ <span class="kw">match </span><span class="self">self </span>{
+ ChangeSpendPolicy::ChangeAllowed => <span class="bool-val">true</span>,
+ ChangeSpendPolicy::OnlyChange => utxo.keychain == KeychainKind::Internal,
+ ChangeSpendPolicy::ChangeForbidden => utxo.keychain == KeychainKind::External,
+ }
+ }
+}
+
+<span class="attr">#[cfg(test)]
+</span><span class="kw">mod </span>test {
+ <span class="kw">const </span>ORDERING_TEST_TX: <span class="kw-2">&</span>str = <span class="string">"0200000003c26f3eb7932f7acddc5ddd26602b77e7516079b03090a16e2c2f54\
+ 85d1fd600f0100000000ffffffffc26f3eb7932f7acddc5ddd26602b77e75160\
+ 79b03090a16e2c2f5485d1fd600f0000000000ffffffff571fb3e02278217852\
+ dd5d299947e2b7354a639adc32ec1fa7b82cfb5dec530e0500000000ffffffff\
+ 03e80300000000000002aaeee80300000000000001aa200300000000000001ff\
+ 00000000"</span>;
+ <span class="macro">macro_rules! </span>ordering_test_tx {
+ () => {
+ deserialize::<bitcoin::Transaction>(<span class="kw-2">&</span>Vec::<u8>::from_hex(ORDERING_TEST_TX).unwrap())
+ .unwrap()
+ };
+ }
+
+ <span class="kw">use </span>bdk_chain::ConfirmationTime;
+ <span class="kw">use </span>bitcoin::consensus::deserialize;
+ <span class="kw">use </span>bitcoin::hex::FromHex;
+ <span class="kw">use </span>bitcoin::TxOut;
+
+ <span class="kw">use super</span>::<span class="kw-2">*</span>;
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_output_ordering_default_shuffle() {
+ <span class="macro">assert_eq!</span>(TxOrdering::default(), TxOrdering::Shuffle);
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_output_ordering_untouched() {
+ <span class="kw">let </span>original_tx = <span class="macro">ordering_test_tx!</span>();
+ <span class="kw">let </span><span class="kw-2">mut </span>tx = original_tx.clone();
+
+ TxOrdering::Untouched.sort_tx(<span class="kw-2">&mut </span>tx);
+
+ <span class="macro">assert_eq!</span>(original_tx, tx);
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_output_ordering_shuffle() {
+ <span class="kw">let </span>original_tx = <span class="macro">ordering_test_tx!</span>();
+ <span class="kw">let </span><span class="kw-2">mut </span>tx = original_tx.clone();
+
+ (<span class="number">0</span>..<span class="number">40</span>)
+ .find(|<span class="kw">_</span>| {
+ TxOrdering::Shuffle.sort_tx(<span class="kw-2">&mut </span>tx);
+ original_tx.input != tx.input
+ })
+ .expect(<span class="string">"it should have moved the inputs at least once"</span>);
+
+ <span class="kw">let </span><span class="kw-2">mut </span>tx = original_tx.clone();
+ (<span class="number">0</span>..<span class="number">40</span>)
+ .find(|<span class="kw">_</span>| {
+ TxOrdering::Shuffle.sort_tx(<span class="kw-2">&mut </span>tx);
+ original_tx.output != tx.output
+ })
+ .expect(<span class="string">"it should have moved the outputs at least once"</span>);
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_output_ordering_bip69() {
+ <span class="kw">use </span>core::str::FromStr;
+
+ <span class="kw">let </span>original_tx = <span class="macro">ordering_test_tx!</span>();
+ <span class="kw">let </span><span class="kw-2">mut </span>tx = original_tx;
+
+ TxOrdering::Bip69Lexicographic.sort_tx(<span class="kw-2">&mut </span>tx);
+
+ <span class="macro">assert_eq!</span>(
+ tx.input[<span class="number">0</span>].previous_output,
+ bitcoin::OutPoint::from_str(
+ <span class="string">"0e53ec5dfb2cb8a71fec32dc9a634a35b7e24799295ddd5278217822e0b31f57:5"
+ </span>)
+ .unwrap()
+ );
+ <span class="macro">assert_eq!</span>(
+ tx.input[<span class="number">1</span>].previous_output,
+ bitcoin::OutPoint::from_str(
+ <span class="string">"0f60fdd185542f2c6ea19030b0796051e7772b6026dd5ddccd7a2f93b73e6fc2:0"
+ </span>)
+ .unwrap()
+ );
+ <span class="macro">assert_eq!</span>(
+ tx.input[<span class="number">2</span>].previous_output,
+ bitcoin::OutPoint::from_str(
+ <span class="string">"0f60fdd185542f2c6ea19030b0796051e7772b6026dd5ddccd7a2f93b73e6fc2:1"
+ </span>)
+ .unwrap()
+ );
+
+ <span class="macro">assert_eq!</span>(tx.output[<span class="number">0</span>].value.to_sat(), <span class="number">800</span>);
+ <span class="macro">assert_eq!</span>(tx.output[<span class="number">1</span>].script_pubkey, ScriptBuf::from(<span class="macro">vec!</span>[<span class="number">0xAA</span>]));
+ <span class="macro">assert_eq!</span>(
+ tx.output[<span class="number">2</span>].script_pubkey,
+ ScriptBuf::from(<span class="macro">vec!</span>[<span class="number">0xAA</span>, <span class="number">0xEE</span>])
+ );
+ }
+
+ <span class="kw">fn </span>get_test_utxos() -> Vec<LocalOutput> {
+ <span class="kw">use </span>bitcoin::hashes::Hash;
+
+ <span class="macro">vec!</span>[
+ LocalOutput {
+ outpoint: OutPoint {
+ txid: bitcoin::Txid::from_slice(<span class="kw-2">&</span>[<span class="number">0</span>; <span class="number">32</span>]).unwrap(),
+ vout: <span class="number">0</span>,
+ },
+ txout: TxOut::NULL,
+ keychain: KeychainKind::External,
+ is_spent: <span class="bool-val">false</span>,
+ confirmation_time: ConfirmationTime::Unconfirmed { last_seen: <span class="number">0 </span>},
+ derivation_index: <span class="number">0</span>,
+ },
+ LocalOutput {
+ outpoint: OutPoint {
+ txid: bitcoin::Txid::from_slice(<span class="kw-2">&</span>[<span class="number">0</span>; <span class="number">32</span>]).unwrap(),
+ vout: <span class="number">1</span>,
+ },
+ txout: TxOut::NULL,
+ keychain: KeychainKind::Internal,
+ is_spent: <span class="bool-val">false</span>,
+ confirmation_time: ConfirmationTime::Confirmed {
+ height: <span class="number">32</span>,
+ time: <span class="number">42</span>,
+ },
+ derivation_index: <span class="number">1</span>,
+ },
+ ]
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_change_spend_policy_default() {
+ <span class="kw">let </span>change_spend_policy = ChangeSpendPolicy::default();
+ <span class="kw">let </span>filtered = get_test_utxos()
+ .into_iter()
+ .filter(|u| change_spend_policy.is_satisfied_by(u))
+ .count();
+
+ <span class="macro">assert_eq!</span>(filtered, <span class="number">2</span>);
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_change_spend_policy_no_internal() {
+ <span class="kw">let </span>change_spend_policy = ChangeSpendPolicy::ChangeForbidden;
+ <span class="kw">let </span>filtered = get_test_utxos()
+ .into_iter()
+ .filter(|u| change_spend_policy.is_satisfied_by(u))
+ .collect::<Vec<<span class="kw">_</span>>>();
+
+ <span class="macro">assert_eq!</span>(filtered.len(), <span class="number">1</span>);
+ <span class="macro">assert_eq!</span>(filtered[<span class="number">0</span>].keychain, KeychainKind::External);
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_change_spend_policy_only_internal() {
+ <span class="kw">let </span>change_spend_policy = ChangeSpendPolicy::OnlyChange;
+ <span class="kw">let </span>filtered = get_test_utxos()
+ .into_iter()
+ .filter(|u| change_spend_policy.is_satisfied_by(u))
+ .collect::<Vec<<span class="kw">_</span>>>();
+
+ <span class="macro">assert_eq!</span>(filtered.len(), <span class="number">1</span>);
+ <span class="macro">assert_eq!</span>(filtered[<span class="number">0</span>].keychain, KeychainKind::Internal);
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_default_tx_version_1() {
+ <span class="kw">let </span>version = Version::default();
+ <span class="macro">assert_eq!</span>(version.<span class="number">0</span>, <span class="number">1</span>);
+ }
+}
+</code></pre></div>
+</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
--- /dev/null
+<!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="Source of the Rust file `crates/wallet/src/wallet/utils.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>utils.rs - source</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/source-script-5cf2e01a42cc9858.js"></script><script defer src="../../../source-files.js"></script><script defer src="../../../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc source"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><div class="width-limiter"><nav class="sub"><a class="sub-logo-container" href="../../../bdk_wallet/index.html">
+ <img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="example-wrap"><pre class="src-line-numbers"><a href="#1" id="1">1</a>
+<a href="#2" id="2">2</a>
+<a href="#3" id="3">3</a>
+<a href="#4" id="4">4</a>
+<a href="#5" id="5">5</a>
+<a href="#6" id="6">6</a>
+<a href="#7" id="7">7</a>
+<a href="#8" id="8">8</a>
+<a href="#9" id="9">9</a>
+<a href="#10" id="10">10</a>
+<a href="#11" id="11">11</a>
+<a href="#12" id="12">12</a>
+<a href="#13" id="13">13</a>
+<a href="#14" id="14">14</a>
+<a href="#15" id="15">15</a>
+<a href="#16" id="16">16</a>
+<a href="#17" id="17">17</a>
+<a href="#18" id="18">18</a>
+<a href="#19" id="19">19</a>
+<a href="#20" id="20">20</a>
+<a href="#21" id="21">21</a>
+<a href="#22" id="22">22</a>
+<a href="#23" id="23">23</a>
+<a href="#24" id="24">24</a>
+<a href="#25" id="25">25</a>
+<a href="#26" id="26">26</a>
+<a href="#27" id="27">27</a>
+<a href="#28" id="28">28</a>
+<a href="#29" id="29">29</a>
+<a href="#30" id="30">30</a>
+<a href="#31" id="31">31</a>
+<a href="#32" id="32">32</a>
+<a href="#33" id="33">33</a>
+<a href="#34" id="34">34</a>
+<a href="#35" id="35">35</a>
+<a href="#36" id="36">36</a>
+<a href="#37" id="37">37</a>
+<a href="#38" id="38">38</a>
+<a href="#39" id="39">39</a>
+<a href="#40" id="40">40</a>
+<a href="#41" id="41">41</a>
+<a href="#42" id="42">42</a>
+<a href="#43" id="43">43</a>
+<a href="#44" id="44">44</a>
+<a href="#45" id="45">45</a>
+<a href="#46" id="46">46</a>
+<a href="#47" id="47">47</a>
+<a href="#48" id="48">48</a>
+<a href="#49" id="49">49</a>
+<a href="#50" id="50">50</a>
+<a href="#51" id="51">51</a>
+<a href="#52" id="52">52</a>
+<a href="#53" id="53">53</a>
+<a href="#54" id="54">54</a>
+<a href="#55" id="55">55</a>
+<a href="#56" id="56">56</a>
+<a href="#57" id="57">57</a>
+<a href="#58" id="58">58</a>
+<a href="#59" id="59">59</a>
+<a href="#60" id="60">60</a>
+<a href="#61" id="61">61</a>
+<a href="#62" id="62">62</a>
+<a href="#63" id="63">63</a>
+<a href="#64" id="64">64</a>
+<a href="#65" id="65">65</a>
+<a href="#66" id="66">66</a>
+<a href="#67" id="67">67</a>
+<a href="#68" id="68">68</a>
+<a href="#69" id="69">69</a>
+<a href="#70" id="70">70</a>
+<a href="#71" id="71">71</a>
+<a href="#72" id="72">72</a>
+<a href="#73" id="73">73</a>
+<a href="#74" id="74">74</a>
+<a href="#75" id="75">75</a>
+<a href="#76" id="76">76</a>
+<a href="#77" id="77">77</a>
+<a href="#78" id="78">78</a>
+<a href="#79" id="79">79</a>
+<a href="#80" id="80">80</a>
+<a href="#81" id="81">81</a>
+<a href="#82" id="82">82</a>
+<a href="#83" id="83">83</a>
+<a href="#84" id="84">84</a>
+<a href="#85" id="85">85</a>
+<a href="#86" id="86">86</a>
+<a href="#87" id="87">87</a>
+<a href="#88" id="88">88</a>
+<a href="#89" id="89">89</a>
+<a href="#90" id="90">90</a>
+<a href="#91" id="91">91</a>
+<a href="#92" id="92">92</a>
+<a href="#93" id="93">93</a>
+<a href="#94" id="94">94</a>
+<a href="#95" id="95">95</a>
+<a href="#96" id="96">96</a>
+<a href="#97" id="97">97</a>
+<a href="#98" id="98">98</a>
+<a href="#99" id="99">99</a>
+<a href="#100" id="100">100</a>
+<a href="#101" id="101">101</a>
+<a href="#102" id="102">102</a>
+<a href="#103" id="103">103</a>
+<a href="#104" id="104">104</a>
+<a href="#105" id="105">105</a>
+<a href="#106" id="106">106</a>
+<a href="#107" id="107">107</a>
+<a href="#108" id="108">108</a>
+<a href="#109" id="109">109</a>
+<a href="#110" id="110">110</a>
+<a href="#111" id="111">111</a>
+<a href="#112" id="112">112</a>
+<a href="#113" id="113">113</a>
+<a href="#114" id="114">114</a>
+<a href="#115" id="115">115</a>
+<a href="#116" id="116">116</a>
+<a href="#117" id="117">117</a>
+<a href="#118" id="118">118</a>
+<a href="#119" id="119">119</a>
+<a href="#120" id="120">120</a>
+<a href="#121" id="121">121</a>
+<a href="#122" id="122">122</a>
+<a href="#123" id="123">123</a>
+<a href="#124" id="124">124</a>
+<a href="#125" id="125">125</a>
+<a href="#126" id="126">126</a>
+<a href="#127" id="127">127</a>
+<a href="#128" id="128">128</a>
+<a href="#129" id="129">129</a>
+<a href="#130" id="130">130</a>
+<a href="#131" id="131">131</a>
+<a href="#132" id="132">132</a>
+<a href="#133" id="133">133</a>
+<a href="#134" id="134">134</a>
+<a href="#135" id="135">135</a>
+<a href="#136" id="136">136</a>
+<a href="#137" id="137">137</a>
+<a href="#138" id="138">138</a>
+<a href="#139" id="139">139</a>
+<a href="#140" id="140">140</a>
+<a href="#141" id="141">141</a>
+<a href="#142" id="142">142</a>
+<a href="#143" id="143">143</a>
+<a href="#144" id="144">144</a>
+<a href="#145" id="145">145</a>
+<a href="#146" id="146">146</a>
+<a href="#147" id="147">147</a>
+<a href="#148" id="148">148</a>
+<a href="#149" id="149">149</a>
+<a href="#150" id="150">150</a>
+<a href="#151" id="151">151</a>
+<a href="#152" id="152">152</a>
+<a href="#153" id="153">153</a>
+<a href="#154" id="154">154</a>
+<a href="#155" id="155">155</a>
+<a href="#156" id="156">156</a>
+<a href="#157" id="157">157</a>
+<a href="#158" id="158">158</a>
+<a href="#159" id="159">159</a>
+<a href="#160" id="160">160</a>
+<a href="#161" id="161">161</a>
+<a href="#162" id="162">162</a>
+<a href="#163" id="163">163</a>
+<a href="#164" id="164">164</a>
+<a href="#165" id="165">165</a>
+<a href="#166" id="166">166</a>
+<a href="#167" id="167">167</a>
+<a href="#168" id="168">168</a>
+<a href="#169" id="169">169</a>
+<a href="#170" id="170">170</a>
+<a href="#171" id="171">171</a>
+<a href="#172" id="172">172</a>
+<a href="#173" id="173">173</a>
+<a href="#174" id="174">174</a>
+<a href="#175" id="175">175</a>
+<a href="#176" id="176">176</a>
+<a href="#177" id="177">177</a>
+<a href="#178" id="178">178</a>
+<a href="#179" id="179">179</a>
+<a href="#180" id="180">180</a>
+<a href="#181" id="181">181</a>
+<a href="#182" id="182">182</a>
+<a href="#183" id="183">183</a>
+<a href="#184" id="184">184</a>
+<a href="#185" id="185">185</a>
+</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit
+// Written in 2020 by Alekos Filini <alekos.filini@gmail.com>
+//
+// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers
+//
+// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
+// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// You may not use this file except in accordance with one or both of these
+// licenses.
+
+</span><span class="kw">use </span>bitcoin::secp256k1::{All, Secp256k1};
+<span class="kw">use </span>bitcoin::{absolute, Script, Sequence};
+
+<span class="kw">use </span>miniscript::{MiniscriptKey, Satisfier, ToPublicKey};
+
+<span class="doccomment">/// Trait to check if a value is below the dust limit.
+/// We are performing dust value calculation for a given script public key using rust-bitcoin to
+/// keep it compatible with network dust rate
+</span><span class="comment">// we implement this trait to make sure we don't mess up the comparison with off-by-one like a <
+// instead of a <= etc.
+</span><span class="kw">pub trait </span>IsDust {
+ <span class="doccomment">/// Check whether or not a value is below dust limit
+ </span><span class="kw">fn </span>is_dust(<span class="kw-2">&</span><span class="self">self</span>, script: <span class="kw-2">&</span>Script) -> bool;
+}
+
+<span class="kw">impl </span>IsDust <span class="kw">for </span>u64 {
+ <span class="kw">fn </span>is_dust(<span class="kw-2">&</span><span class="self">self</span>, script: <span class="kw-2">&</span>Script) -> bool {
+ <span class="kw-2">*</span><span class="self">self </span>< script.dust_value().to_sat()
+ }
+}
+
+<span class="kw">pub struct </span>After {
+ <span class="kw">pub </span>current_height: <span class="prelude-ty">Option</span><u32>,
+ <span class="kw">pub </span>assume_height_reached: bool,
+}
+
+<span class="kw">impl </span>After {
+ <span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>new(current_height: <span class="prelude-ty">Option</span><u32>, assume_height_reached: bool) -> After {
+ After {
+ current_height,
+ assume_height_reached,
+ }
+ }
+}
+
+<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>check_nsequence_rbf(rbf: Sequence, csv: Sequence) -> bool {
+ <span class="comment">// The RBF value must enable relative timelocks
+ </span><span class="kw">if </span>!rbf.is_relative_lock_time() {
+ <span class="kw">return </span><span class="bool-val">false</span>;
+ }
+
+ <span class="comment">// Both values should be represented in the same unit (either time-based or
+ // block-height based)
+ </span><span class="kw">if </span>rbf.is_time_locked() != csv.is_time_locked() {
+ <span class="kw">return </span><span class="bool-val">false</span>;
+ }
+
+ <span class="comment">// The value should be at least `csv`
+ </span><span class="kw">if </span>rbf < csv {
+ <span class="kw">return </span><span class="bool-val">false</span>;
+ }
+
+ <span class="bool-val">true
+</span>}
+
+<span class="kw">impl</span><Pk: MiniscriptKey + ToPublicKey> Satisfier<Pk> <span class="kw">for </span>After {
+ <span class="kw">fn </span>check_after(<span class="kw-2">&</span><span class="self">self</span>, n: absolute::LockTime) -> bool {
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(current_height) = <span class="self">self</span>.current_height {
+ current_height >= n.to_consensus_u32()
+ } <span class="kw">else </span>{
+ <span class="self">self</span>.assume_height_reached
+ }
+ }
+}
+
+<span class="kw">pub struct </span>Older {
+ <span class="kw">pub </span>current_height: <span class="prelude-ty">Option</span><u32>,
+ <span class="kw">pub </span>create_height: <span class="prelude-ty">Option</span><u32>,
+ <span class="kw">pub </span>assume_height_reached: bool,
+}
+
+<span class="kw">impl </span>Older {
+ <span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>new(
+ current_height: <span class="prelude-ty">Option</span><u32>,
+ create_height: <span class="prelude-ty">Option</span><u32>,
+ assume_height_reached: bool,
+ ) -> Older {
+ Older {
+ current_height,
+ create_height,
+ assume_height_reached,
+ }
+ }
+}
+
+<span class="kw">impl</span><Pk: MiniscriptKey + ToPublicKey> Satisfier<Pk> <span class="kw">for </span>Older {
+ <span class="kw">fn </span>check_older(<span class="kw-2">&</span><span class="self">self</span>, n: Sequence) -> bool {
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(current_height) = <span class="self">self</span>.current_height {
+ <span class="comment">// TODO: test >= / >
+ </span>current_height
+ >= <span class="self">self
+ </span>.create_height
+ .unwrap_or(<span class="number">0</span>)
+ .checked_add(n.to_consensus_u32())
+ .expect(<span class="string">"Overflowing addition"</span>)
+ } <span class="kw">else </span>{
+ <span class="self">self</span>.assume_height_reached
+ }
+ }
+}
+
+<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">type </span>SecpCtx = Secp256k1<All>;
+
+<span class="attr">#[cfg(test)]
+</span><span class="kw">mod </span>test {
+ <span class="comment">// When nSequence is lower than this flag the timelock is interpreted as block-height-based,
+ // otherwise it's time-based
+ </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">const </span>SEQUENCE_LOCKTIME_TYPE_FLAG: u32 = <span class="number">1 </span><< <span class="number">22</span>;
+
+ <span class="kw">use super</span>::{check_nsequence_rbf, IsDust};
+ <span class="kw">use </span><span class="kw">crate</span>::bitcoin::{Address, Network, Sequence};
+ <span class="kw">use </span>core::str::FromStr;
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_is_dust() {
+ <span class="kw">let </span>script_p2pkh = Address::from_str(<span class="string">"1GNgwA8JfG7Kc8akJ8opdNWJUihqUztfPe"</span>)
+ .unwrap()
+ .require_network(Network::Bitcoin)
+ .unwrap()
+ .script_pubkey();
+ <span class="macro">assert!</span>(script_p2pkh.is_p2pkh());
+ <span class="macro">assert!</span>(<span class="number">545</span>.is_dust(<span class="kw-2">&</span>script_p2pkh));
+ <span class="macro">assert!</span>(!<span class="number">546</span>.is_dust(<span class="kw-2">&</span>script_p2pkh));
+
+ <span class="kw">let </span>script_p2wpkh = Address::from_str(<span class="string">"bc1qxlh2mnc0yqwas76gqq665qkggee5m98t8yskd8"</span>)
+ .unwrap()
+ .require_network(Network::Bitcoin)
+ .unwrap()
+ .script_pubkey();
+ <span class="macro">assert!</span>(script_p2wpkh.is_p2wpkh());
+ <span class="macro">assert!</span>(<span class="number">293</span>.is_dust(<span class="kw-2">&</span>script_p2wpkh));
+ <span class="macro">assert!</span>(!<span class="number">294</span>.is_dust(<span class="kw-2">&</span>script_p2wpkh));
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_check_nsequence_rbf_msb_set() {
+ <span class="kw">let </span>result = check_nsequence_rbf(Sequence(<span class="number">0x80000000</span>), Sequence(<span class="number">5000</span>));
+ <span class="macro">assert!</span>(!result);
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_check_nsequence_rbf_lt_csv() {
+ <span class="kw">let </span>result = check_nsequence_rbf(Sequence(<span class="number">4000</span>), Sequence(<span class="number">5000</span>));
+ <span class="macro">assert!</span>(!result);
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_check_nsequence_rbf_different_unit() {
+ <span class="kw">let </span>result =
+ check_nsequence_rbf(Sequence(SEQUENCE_LOCKTIME_TYPE_FLAG + <span class="number">5000</span>), Sequence(<span class="number">5000</span>));
+ <span class="macro">assert!</span>(!result);
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_check_nsequence_rbf_mask() {
+ <span class="kw">let </span>result = check_nsequence_rbf(Sequence(<span class="number">0x3f </span>+ <span class="number">10_000</span>), Sequence(<span class="number">5000</span>));
+ <span class="macro">assert!</span>(result);
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_check_nsequence_rbf_same_unit_blocks() {
+ <span class="kw">let </span>result = check_nsequence_rbf(Sequence(<span class="number">10_000</span>), Sequence(<span class="number">5000</span>));
+ <span class="macro">assert!</span>(result);
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_check_nsequence_rbf_same_unit_time() {
+ <span class="kw">let </span>result = check_nsequence_rbf(
+ Sequence(SEQUENCE_LOCKTIME_TYPE_FLAG + <span class="number">10_000</span>),
+ Sequence(SEQUENCE_LOCKTIME_TYPE_FLAG + <span class="number">5000</span>),
+ );
+ <span class="macro">assert!</span>(result);
+ }
+}
+</code></pre></div>
+</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_wallet" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
<a href="#93" id="93">93</a>
<a href="#94" id="94">94</a>
<a href="#95" id="95">95</a>
+<a href="#96" id="96">96</a>
</pre><pre class="rust"><code><span class="kw">const </span>DB_MAGIC: <span class="kw-2">&</span>str = <span class="string">"bdk_wallet_electrum_example"</span>;
<span class="kw">const </span>SEND_AMOUNT: Amount = Amount::from_sat(<span class="number">5000</span>);
<span class="kw">const </span>STOP_GAP: usize = <span class="number">50</span>;
<span class="kw">use </span>std::io::Write;
<span class="kw">use </span>std::str::FromStr;
-<span class="kw">use </span>bdk::bitcoin::{Address, Amount};
-<span class="kw">use </span>bdk::chain::collections::HashSet;
-<span class="kw">use </span>bdk::{bitcoin::Network, Wallet};
-<span class="kw">use </span>bdk::{KeychainKind, SignOptions};
<span class="kw">use </span>bdk_electrum::{
electrum_client::{<span class="self">self</span>, ElectrumApi},
ElectrumExt,
};
<span class="kw">use </span>bdk_file_store::Store;
+<span class="kw">use </span>bdk_wallet::bitcoin::{Address, Amount};
+<span class="kw">use </span>bdk_wallet::chain::collections::HashSet;
+<span class="kw">use </span>bdk_wallet::{bitcoin::Network, Wallet};
+<span class="kw">use </span>bdk_wallet::{KeychainKind, SignOptions};
<span class="kw">fn </span>main() -> <span class="prelude-ty">Result</span><(), anyhow::Error> {
<span class="kw">let </span>db_path = std::env::temp_dir().join(<span class="string">"bdk-electrum-example"</span>);
- <span class="kw">let </span>db = Store::<bdk::wallet::ChangeSet>::open_or_create_new(DB_MAGIC.as_bytes(), db_path)<span class="question-mark">?</span>;
+ <span class="kw">let </span>db =
+ Store::<bdk_wallet::wallet::ChangeSet>::open_or_create_new(DB_MAGIC.as_bytes(), db_path)<span class="question-mark">?</span>;
<span class="kw">let </span>external_descriptor = <span class="string">"wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/0/*)"</span>;
<span class="kw">let </span>internal_descriptor = <span class="string">"wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/1/*)"</span>;
<a href="#107" id="107">107</a>
<a href="#108" id="108">108</a>
<a href="#109" id="109">109</a>
+<a href="#110" id="110">110</a>
</pre><pre class="rust"><code><span class="kw">use </span>std::{collections::BTreeSet, io::Write, str::FromStr};
-<span class="kw">use </span>bdk::{
+<span class="kw">use </span>bdk_esplora::{esplora_client, EsploraAsyncExt};
+<span class="kw">use </span>bdk_file_store::Store;
+<span class="kw">use </span>bdk_wallet::{
bitcoin::{Address, Amount, Network, Script},
KeychainKind, SignOptions, Wallet,
};
-<span class="kw">use </span>bdk_esplora::{esplora_client, EsploraAsyncExt};
-<span class="kw">use </span>bdk_file_store::Store;
<span class="kw">const </span>DB_MAGIC: <span class="kw-2">&</span>str = <span class="string">"bdk_wallet_esplora_async_example"</span>;
<span class="kw">const </span>SEND_AMOUNT: Amount = Amount::from_sat(<span class="number">5000</span>);
<span class="attr">#[tokio::main]
</span><span class="kw">async fn </span>main() -> <span class="prelude-ty">Result</span><(), anyhow::Error> {
<span class="kw">let </span>db_path = std::env::temp_dir().join(<span class="string">"bdk-esplora-async-example"</span>);
- <span class="kw">let </span>db = Store::<bdk::wallet::ChangeSet>::open_or_create_new(DB_MAGIC.as_bytes(), db_path)<span class="question-mark">?</span>;
+ <span class="kw">let </span>db =
+ Store::<bdk_wallet::wallet::ChangeSet>::open_or_create_new(DB_MAGIC.as_bytes(), db_path)<span class="question-mark">?</span>;
<span class="kw">let </span>external_descriptor = <span class="string">"wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/0/*)"</span>;
<span class="kw">let </span>internal_descriptor = <span class="string">"wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/1/*)"</span>;
<a href="#83" id="83">83</a>
<a href="#84" id="84">84</a>
<a href="#85" id="85">85</a>
+<a href="#86" id="86">86</a>
</pre><pre class="rust"><code><span class="kw">const </span>DB_MAGIC: <span class="kw-2">&</span>str = <span class="string">"bdk_wallet_esplora_example"</span>;
<span class="kw">const </span>SEND_AMOUNT: Amount = Amount::from_sat(<span class="number">1000</span>);
<span class="kw">const </span>STOP_GAP: usize = <span class="number">5</span>;
<span class="kw">use </span>std::{collections::BTreeSet, io::Write, str::FromStr};
-<span class="kw">use </span>bdk::{
+<span class="kw">use </span>bdk_esplora::{esplora_client, EsploraExt};
+<span class="kw">use </span>bdk_file_store::Store;
+<span class="kw">use </span>bdk_wallet::{
bitcoin::{Address, Amount, Network},
KeychainKind, SignOptions, Wallet,
};
-<span class="kw">use </span>bdk_esplora::{esplora_client, EsploraExt};
-<span class="kw">use </span>bdk_file_store::Store;
<span class="kw">fn </span>main() -> <span class="prelude-ty">Result</span><(), anyhow::Error> {
<span class="kw">let </span>db_path = std::env::temp_dir().join(<span class="string">"bdk-esplora-example"</span>);
- <span class="kw">let </span>db = Store::<bdk::wallet::ChangeSet>::open_or_create_new(DB_MAGIC.as_bytes(), db_path)<span class="question-mark">?</span>;
+ <span class="kw">let </span>db =
+ Store::<bdk_wallet::wallet::ChangeSet>::open_or_create_new(DB_MAGIC.as_bytes(), db_path)<span class="question-mark">?</span>;
<span class="kw">let </span>external_descriptor = <span class="string">"wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/0/*)"</span>;
<span class="kw">let </span>internal_descriptor = <span class="string">"wpkh(tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L/84'/1'/0'/1/*)"</span>;
<a href="#180" id="180">180</a>
<a href="#181" id="181">181</a>
<a href="#182" id="182">182</a>
-</pre><pre class="rust"><code><span class="kw">use </span>bdk::{
- bitcoin::{Block, Network, Transaction},
- wallet::Wallet,
-};
-<span class="kw">use </span>bdk_bitcoind_rpc::{
+<a href="#183" id="183">183</a>
+<a href="#184" id="184">184</a>
+<a href="#185" id="185">185</a>
+</pre><pre class="rust"><code><span class="kw">use </span>bdk_bitcoind_rpc::{
bitcoincore_rpc::{Auth, Client, RpcApi},
Emitter,
};
<span class="kw">use </span>bdk_file_store::Store;
+<span class="kw">use </span>bdk_wallet::{
+ bitcoin::{Block, Network, Transaction},
+ wallet::Wallet,
+};
<span class="kw">use </span>clap::{<span class="self">self</span>, Parser};
<span class="kw">use </span>std::{path::PathBuf, sync::mpsc::sync_channel, thread::spawn, time::Instant};
<span class="kw">const </span>DB_MAGIC: <span class="kw-2">&</span>str = <span class="string">"bdk-rpc-wallet-example"</span>;
-<span class="doccomment">/// Bitcoind RPC example using `bdk::Wallet`.
+<span class="doccomment">/// Bitcoind RPC example using `bdk_wallet::Wallet`.
///
/// This syncs the chain block-by-block and prints the current balance, transaction count and UTXO
/// count.
<span class="kw">let </span><span class="kw-2">mut </span>wallet = Wallet::new_or_load(
<span class="kw-2">&</span>args.descriptor,
args.change_descriptor.as_ref(),
- Store::<bdk::wallet::ChangeSet>::open_or_create_new(DB_MAGIC.as_bytes(), args.db_path)<span class="question-mark">?</span>,
+ Store::<bdk_wallet::wallet::ChangeSet>::open_or_create_new(
+ DB_MAGIC.as_bytes(),
+ args.db_path,
+ )<span class="question-mark">?</span>,
args.network,
)<span class="question-mark">?</span>;
<span class="macro">println!</span>(
-<!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 `main` fn in crate `wallet_electrum_example`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in wallet_electrum_example - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../wallet_electrum_example/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../wallet_electrum_example/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In wallet_electrum_example</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="index.html">wallet_electrum_example</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/wallet_electrum_example/main.rs.html#19-95">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub(crate) fn main() -> <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>, <a class="struct" href="https://docs.rs/anyhow/1.0.83/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="wallet_electrum_example" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+<!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 `main` fn in crate `wallet_electrum_example`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in wallet_electrum_example - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../wallet_electrum_example/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../wallet_electrum_example/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In wallet_electrum_example</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="index.html">wallet_electrum_example</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/wallet_electrum_example/main.rs.html#19-96">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub(crate) fn main() -> <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>, <a class="struct" href="https://docs.rs/anyhow/1.0.83/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="wallet_electrum_example" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
-<!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 `wallet_electrum_example` crate."><meta name="keywords" content="rust, rustlang, rust-lang, wallet_electrum_example"><title>wallet_electrum_example - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../wallet_electrum_example/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../wallet_electrum_example/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">Crate wallet_electrum_example</a></h2><div class="sidebar-elems"><ul class="block"><li class="version">Version 0.2.0</li><li><a id="all-types" href="all.html">All Items</a></li></ul><section><ul class="block"><li><a href="#constants">Constants</a></li><li><a href="#functions">Functions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Crate <a class="mod" href="#">wallet_electrum_example</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/wallet_electrum_example/main.rs.html#1-95">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><h2 id="constants" class="small-section-header"><a href="#constants">Constants</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.BATCH_SIZE.html" title="wallet_electrum_example::BATCH_SIZE constant">BATCH_SIZE</a><span title="Restricted Visibility"> 🔒</span> </div></div><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.DB_MAGIC.html" title="wallet_electrum_example::DB_MAGIC constant">DB_MAGIC</a><span title="Restricted Visibility"> 🔒</span> </div></div><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.SEND_AMOUNT.html" title="wallet_electrum_example::SEND_AMOUNT constant">SEND_AMOUNT</a><span title="Restricted Visibility"> 🔒</span> </div></div><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.STOP_GAP.html" title="wallet_electrum_example::STOP_GAP constant">STOP_GAP</a><span title="Restricted Visibility"> 🔒</span> </div></div></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.main.html" title="wallet_electrum_example::main fn">main</a><span title="Restricted Visibility"> 🔒</span> </div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="wallet_electrum_example" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+<!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 `wallet_electrum_example` crate."><meta name="keywords" content="rust, rustlang, rust-lang, wallet_electrum_example"><title>wallet_electrum_example - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../wallet_electrum_example/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../wallet_electrum_example/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">Crate wallet_electrum_example</a></h2><div class="sidebar-elems"><ul class="block"><li class="version">Version 0.2.0</li><li><a id="all-types" href="all.html">All Items</a></li></ul><section><ul class="block"><li><a href="#constants">Constants</a></li><li><a href="#functions">Functions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Crate <a class="mod" href="#">wallet_electrum_example</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/wallet_electrum_example/main.rs.html#1-96">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><h2 id="constants" class="small-section-header"><a href="#constants">Constants</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.BATCH_SIZE.html" title="wallet_electrum_example::BATCH_SIZE constant">BATCH_SIZE</a><span title="Restricted Visibility"> 🔒</span> </div></div><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.DB_MAGIC.html" title="wallet_electrum_example::DB_MAGIC constant">DB_MAGIC</a><span title="Restricted Visibility"> 🔒</span> </div></div><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.SEND_AMOUNT.html" title="wallet_electrum_example::SEND_AMOUNT constant">SEND_AMOUNT</a><span title="Restricted Visibility"> 🔒</span> </div></div><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.STOP_GAP.html" title="wallet_electrum_example::STOP_GAP constant">STOP_GAP</a><span title="Restricted Visibility"> 🔒</span> </div></div></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.main.html" title="wallet_electrum_example::main fn">main</a><span title="Restricted Visibility"> 🔒</span> </div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="wallet_electrum_example" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
-<!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 `main` fn in crate `wallet_esplora_async`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in wallet_esplora_async - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../wallet_esplora_async/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../wallet_esplora_async/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In wallet_esplora_async</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="index.html">wallet_esplora_async</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/wallet_esplora_async/main.rs.html#16-109">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub(crate) fn main() -> <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>, <a class="struct" href="https://docs.rs/anyhow/1.0.83/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="wallet_esplora_async" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+<!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 `main` fn in crate `wallet_esplora_async`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in wallet_esplora_async - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../wallet_esplora_async/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../wallet_esplora_async/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In wallet_esplora_async</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="index.html">wallet_esplora_async</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/wallet_esplora_async/main.rs.html#16-110">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub(crate) fn main() -> <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>, <a class="struct" href="https://docs.rs/anyhow/1.0.83/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="wallet_esplora_async" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
-<!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 `wallet_esplora_async` crate."><meta name="keywords" content="rust, rustlang, rust-lang, wallet_esplora_async"><title>wallet_esplora_async - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../wallet_esplora_async/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../wallet_esplora_async/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">Crate wallet_esplora_async</a></h2><div class="sidebar-elems"><ul class="block"><li class="version">Version 0.2.0</li><li><a id="all-types" href="all.html">All Items</a></li></ul><section><ul class="block"><li><a href="#constants">Constants</a></li><li><a href="#functions">Functions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Crate <a class="mod" href="#">wallet_esplora_async</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/wallet_esplora_async/main.rs.html#1-109">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><h2 id="constants" class="small-section-header"><a href="#constants">Constants</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.DB_MAGIC.html" title="wallet_esplora_async::DB_MAGIC constant">DB_MAGIC</a><span title="Restricted Visibility"> 🔒</span> </div></div><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.PARALLEL_REQUESTS.html" title="wallet_esplora_async::PARALLEL_REQUESTS constant">PARALLEL_REQUESTS</a><span title="Restricted Visibility"> 🔒</span> </div></div><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.SEND_AMOUNT.html" title="wallet_esplora_async::SEND_AMOUNT constant">SEND_AMOUNT</a><span title="Restricted Visibility"> 🔒</span> </div></div><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.STOP_GAP.html" title="wallet_esplora_async::STOP_GAP constant">STOP_GAP</a><span title="Restricted Visibility"> 🔒</span> </div></div></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.main.html" title="wallet_esplora_async::main fn">main</a><span title="Restricted Visibility"> 🔒</span> </div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="wallet_esplora_async" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+<!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 `wallet_esplora_async` crate."><meta name="keywords" content="rust, rustlang, rust-lang, wallet_esplora_async"><title>wallet_esplora_async - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../wallet_esplora_async/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../wallet_esplora_async/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">Crate wallet_esplora_async</a></h2><div class="sidebar-elems"><ul class="block"><li class="version">Version 0.2.0</li><li><a id="all-types" href="all.html">All Items</a></li></ul><section><ul class="block"><li><a href="#constants">Constants</a></li><li><a href="#functions">Functions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Crate <a class="mod" href="#">wallet_esplora_async</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/wallet_esplora_async/main.rs.html#1-110">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><h2 id="constants" class="small-section-header"><a href="#constants">Constants</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.DB_MAGIC.html" title="wallet_esplora_async::DB_MAGIC constant">DB_MAGIC</a><span title="Restricted Visibility"> 🔒</span> </div></div><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.PARALLEL_REQUESTS.html" title="wallet_esplora_async::PARALLEL_REQUESTS constant">PARALLEL_REQUESTS</a><span title="Restricted Visibility"> 🔒</span> </div></div><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.SEND_AMOUNT.html" title="wallet_esplora_async::SEND_AMOUNT constant">SEND_AMOUNT</a><span title="Restricted Visibility"> 🔒</span> </div></div><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.STOP_GAP.html" title="wallet_esplora_async::STOP_GAP constant">STOP_GAP</a><span title="Restricted Visibility"> 🔒</span> </div></div></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.main.html" title="wallet_esplora_async::main fn">main</a><span title="Restricted Visibility"> 🔒</span> </div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="wallet_esplora_async" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
-<!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 `main` fn in crate `wallet_esplora_blocking`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in wallet_esplora_blocking - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../wallet_esplora_blocking/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../wallet_esplora_blocking/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In wallet_esplora_blocking</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="index.html">wallet_esplora_blocking</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/wallet_esplora_blocking/main.rs.html#15-85">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub(crate) fn main() -> <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>, <a class="struct" href="https://docs.rs/anyhow/1.0.83/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="wallet_esplora_blocking" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+<!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 `main` fn in crate `wallet_esplora_blocking`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in wallet_esplora_blocking - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../wallet_esplora_blocking/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../wallet_esplora_blocking/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In wallet_esplora_blocking</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="index.html">wallet_esplora_blocking</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/wallet_esplora_blocking/main.rs.html#15-86">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub(crate) fn main() -> <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>, <a class="struct" href="https://docs.rs/anyhow/1.0.83/anyhow/struct.Error.html" title="struct anyhow::Error">Error</a>></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="wallet_esplora_blocking" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
-<!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 `wallet_esplora_blocking` crate."><meta name="keywords" content="rust, rustlang, rust-lang, wallet_esplora_blocking"><title>wallet_esplora_blocking - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../wallet_esplora_blocking/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../wallet_esplora_blocking/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">Crate wallet_esplora_blocking</a></h2><div class="sidebar-elems"><ul class="block"><li class="version">Version 0.2.0</li><li><a id="all-types" href="all.html">All Items</a></li></ul><section><ul class="block"><li><a href="#constants">Constants</a></li><li><a href="#functions">Functions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Crate <a class="mod" href="#">wallet_esplora_blocking</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/wallet_esplora_blocking/main.rs.html#1-85">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><h2 id="constants" class="small-section-header"><a href="#constants">Constants</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.DB_MAGIC.html" title="wallet_esplora_blocking::DB_MAGIC constant">DB_MAGIC</a><span title="Restricted Visibility"> 🔒</span> </div></div><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.PARALLEL_REQUESTS.html" title="wallet_esplora_blocking::PARALLEL_REQUESTS constant">PARALLEL_REQUESTS</a><span title="Restricted Visibility"> 🔒</span> </div></div><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.SEND_AMOUNT.html" title="wallet_esplora_blocking::SEND_AMOUNT constant">SEND_AMOUNT</a><span title="Restricted Visibility"> 🔒</span> </div></div><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.STOP_GAP.html" title="wallet_esplora_blocking::STOP_GAP constant">STOP_GAP</a><span title="Restricted Visibility"> 🔒</span> </div></div></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.main.html" title="wallet_esplora_blocking::main fn">main</a><span title="Restricted Visibility"> 🔒</span> </div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="wallet_esplora_blocking" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+<!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 `wallet_esplora_blocking` crate."><meta name="keywords" content="rust, rustlang, rust-lang, wallet_esplora_blocking"><title>wallet_esplora_blocking - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../wallet_esplora_blocking/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../wallet_esplora_blocking/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">Crate wallet_esplora_blocking</a></h2><div class="sidebar-elems"><ul class="block"><li class="version">Version 0.2.0</li><li><a id="all-types" href="all.html">All Items</a></li></ul><section><ul class="block"><li><a href="#constants">Constants</a></li><li><a href="#functions">Functions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Crate <a class="mod" href="#">wallet_esplora_blocking</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/wallet_esplora_blocking/main.rs.html#1-86">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><h2 id="constants" class="small-section-header"><a href="#constants">Constants</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.DB_MAGIC.html" title="wallet_esplora_blocking::DB_MAGIC constant">DB_MAGIC</a><span title="Restricted Visibility"> 🔒</span> </div></div><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.PARALLEL_REQUESTS.html" title="wallet_esplora_blocking::PARALLEL_REQUESTS constant">PARALLEL_REQUESTS</a><span title="Restricted Visibility"> 🔒</span> </div></div><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.SEND_AMOUNT.html" title="wallet_esplora_blocking::SEND_AMOUNT constant">SEND_AMOUNT</a><span title="Restricted Visibility"> 🔒</span> </div></div><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.STOP_GAP.html" title="wallet_esplora_blocking::STOP_GAP constant">STOP_GAP</a><span title="Restricted Visibility"> 🔒</span> </div></div></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.main.html" title="wallet_esplora_blocking::main fn">main</a><span title="Restricted Visibility"> 🔒</span> </div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="wallet_esplora_blocking" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
-<!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 `main` fn in crate `wallet_rpc`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in wallet_rpc - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../wallet_rpc/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../wallet_rpc/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In wallet_rpc</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="index.html">wallet_rpc</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/wallet_rpc/main.rs.html#79-182">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub(crate) fn main() -> <a class="type" href="https://docs.rs/anyhow/1.0.83/anyhow/type.Result.html" title="type anyhow::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="wallet_rpc" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+<!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 `main` fn in crate `wallet_rpc`."><meta name="keywords" content="rust, rustlang, rust-lang, main"><title>main in wallet_rpc - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../wallet_rpc/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../wallet_rpc/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In wallet_rpc</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="index.html">wallet_rpc</a>::<wbr><a class="fn" href="#">main</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/wallet_rpc/main.rs.html#79-185">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub(crate) fn main() -> <a class="type" href="https://docs.rs/anyhow/1.0.83/anyhow/type.Result.html" title="type anyhow::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="wallet_rpc" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
-<!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 `wallet_rpc` crate."><meta name="keywords" content="rust, rustlang, rust-lang, wallet_rpc"><title>wallet_rpc - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../wallet_rpc/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../wallet_rpc/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">Crate wallet_rpc</a></h2><div class="sidebar-elems"><ul class="block"><li class="version">Version 0.1.0</li><li><a id="all-types" href="all.html">All Items</a></li></ul><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#constants">Constants</a></li><li><a href="#functions">Functions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Crate <a class="mod" href="#">wallet_rpc</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/wallet_rpc/main.rs.html#1-182">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Args.html" title="wallet_rpc::Args struct">Args</a></div><div class="item-right docblock-short">Bitcoind RPC example using <code>bdk::Wallet</code>.</div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Emission.html" title="wallet_rpc::Emission enum">Emission</a><span title="Restricted Visibility"> 🔒</span> </div></div></div><h2 id="constants" class="small-section-header"><a href="#constants">Constants</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.DB_MAGIC.html" title="wallet_rpc::DB_MAGIC constant">DB_MAGIC</a><span title="Restricted Visibility"> 🔒</span> </div></div></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.main.html" title="wallet_rpc::main fn">main</a><span title="Restricted Visibility"> 🔒</span> </div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="wallet_rpc" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
+<!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 `wallet_rpc` crate."><meta name="keywords" content="rust, rustlang, rust-lang, wallet_rpc"><title>wallet_rpc - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../wallet_rpc/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../wallet_rpc/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">Crate wallet_rpc</a></h2><div class="sidebar-elems"><ul class="block"><li class="version">Version 0.1.0</li><li><a id="all-types" href="all.html">All Items</a></li></ul><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#constants">Constants</a></li><li><a href="#functions">Functions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Crate <a class="mod" href="#">wallet_rpc</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/wallet_rpc/main.rs.html#1-185">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Args.html" title="wallet_rpc::Args struct">Args</a></div><div class="item-right docblock-short">Bitcoind RPC example using <code>bdk_wallet::Wallet</code>.</div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Emission.html" title="wallet_rpc::Emission enum">Emission</a><span title="Restricted Visibility"> 🔒</span> </div></div></div><h2 id="constants" class="small-section-header"><a href="#constants">Constants</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.DB_MAGIC.html" title="wallet_rpc::DB_MAGIC constant">DB_MAGIC</a><span title="Restricted Visibility"> 🔒</span> </div></div></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.main.html" title="wallet_rpc::main fn">main</a><span title="Restricted Visibility"> 🔒</span> </div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="wallet_rpc" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0-nightly (0f529f0f4 2022-12-13)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
-window.SIDEBAR_ITEMS = {"constant":[["DB_MAGIC",""]],"enum":[["Emission",""]],"fn":[["main",""]],"struct":[["Args","Bitcoind RPC example using `bdk::Wallet`."]]};
\ No newline at end of file
+window.SIDEBAR_ITEMS = {"constant":[["DB_MAGIC",""]],"enum":[["Emission",""]],"fn":[["main",""]],"struct":[["Args","Bitcoind RPC example using `bdk_wallet::Wallet`."]]};
\ No newline at end of file
-<!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="Bitcoind RPC example using `bdk::Wallet`."><meta name="keywords" content="rust, rustlang, rust-lang, Args"><title>Args in wallet_rpc - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../wallet_rpc/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../wallet_rpc/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">Args</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.change_descriptor">change_descriptor</a></li><li><a href="#structfield.db_path">db_path</a></li><li><a href="#structfield.descriptor">descriptor</a></li><li><a href="#structfield.network">network</a></li><li><a href="#structfield.rpc_cookie">rpc_cookie</a></li><li><a href="#structfield.rpc_pass">rpc_pass</a></li><li><a href="#structfield.rpc_user">rpc_user</a></li><li><a href="#structfield.start_height">start_height</a></li><li><a href="#structfield.url">url</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.client">client</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Args-for-Args">Args</a></li><li><a href="#impl-CommandFactory-for-Args">CommandFactory</a></li><li><a href="#impl-Debug-for-Args">Debug</a></li><li><a href="#impl-FromArgMatches-for-Args">FromArgMatches</a></li><li><a href="#impl-Parser-for-Args">Parser</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Args">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Args">Send</a></li><li><a href="#impl-Sync-for-Args">Sync</a></li><li><a href="#impl-Unpin-for-Args">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Args">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Args">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Args">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Args">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Args">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Args">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-Args">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Args">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Args">VZip<V></a></li></ul></section><h2><a href="index.html">In wallet_rpc</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="index.html">wallet_rpc</a>::<wbr><a class="struct" href="#">Args</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/wallet_rpc/main.rs.html#22-55">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Args {
+<!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="Bitcoind RPC example using `bdk_wallet::Wallet`."><meta name="keywords" content="rust, rustlang, rust-lang, Args"><title>Args in wallet_rpc - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-64f7dca12162a801.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-94f39d4346842c1e.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a211dbb005fb8161.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../wallet_rpc/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../wallet_rpc/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">Args</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.change_descriptor">change_descriptor</a></li><li><a href="#structfield.db_path">db_path</a></li><li><a href="#structfield.descriptor">descriptor</a></li><li><a href="#structfield.network">network</a></li><li><a href="#structfield.rpc_cookie">rpc_cookie</a></li><li><a href="#structfield.rpc_pass">rpc_pass</a></li><li><a href="#structfield.rpc_user">rpc_user</a></li><li><a href="#structfield.start_height">start_height</a></li><li><a href="#structfield.url">url</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.client">client</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Args-for-Args">Args</a></li><li><a href="#impl-CommandFactory-for-Args">CommandFactory</a></li><li><a href="#impl-Debug-for-Args">Debug</a></li><li><a href="#impl-FromArgMatches-for-Args">FromArgMatches</a></li><li><a href="#impl-Parser-for-Args">Parser</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Args">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Args">Send</a></li><li><a href="#impl-Sync-for-Args">Sync</a></li><li><a href="#impl-Unpin-for-Args">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Args">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Args">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Args">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Args">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Args">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Args">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-Args">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Args">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-Args">VZip<V></a></li></ul></section><h2><a href="index.html">In wallet_rpc</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="index.html">wallet_rpc</a>::<wbr><a class="struct" href="#">Args</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/wallet_rpc/main.rs.html#22-55">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Args {
pub descriptor: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
pub change_descriptor: <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="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub start_height: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
pub rpc_cookie: <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="https://doc.rust-lang.org/nightly/std/path/struct.PathBuf.html" title="struct std::path::PathBuf">PathBuf</a>>,
pub rpc_user: <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="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub rpc_pass: <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="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
-}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Bitcoind RPC example using <code>bdk::Wallet</code>.</p>
+}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Bitcoind RPC example using <code>bdk_wallet::Wallet</code>.</p>
<p>This syncs the chain block-by-block and prints the current balance, transaction count and UTXO
count.</p>
</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.descriptor" class="structfield small-section-header"><a href="#structfield.descriptor" class="anchor field">§</a><code>descriptor: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></code></span><div class="docblock"><p>Wallet descriptor</p>